DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – Ver. aggiornata al 24 Gennaio 2014.

Slides:



Advertisements
Presentazioni simili
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
Advertisements

1 Introduzione ai calcolatori Parte II Software di base.
Introduzione Cosa è un Sistema Operativo? Una breve storia
Gestione della memoria centrale
Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: gestire.
Gestione della memoria
Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette all'utente.
Il Sistema Operativo.
Gestione della Memoria
12. Il Sistema Operativo Ing. Simona Colucci
INTRODUZIONE AI SISTEMI OPERATIVI
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Process synchronization
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Le prestazioni (velocità) di un singolo disco sono limitate dalla tecnologia usata, -per aumentare le prestazioni si può pensare di far operare in parallelo.
Struttura dei sistemi operativi (panoramica)
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Introduzione Cosa è un Sistema Operativo ?
Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Il sistema operativo Vito Perrone
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
STRUTTURA GENERALE DI UN ELABORATORE
Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
Il sistema operativo.
Architettura del calcolatore
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
Il Sistema Operativo (1)
Process synchronization
Sistema Operativo (Software di base)
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
SCHEDA INFORMATIVA DI UNITÀ. Introduzione Applicazione della gerarchia di memoria –Memoria cache fra la CPU e la memoria centrale Il processore vedrà.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi: Un po’ di storia Marco D. Santambrogio – Ver. aggiornata al.
Informatica Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
Gestione della Memoria
L’esecuzione dei programmi
Sistema operativo Il sistema operativo è un insieme di programmi che gestiscono tutte le componenti hardware e software di un calcolatore. Spesso si può.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l’ambiente e il territorio Il software di base Stefano Cagnoni e Monica Mordonini.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – Ver. aggiornata al 27 Maggio 2015.
1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria.
Informatica Lezione 6 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Informatica Generale Marzia Buscemi
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il sistema di elaborazione Marco D. Santambrogio – Ver. aggiornata al 15 Maggio.
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
I Sistemi Operativi. Definizione Per Sistemi Operativi (di seguito SO) si intendono quei pacchetti software, a loro volta costituiti da più sottoprogrammi.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – Ver. aggiornata al 19 Gennaio 2016.
Sistemi operativi. HW Sistema Operativo Il sistema operativo.
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
10. Il Sistema Operativo Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
HARDWARE (2). MEMORIE Due classi di memoria MEMORIA CENTRALE –media capacità - ottima velocità MEMORIA DI MASSA elevata capacità - bassa velocità.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Sistemi Operativi: Un po’ di storia
Transcript della presentazione:

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – Ver. aggiornata al 24 Gennaio 2014

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEAgenda Intro e un po’ di storia Qualche curiosità Accenni sul funzionamento di un SO 2

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Cosa vediamo adesso… Intro e un po’ di storia Qualche curiosità Accenni sul funzionamento di un SO 3

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Le generazioni 40’: Prima generazione  E’ in realtà difficile parlare di SO 50’: Seconda generazione  La General Motors Research Laboratories crea il 1mo SO per l’IBM ’: Terza generazione  Multiprogramming, più programmi simultaneamente nella memoria centrale  Time-sharing 70’-90’: Quarta generazione  Circuiti LSI (Large Scale Integration) Nascita dei Personal Computer 00’: Quinta generazione  Sistemi multicore 4

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEUNIX 1969: La storia di UNIX inizia nei laboratori Bell della AT&T 1973: La svolta, UNIX viene scritto in C. 1975: Viene scritta la Versione 6 di UNIX  Divenne largamente utilizzata anche fuori dai laboratori Bell  Il problema/il vantaggio: Essendo allora UNIX libero, ogni venditore di macchine si faceva una versione proprietaria esclusiva, un po' diversa ed spesso incompatibile con le versioni degli altri venditori 5

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 6

*NIX 7

