La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Sommario Il sistema operativo Introduzione Scopo del sistema operativo Funzioni del sistema operativo Gestione dei processi Gestione della memoria centrale.

Presentazioni simili


Presentazione sul tema: "1 Sommario Il sistema operativo Introduzione Scopo del sistema operativo Funzioni del sistema operativo Gestione dei processi Gestione della memoria centrale."— Transcript della presentazione:

1 1 Sommario Il sistema operativo Introduzione Scopo del sistema operativo Funzioni del sistema operativo Gestione dei processi Gestione della memoria centrale Gestione delle periferiche Gestione dei file UNIVAC Il primo calcolatore concepito ed impostato come prodotto commerciale, fu realizzato da Eckert e Mauchly (gli stessi costruttori dellENIAC) per lUfficio Centrale di Statistica degli Stati Uniti. Lalgebra di Boole truefalse Fu teorizzata dal matematico inglese George Boole ( ) nel lavoro Analisi Matematica della Logica, pubblicato nel Include un insieme di operazioni su variabili logiche (o variabili booleane), che possono assumere i due soli valori true e false, indicati da 1 e 0. Le tecniche sviluppate nellalgebra booleana possono essere applicate allanalisi ed alla progettazione dei circuiti elettronici, poiché essi sono realizzati con dispositivi che possono assumere solo due stati. tabella di verità Su insiemi di costanti e variabili logiche possono essere definite funzioni che hanno esse stesse la caratteristica di assumere due soli valori. La definizione di una funzione booleana può essere effettuata per mezzo di una tabella di verità, che indica il valore della funzione in corrispondenza di ogni possibile configurazione dei valori degli argomenti. Le funzioni booleane possono essere scritte e manipolate anche con metodi algebrici, dato un insieme di funzioni (o operazioni) elementari tramite le quali poter esprimere ogni altra funzione. UNIVAC Il primo calcolatore concepito ed impostato come prodotto commerciale, fu realizzato da Eckert e Mauchly (gli stessi costruttori dellENIAC) per lUfficio Centrale di Statistica degli Stati Uniti. Lalgebra di Boole truefalse Fu teorizzata dal matematico inglese George Boole ( ) nel lavoro Analisi Matematica della Logica, pubblicato nel Include un insieme di operazioni su variabili logiche (o variabili booleane), che possono assumere i due soli valori true e false, indicati da 1 e 0. Le tecniche sviluppate nellalgebra booleana possono essere applicate allanalisi ed alla progettazione dei circuiti elettronici, poiché essi sono realizzati con dispositivi che possono assumere solo due stati. tabella di verità Su insiemi di costanti e variabili logiche possono essere definite funzioni che hanno esse stesse la caratteristica di assumere due soli valori. La definizione di una funzione booleana può essere effettuata per mezzo di una tabella di verità, che indica il valore della funzione in corrispondenza di ogni possibile configurazione dei valori degli argomenti. Le funzioni booleane possono essere scritte e manipolate anche con metodi algebrici, dato un insieme di funzioni (o operazioni) elementari tramite le quali poter esprimere ogni altra funzione.

2 2 Introduzione

3 3 Introduzione Il software può essere diviso in due grandi classi: programmi di sistema i programmi di sistema, che gestiscono le funzionalità del sistema di calcolo programmi applicativi i programmi applicativi, che risolvono i problemi degli utenti programmi di sistema Sistema Operativo Linsieme dei programmi di sistema viene comunemente identificato con il nome di Sistema Operativo (SO)Definizione sistema operativocontrolla lesecuzione dei programmi applicativi interfaccia fra le applicazioni e lhardware Un sistema operativo è un programma che controlla lesecuzione dei programmi applicativi ed agisce come interfaccia fra le applicazioni e lhardware del calcolatore

4 4 Scopo del sistema operativo Gestione EFFICIENTE delle risorse del sistema di elaborazione Creazione di uninterfaccia AGEVOLE tra luomo e la macchina

5 5 Esempio: Il SO come gestore risorse – 1 Si consideri un ristorante con un capo–cuoco (che dirige la cucina) ed i suoi aiutanti, camerieri e clienti: I clienti scelgono un piatto dal menù Un cameriere prende lordine e lo consegna al capo–cuoco Il capo–cuoco riceve lordine e assegna uno o più aiutanti alla preparazione del piatto Ogni aiutante si dedicherà alla preparazione di un piatto, il che potrà richiedere più attività diverse Il capo–cuoco supervisiona la preparazione dei piatti e gestisce le risorse (limitate) disponibili

