Sistema Operativo 06 novembre 2006 Sistema Operativo (SO): punto di vista funzionale Componente sw: insieme di programmi che cooperano per Gestire in modo efficace ed efficiente l elaboratore e le sue periferiche Creare un ambiente virtuale per facilitare l interazione uomo-macchina Il SO opera sull hw isolando gli utenti dai dettagli dell architettura hw e fornendo loro un insieme di funzionalità di alto livello (linguaggio di comandi) per interagire con la macchina Alcuni esempi di SO: DOS, MS-Windows, Mac System X, UNIX, LINUX 1
Sistema Operativo (SO): Punto di vista strutturale Struttura a cipolla : insieme di strati funzionali in cui ogni livello Fornisce funzionalità e servizi diversi Maschera le caratteristiche della macchina hw Si basa sulle funzioni e servizi offerti dagli altri livelli Kernel Gestione delle risorse Interfaccia comandi Sistema Operativo: tipologie Monoutente (Personal Computer) vs Multiutente (più utenti possono operare contemporaneamente sul medesimo elaboratore) In ambiente multiutente, il SO maschera la presenza di altri utenti Gestione risorse in modo condiviso tra i diversi utenti Gestione interazione di diversi utenti Monoprogrammato (un solo programma) vs Multiprogrammato (più programmi possono essere eseguiti contemporaneamente ) In ambiente multiprogrammato, il SO maschera la presenza di altri processi (programmi) in esecuzione Gestione risorse in modo condiviso tra i diversi processi Gestione interazione di diversi processi 2
Sistema Operativo: principali servizi offerti Accensione e creazione ambiente virtuale Gestione del processore e dei processi Gestione della memoria Principale Virtuale Secondaria (File System) Gestione delle periferiche di I/O Gestione dell interazione con l utente Avviamento dell elaboratore: fase di bootstrap Caricamento di una parte del SO in memoria principale Programmi per gestione processi Programmi per gestione memoria Programmi per gestione periferiche Identificazione delle risorse hw e inizializzazione dei relativi programmi di gestione Esecuzione programmi antivirus e di altre azioni pianificate... 3
Gestione dei Processi Processo = programma in esecuzione P.S. ad ogni programma in esecuzione possono corrispondere più processi Oggetto dinamico (mentre un programma è un oggetto statico) Esecuzione di un processo: il programma (una sua parte) È prelevato dalla memoria secondaria Portato in memoria centrale Attivato Evoluzione dei processi diagramma stati/transizioni Fine esecuzione In esecuzione Interruzione interna Interruzione esterna: generata dal SO In attesa Pronto Inizio esecuzione Evento esterno atteso 4
Interruzioni Interna: generata dal processo stesso Per una buona logica di gestione dei processi (es. se il processo è in attesa di un input dall utente o da un altro programma è inutile che tenga occupata l unità di elaborazione) Il processo passa dallo stato In Esecuzione allo stato In Attesa Esterna: generata da un processo diverso dal processo in esecuzione (es. dal SO) Per politiche di gestione dei processi (es. Round-Robin) Il processo passa dallo stato da In Esecuzione a Pronto Gestione delle periferiche (es. l utente ha inserito un input da tastiera...) Il processo passa dallo stato da In Attesa a Pronto Fine esecuzione In esecuzione Interruzione interna Interruzione esterna In attesa Pronto Inizio esecuzione Evento esterno atteso Modalità di esecuzione in ambienti multi-tasking (1) Modalità batch: un programma in esecuzione non viene interrotto; il processo i-esimo parte solo quando si è conclusa l elaborazione del processo (i-1)-esimo Per l esecuzione di programmi caratterizzati da lunghe elaborazioni non interattive (es. calcoli matematici) Modalità real-time: il SO può interrompere l esecuzione di un processo in corso Per programmi che possono necessitare un esecuzione immediata (es. sistemi di controllo di volo, impianti di sicurezza) Modalità time-sharing: condivisione del tempo di esecuzione (del processore) tramite l alternanza dei processi in esecuzione Il processore inizia l esecuzione di un processo, ma lo può sospendere per dedicarsi a un altro e poi tornare al processo sospeso L utente ha comunque la sensazione di avere un processore dedicato 5
Modalità Batch: come il triathlon I tre processi (nuoto, bici, corsa) vengono iniziati e portati a termine senza interruzioni Le risorse di ogni processo (cuffia e occhialini, scarpette e casco, scarpe) vengono caricate all inizio del processo e rilasciate alla fine NUOTO BICI CORSA Modalità Time-sharing: come il duathlon Dopo la prima parte del primo processo (corsa) viene fatto un cambio di contesto (salvataggio delle risorse del primo processo tolgo le scarpe da corsa e caricamento delle risorse del secondo processo metto scarpette e casco) Al termine (o dopo una parte) del secondo processo si cambia nuovamente contesto, e così via... CORSA BICI CORSA 6
Modalità d esecuzione time-sharing In esecuz Pronto In esecuz Punto di vista di P1 Pronto In esecuz Pronto Punto di vista di P2 P1 P2 P1 Punto di vista del processore Punto di vista dell utente: percezione che P1 e P2 siano eseguiti contemporaneamente Gestione della Memoria Principale L esecuzione di un programma richiede che esso risieda (con i dati su cui opera) in memoria principale Gestione della memoria Gestione memoria principale reale : condivisione della memoria Gestione memoria virtuale realizzazione di una visione astratta della memoria reale (secondaria) per estendere le potenzialità della memoria principale 7
Gestione della Memoria Reale Condivisione da parte dei processi delle celle di memoria Partizione della memoria con allocazione contigua non contigua 0 X X+1 Sistema Operativo Processi N Problemi che il SO deve gestire per la condivisione della memoria Quante partizioni? Quale dimensione? Partizioni statiche e definite a priori o dinamiche? Quali processi nelle varie partizioni? Come si tiene traccia dei vari processi in esecuzione (es. stato)? Come si proteggono i dati dei vari processi tra loro? 8
Gestione della Memoria Virtuale Necessaria in particolare per sistemi multiprogrammati e multiutente (elevati requisiti di memoria) Il SO operativo fornisce una visione astratta in cui i vari processi (e utenti) hanno a loro disposizione una macchina virtuale (con quantità di memoria per ogni processo o utente pari alla quantità totale di memoria reale) Diverse tecniche (es. Swapping, Demand Paging): tutte richiedono oltre alla memoria principale una memoria secondaria (es. hard disk) File System: Gestione della memoria secondaria Parte del SO per la gestione e strutturazione delle informazioni Insieme di programmi per l organizzazione Logica Fornire all utente una visione logica dei file (che astrae dall organizzazione fisica) Fisica gestire i file nella memoria secondaria (dischi) e ottimizzare l utilizzo dello spazio disponibile 9
File system ORGANIZ. LOGICA: l utente deve poter Organizzare un insieme in file e cartelle i dati 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) ORGANIZ. FISICA: il SO deve: Tener traccia dei file memorizzati e della loro posizione fisica sui dischi Ottimizzare l utilizzo dello spazio su disco Diverse tecniche (es. Allocazione contigua, allocazione sparsa) File system: Organizzazione logica DISCO Utenti Paolo Marco Lezione1 Lezione2 Lezione3 Lezione1 FotoMarco Sistema DIRECTORIES FILES 10
Accedere alle Memorie di Massa In tutti i sistemi operativi più diffusi (Windows, Linux, Unix) la modalità d accesso è la stessa (l utente non sa a quale tipo di supporto accede) Esempi di supporti: hard disk, floppy disk, CD, DVD Windows: ciascuna unità (supporto) è contraddistinta da una lettera maiuscola Files L informazione sulle memorie di massa è suddivisa in files File: device (as a folder, case, or cabinet) by means of which papers are kept in order I file sono organizzati in cartelle Una cartella può contenere altre cartelle Un volume è la cartella di partenza (detta anche root) 11
Files Ogni file è univocamente caratterizzato da un percorso (a partire dal volume in cui è contenuto), da un nome e da una estensione In Windows, l estensione serve ad indicare quale programma può o deve utilizzare un file (un programma per i testi, uno per le immagini, uno per la musica, e così via) Il sistema operativo decide, in base all estensione, quale programma utilizzare per ciascun tipo di file Files: esempi ESTENSIONE TIPO FILE APRI CON....txt.exe.jpg.gif.bmp.mpg.avi.mp3.wav.doc.rtf.ppt.xls.pdf.html.htm.zip Testo Programma eseguibile Immagini Video Suono Testo di MS Word Presentazione PowerPoint Foglio Excel Testo Adobe Ipertesti (pagine Web) File (cartella) compressa Blocco note Esegui Vis. Immagini Media Player Media Player MS Word MS Powerpoint MS Excel Acrobat reader Intenet Explorer WinZip 12
Files: localizzazione Esempio: C:\Programmi\Microsoft Office\Office10\winword.exe Volume di partenza Percorso (Path) a partire dal volume Sono tutte cartelle Nome del file:.exe indica che si tratta di un eseguibile (o applicazione ovvero, un programma) 13
Files Operazioni sui file: Creare un nuovo file Rinominare un file già esistente Spostare un file da una cartella all altra Copiare un file Cancellare un file (provvisoriamente o definitivamente) E, ovviamente, aprire un file (doppio clic col pulsante di sinistra) 14
Gestione delle Periferiche di Input/Output Il SO deve Fornire all utente visione astratta dei dispositivi comandi per utilizzare i dispositivi Ottimizzare l utilizzo dei dispositivi Gestione Input/Output I dispositivi sono seriali: possono essere usati da un solo processo alla volta La maggior parte dei dispositivi sono pre-emptive (non interrompibili) Meccanismi di coordinazione delle varie richieste Diverse politiche/strategie per la gestione delle code di processi in attesa di utilizzare una risorsa (es. con priorità, FIFO First-In-First-Out) 15
Gestione Input/Output Il SO fornisce un insieme di comandi (linguaggio d interazione tra utente e sistema) che fornisce una visione astratta del dispositivo Es. Stampa: per l utente equivale all invio di un messaggio, indipendentemente da come avviene il trasferimento dei byte Lettura dello stato della stampante Modifica delle caratteristiche della stampa: l utente utilizza un pannello di controllo, senza curarsi dei dettagli implementativi Interazione con Utente Interfaccia Testuale 16
Interazione con Utente Interfaccia Grafica 17