Lucidi lezione introduttiva su sistemi di calcolo e sistema

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)
Unità Periferiche
Grande capacità
Persistente
Accesso piu lento della RAM
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
Main-frame
Calcolatore con elevate prestazioni
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
decoder
ACC
ALU
0:
1:
2:
:
PC
RIC
CPU
RAM
Registri
Registro istruzione corrente (RIC)
Contatore di Programma (PC)
indirizzo della prossima istruzione da eseguire
Accumulatore (ACC)
contiene l’istruzione correntemente eseguita
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.
2.
3.
4.
5.
Valore nella cella PC registro RIC (registro istruzione
corrente)
Somma 1 al valore contenuto in PC
Decodifica istruzione contenuta in RIC
Esegui l’istruzione
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
Memoria virtuale
Esecuzione di programmi di grandi dimensioni anche su elaboratori
con memoria principale di capacita’ ridotta
Time-sharing
Esecuzione contemporanea di diversi programmi anche su
macchine con un solo processore
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 variabile
contenenti 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:
Struttura:
Sequenza di byte
Sequenza di blocchi (record) di byte
Tipo:
Identifica il file spesso con una estensione che indica il tipo
di file
es. Tesi.doc oppure somma.exe
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
radice
Floppy da 3.5 A:
Hard Disk C:
Applicazioni
Elab_imm
Photoshop.exe
Biblioteca
directory
Elab_suoni
file
Path names
In un’organizzazione ad albero i nomi devono
contenere informazioni sui cammini sui quali si
trovano i corrispondenti file
Nomi relativi:
Nomi assoluti:
relativi ad una particolare directory
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_suoni
Elab_imm
..\Elab_suoni
cammino relativo da Elab_imm
Photoshop.exe
A:\Applicazioni\Elab_imm\Photoshop.exe
cammino assoluto
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.