6 6 Esempio: Il SO come gestore risorse – 2 Il capo–cuoco è il sistema operativo! I clienti sono gli utenti Le ricette associate ai piatti sono i programmi Il menù ed il cameriere costituiscono linterfaccia verso il sistema operativo (grafica e non) Gli aiutanti sono i processi La cucina è il computer; pentole, fornelli, etc. sono le componenti hardware

7 7 Esempio: Il SO come gestore risorse – 3 Problemi del capo–cuoco: Esecuzione fedele delle ricette Allocazione efficiente delle risorse esistenti (aiutanti, fornelli, ingredienti, etc.) Coordinamento efficiente degli aiutanti Licenziamento degli aiutanti che non si comportano secondo le regole Problemi del sistema operativo: Efficienza nelluso delle risorse (processori, memoria, dischi, etc.) Protezione nelluso delle risorse Coordinamento dei processi

8 8 Il SO come macchina estesa – 1 Visione a strati delle componenti hardware/software che compongo un elaboratore

9 9 Il SO come macchina estesa – 2 virtualizza macchina astratta Il SO può essere inteso come uno strumento che virtualizza le caratteristiche dellhardware, offrendo allutente la visione di una macchina astratta più potente e più semplice da utilizzare di quella fisicamente disponibile In questa visione, un SO… …nasconde a programmatori/utenti i dettagli dellhardware e fornisce uninterfaccia conveniente e facile da usare …agisce come intermediario tra programmatore/utente e hardware Parole chiave Indipendenza dallhardware Comodità duso Programmabilità

10 10 Funzioni del sistema operativo

11 11 Il sistema operativo ̶ 1 Il SO rende totalmente disponibile allutente lhardware del calcolatore Le operazioni AND e OR sono operazioni binarie, loperazione NOT è unaria. Nella valutazione delle espressioni booleane esiste una relazione di precedenza fra gli operatori NOT, AND e OR, nellordine in cui sono stati elencati; le parentesi vengono utilizzate nel modo consueto. sistema operativo Il sistema operativo è uno strato software che opera direttamente sullhardware......isola gli utenti dallarchitettura sottostante e fornisce un insieme di funzionalità di alto livello...permette lo svolgimento di operazioni quali la copia di un file o lesecuzione di un programma; opera le azioni necessarie a caricare i programmi in memoria centrale, eseguirli, leggere e/o scrivere dati da/su memoria di massa e periferiche

12 12 Il sistema operativo ̶ 2 Il SO può essere... mono utente...mono utente (tipicamente nei PC), se lintero sistema hw/sw è dedicato ad un singolo utente multi utente...multi utente, quando diversi utenti condividono lo stesso sistema hw/sw; il SO nasconde a ciascun utente la presenza degli altri, dando limpressione che il sistema (unità di elaborazione, memoria, periferiche, etc.) gli sia interamente dedicato Il SO è un insieme di programmi molto complesso ed articolato, soprattutto in contesto multi utente strati funzionali Per facilitarne il progetto, ed isolarne le varie componenti, il SO è organizzato per strati funzionali, con una struttura cosiddetta a cipolla

13 13 Il sistema operativo ̶ 3 macchina virtuale Ciascuno strato funzionale realizza una macchina virtuale, che maschera le caratteristiche della macchina hardware e offre allutente un insieme di funzionalità Struttura modulare: ciascun modulo esporta funzionalità verso lesterno e mantiene al suo interno i propri meccanismi implementativi Ogni macchina virtuale sembra più potente della corrispondente macchina fisica, perché offre ai suoi utenti lillusione di una macchina dedicata...tuttavia, la macchina fisica è effettivamente condivisa fra gli utenti

14 14 Funzioni del sistema operativo Macchina fisica Allocazione e gestione della memoria Gestione della memoria Gestione di ingresso/uscita da periferica Gestione delle periferiche Controllo e gestione degli accessi a file File system Attivazione programmi utente o di sistema Interprete dei comandi Gestione dei processi e degli interrupt Gestione dei processi Programmi utente Architettura a cipolla del sistema operativo; ciascuno strato corrisponde ad una macchina virtuale

15 15 Gestore dei processi È responsabile dellesecuzione dei programmi da parte dellunità di elaborazione In caso di SO multi utente, deve garantire lesecuzione concorrente di processi multipli, decidendo a quale di essi assegnare laccesso e luso dellunità di elaborazione Gestisce gli interrupt provenienti dalle periferiche Lo strato del gestore dei processi offre agli strati superiori una macchina virtuale in cui ciascun programma opera come se avesse a disposizione ununità di elaborazione dedicata complemento Lelemento x = NOT( x ) viene detto complemento di x. Il complemento è unico.

