Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
Sistemi di Calcolo
Architettura dei Sistemi Informatici
� Sistemi informatici PC, terminali e reti
� Architettura insieme delle componenti del sistema, descrizione delle loro funzionalità e della loro interazione
� Suddivisione principale hardware e software
Hardware I
� Unità di Elaborazione (Processore o CPU):� Svolge le elaborazioni
� Coordina il trasferimento dei dati
� Cioè esegue i programmi
� Memoria Centrale � Memorizza dati e programmi per l’elaborazione
� Volatile
� Accesso rapido
� Capacità limitata
Hardware II
� Memoria Secondaria (harddisk, floppy)� Grande capacità
� Persistente
� Accesso piu lento della RAM
� Unità Periferiche� Interfaccia verso l’esterno
� Terminali (tastiera, video) e Stampanti
� Bus di Sistema� Collega le altre componenti
Esempi: Personal Computer (PC)
� Contenitore con� CPU, RAM
� Memoria Centrale� Fisso
� Unità per Dischetti/CD
� Monitor
� Tastiera
Alcuni accessori per PC
� Lettore Floppy, CD, DVD
� Modem
� Mouse
� Stampante
� Scanner
� Joystick
Altri Sistemi Informatici
� Workstation� Calcolatore con elevate prestazioni
� Main-frame� Servono reti di terminali con centinaia di utenti
� Notebook (palmari) e palmari� Elaboratori portatili
Altri Sistemi Informatici
� Reti di Calcolatori
� Reti Locali� collegano terminali vicini tra loro (ad es. il nostro laboratorio)
� Reti Geografiche� collegano dei calcolatori a medio-grandi distanze (ad es. Internet)
Software
� Software di base: � Dedicato alla gestione dell’elaboratore
� Es. sistemi operativi: Windows XP/Vista, Unix, Linux
� Software applicativo:� Dedicato alla realizzazione di specifiche applicative
� Esempio: � programmi per scrittura,
� navigazione su internet, ...
Funzionamento dell’Elaboratore
Come funziona l’elaboratore?
� Un programma (sequenza di istruzioni) viene caricato in memoria centrale
� Si crea lo spazio per i dati necessari al programma
� La CPU estrae le istruzioni e i dati dalla memoria centrale, le decodifica e le esegue utilizzando registri interni (accesso veloce)
� L’esecuzione può comportare il trasferimento di dati in input e output tra memoria centrale e periferiche attraverso il bus di sistema
Elaboratore Ideale di Von Neumann
2:1:0:
:
RAM
decoder
RIC
PC
ACC
ALU
CPU
Registri
� Registro istruzione corrente (RIC) � contiene l’istruzione correntemente eseguita
� Contatore di Programma (PC)� indirizzo della prossima istruzione da eseguire
� Accumulatore (ACC)� Contiene valori utilizzati durante operazioni
� Decoder� Decodifica codice istruzione
Programma in Linguaggio Macchina
� Le istruzioni della macchina sono codificate in forma numerica ed inserite insieme agli altri dati nella memoria centrale
� Istruzione = operazione di base su registri e memoria
� Programma = Sequenza di istruzioni codificate
� Un programma viene interpretato sequenzialmente attraverso il registro PC che identifica la prossima istruzione da eseguire
Esecuzione tramite ciclo di fetch
Inizializzazione: memorizza 0 nel registro PC
Ciclo di Fetch:1. Valore nella cella PC � registro RIC (registro istruzione
corrente)
2. Somma 1 al valore contenuto in PC
3. Decodifica istruzione contenuta in RIC
4. Esegui l’istruzione
5. Torna al punto 1 oppure termina esecuzione
Nota: esecuzione sequenziale del programma
Astrazione dai dettagli hardware
� L’utente non si preoccupa di gestire direttamente l’esecuzione dei programmi (caricamento in memoria, ciclo di fetch, gestione I/O ed errori, ecc)
� Questi compiti sono demandati al software di base (sistema operativo) che fornisce all’utente solamente funzionalita’ ad alto livello
� Es. un comando – attraverso interfaccia grafica - per lanciare l’esecuzione di un programma
Sistema Operativo
Sistema Operativo
Il sistema operativo è un insieme di programmi che nasconde l’hardware agli utenti
� fornisce funzionalita’ ad alto livello (es. esecuzione di un programma)
� rende semplice l’uso della macchina
� sfrutta al meglio l’hardware
� fornisce un’organizzazione logica per i dati in memoria secondaria
Sistema operativo = macchina virtuale
Servizi del Sistema Operativo
� Multi-programmazione� Esecuzione contemporanea di diversi programmi anche su
macchine con un solo processore
� Memoria virtuale� Esecuzione di programmi di grandi dimensioni anche su elaboratori
con memoria principale di capacita’ ridotta
� Time-sharing� Esecuzione comtemporanea di processi di diversi utenti
� Protezione macchina e utenti� Login, connessioni di rete, memoria
Funzionalità
� Gestiome dei processi
� Gestione della memoria
� Gestione delle periferiche
� File system
� Interprete dei comandi
Gestore dei processi
� Gestisce l’esecuzione concorrente dei programmi(multi-programmazione)
� Le unità di esecuzione vengono chiamate processi
� Per eseguire un programma occorre mantenere il corrispondente processo attivo nella CPU
� Il gestore deve decidere a quale processo assegnare la CPU in ogni istante (scheduler)
� Inoltre deve reagire agli eventi esterni (es. le interruzioni provenienti dalle periferiche)
Processi: Definizione di processo
� Programma = lista di istruzioni = nozione statica
� Processo = programma in esecuzione = programma + stato corrente variabili = nozione dinamica
� Stato corrente=� valori in memoria centrale
� valori nei registri della CPU
� In un PC un solo processo in esecuzione alla volta
Gestione Memoria Centrale
� I processi si alternano durante l’esecuzione nella CPU
� Per ragioni di efficienza dobbiamo mantenere più programmi in memoria centrale
� Il sistema operativo si occupa di recuperare ed allocare spazio di memoria per l’esecuzione dei processi
� Trasformazione indirizzi logici di un programma in indirizzi di memoria: rilocazione dei programmi
Memoria Centrale: Compilatore, linker e loader
� Compilatore e Linker� Traducono programmi scritti in linguaggio ad alto livello in
programmi in linguaggio macchina che accedono dati (variabili ecc) utilizzando indirizzi logici indipendenti dalla posizione in memoria centrale
(Linker: si utilizza per compilare programmi divisi in moduli)
� Loader� carica il programma compilato in memoria centrale.
Memoria Centrale: Allocazione ai processi
� Segmentazione: La memoria centrale viene suddivisa in segmenti di lunghezza variabilecontenenti i programmi
� Paginazione: La memoria centrale e i programmi vengono suddivisi in pagine di lunghezza fissa.
� I programmi vengono caricati in memoria anche in pagine o segmenti non contigui
Memoria Virtuale
� Con la suddivisone del programma in pagine non è necessario mantenere tutto il programma in memoria centrale
� Paginazione a richiesta: � Se la pagina del programma che contiene la
prossima esecuzione da eseguire non è in memoria si carica da disco (page swapping)
� Indirizzi nei programmi diventano virtuali
Gestore delle periferiche
� Maschera le caratteristiche hardware delle periferiche
� Gestisce le operazioni di input e output
� Fornisce procedure ad alto livello � ad esempio per la lettura, scrittura di dati su memorie
secondarie
� scrittura su stampanti, ecc
File System
� Gestisce i dati in memoria di massa
� Struttura i dati in modo gerarchico utilizzando file e directory
� Fornisce operazioni di alto livello per la gestione di file � ad esempio creazione di un nuovo documento,
directory ecc
� Protegge i dati da accessi esterni
� Garantisce la condivisione sicura dei dati
File
� Nome:� Identifica il file spesso con una estensione che indica il tipo
di file
� es. Tesi.doc oppure somma.exe
� Struttura:� Sequenza di byte
� Sequenza di blocchi (record) di byte
� Tipo: � File di caratteri e binari (eseguibili)
� Directory
� Attributi: � nome, diritti di accesso,proprietario
Operazioni su File
� Il file system consente di effettuare le seguenti operazioni:
� creare, cancellare, spostare, recuperare, modificare documenti in memoria di massa (memoria persistente)
� Modificare gli attributi di un file
� Ridenominare i file
Directory
� E’ un file di tipo speciale che mantiene informazioni su altri file� permette di strutturare insiemi di file (dati) in maniera
gerarchica
� contiene la lista dei nomi e attributi dei file e directory al suo interno
� Quindi: il file system ha una struttura ad albero� Radice = radice del’intero file system
� Nodi interni = directory
� Foglie = documenti/programmi
Struttura ad albero
Struttura ad albero
Floppy da 3.5 A:
Applicazioni Biblioteca
Elab_imm Elab_suoni
Photoshop.exe file
directory
radice
Hard Disk C:
Path names
� In un’organizzazione ad albero i nomi devono contenere informazioni sui cammini sui quali si trovano i corrispondenti file� Nomi relativi:
� relativi ad una particolare directory
� Nomi assoluti: � specificano il cammino a partire dalla radice (root) del file
system (mai ambigui)
� Nei path names si possono utilizzare I due simboli speciali � Il punto (.) rappresenta la directory corrente
� I due punti (..) rappresentano la directory immediatamente superiore nel’albero
Esempio cammini
Floppy da 3.5 A:
Applicazioni
Elab_imm
Elab_suoni
Photoshop.exe A:\Applicazioni\Elab_imm\Photoshop.execammino assoluto
..\Elab_suoni
cammino relativo da Elab_imm
Interprete dei comandi
� Interpreta i comandi che l’utente invia alla macchina/sistema operativo:� attraverso l’interazione con l’ambiente grafico
� tramite una finestra di comando (command shell)
� Permette quindi l’invio di programmi, la navigazione nel file system, ecc.