GNU Operating System 1984: Nasce il progetto GNU  GNU’s Not Unix GNU è un sistema operativo tipo Unix distribuito come SW libero Il Kernel di GNU è Hurd  Kernel in continuo sviluppo  GNU/Linux Nota: il kernel (nucleo) è un programma che si occupa di dare le funzionalità di base per il funzionamento di un computer 8

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONELinux 1991: Nascita di Linux  Linus Torvalds  Si scontra in un newsgroup Usenet con il professor Andrew Tanenbaum Tanenbaum è l’invetore di Minix Divieto di modifcare il codice per fini non educational e sotto approvazione dell’autore Kernel monolitici Vs microkernel 9

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE microkernel Vs kernel modulare microkernel  kernel minimale con “lo stretto indispensabile” ad utilizzare l’hardware  si scrivono tutti i servizi (chiamate di sistema) in user- space comunicano direttamente con il kernel minimale le altre applicazioni in user-space possono decidere di utilizzare le chiamate di sistema o riferirsi direttamente al microkernel. kernel monolitico  Tutto quanto necessario ad usare il sistema e a fornirne un utilizzo ai programmi che vi girano è programmato in un unico programma (monolitico) che gira in kernel-space 10

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Linux e la sua comunità I LUG: Linux User Group  Associazioni senza fine di lucro  Diffondere l’uso del SW Libero  Diffondere l’uso dei SO basati sul kernel di Linux Il Linux DAY  Evento per la promozione del SW libero e dei sistemi basati su Linux 11

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE shell di DOS 12

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEDOS CP/M  Control Program for Microcomputers  Gary Kildall della Digital Research 1980: 86-DOS/QDOS  Quick and Dirty Operating System  Tim Paterson della Seattle Computer Products 1981:  Luglio: Microsoft compra per$50K(?) l’86-DOS  Agosto: Microsoft Disk Operating System MS-DOS

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEWindows Nov. 1983: Annuncio di Windows Nov. 1955: Windows 1.0 rilasciato 1998: Windows : Windows : Windows XP 2007: Windows Vista 2009: Windows 7 kernel ibrido  microkernel fatto comunicare tramite messaggi con i restanti servizi, tutto in kernel-space 14

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Mac OS e Mac OS X 1984: Mac OS  Macintosh Operating System  Primo OS ad usare con successo una GUI ‘86-’95: NextSTEP (’98 Rhapsody)  kernel Mach (microkernel)  Objective-C  Gestione orientata agli oggetti Diventerà Cocoa Mac OS X  Rhapsody + Mac OS 15

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 16 Time #Cores Quad core cores Dual core 1000 cores Intel Sun N Cores 8-24 cores Il mondo dell’informatica è pronto per una rivoluzione Larrabee Calcolo parallelo

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi per multicore Barrelfish Operating System ETH  K42/Tornado OS IBM/Uniersity of Toronto  fos: Factored Operating System MIT  groups.csail.mit.edu/carbon/fos Tessellation OS Berkeley  17

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Cosa vediamo adesso… Intro e un po’ di storia Qualche curiosità Accenni sul funzionamento di un SO 18

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE In Italia…Alessandro Rubini Co-autore di Linux Device Drivers Pagina personale  Intervista: Il kernel? Non è vecchio, solo complicato  dombra.blogspot.com/2010/04/il-kernel- non-e-vecchio-solo-complicato.html 19

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE RTAI: RealTime Application Interface  Patch Real Time per Linux  DIAPM: Dipartimento di Ingegneria Aerospaziale  AcOS: Autonomic Operating System for Adaptive Computing  Patch Self-Aware per Linux e FreeBSD  DEI: Dipartimento di Elettronica e Informazione  morphone.OS  Patch Self-Aware per Android  DEI: Dipartimento di Elettronica e Informazione  … il Politecnico di Milano

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Cosa vediamo adesso… Intro e un po’ di storia Qualche curiosità Accenni sul funzionamento di un SO 21

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma prima… PAUSA!!!... 10’ 22

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 23 Il sistema Operativo Il sistema operativo (SO) è uno strato software che nasconde agli utenti i dettagli dell’architettura hardware del calcolatore Fornisce diverse funzionalità ad alto livello che facilitano l’accesso alle risorse del calcolatore Supporta l’esecuzione dei programmi applicativi definendo una macchina virtuale, cioè un modello ideale del calcolatore, sollevando il software applicativo dal compito di gestire i limiti delle risorse disponibili

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 24 Il SO e la macchina reale CPU A, B, C, D RAM A B C D bus utilizzo a rotazionesuddivisione in blocchi Periferiche A, B, C, D utilizzo a rotazione

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 25 Il SO e le macchine virtuali Il sistema operativo può gestire più processi simultaneamente Rende quindi visibile ad ogni processo una macchina virtuale ad esso interamente dedicata e quindi con risorse proprie  nella figura OD = other devices (altri dispositivi) CPU ARAM A OD A HD A Rete AI/O A proc. A CPU BRAM B OD B HD B Rete BI/O B proc. B CPU DRAM D OD D HD D Rete DI/O D proc. D CPU CRAM C OD C HD C Rete CI/O C proc. C bus

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 26 Architettura del SO Il SO è tipicamente organizzato a strati Ciascun strato costituisce una macchina virtuale che gestisce una risorsa del calcolatore Le principali funzionalità offerte sono:  La gestione dei processi  La gestione della memoria  La gestione delle periferiche (tra cui la rete)  La gestione del file system  La gestione dell’interfaccia utente Le prime tre funzionalità sono indispensabili per il funzionamento del sistema e pertanto costituiscono il nucleo del SO (Kernel) Programmi utente Interprete comandi File system Gestione delle periferiche Gestione della memoria Gestione dei processi Macchina fisica Kernel

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 27 Tipi di Sistema Operativo Esistono diversi tipi di sistema operativo, ma in generale si possono dividere in:  Monoutente e monoprogrammato Esecuzione un solo programma applicativo alla volta Viene utilizzato da un solo utente per volta Esempio: DOS  Monoutente e multiprogrammato (multitasking) Consente di eseguire contemporaneamente più programmi applicativi Esempio: Windows 95  Multiutente Consente l’utilizzo contemporaneo da parte di più utenti E’ inerentemente multiprogrammato Esempio: Linux

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 28 Gestione dell’interfaccia utente Il SO fornisce un interprete dei comandi inseriti dall’utente attraverso la tastiera o il mouse L’interfaccia utente può essere  Testuale (esempio: DOS)  Grafica (esempio: Windows) Consente l’inserimento di diversi comandi:  Esecuzione di programmi applicativi  Operazioni sulle periferiche  Configurazione dei servizi del SO  Operazioni sul file system (creazione, rimozione, copia, ricerca, ecc.)

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 29 Gestione del file system Il SO si occupa di gestire i file sulla memoria di massa:  Creare un file  Dargli un nome  Collocarlo in un opportuno spazio nella memoria di massa  Accedervi in lettura e scrittura Gestione dei file indipendente dalle caratteristiche fisiche della memoria di massa I file vengono inclusi all’interno di directory (o cartelle, o cataloghi)  In genere, le directory sono organizzate ad albero

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 30 La struttura ad albero

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 31 Organizzazione dei file A ciascun utente è normalmente associata una directory specifica, detta home directory Il livello di protezione di un file indica quali operazioni possono essere eseguite da ciascun utente Ciascun file ha un pathname (o nome completo) che include l’intero cammino dalla radice dell’albero Il contesto di un utente all’interno del file system è la directory in cui correntemente si trova

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 32 Gestione delle periferiche Sono meccanismi software a cui è affidato il compito di trasferire dati da e verso le periferiche Consentono ai programmi applicativi di leggere o scrivere i dati con primitive di alto livello che nascondono la struttura fisica delle periferiche  e.g., nel sistema Unix le periferiche sono viste come file speciali

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 33 Gestione dei processi Il SO multiprogrammato e multiutente si occupa di gestire l’esecuzione concorrente di più programmi utente La CPU del calcolatore (o le CPU nei sistemi multiprocessore) deve essere distribuita in maniera opportuna fra i programmi da eseguire Ogni programma eseguito ha a disposizione una macchina virtuale realizzata dal SO che ne consente l’esecuzione come se la CPU del calcolatore fosse interamente dedicata a esso

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 34 Che cosa è un processo per il SO? Processo ≠ programma ! Processo = esecuzione di un programma, composto da:  codice eseguibile (il programma stesso)  dati Lo stesso programma può essere associato a più processi:  Un programma può essere scomposto in varie parti e ognuna di esse può essere associata a un diverso processo  Lo stesso programma può essere associato a diversi processi quando esso viene eseguito più volte, anche simultaneamente

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Processi e strutture dati Ad un processo sono associate le seguenti strutture dati:  Uno o più segmenti di codice  Uno o più segmenti di memoria dati  I descrittori di eventuali risorse in uso (file, finestre, periferiche, ecc.)  Uno o più thread Un processo consta di tre zone di memoria chiamate regioni: dati, codice e stack 35

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ambiente di esecuzione L’ambiente di esecuzione di una funzione (variabili e parametri formali) viene creato al momento della chiamata e rilasciato quando la funzione termina In una sequenza di chiamate, l’ultima chiamata è la prima a terminare La zona di memoria di lavoro che contiene l’ambiente di esecuzione di un sottoprogramma è gestito con la logica di una pila (stack)  L’ultimo elemento inserito nello stack è il primo ad essere estratto  Logica LIFO (Last In First Out) 36

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Record di attivazione Alla chiamata di una funzione  si alloca uno spazio di memoria (record di attivazione) in cima allo stack per contenere i parametri formali e le variabili locali  lo spazio viene rilasciato quando la funzione termina Il record di attivazione contiene:  L’ambiente locale della funzione  L’indirizzo di ritorno al chiamante Funzionamento:  Ad ogni attivazione viene allocato un record di attivazione  Al termine dell’attivazione il record viene rilasciato (l’area di memoria è riutilizzabile)  La dimensione del record di attivazione è già nota in fase di compilazione  Il numero di attivazioni della funzione non è noto  Il primo record di attivazione è destinato al main() 37

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lo stack Nello stack, i record vengono allocati “uno sopra l’altro”; il primo record dello stack è relativo all’ultima funzione attivata e non ancora terminata Lo stack cresce dal basso verso l’alto Stack pointer: registro della CPU che contiene l’indirizzo della cima della pila Una parte della RAM è destinata a contenere lo stack  Stack overflow: quando l’area della RAM destinata allo stack viene superata (troppi annidamenti di chiamate) Operazione di inserimento: -incremento SP -scrittura in parola indirizzata da SP Operazione di estrazione: -lettura da parola indirizzata da SP -decremento SP SP 38

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 39 Lo stato di un processo Lo stato del processo può essere distinto fra stato interno e stato esterno. Lo stato interno indica:  la prossima istruzione del programma che deve essere eseguita;  i valori delle variabili e dei registri utilizzati dal processo. Lo stato esterno indica se il processo è:  in attesa di un evento, ad es. la lettura da disco o l’inserimento di dati da tastiera;  in esecuzione;  pronto per l’esecuzione, e quindi in attesa di accedere alla CPU.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stato di un processo (1) In esecuzione: assegnato al processore ed eseguito da esso Pronto: può andare in esecuzione, se il gestore dei processi lo decide In attesa: attende il verificarsi di un evento esterno per andare in stato di pronto 40 Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto - Fine quanto di tempo - Interruzione esterna Interruzione interna Evento esterno atteso - Fine esecuzione - Abort per errore

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stato di un processo (2) I processi appena creati sono messi in stato di pronto Il kernel decide quale processo pronto mettere in stato di esecuzione Il kernel assegna il processore a un processo per un quanto di tempo  Coda dei processi pronti  Round-robin  Priorità dei processi 41 Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto - Fine quanto di tempo - Interruzione esterna Interruzione interna Evento esterno atteso - Fine esecuzione - Abort per errore P1P2

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stato di un processo (3) Il processo in esecuzione passa in stato di attesa se richiede operazioni di I/O (interruzione interna)  Corrisponde alla esecuzione dell’istruzione “chiamata supervisore” (SuperVisor Call, SVC) 42 Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto - Fine quanto di tempo - Interruzione esterna Interruzione interna Evento esterno atteso - Fine esecuzione - Abort per errore P1P2

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stato di un processo: cambio contesto  Cambiamento di contesto: Salvare il contesto di P1 nel suo descrittore di processo  Il processore è ora libero, un altro processo passerà in esecuzione 43 Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto - Fine quanto di tempo - Interruzione esterna Interruzione interna Evento esterno atteso - Fine esecuzione - Abort per errore P1P2

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stati di un processo (5)  Quando l’operazione di I/O è finita viene generata una interruzione esterna  Il processo in esecuzione viene interrotto  Il kernel esegue il gestore delle interruzioni che esegue le azioni opportune  P1 può tornare pronto  Il kernel sceglie quale processo mandare in esecuzione 44 Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto - Fine quanto di tempo - Interruzione esterna Interruzione interna Evento esterno atteso - Fine esecuzione - Abort per errore P1P2

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stato di un processo: Preemption  Preemption: quando il quanto di tempo è scaduto, il kernel interrompe il processo in esecuzione  Si cerca di garantire un uso equo della CPU a tutti i processi 45 Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto - Fine quanto di tempo - Interruzione esterna Interruzione interna Evento esterno atteso - Fine esecuzione - Abort per errore P1P2

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEPausa 46

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 47 Gestione della memoria La gestione concorrente di molti programmi applicativi comporta la presenza di molti programmi in memoria centrale Il SO offre a ogni programma applicativo la visione di una memoria virtuale, che può avere dimensioni maggiori di quella fisica Per gestire la memoria virtuale il SO dispone di diversi meccanismi:  Rilocazione  Paginazione  Segmentazione

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 48 E’ un modello lineare La memoria è una sequenza di celle numerate da 0 fino a un valore massimo M Il numero che identifica ogni cella è detto indirizzo La dimensione della cella dipende dal tipo di calcolatore (per noi sarà di 8 bit, ossia un byte) MEMORIA M Il SO e la gestione della memoria

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 49 Spazio di indirizzamento Lo spazio di indirizzamento è il numero massimo di indirizzi possibili della memoria Dipende dalla lunghezza in bit degli indirizzi Se gli indirizzi sono lunghi N bit, lo spazio di indirizzamento è di 2 N celle Tutte le celle devono essere indirizzabili (cioè devono avere un indirizzo), quindi  Dimensione memoria  Spazio indirizzamento Le dimensioni della memoria sono generalmente espresse in:  KB (Kilobyte) = 2 10 byte  MB (Megabyte) = 2 20 byte  GB (Gigabyte) = 2 30 byte

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 50 Memoria virtuale vs. fisica La memoria virtuale e quella fisica non coincidono per i seguenti motivi:  nella memoria fisica risiedono contemporaneamente il SO e i diversi processi  conviene mantenere nella memoria fisica una sola copia di parti di programmi che sono uguali in diversi processi (memoria condivisa) Per evitare la frammentazione della memoria (spazi vuoti in memoria inutilizzabili) è utile allocare i programmi suddividendoli in pezzi La memoria fisica può essere insufficiente a contenere la memoria virtuale di tutti processi Gli indirizzi contenuti in un programma eseguibile sono indirizzi virtuali e fanno riferimento alla memoria virtuale La memoria effettivamente presente nel calcolatore è la memoria fisica e i suoi indirizzi sono detti indirizzi fisici

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 51Rilocazione Rilocazione: meccanismo di trasformazione da indirizzo virtuale (detto anche rilocabile) a fisico  Statica: i nuovi indirizzi vengono calcolati al caricamento del programma in memoria  Dinamica: ogni indirizzo viene calcolato al momento durante l’esecuzione Registro base Indirizzo virtuale (rilocabile) + Indirizzo calcolato (fisico)

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 52 MEMORIA PC 3 RB 1000 PROCESSORE processo in esecuzione indirizzi virtualiindirizzi fisici Registro base Rilocazione: esempio

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MEMORIA Processo P Problema della frammentazione Sistema Operativo Processo Q Processo R Processo S MEMORIA Sistema Operativo Processo P Processo Q Processo R Processo S (1) Processo S (2)

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 54Paginazione Si rinuncia ad avere una zona contigua della memoria fisica per ciascun processo La memoria virtuale del programma viene suddivisa in porzioni (pagine virtuali) di lunghezza fissa (pot. di 2, e.g., 4K) La memoria fisica viene divisa in pagine fisiche della stessa dimensione Le pagine virtuali di un programma vengono caricate in altrettante pagine fisiche, non necessariamente contigue

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MEMORIA VIRTUALE Q MEMORIA VIRTUALE P MEMORIA FISICA dimensione pagina Paginazione: esempio

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 56 Struttura degli indirizzi virtuali Un indirizzo virtuale è costituito da un numero di pagina virtuale (NPV) e da uno spiazzamento (offset) all’interno della pagina NPV offset indirizzo virtuale

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 57 Struttura degli indirizzi fisici E’ del tutto analoga: si hanno un numero di pagina fisica (NPF) e da uno spiazzamento (offset) all’interno della pagina NPF offset indirizzo fisico

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Traduzione dal virtuale al fisico NPV offset indirizzo virtuale NPF offset indirizzo fisico traduzione le pagine virtuali e quelle fisiche hanno la stessa dimensione, quindi l’offset è lo stesso

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 59Esempio Spazio di indirizzamento virtuale:  indirizzi da 32 bit  2 32 indirizzi Dimensione di pagina: 4K parole (o celle)  2 12 byte (1 cella occupa 1 byte)  Offset  numero di bit necessari per indirizzare una cella all'interno di una pagina = log 2 (dimensione_pagina)=12 Numero di pagine dello spazio di indirizzamento virtuale  2 32 /2 12 = 2 20 pagine Spazio di indirizzamento fisico:  4M parole (o celle)  2 22 indirizzi Numero di pagine dello spazio di indirizzamento fisico  2 22 / 2 12 = 2 10 pagine

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 60 Esempio (segue) NPV offset indirizzo virtuale NPF offset indirizzo fisico 12bit 20bit 10bit12bit

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 61 La tabella delle pagine E’ il meccanismo più semplice per la traduzione da virtuale a fisico NPV = 0 offset indirizzo virtuale NPF offset indirizzo fisico NPVNPF C’è una tabella delle pagine per ciascun processo

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 62 Memory Management Unit Per accelerare la traduzione da NPV a NPF si ricorre allora alla MMU La MMU è una memoria particolarmente veloce (memoria associativa) dalle dimensioni ridotte, contenente le informazioni per la traduzione da NPV a NPF delle pagine più utilizzate Visto che gli NPV e gli NPF si riferiscono alle pagine di un processo, ogni volta che il processo in esecuzione cambia la MMU dovrebbe essere tutta riscritta Per evitare ciò si aggiunge una colonna che dice a quale processo appartengono le pagine e un registro che dice qual è il processo attualmente in esecuzione

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 63 Pagine residenti e non Durante l’esecuzione di un programma solo un certo numero delle sue pagine virtuali è caricato in altrettante pagine fisiche Tali pagine sono dette pagine residenti A ogni accesso alla memoria si controlla che all’indirizzo virtuale corrisponda una pagina residente, altrimenti si produce un interrupt di segnalazione di errore detto page-fault Il processo viene sospeso in attesa che la pagina richiesta venga caricata in memoria, eventualmente scaricando su disco una pagina già residente per liberare lo spazio necessario

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 64 La memoria cache Obiettivo:  fornire agli utenti una memoria grande e veloce  fornire al processore i dati alla velocità con cui è in grado di elaborarli Problema: Il tasso di crescita nella velocità dei processori non è stato seguito da quello delle memorie  Tempo di accesso alle SRAM (Static Random Access Memory): ns al costo di $100 - $250 per Mbyte.  Tempo di accesso alle DRAM (Dynamic Random Access Memory): ns al costo di $5 - $10 per Mbyte.  Tempo di accesso al disco: da 10 a 20 million ns al costo di $ $0.20 per Mbyte. Il problema della memoria: costo vs. prestazioni

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 65 Prestazioni di processori e cache µProc 60%/anno (2X/1.5yr) DRAM 9%/anno (2X/10yr) Tempo

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Gerarchia di memoria Tipicamente costituita da 1. registri contenuti nella CPU (qualche KB) 2. cache (da circa 32KB a circa 4096KB) 3. memoria principale (da circa 512MB a qualche GB) 4. dischi fissi (da qualche centinaio di GB a qualche TB) 5. nastri magnetici e dischi ottici (da qualche centinaio di GB a qualche TB per ogni supporto) Man mano che ci si sposta verso il basso nella gerarchia aumenta il valore dei parametri fondamentali:  aumenta il tempo di accesso;  aumenta la capacità di memorizzazione;  ma diminuisce il costo per bit.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Una gerarchia di memoria

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Caratteristiche dei diversi livelli LivelloCapacitàTempo di accessoTransfer rate (GB/s) Registri~ 1 KB~ 0.2 ns (1 ciclo di clock)– Cache I livello~ 32 KB~ 0.4 ns (2/4 cicli di clock)– Cache II livello~ 1/2 MB~ 1/2 ns (5/10 cicli di clock)~ 100 Cache III livello~ 2/8 MB~ 5 ns~ 50 Memoria centrale~ 2/8 GB ~ 50 ns (1ª parola richiesta) ~ 10 ns (parole successive) ~ 5/10 Dischi interni> 300 GB~ 10 ms0.15/0.6 Dischi esterni> 300 GB~ 10 ms~ 0.05

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 69 Località E’ la proprietà fondamentale dei programmi che rende possibile sfruttare l’organizzazione gerarchica della memoria per incrementarne le prestazioni Località: in ogni istante di tempo un programma accede a una parte relativamente piccola del suo spazio di indirizzamento  Località temporale: se un dato viene referenziato in un dato istante, è probabile che lo stesso dato venga nuovamente richiesto entro breve  Località Spaziale: Se un dato viene utilizzato in un dato istante, è probabile che dati posizionati in celle di memoria adiacenti vengano

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 70Cache Memoria al livello superiore della gerarchia Sfruttare il principio di località dei programmi e tenere in memoria cache i dati utilizzati più di recente Obiettivo: fornire dati al processore in uno o due cicli di clock Memoria cache: veloce nei tempi di accesso ma di dimensioni ridotte

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 71 Gerarchia di memoria Si considerino solo due livelli di gerarchia Il processore richiede un dato al sistema di memoria:  La richiesta viene prima inviata al livello di memoria superiore (più vicino al processore)  Se il dato non è presente nel livello superiore (fallimento della richiesta) la ricerca viene effettuata nel livello inferiore Livello inf di memoria Livello sup. di memoria Al Processore Dal Processore blocco X blocco Y

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 72 Gerarchia di memoria: definizioni Hit (successo): dati presenti in un blocco del livello superiore (esempio: Blocco X)  Hit Rate (“%” di successo): numero di accessi a memoria che trovano il dato nel livello superiore sul numero totale di accessi  Hit Time (tempo di successo): tempo per accedere al dato nel livello superiore della gerarchia

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 73 Gerarchia di memoria: definizioni Miss (fallimento): i dati devono essere recuperati dal livello inferiore della memoria (Blocco Y)  Miss Rate (“%” di fallimento) = 1 - (Hit Rate)  Miss Penalty (tempo di fallimento): tempo per determinare il MISS + tempo necessario a sosituire un blocco nel livello superiore + tempo per trasferire il blocco al processore  tipicamente si ha: Hit Time << Miss Penalty Tempo medio di accesso in presenza di memoria cache: semplicemente la media pesata con le probabilità  HitTime*HitRate + MissRate*MissPenalty

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 74 Cache e principio di località Le memorie cache sfruttano il principio di località spaziale trasferendo dal livello inferiore della gerarchia più dati di quanti non ne siano stati strettamente richiesti (blocco o linea di cache) La località temporale viene sfruttata nella scelta del blocco da sostituire nella gestione di un fallimento (es: sostituire il blocco a cui si è fatto accesso meno di recente)

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEFine Grazie di tutto, è stato un bel cammino! Vi auguro il meglio! 75

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEFine Grazie di tutto, è stato un bel cammino! Vi auguro il meglio! 76

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEFine Grazie di tutto, è stato un bel cammino! Vi auguro il meglio! 77

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Fonti per lo studio + Credits Fonti per lo studio  Il Sistema di elaborazione, Slide Info B, M. D. Santambrogio  Informatica arte e mestiere, S. Ceri, D. Mandrioli, L. Sbattella, McGrawHill Capitolo 2  Introduzione ai sistemi informatici, D. Sciuto, G. Buonanno, L. Mari, 4a Ed, McGrawHill Capitolo 1, 2, 5  The Art & Craft of Computing, S. Ceri, D. Mandrioli, L. Sbattella, Addison-Wesley Capitolo 2 Approfondimenti  Struttura e progetto dei calcolatori, D. A. Patterson, J. Hennessy, 3a Ed, Zanichelli Capitolo 1, 2 Credits  Prof. G. Buonanno e D. Sciuto, LIUC 78