16 16 Gestore della memoria Alloca la memoria e la ripartisce fra i vari programmi che la richiedono Nei SO multi utente, è opportuno che molti programmi siano contemporaneamente presenti in memoria centrale, per ottenere unesecuzione simultanea Lo strato del gestore di memoria offre agli strati superiori una macchina virtuale in cui ciascun programma opera come se avesse a disposizione una memoria dedicata elemento neutro 0 è lelemento neutro per loperazione di OR; 1 è lelemento neutro per lAND. Gli elementi neutri sono unici. legge dellidempotenza La legge x + x = x · x = x è detta legge dellidempotenza. elemento neutro 0 è lelemento neutro per loperazione di OR; 1 è lelemento neutro per lAND. Gli elementi neutri sono unici. legge dellidempotenza La legge x + x = x · x = x è detta legge dellidempotenza.

17 17 Sono responsabili delle operazioni di ingresso/uscita che coinvolgono le periferiche Ciascun driver è un modulo software dedicato a guidare una periferica specifica: ne conosce (e ne occulta) le caratteristiche hardware Lo strato del gestore delle periferiche offre allutente una versione astratta delle periferiche hardware; lutente ha a disposizione un insieme di procedure standard di alto livello per leggere/scrivere da/su periferiche, che percepisce come dedicate Driver di dispositivo

18 18 file directory MS Windows È responsabile della gestione dei file in memoria di massa; struttura i dati in file e li organizza in directory (cartelle nel linguaggio di MS Windows) Fornisce allutente un insieme di funzioni di alto livello per operare su file e directory, mascherando le operazioni realmente effettuate per allocare la memoria e per accedervi in lettura/scrittura Tramite il file system, ciascun utente può organizzarsi la propria area di memoria e garantirne la protezione da accessi esterni Consente la condivisione dei file File system

19 19 Consente allutente di attivare i programmi Accede al programma, residente su memoria di massa, tramite il file system Alloca memoria e vi carica il programma (tramite il gestore della memoria) Attiva il processo (sfruttando le funzionalità del nucleo) Sfrutta lorganizzazione a strati del SO e può richiedere lesecuzione di qualsiasi funzione implementata negli strati sottostanti Interprete dei comandi

20 20 Ancora sul sistema operativo... nucleo kernel I primi tre strati del SO, dedicati alla gestione dei processi, della memoria e delle periferiche, ne costituiscono il nucleo, o kernel Lobiettivo del SO consiste nellottimizzare le prestazioni del sistema informatico, determinando le politiche migliori di gestione delle risorse sotto il suo controllo Nei sistemi multi utente, ciascun utente risente della presenza degli altri in misura crescente con il carico complessivo del sistema, ovvero, al crescere del numero delle richieste di elaborazione, il sistema può diventare sovraccarico e fornire prestazioni percepibilmente scadenti

21 21 La gestione dei processi

22 22 La gestione dei processi 1 Processo Processo un programma in esecuzione Il processo è un oggetto dinamico, che evolve nel tempo, in contrapposizione al programma, un oggetto statico ed invariante nel tempo processore Lunità di elaborazione che esegue i processi prende il nome di processore La corrispondenza tra programma e processo non è necessariamente biunivoca: uno stesso programma eseguibile può essere associato a più processi, ciascuno dei quali svolge uno dei compiti richiesti dal programma

23 23 gestore dei processi Il gestore dei processi è il modulo che si occupa del controllo, della sincronizzazione, dellinterruzione e della riattivazione dei programmi in esecuzione La gestione dei processi viene compiuta secondo modalità diverse, in funzione del tipo di utilizzo cui il sistema è rivolto scheduler Il programma che si occupa della distribuzione del tempo di CPU tra i vari processi attivi, decidendone lavvicendamento, è chiamato scheduler Nel caso di sistemi multiprocessore, lo scheduler si occupa anche di gestire la cooperazione tra le diverse CPU presenti nel sistema La gestione dei processi – 2

24 24 Stato dei processi 1 stato Mentre viene eseguito, un processo cambia stato: New New: Il processo viene creato Running Running: Il processo viene eseguito Waiting Waiting: Il processo è in attesa di un evento Ready Ready: Il processo è in attesa di essere assegnato al processore Terminated Terminated: Il processo ha terminato la propria esecuzione

