220 likes | 438 Views
Seconda Università degli Studi di Napoli Facoltà di Economia. Corso di Informatica. Prof.ssa Zahora Pina. Il Sistema Operativo Cap. 13 – pagg. 283-300. Definizione.
E N D
Seconda Università degli Studi di NapoliFacoltà di Economia Corso di Informatica Prof.ssa Zahora Pina
Il Sistema OperativoCap. 13 – pagg. 283-300 Definizione Il Sistema Operativo è lo strato software che opera direttamente sull’hardware isolando gli utenti dai dettagli dell’architettura hardware e fornendo loro un insieme di funzionalità di alto livello. Rendono disponibili agli utenti le architetture dei calcolatori S.O. • Azioni necessarie a: • caricare i programmi in memoria centrale, • eseguirli, • leggere e scrivere i dati da/su memoria di massa, • compiere operazioni di I/O
Il Sistema Operativo:Introduzione S.O. Mono-utente Multi-utente L’intero sistema è dedicato ad un singolo utente Diversi utenti condividono lo stesso sistema • CPU • Memoria • Periferiche Si ha l’impressione che l’intero sistema sia dedicato ad ogni utente
Il Sistema Operativo:Introduzione S.O. Strati funzionali a buccia di cipolla organizzazione Programmi utente Interprete comandi File system Gestione delle periferiche kernel Gestione della memoria Gestione dei processi (nucleo) Macchina fisica
Il Sistema Operativo:Introduzione Macchina virtuale strati • Macchina che: • Maschera le caratteristiche della macchina hardware • Comunica con gli altri strati tramite funzioni • Offre agli utenti l’illusione di una macchina dedicata
Il Sistema Operativo:Il Gestore dei Processi (Nucleo) Il Gestore dei Processi È responsabile dell’esecuzione dei programmi da parte dell’unità di elaborazione Possono esservi più CPU CPU Utenten Utente1 ………… Utente2 Il nucleo deve garantire l’esecuzione quasi contemporanea di molti processi dando ad ogni utente l’impressione che la CPU gli sia esclusivamente dedicata
Il Sistema Operativo:Il Gestore dei Processi (Nucleo) Programma Processo fa riferimento all’esecuzione di un programma è statico dinamico P=(E,S) E=codice eseguibile del programma S(stato)=valori nella memoria e nei registri della CPU
Il Sistema Operativo:Il Gestore dei Processi (Nucleo) Caso1 Programma Processi Elabora e stampa dei dati acquisizione dati stampa dati elaborazione dati Caso2 Programma Processo programma u1 Processo programma u2 . . Processo programma un Linguaggi concorrenti Linguaggi che coordinano i vari processi relativi ad un certo programma
Il Sistema Operativo:Il Gestore dei Processi (Nucleo) Diagramma stati/transizioni Inizio esecuzione pronto (ready) in esecuzione (running) in attesa (waiting) fine esecuzione abort per errore
Il Sistema Operativo:Il Gestore dei Processi (Nucleo) Interruzione interna È generata dal processo quando viene richiesta un’operazione di I/O Risponde ad una logica di buona amministrazione delle risorse Chiamata a supervisore (SuperVisor Call = SVC) Il processore passa dall’esecuzione di un processo utente ad uno di S.O. Il processo dallo stato in esecuzione passa allo stato di attesa Salvataggio del contesto del processo Scelta di un processo da eseguire Ripristino del contesto del processo scelto Il processo scelto passa dallo stato di pronto allo stato inesecuzione
Il Sistema Operativo:Il Gestore dei Processi (Nucleo) Cambiamento di contesto Context-Switching Salvataggio del contesto del processo Copia dei registri (PC) in una zona di memoria (descrittore del processo) Ripristino del contesto del processo Copia il descrittore del processo nei registri
Il Sistema Operativo:Il Gestore dei Processi (Nucleo) Interruzione esterna È generata dal processo quando una periferica ha soddisfatto una richiesta di operazione di I/O Chiamata a gestore delle interruzioni Il processore passa dall’esecuzione di un processo utente ad uno di S.O. Il processo dallo stato in esecuzione passa allo stato di pronto Salvataggio del contesto del processo Scelta di un processo da eseguire Ripristino del contesto del processo scelto Il processo scelto passa dallo stato di pronto allo stato inesecuzione
Il Sistema Operativo:Il Gestore dei Processi (Nucleo) Gestore delle interruzioni INTR = Registro Interruzioni (CPU) 0 1 0 pern per3 per2 per1 0 = evento assente (la periferica non ha soddisfatto richiesta operazione I/O 1 = evento presente (la periferica ha soddisfatto richiesta operazione I/O Es: lettura dati da periferica (tastiera) PDR = Registro Dati Periferica
Il Sistema Operativo:Il Gestore dei Processi (Nucleo) • Il gestore dei processi ha come obiettivo di far eseguire ciascun programma utente entro un tempo approssimativamente proporzionale alla complessità del programma, senza creare ingiustizie politiche di gestione
Il Sistema Operativo:Il Gestore dei Processi (Nucleo) Round Robin • La politica consiste nel garantire la rotazione dei processi • Il nucleo assegna il processore a un processo per un quanto di tempo • Quando il quanto di tempo termina • il processo in esecuzione viene interrotto e ritorna tra i processi pronti (alla fine della coda dei processi pronti) • il nucleo assegna il processore al primo processo presente nella coda dei processi pronti Coda processi pronti • processo in esecuzione a primo processo FIFO (First In – First Out) a ultimo processo • processi interrotti per esaurimento quanto di tempo • processi che passano dallo stato di attesa allo stato di pronto
Il Sistema Operativo:Il Gestore dei Processi (Nucleo) • Il quanto di tempo : • Deve essere maggiore del tempo necessario ad un cambiamento di contesto • Deve essere sensibilmente maggiore al tempo di esecuzione di un programma altrimenti l’effetto politica di rotazione si annulla
Il Sistema Operativo:Il Gestore dei Processi (Nucleo) • Il tempo di attesa di ogni programma è proporzionale: • Alla lunghezza del programma (ogni volta che il quanto di tempo scade viene messo in coda) • Al numero di suo operazioni di I/O (ogni volta che è richiesta un’operazione di I/O va in stato di attesa e quando ritorna in stato di pronto va in coda) • Favorisce il completamento dei programmi più brevi • La politica massimizza il numero di programmi terminati nell’unità di tempo (throughput) throughput n. programmi/unità di tempo
Il Sistema Operativo:Il Gestore dei Processi (Nucleo) Code con priorità statica Vi sono più code con diverse priorità I processi in attesa vengono inseriti nella coda corrispondente alla loro priorità Garantisce che vengano privilegiati i processi con priorità maggiore Coda 1 Coda 2 Coda n Es: sistema problemi di sicurezza Segnalazione problemi motori aereo (priorità alta) Segnalazioni difetti al sistema di intrattenimento (priorità bassa) Problema I processi con bassa priorità rischiano attese molto lunghe
Il Sistema Operativo:Il Gestore dei Processi (Nucleo) Code con priorità dinamica La priorità dei processi può essere modificata nel tempo in modo da consentire a processi che, nel caso limite, rischierebbero di non andare in esecuzione,di terminare
Il Sistema Operativo:Il Gestore dei Processi (Nucleo) • I processi devono sincronizzarsi: cooperare, coordinarsi quando competono per la stessa risorsa • Risorsa critica: risorsa per la quale competono più processi • Solo un processo può accedere alla risorsa • Gli altri attendono che la risorsa venga rilasciata • Uso di semafori Risorsa (es. cella memoria)
Il Sistema Operativo:Il Gestore della memoria • Paginazione: • La memoria è divisa in pagine (zone contigue) • I programmi sono divisi in pagine
Il Sistema Operativo:Il Gestore dei File root usr bin dev mario ugo piero f1 f2 d1 f4 f3