Parte 3 Modulo 4: Gestore del File System (Memoria secondaria) Componenti Interfaccia utente Gestore dell’I/O Gestore dei Processi Gestore del File System Gestore della Memoria Centrale *KERNEL Informatica - A.A. 2009/2010 - Sistemi operativi 3.50 1 Gestore del File System • Il gestore del file system è quel modulo del sistema operativo incaricato di gestire le informazioni memorizzate sui dispositivi di memoria secondaria Æ DISCO e altri dispositivi di memoria di massa • Il gestore del file system deve garantire: – la l correttezza tt – la coerenza – il recupero efficiente delle informazioni memorizzate Informatica - A.A. 2009/2010 - Sistemi operativi 3.51 Gestore del File System • Si occupa di: – Associare un nome di file ad una parte dello spazio del disco – Fornire metodi per accedere ai file – Rendere trasparente la struttura fisica del disco • Insieme di programmi per l’organizzazione – Logica Æ Fornire all’utente una visione logica dei file (che astrae dall dall’organizzazione organizzazione fisica) – Fisica Æ gestire i file nella memoria secondaria (dischi) e ottimizzare l’utilizzo dello spazio disponibile Informatica - A.A. 2009/2010 - Sistemi operativi 3.52 2 Organizzazione logica • L’utente deve poter – organizzare le proprie informazioni in file e insiemi di file – accedere ai dati – identificare ogni file con un nome logico – operare sui file (creare, eliminare, cambiare nome, modificare)) – proteggere i propri file (da accessi non desiderati) Informatica - A.A. 2009/2010 - Sistemi operativi 3.53 Organizzazione fisica • Il Sistema Operativo deve: – tener traccia dei file memorizzati e della loro posizione fisica sui dischi – ottimizzare l’utilizzo dello spazio su disco – gestire le comunicazioni tra la memoria principale e la memoria secondaria (disco) Informatica - A.A. 2009/2010 - Sistemi operativi 3.54 3 Altre funzioni • Nei sistemi multi-utente, il Sistema Operativo deve mettere a disposizione dei meccanismi di protezione in modo tale da consentire agli utenti di proteggere i propri dati dall’accesso da parte di altri utenti non autorizzati Informatica - A.A. 2009/2010 - Sistemi operativi 3.55 File • Unica unità logica di informazione usata dal Sistema Operativo • Fisicamente: – Sequenza di byte che contiene informazioni omogenee – Es., programma, testo, dati simili, … – Byte = 8 bit • Tutti i dati vengono suddivisi in file • I file vengono memorizzati nelle memorie di massa Informatica - A.A. 2009/2010 - Sistemi operativi 3.56 4 File • Un insieme di informazioni (dati, documenti) memorizzate su supporti di memoria secondaria sotto forma di una sequenza di bit bit, byte byte, record logici, record fisici Disco file Informatica - A.A. 2009/2010 - Sistemi operativi 3.57 Tipo di file • Ogni file è composto tipicamente da: – Nome: stringa arbitraria decisa dall’utente – Estensione: E t i i i insieme (fi (fissato) t ) di caratteri tt i che h definiscono il TIPO di un file Esempi file.doc file txt file.txt file.jpg file.pdf file.ppt Informatica - A.A. 2009/2010 - Sistemi operativi file.zip file gif file.gif file.xls file.exe file.mp3 file.wav file mpeg file.mpeg … 3.58 5 Operazioni su file • • • • • • • • • • • Creazione Apertura Chi Chiusura Cancellazione Copia Rinomina Visualizzazione Lettura Scrittura Modifica … Informatica - A.A. 2009/2010 - Sistemi operativi 3.59 Operazioni sui file • Nuovo: crea una nuova istanza di file • Apri: localizza un file sul disco e lo apre • Chiudi: termina l’elaborazione dell’istanza corrente dell’informazione e chiude la finestra, ma tiene il programma aperto per elaborare altre istanze • Salva: scrive l’istanza corrente sul disco, usando lo stesso nome e la stessa posizione • Salva come: scrive l’istanza corrente sul disco con un nuovo nome e/o una posizione differente Informatica - A.A. 2009/2010 - Sistemi operativi 3.60 6 Nuova istanza di file • Il comando Nuovo crea una istanza “vuota” • Cos’è Cos è una “informazione informazione vuota”? vuota ? – l’informazione è suddivisa in tipi basati su caratteristiche. Es., ♦ le fotografie digitali sono un tipo di informazione; la lunghezza e la larghezza sono due delle sue proprietà ♦ i documenti di testo sono un tipo di informazione; il numero di caratteri è una delle sue proprietà – Un’istanza vuota è una struttura vuota, senza alcuna caratteristica se non per quanto riguarda il formato Istanza di una rubrica Informatica - A.A. 2009/2010 - Sistemi operativi 3.61 Organizzazione di più file: directory • Quasi tutti i sistemi operativi utilizzano un’organizzazione un organizzazione gerarchica del File System • L’elemento utilizzato per raggruppare più file insieme è la directory • L’insieme gerarchico delle directory e dei file può essere rappresentato attraverso una rappresentazione grafica: albero delle directory Informatica - A.A. 2009/2010 - Sistemi operativi 3.62 7 Organizzazione dei file • Possibilità di organizzare i file in Directory (dette anche Cartelle), ovvero come insiemi di: – file – altre directory • Il tutto arricchito da un elenco dei contenuti • Organizzazione gerarchica: logica o fisica? Organizzazione solo logica: non c’è alcuna relazione con la posizione fisica dei file di una directory (cartella) sul disco Informatica - A.A. 2009/2010 - Sistemi operativi 3.63 Organizzazione ad albero • • • • • • • • • Albero rovesciato (come genealogico) Nodi e collegamenti padre-figlio tra nodi Nodo: file o directory directory Nodi divisi per livelli file Collegamenti tra nodi di livelli vicini: – nodo sopra = padre – nodo sotto = figlio Ogni nodo ha un solo padre Padre più in alto = radice I nodi file non hanno figli Cammino assoluto o relativo (per file) Informatica - A.A. 2009/2010 - Sistemi operativi 3.64 8 Albero delle Directory Directory File Informatica - A.A. 2009/2010 - Sistemi operativi 3.65 Operazioni su directory • Organizzazione di file in strutture chiamate cartelle (directory) • Creazione directory • Eliminazione directory • Elenco file di una directory • Ricerca • di un p particolare file • di tutti i file che soddisfano una particolare relazione • Operazioni più complesse: backup, … Informatica - A.A. 2009/2010 - Sistemi operativi 3.66 9 Esempio: Albero delle directory in Unix • La directory principale è "/" • Lo stesso carattere / viene usato per separare i nomi delle directory • Ad esempio /usr/bin/ indica la directory bin contenuta nella directory usr contenuta nella root (/) Informatica - A.A. 2009/2010 - Sistemi operativi 3.67 Path assoluto e relativo • Un path assoluto avrà un simile aspetto: /usr/local/bin – sarà funzionante in qualsiasi directory in cui ci si trova • Un path relativo ha aspetto simile a local/bin – indica directory diverse a seconda della directory in cui ci si trova • In questo caso local/bin coincide con /usr/local/bin solo se ci si trova in /usr/ Informatica - A.A. 2009/2010 - Sistemi operativi 3.68 10 Tipi di file system esistenti • Nel corso della storia informatica è stata ideata una miriade di file system • I sistemi operativi moderni sono spesso in grado di accedere a diversi file system, spesso semplicemente installando un apposito modulo o driver • File system più diffusi: – Fat – NTFS – Ext3 Informatica - A.A. 2009/2010 - Sistemi operativi 3.69 FAT • FAT - File Allocation Table • E’ il file system primario per i sistemi operativi Microsoft Windows fino alla versione Windows ME • Windows NT e le successive versioni hanno introdotto l'NTFS e mantenuto la compatibilità con la FAT • File system piuttosto semplice da gestire Æ adatto per dispositivi come memory card Informatica - A.A. 2009/2010 - Sistemi operativi 3.70 11 NTFS • NTFS - New Technology File System • File system dei sistemi operativi basati su kernel NT • Notevole passo avanti rispetto a FAT • Principali caratteristiche: – Affidabilità - sistema transazionale (o "Journaled”); questo vuol dire che se un'operazione è interrotta a metà tà ((ad d esempio i per un bl blackout) k t) viene i persa solo l quell'operazione ma non è compromessa l'integrità del file system il quale resta comunque leggibile dal computer. Informatica - A.A. 2009/2010 - Sistemi operativi 3.71 NTFS – Permessi e Controllo d'Accesso - a ciascun file o cartella è possibile assegnare dei diritti di accesso (lettura scrittura (lettura, scrittura, modifica modifica, cancellazione e altri) – Nomi lunghi e Unicode - i nomi dei file e delle cartelle possono essere lunghi fino a 255 caratteri e possono contenere caratteri di tutte le lingue del mondo grazie alla codifica Unicode – Dimensioni e Flessibilità – La dimensione e il massimo numero di file sono praticamente illimitati; la dimensione massima di un singolo file è di 16 Terabytes, contro i 4 GigaBytes di FAT Informatica - A.A. 2009/2010 - Sistemi operativi 3.72 12 Ext3 • Extended File System 3 - diffuso su sistemi GNU/Linux • introduce introd ce il journaling jo rnaling del file s system. stem • Il journaling, presente anche nelle ultime versioni di NTFS, è una caratteristica che permette di evitare che errori e malfunzionamenti hardware (o anche semplici spegnimenti del PC senza p ) possano p chiudere il sistema operativo) danneggiare i dati scritti sull'unità, creando un "diario" (journal) che elenca le modifiche da effettuare sul filesystem Informatica - A.A. 2009/2010 - Sistemi operativi 3.73 Partizioni di un disco • Un singolo hard disk può essere diviso in diverse partizioni, ciascuna delle quali funziona come se fosse un disco separato • L'idea è che se avete un hard disk e si vogliono avere due sistemi operativi, si può suddividere il disco in due partizioni – ciascun sistema operativo userà la sua partizione ti i come vuole l e non ttoccherà h à quella ll dell'altro – Senza le partizioni ci sarebbe voluto un disco per ciascun sistema operativo Informatica - A.A. 2009/2010 - Sistemi operativi 3.74 13 Master Boot Record • Le informazioni sul partizionamento di un hard disk si trovano nel suo primo settore (cioè, il primo settore della prima traccia della prima superficie del disco) • Questo settore si chiama master boot record (MBR) del disco • MBR è il settore che il BIOS legge ed avvia quando d la l macchina hi viene i accesa Informatica - A.A. 2009/2010 - Sistemi operativi 3.75 Master Boot Record • Il master boot record contiene un piccolo programma che legge la tabella delle partizioni controlla quale partizione è attiva partizioni, (cioè quale è contrassegnata come avviabile) e legge il primo settore di quella partizione, il boot sector (settore di avvio) della partizione • Anche l'MBR è un settore di avvio, ma ha uno status speciale e quindi un nome speciale • Il boot sector contiene un altro programmino che legge la prima parte del sistema operativo contenuto in quella partizione (sempre che sia avviabile) e lo avvia Informatica - A.A. 2009/2010 - Sistemi operativi 3.76 14 Parte 3 Modulo 5: Gestore dei processi Componenti Interfaccia utente Gestore dell’I/O Gestore dei Processi Gestore del File System Gestore della Memoria Centrale *KERNEL Informatica - A.A. 2009/2010 - Sistemi operativi 3.78 15 Gestore dei processi • Un sistema operativo con supporto per il multitasking (multiprocessualità) permette di eseguire più programmi contemporaneamente • SO in time sharing • Permette la condivisione della CPU tra più processi • Il tempo di esecuzione del processore è condiviso tra più processi / utenti • Ogni processo in esecuzione ha a disposizione dei quanti di tempo della CPU Informatica - A.A. 2009/2010 - Sistemi operativi 3.79 Time sharing • Se viene chiesto al sistema di eseguire contemporaneamente due processi A e B, la CPU attuerà un meccanismo di time-sharing time sharing Æ eseguirà per qualche istante il processo A, poi per qualche istante il processo B, poi tornerà ad eseguire il processo A e così via • Il passaggio dal processo A al processo B e viceversa viene definito cambio di contesto (context switch) Informatica - A.A. 2009/2010 - Sistemi operativi 3.80 16 Scheduler • Le decisioni riguardanti l'esecuzione di un cambio di contesto tra due programmi vengono intraprese i t da d un componente t del d l sistema operativo detto scheduler • Lo scheduler controlla lo scheduling, ossia la ripartizione del tempo di CPU tra tutti i processi concorrenti (i processi attivi nello stesso momento sul calcolatore che si contendono l’uso della CPU) Informatica - A.A. 2009/2010 - Sistemi operativi 3.81 Scheduling • Lo scheduling è un'operazione molto importante per il corretto ed efficiente funzionamento del calcolatore • Consente di eseguire più programmi concorrentemente • Consente di migliorare l'utilizzo del processore • Possibile uso di preemption (o pre-rilascio): operazione i iin cuii un processo viene i temporaneamente interrotto, con l'intenzione di ripristinarlo in un secondo momento, per dare spazio ad un altro processo a priorità più alta Informatica - A.A. 2009/2010 - Sistemi operativi 3.82 17 Algoritmi di scheduling • Esistono vari algoritmi di scheduling che tengono conto di varie esigenze e che possono essere più indicati in alcuni contesti piuttosto che in altri • La scelta dell'algoritmo da usare dipende da cinque principali criteri: 1. Utilizzo del processore: la CPU deve essere attiva il più possibile (ovvero devono essere ridotti al possibili tempi p morti)) minimo i p 2. Produttività (throughput): il numero di processi completati in una determinata quantità di tempo Informatica - A.A. 2009/2010 - Sistemi operativi 3.83 Algoritmi di scheduling 3. Tempo di completamento: il tempo che intercorre tra la sottomissione di un processo ed il completamento della sua esecuzione 4. Tempo d'attesa: il tempo in cui un processo pronto per l'esecuzione rimane in attesa della CPU (wait time) 5. Tempo di risposta: il tempo che trascorre tra l sottomissione la tt i i del d l processo e l'ottenimento l' tt i t della prima risposta Informatica - A.A. 2009/2010 - Sistemi operativi 3.84 18 Criteri di ottimizzazione CRITERI da ottimizzare: • Massimizzare l’utilizzo del processore • Massimizzare la produttività • Minimizzare il tempo di completamento • Minimizzare il tempo di attesa • Minimizzare il tempo di risposta • NOTA: generalmente si tende ad ottimizzare i valori medi Informatica - A.A. 2009/2010 - Sistemi operativi 3.85 Round Robin • L'algoritmo di scheduling RR (Round Robin) esegue i processi nell'ordine d'arrivo, ma esegue la preemption del processo in esecuzione, ponendolo alla fine della coda dei processi in attesa, qualora l'esecuzione duri più del quanto di tempo stabilito, e facendo proseguire l'esecuzione al successivo processo in attesa • Assegna ‘a turno’ un quanto di tempo di CPU ai processi in attesa Informatica - A.A. 2009/2010 - Sistemi operativi 3.86 19 Esempio • Ipotesi: i seguenti processi siano in coda con relativa durata in millisecondi, e quanto di tempo stabilito di 20 ms: p1 30 → p2 15 → p3 60 → p4 45 • p1 (20 ms, ne rimangono 10) → p2 (termina la propria esecuzione perché dura meno di 20 ms) → p3 (20 ms, ne rimangono 40) → p4 (20 ms, ne rimangono i 25) → p1 1 (t (termina i perché hé necessitava di meno di 20 ms) → p3 (20 ms, ne rimangono 20) → p4 (20 ms, ne rimangono 5) → p3 (termina perché necessitava di esattamente 20 ms) → p4 (termina) Informatica - A.A. 2009/2010 - Sistemi operativi 3.87 Criterio di ottimizzazione • Per valutare l’algoritmo di scheduling facciamo riferimento al tempo medio di attesa • Tempo di attesa = istante finale di esecuzione – durata del processo • p1 termina all’istante 85, p2 a 35, p3 a 145, p4 a 150 • Tempo medio di attesa: [(85-30)+(35-15)+(145-60)+(150-45)]/4 = 66,25 ms Informatica - A.A. 2009/2010 - Sistemi operativi 3.88 20 Shortest Next Process First • SNPF prevede che venga eseguito sempre il processo con il tempo di esecuzione più breve tra quelli in attesa • Esempio: siano sottomessi contemporaneamente i seguenti processi, con la rispettiva durata di esecuzione in ms: p1 30 → p2 15 → p3 60 → p4 45 • I processi vengono eseguiti nel seguente ordine: p2 → p1 → p4 → p3 • p2 termina all’istante 15, p1 a 45, p4 a 90, p3 a 150 [(15-15)+(45-30)+(90-45)+(150-60)]/4 = 37,5 ms Informatica - A.A. 2009/2010 - Sistemi operativi 3.89 SNPF • Si può dimostrare che questo algoritmo è ottimale, in quanto consente di ottenere sempre il valore più basso di tempo d'attesa medio • Sfortunatamente non è possibile applicarlo, in quanto non è possibile conoscere anticipatamente quanto durerà l'esecuzione del processo • Potrebbe essere possibile predirlo Informatica - A.A. 2009/2010 - Sistemi operativi 3.90 21 Scheduling con priorità • Una priorità (numero intero) è assegnata ad ogni processo • La CPU è assegnata al processo con più alta priorità (es: il più piccolo intero = la più alta priorità) – Preemptive – Non preemptive • Problema: Starvation – i processi a più bassa priorità potrebbero non essere mai eseguiti • Soluzione: Aging – al trascorrere del tempo di attesa si incrementa la priorità di un processo che attende Informatica - A.A. 2009/2010 - Sistemi operativi 3.91 Scheduling per multiprocessori • Lo scheduling nei sistemi multiprocessore è più complesso • Si possono avere processori omogenei (tutti uguali) o disomogenei (processori diversi) • Problema del bilanciamento del carico (load balancing) Informatica - A.A. 2009/2010 - Sistemi operativi 3.92 22 Parte 3 Modulo 6: Gestore della memoria centrale Gestione della memoria centrale • La gestione concorrente di molti processi comporta la presenza di molti programmi in memoria centrale Æ la memoria centrale diventa una risorsa unica, in generale scarsa, da suddividere tra i vari programmi • Il gestore della memoria applica tecniche per gestire ti il conflitto flitt ttra di dimensione i della d ll memoria fisica e spazio complessivamente richiesto dai programmi che devono essere gestiti in modo concorrente e dai relativi dati Informatica - A.A. 2009/2010 - Sistemi operativi 3.94 23 Gestione della memoria centrale • Strategia seguita: – Mantenere in memoria soltanto una porzione dei programmi p g e dei dati ((la p porzione necessaria in q quel momento) – Alternare le porzioni dei programmi mantenute in memoria: i programmi (o le loro porzioni) possono essere ‘caricati’ e ‘scaricati’ dalla memoria centrale durante l’esecuzione a seconda della necessità • Due spazi di indirizzamento: – Fisico: lo spazio di memoria centrale in cui risiede effettivamente il codice – Logico: intervallo di celle contigue che partono dall’indirizzo 0 in cui si immagina siano state collocate le istruzioni Informatica - A.A. 2009/2010 - Sistemi operativi 3.95 Swapping • Un modo tipico di ovviare a questo problema consiste nell’abilitare il s.o. a trasferire il contenuto di un’area della memoria centrale in un’area della memoria di massa, detta “area di swap” • Lo swapping viene applicato trasferendo su disco le informazioni relative ai processi in stato di “attesa” attesa e “pronti pronti per ll’esecuzione” esecuzione – Ok per quelli in attesa – Quasi ok per quelli pronti Informatica - A.A. 2009/2010 - Sistemi operativi 3.96 24 Paginazione • Frammentazione della memoria in blocchi di dimensione prefissata detti pagine • Lo spazio di indirizzamento logico del programma è suddiviso in sezioni, di dimensioni fisse e uguali tra loro, dette pagine logiche • Lo spazio fisico di indirizzamento presente nel calcolatore l l t è anch’esso h’ diviso di i in i pagine i fisiche, della stessa dimensione delle pagine logiche Informatica - A.A. 2009/2010 - Sistemi operativi 3.97 Vantaggi • Grazie alla paginazione è possibile: – Estendere la dimensione di un processo utilizzando spazi di memoria non necessariamente contigui – Tenere in memoria solo la porzione ridotta del programma che si sta utilizzando Informatica - A.A. 2009/2010 - Sistemi operativi 3.98 25 Idea di base della paginazione • Si basa sul concetto di località spaziotemporale – Non vale la pena di caricare in memoria centrale tutto il codice di un programma perché l’esecuzione in un dato istante si limita ad una porzione del codice stesso, che spesso viene rieseguita – Principio Pi i i d dell 10 10-90: 90 il 10% d dell codice di spesso copre il 90% dell’esecuzione Informatica - A.A. 2009/2010 - Sistemi operativi 3.99 Meccanismo • Vengono caricate in alcune pagine fisiche della memoria centrale solo alcune pagine logiche del programma in esecuzione • Le pagine logiche necessarie vengono caricate di volta in volta in base all’esigenza • Quante pagine caricare e quante/quali pagine sostituire dipende dalla politica adottata Informatica - A.A. 2009/2010 - Sistemi operativi 3.100 26 Memoria virtuale • Sia nel caso della paginazione, sia in quello della segmentazione, il gestore della memoria offre al programma applicativo la visione di una memoria virtuale • La memoria virtuale v può essere maggiore di quella fisica p: è sufficiente allocare più pagine o segmenti di quelli che possono stare contemporaneamente in p (quelli non caricati in memoria centrale rimangono disponibili in memoria di massa dove i programmi con i relativi dati sono organizzati in file) Informatica - A.A. 2009/2010 - Sistemi operativi 3.101 Conseguenza • I programmi con dimensione s>p (spazio fisico di memoria centrale) possono essere eseguiti se s<v (spazio di memoria virtuale) • In questo caso gli indirizzi di s sono riferiti a v quindi: – il gestore della memoria converte gli indirizzi Informatica - A.A. 2009/2010 - Sistemi operativi 3.102 27 Processi e memoria • La gestione della memoria deve essere coordinata con la gestione dei processi: – le pagine di programma che sono attualmente in esecuzione o che contengono dati attualmente indirizzati devono risiedere in memoria centrale – se una pagina necessaria ad un processo in esecuzione non si trovano in memoria centrale (page fault), il processo viene sospeso e passa in stato di attesa – dopo l’operazione l operazione di input da memoria di massa della pagina il processo torna ad essere pronto Informatica - A.A. 2009/2010 - Sistemi operativi 3.103 28