25 25 Stato dei processi 2 Nellipotesi di un unico processore, uno solo dei processi può essere in esecuzione ad un certo istante, cioè in stato di running Gli altri processi sono pronti (ready) o in attesa (waiting) I processi pronti possono venir eseguiti immediatamente: sarà lo scheduler della CPU, in base alla sua politica di gestione dei processi, a decidere quale dei processi pronti sarà il prossimo ad accedere alla CPU I processi in attesa attendono, invece, il verificarsi di un evento esterno (per esempio limmissione di dati tramite un dispositivo di I/O) per passare in stato di pronto

26 26 Interruzioni interne 1 Nel corso della sua evoluzione, il processo in esecuzione può richiedere lo svolgimento di unoperazione di ingresso/uscita che coinvolge una periferica Lesecuzione del processo si interrompe ed il kernel del SO diviene attivo (si esegue un processo di sistema) interruzione interna La sospensione del processo in esecuzione si dice interruzione interna: il processo passa dallo stato ready allo stato waiting Lesigenza di sospendere il processo allatto di una richiesta di un servizio di I/O risponde ad una logica di buona amministrazione delle risorse

27 27 Interruzioni interne 2 Infatti, vi è una notevole differenza fra i tempi di esecuzione delle istruzioni in memoria centrale (dellordine delle decine di nanosecondi) ed i tempi di esecuzione delle istruzioni di I/O (qualche millisecondo per accesso alla memoria di massa, qualche secondo per comandi da terminale) La sospensione deve avvenire in modo tale che il processo possa riprendere la propria attività, dopo linterruzione, esattamente dallo stesso punto e con gli stessi dati salvare il contesto descrittore del processo Occorre salvare il contesto, cioè copiare il contenuto dei registri del processore in una zona particolare di memoria, il descrittore del processo ripristinare il contesto Prima di riprendere lesecuzione del processo interrotto, occorre eseguire loperazione inversa, cioè ricopiare il contenuto del descrittore nei registri del processore, per ripristinare il contesto

28 28 Interruzioni interne 3 Dopo il salvataggio del contesto del processo interrotto, lo scheduler della CPU seleziona uno dei processi pronti e gli alloca il processore Molti processi possono essere nello stato di pronto allo stesso tempo program counter Il contesto del processo selezionato, in base alla politica di scheduling, viene ripristinato, e la sua esecuzione può proseguire dallistruzione successiva a quella che ne aveva provocato linterruzione (quella puntata dal registro program counter ) ready queue cambiamento di contesto context switch Loperazione complessiva di interruzione di un processo, salvataggio del contesto, scelta di un nuovo processo dalla ready queue (coda dei processi pronti), e ripristino del suo contesto, prende il nome di cambiamento di contesto o context switch

29 29 Interruzioni esterne 1 Le interruzioni esterne sono eventi asincroni, cioè non regolati dal clock del processore: le operazioni dellelaboratore si coordinano con il mondo esterno attraverso le periferiche Quando si verifica uninterruzione esterna, il kernel......salva il contesto del processo attivo, che passa dallo stato di esecuzione allo stato di pronto gestore delle interruzioni...richiama un proprio modulo, il gestore delle interruzioni, che esegue le operazioni necessarie per far fronte alla particolare interruzione

30 30 Interruzioni esterne 2 Esempio: Esempio: Se linterruzione segnala la presenza di dati in ingresso da tastiera, a fronte di unoperazione di lettura richiesta dal processo P 1, il gestore delle interruzioni......trasferisce i dati dal registro della periferica in memoria centrale...provvede a modificare lo stato del processo P 1, da waiting a ready Inoltre, al termine della gestione dellinterruzione, lo scheduler seleziona uno dei processi pronti (non necessariamente quello sospeso dallinterruzione appena servita) e lo manda in esecuzione

31 31 Il ciclo di vita dei processi 1 preempted Un processo può anche essere sospeso preempted dal nucleo (running ready), dopo un dato intervallo temporale, per garantire a tutti i processi un uso paritario della CPU: lo scheduler sceglie quale fra i processi pronti mandare in esecuzione Ogni nuovo processo entra nel sistema accedendo alla ready queue (new ready), e va in esecuzione (ready running) quando viene selezionato dallo scheduler Un processo attivo può essere arrestato per un interrupt esterno (running ready)

32 32 Il ciclo di vita dei processi 2 Anche uninterruzione interna può causare larresto di un processo (running waiting) Viceversa, il verificarsi dellevento atteso da un processo fa sì che esso passi dallo stato di attesa allo stato di pronto (waiting ready) aborted Infine, un processo in esecuzione può terminare regolarmente, o essere interrotto e terminato forzatamente dal nucleo (aborted ) per il verificarsi di un errore Ugualmente, lo scheduler seleziona un nuovo processo dalla ready queue

33 33 Scheduling della CPU 1 Oltre ad arrestarsi a causa delle interruzioni, il processo attivo può venire arrestato dautorità dallo scheduler, che ha come obiettivo quello di far eseguire ciascun processo utente entro un tempo approssimativamente proporzionale alla sua complessità, effettuando una ripartizione equa della risorsa CPU Criteri di scheduling: Utilizzo di CPU Utilizzo di CPU la CPU deve essere più attiva possibile Throughput Throughput numero di processi completati nellunità di tempo Tempo di turnaround Tempo di turnaround tempo di esecuzione di un processo Tempo di attesa Tempo di attesa tempo di attesa del processo nella ready queue Tempo di risposta Tempo di risposta tempo che intercorre tra la sottomissione di una richiesta e la prima risposta prodotta { { min max

34 34 Le politiche di scheduling sono raggruppabili in due grandi categorie: Preemptive Preemptive: luso della CPU da parte di un processo può essere interrotto in un qualsiasi momento, e la risorsa concessa ad altro processo Non preemptive Non preemptive: una volta che un processo ha ottenuto luso della CPU, è unico proprietario della risorsa finché non ne decide il rilascio Scheduling della CPU 2

35 35 Scheduling della CPU 3 Round robin Round robin : la politica di scheduling più semplice, che consiste nel garantire la rotazione nellesecuzione dei processi quanto Lo scheduler assegna la CPU ad un processo per un quanto di tempo Quando il quanto di tempo termina, il processo in esecuzione viene interrotto e ritorna nella ready queue Per realizzare lalternanza fra processi, lo scheduler gestisce la ready queue in modo tale da assegnare il processore al primo processo in coda che, quando esaurisce il suo quanto, viene posto alla fine della coda Alla fine della coda si inseriscono anche i processi che passano dallo stato di attesa allo stato di pronto

36 36 Scheduling della CPU 3 Esempio: Esempio: Scheduling Round robin, con quanto di tempo 20 ProcessoTempo di CPU P1P1 53 P2P2 17 P3P3 68 P4P4 24 P1P1 P2P2 P3P3 P4P4 P1P1 P3P3 P4P4 P1P1 P3P3 P3P P3P3 P2P2 P4P4 P1P1

37 37 Scheduling della CPU 4 Il quanto di tempo assegnato a ciascun processo......deve essere molto maggiore del tempo di context switch...deve essere significativamente inferiore al tempo medio di esecuzione dei programmi, altrimenti leffetto della politica di rotazione si annulla Un quanto di tempo minore incrementa il numero di context switch

38 38 Scheduling della CPU 5 Utilizzando la politica Round robin, il tempo di esecuzione di ciascun programma diviene approssimativamente proporzionale alla complessità in tempo del programma stesso ed al numero di operazioni di ingresso/uscita throughput Inoltre, frazionare lesecuzione dei processi ha leffetto di favorire il completamento rapido dei più brevi, con conseguente massimizzazione del numero di processi terminati nellunità di tempo: aumento del throughput del sistema

39 39 Scheduling della CPU 6 Possono essere utilizzate politiche di scheduling più complesse: per esempio, se i processi hanno differenti priorità, è possibile associare a ciascun livello di priorità una diversa coda di processi pronti, per prelevare il primo processo dalla coda (non vuota) a priorità più alta

40 40 Scheduling della CPU 7 Esempio: Esempio: In un sistema che comporta problemi di sicurezza, alcuni eventi (come la segnalazione di guasti ai motori di un aereo) sono molto più importanti di altri (come la segnalazione di difetti al sistema di intrattenimento) batch Nella maggior parte delle applicazioni di elaborazione dati viene attribuita una priorità bassa ai cosiddetti processi batch, che non necessitano interazione con lutente Problema:Starvation Problema: Starvation (blocco indefinito), i processi a bassa priorità potrebbero non venir mai eseguiti Soluzione:Aging Soluzione: Aging (invecchiamento), aumento graduale della priorità dei processi che si trovano in attesa nel sistema da lungo tempo

41 41 Sincronizzazione dei processi 1 t A B C T Tempo di utilizzo della CPU Tempo di attesa di eventi esterni sincronizzarsi I processi devono sincronizzarsi, devono cioè coordinare le loro attività esecuzione sequenziale La modalità più semplice di coordinamento consiste nellesecuzione sequenziale : un processo termina invocando lattivazione di un nuovo processo

42 42 Sincronizzazione dei processi 2 competere cooperare Tecniche di sincronizzazione più complesse nascono dallesigenza dei processi di competere per alcune risorse, o di cooperare fra loro Esempio: Esempio: Un processo che richiede un servizio di I/O può essere interrotto e la CPU passata a un altro programma T multi-tasking t A B C T mono-tasking Tempo di utilizzo della CPU Tempo di attesa di eventi esterni

43 43 Sincronizzazione dei processi 3 competizione risorsa critica Un esempio di competizione si verifica quando due processi vogliono accedere simultaneamente ad una risorsa, detta risorsa critica, sulla quale può operare un solo processo alla volta; nel caso di richieste contemporanee, uno solo dei processi richiedenti accede alla risorsa critica, mentre laltro deve attendere il rilascio della risorsa per potervi accedere a sua volta coordinazione problema del produttore/consumatore Un esempio di coordinazione si ha quando due processi sono tali per cui ciascuno di essi ha bisogno dellaltro per poter evolvere; nel classico problema del produttore/consumatore, il primo processo produce dati (per esempio, acquisendoli da una periferica) mentre il secondo li utilizza (per esempio, svolgendo su di essi delle elaborazioni)

44 44 Sincronizzazione dei processi 4 La sincronizzazione dei processi, necessaria sia nel caso di competizione sia nel caso di cooperazione, avviene tramite due meccanismi fondamentali... semafori...luso di variabili condivise (dette semafori), per laccesso a parti critiche di codice messaggi...e la comunicazione esplicita fra processi (mediante scambio di messaggi)Esempio: Laccesso concorrente a dati condivisi può causare incoerenza nei dati Per garantire la coerenza dei dati occorrono meccanismi che assicurano lesecuzione ordinata dei processi cooperanti

45 45 Sincronizzazione dei processi 5 Problema della sezione critica: sezione critica n processi competono per utilizzare dati condivisi; ciascun processo è costituito da un segmento di codice, detto sezione critica, in cui accede ai dati e li modificaIpotesi: Assicurarsi che, quando un processo esegue la sua sezione critica, a nessun altro processo sia concesso eseguire la propria mutuamente esclusiva Lesecuzione di sezioni critiche da parte di processi cooperanti è mutuamente esclusiva nel tempo Soluzione: Soluzione: progettare un protocollo di cooperazione fra processi entry section Ogni processo deve chiedere il permesso di accesso alla sezione critica, tramite una entry section (il semaforo diviene rosso ad opera del processo che trova il verde e si accinge ad accedere ai dati) exit section La sezione critica è seguita da una exit section (il semaforo rosso diviene verde ad opera del processo che ha terminato di utilizzare i dati condivisi); il rimanente codice è non critico

46 46 La gestione della memoria

47 47 Gestione della memoria centrale – 1 La memoria centrale… …è un array di byte indirizzabili singolarmente …è un deposito di dati facilmente accessibile e condiviso tra la CPU ed i dispositivi di I/O Il SO è responsabile delle seguenti attività riguardanti la gestione della memoria principale: Tenere traccia di quali parti della memoria sono usate e da chi Decidere quali processi caricare quando diventa disponibile spazio in memoria Allocare e deallocare lo spazio di memoria quando necessario

48 48 Gestione della memoria centrale 2 Premessa indispensabile per la gestione concorrente di molti processi è infatti la presenza di molti programmi in memoria centrale La memoria centrale assume un ruolo simile allunità di elaborazione: è una risorsa unica, talvolta scarsa, da suddividere fra i vari processi rilocarli Per allocare i programmi in memoria centrale è necessario rilocarli: Rilocare Rilocare significa trasformare gli indirizzi logici, presenti nei programmi, in indirizzi fisici, corrispondenti alle locazioni di memoria dove il codice eseguibile viene effettivamente caricato Daltra parte, luso di indirizzi logici nei programmi è essenziale per consentirne il caricamento in differenti porzioni di memoria Problema Problema: come allocare lo spazio in maniera ottimale

49 49 Programma A Programma B Programma C Memoria 0000x 1° soluzione: Allocazione lineare

50 50 Programma A Programma E Memoria 0000x Programma D 1° soluzione: Allocazione lineare Programma C

51 51 Programma A Programma E Memoria 0000x Programma D 1° soluzione: Allocazione lineare Programma C Programma F PROBLEMA !!!! FRAMMENTAZIONE

52 52 Gestione della memoria centrale 3 La memoria centrale è considerata dal gestore della memoria come partizionata in pagine, ciascuna delle quali è unaria di memoria contigua, di dimensione fissata Anche i programmi vengono partizionati in pagine ed allocati in un numero intero di pagine, non necessariamente contigue paginazione Un importante meccanismo di suddivisione della memoria centrale, e delle entità in essa memorizzate, è quello della paginazione:

53 53 Programma D Memoria 0000x Programma A Programma B Soluzione: Paginazione

54 54 Soluzione: Paginazione Memoria 0000x Programma A Programma D Programma E Programma F

55 55 Gestione della memoria centrale 4 Un programma può essere logicamente frazionato in parti che svolgono funzioni distinte Il gestore della memoria può utilizzare il partizionamento logico del programma per caricare segmenti diversi in maniera indipendente Nota: Nota: Mentre le pagine hanno lunghezza fissa, i segmenti, essendo semanticamente significativi, hanno lunghezza variabile Spazio utente Spazio fisico di memoria segmentazione Un altro meccanismo ampiamente utilizzato per il partizionamento della memoria è detto segmentazione:

56 56 Gestione della memoria centrale 5 Segmentazione e paginazione non sono mutuamente esclusive: in molti SO vengono applicate contemporaneamente memoria virtuale In entrambi i casi, il gestore della memoria offre al programma applicativo la visione di una memoria virtuale, che può essere maggiore di quella fisica Si possono gestire programmi caricandone effettivamente in memoria solo le pagine (o i segmenti) relative al codice attualmente in esecuzione Le pagine (o i segmenti) che non sono al momento caricate in memoria rimangono disponibili sulla memoria di massa, allinterno di opportuni file

57 57 Programma D Memoria 0000x Programma A-1 Programma B-1 Programma A-2 Programma A-3 Programma B-2 Swap La memoria virtuale

58 58 La memoria virtuale Programma D Memoria 0000x Programma A-2 Programma B-1 Programma A-1 Programma A-3 Programma B-2 Swap

59 59 Gestione della memoria centrale 6 Un sistema informatico può avere una memoria virtuale di v gigabyte ed una memoria fisica di p gigabyte, con v > p La memoria virtuale garantisce la condivisione efficiente della memoria centrale fra più processi, e consente lesecuzione di quei programmi la cui dimensione s è maggiore della dimensione p della memoria fisica Naturalmente, la dimensione s del programma non può essere superiore a quella della memoria virtuale realizzata dal gestore

60 60 Gestione della memoria centrale 7 La gestione di memoria e processi deve essere coordinata: quando un processo viene eseguito, il codice relativo al corrispondente programma deve essere almeno parzialmente residente in memoria Più precisamente: le pagine (o i segmenti) attualmente in esecuzione o che contengono i dati attualmente indirizzati/elaborati devono risiedere in memoria centrale Se una pagina o un segmento necessario al processo non è presente in memoria centrale, il processo deve essere sospeso per consentire il caricamento, da parte del gestore della memoria, della pagina o del segmento di codice Il processo corrispondente passa da running a waiting; entrerà nuovamente nella ready queue quando saranno completate le operazioni necessarie a portare la pagina o il segmento in memoria

61 61 Memoria di modo S ed U 1 Ai programmi che realizzano le funzioni proprie del SO, ed alle strutture dati da esso usate, devono essere assegnate opportune zone di memoria Inoltre, i processi di sistema possono usare lintero set di istruzioni del calcolatore (talune non disponibili per i programmi utente), possono venire allocati in memoria in maniera ottimale, e devono essere protetti da errori causati da altri programmi memoria di modo S memoria di modo U La memoria viene suddivisa in memoria di modo S (supervisore) e memoria di modo U (utente) Nella porzione di modo S vengono caricati i processi del SO e vengono create le strutture dati da esso utilizzate Nella porzione di modo U vengono caricati i processi utente

62 62 Memoria di modo S ed U 2 attivo in modo utentemodo U attivo in modo supervisoremodo S Se il processore sta eseguendo un processo utente, lo si dice attivo in modo utente (modo U), se esegue un processo di sistema, cioè se è attivo il nucleo, lo si dice attivo in modo supervisore (modo S) Quando il processore è attivo in modo S può accedere a tutta la memoria (di modo U e di modo S) ed ha a disposizione un insieme più ricco di istruzioni Il processore attivo in modo U può accedere solo alle zone di memoria di modo U, ed in particolare a quelle riservate al solo processo in esecuzione La suddivione della memoria protegge il codice e le strutture dati che il SO usa per garantire una gestione delle risorse corretta ed efficiente Le istruzioni di codice utente non possono accedere a zone di memoria di modo S se non richiedendo lintervento del SO

63 63 La gestione delle periferiche

64 64 La gestione dei dispositivi di I/O La gestione dellI/O richiede: device driver Uninterfaccia comune per la gestione dei device driver Un insieme di driver per dispositivi hardware specifici Un sistema di gestione di buffer per il caching delle informazioni gestore dei dispositivi di I/O Il gestore dei dispositivi di I/O è il modulo del SO incaricato di assegnare i dispositivi ai task che ne fanno richiesta e di controllare i dispositivi stessi Da esso dipende la qualità e il tipo di periferiche riconosciute dal sistema

65 65 Driver di dispositivo I driver sono moduli software cui è affidato il compito di comunicare dati da e verso le periferiche Permettono laccesso alle periferiche tramite primitive di alto livello I device driver implementano le seguenti funzioni: Rendono trasparenti le caratteristiche fisiche tipiche di ogni dispositivo Gestiscono la comunicazione dei segnali verso i dispositivi Gestiscono i conflitti, nel caso in cui due o più task vogliano accedere contemporaneamente allo stesso dispositivo I driver vengono scritti specificamente per ciascun dispositivo e sono normalmente forniti dal costruttore

66 66 Il file system

67 67 Il file system 1 File File: Spazio di indirizzi logici contigui; è un insieme di informazioni correlate e registrate nella memoria secondaria, a cui è stato assegnato un nome Dal punto di vista dellutente......è la più piccola porzione di memoria secondaria indirizzabile logicamente e......i dati possono essere scritti nella memoria secondaria soltanto allinterno di un file Dal punto di vista del SO......i file vengono mappati su dispositivi fisici di memorizzazione non volatili

68 68 Il file system 2 Attributi del file Attributi del file: Nome Nome: identificativo del file Locazione Locazione: puntatore al dispositivo ed alla posizione del file sul dispositivo Dimensione Dimensione: dimensione attuale del file Protezione Protezione: parametri di controllo per laccesso in lettura, scrittura ed esecuzione del file Ora data identificativo dellutente Ora, data, identificativo dellutente: dati necessari a protezione e sicurezza del sistema, e per il controllo duso

69 69 Il file system 3 file system Il file system è responsabile della gestione dei file in memoria di massa struttura i dati in file......li organizza in directory (o cartelle) realizza inoltre un insieme di funzioni di alto livello per operare su file e directory Il file system garantisce una gestione dei file indipendente dalle caratteristiche fisiche dei dispositivi che costituiscono la memoria di massa: astrazione utile sia per lutente sia per i programmi

70 70 La gestione dei file 1 directory Le infomazioni sui file sono conservate nella struttura di directory, che risiede sulla memoria secondaria directory albero Le directory hanno (nel caso più semplice) organizzazione ad albero; ciascuna directory può contenere file e sottodirectory Directory File Albero delle directory

71 71 La gestione dei file 2 pathname Ciascun file viene identificato da un pathname che include lintero cammino, dalla radice dellalbero al file stesso Tutti i file e sottodirectory presenti nella stessa directory devono avere nomi distinti ciascun pathname è unico Il file system di WINDOWS

72 72 La gestione dei file 3 Un utente che interagisce con il file system ha un proprio contesto, cioè una specifica posizione nel file system, corrispondente ad un nodo nellalbero Per default, allatto del collegamento al sistema, il contesto dellutente è costituito dalla sua home directory Il contesto può essere variato, muovendosi ovunque nellalbero delle directory (almeno in quelle accessibili allutente)

73 73 La gestione dei file 4 Funzioni disponibili agli utenti del file system: Creazione di file (operazione normalmente eseguita da software applicativo, come editor e word processor) e directory Comandi per stabilire i parametri di protezione Lista del contenuto di una directory Comandi per cambiare il contesto Copia, ridenominazione e visualizzazione di file Cancellazione di file e rimozione di directory


Scaricare ppt "1 Sommario Il sistema operativo Introduzione Scopo del sistema operativo Funzioni del sistema operativo Gestione dei processi Gestione della memoria centrale."

Presentazioni simili


Annunci Google