Software: di sistema e applicativo Di sistema: controlla il comportamento del sistema stesso il più importante dei software di sistema è il sistema operativo: controlla le risorse del sistema fornisce la base su cui costruire tutti gli altri programmi Applicativo: risolve i problemi dell utente, appoggiandosi sullo strato fornito dal sistema operativo Alessandro Di Nuovo 1 1 Il sistema operativo Con il termine sistema operativo si intende l insieme di programmi e librerie che opera direttamente sulla macchina fisica... ... mascherandone le caratteristiche specifiche... ... e fornendo agli utenti un insieme di funzionalità di alto livello Alessandro Di Nuovo 2 2 Sistemi Operativi • MS-DOS • MS-Windows (95, 98, 2000, XP, Vista, Seven) • Unix • Commerciali: Sun Solaris, IBM AIX, HP-UX,… • Linux • BSD • Apple • Mac OS X • iOS • Altri (IBM AS/400, Symbian, Android…) Alessandro Di Nuovo 3 3 Architettura di un S.O. - 1 • Un moderno S.O. è organizzato secondo una architettura a strati (a cipolla) • Ogni strato implementa una macchina virtuale più potente del precedente • Appoggiandosi alle funzionalità offerte dallo strato precedente • Tale approccio permette una chiara separazione tra interfaccia e implementazione delle diverse funzionalità • Ogni strato è costituito da un insieme di programmi e librerie • I meccanismi di chiamate tra livelli possono essere diversi • chiamate a sottoprogrammi, interruzioni sincrone o asincrone, invio di messaggi a processi Alessandro Di Nuovo 4 4 Architettura di un S.O. - 2 Programmi utente Interfacce utente Interprete dei comandi Interfaccia grafica Gestore del file system Gestori di risorse (kernel/nucleo) Gestore delle periferiche Gestore della memoria Gestore dei processi (nucleo) Macchina fisica Alessandro Di Nuovo 5 5 Il Nucleo • Il nucleo • Si appoggia direttamente sulla macchina fisica • Effettua la gestione dei processi • In un sistema multitasking realizza una macchina virtuale in cui ad ogni processo è assegnata un processore virtuale • Comprende i principali programmi di risposta ad interruzione • Realizza le primitive di sincronizzazione e scambio messaggi tra processi Alessandro Di Nuovo 6 6 Il nucleo La macchina virtuale realizzata dal nucleo Processore virtuale Processore virtuale ... Processore virtuale Bus di sistema Disco Memoria centrale Alessandro Di Nuovo Interfaccia delle periferiche 7 7 Il gestore della memoria • Il gestore della memoria • Realizza le funzionalità di allocazione della memoria • Supera i limiti della memoria fisica e mostra ai processi uno spazio di memoria virtuale • Partiziona la memoria tra i vari processi che la richiedono • Garantendo la protezione delle diverse zone di memoria Alessandro Di Nuovo 8 8 Il gestore della memoria La macchina virtuale realizzata dal gestore della memoria Memoria virtuale Memoria virtuale ... Memoria virtuale Processore virtuale Processore virtuale ... Processore virtuale Bus di sistema Interfaccia delle periferiche Disco Alessandro Di Nuovo 9 9 Il gestore delle periferiche Il gestore delle periferiche Maschera le caratteristiche fisiche delle periferiche Fornisce agli strati superiori un insieme di procedure di alto livello per l accesso alle diverse periferiche Offre ad ogni processo la visibilità di un insieme di periferiche virtuali dedicate Gestisce, almeno in parte, i malfunzionamenti delle periferiche Cultura tecnologica del progetto Alessandro Di Nuovo 10 10 Il gestore delle periferiche La macchina virtuale realizzata dal gestore delle periferiche Memoria virtuale Interfaccia periferiche virtuali Memoria virtuale ... Bus Interfaccia periferiche virtuali Bus Processore virtuale Processore virtuale Bus di sistema Disco Alessandro Di Nuovo 11 11 Il gestore del file system Il gestore del file system E responsabile della gestione delle periferiche di massa Hard disk CD / DVD Memory stick USB ... Fornisce agli strati superiori un insieme di procedure per l accesso al file system Garantisce la protezione nell accesso ai file Alessandro Di Nuovo 12 12 Il gestore del file system • Le funzioni di base che sono supportate da un file system sono Il recupero di dati precedentemente memorizzati L eliminazione di dati obsoleti La modifica/aggiornamento di dati preesistenti La copia di dati Tra supporti di memorizzazione diversi (ad es. da HD a CD) In cartelle diverse nello stesso supporto Alessandro Di Nuovo 13 13 Il gestore del file system I dati contenuti nella memoria di massa vengono strutturati e gestiti mediante una organizzazione in file Un file è un contenitore logico identificato da un nome (filename) I filename generalmente sono composti da due parti ad es. informatica.pdf Il filename vero e proprio (informatica) L estensione (pdf) Alessandro Di Nuovo 14 14 Il gestore del file system L estensione è spesso associata al programma che ha generato il file e individua pertanto la tipologia del contenuto del file .exe à file eseguibili .txt à file di testo .doc à documenti di testo (MS Word) .wav à file audio .bmp à immagine in formato bitmap ... Ad ogni file sono poi associati dal sistema operativo altri dati Data di creazione / modifica Lunghezza del file (in byte) Utenti/Gruppi che possono accedere ai file Alessandro Di Nuovo 15 15 Il gestore del file system I file vengono suddivisi in più contenitori logici, chiamati directory, cataloghi o cartelle (folders) Le cartelle sono organizzate secondo una struttura ad albero Il file system contiene una directory detta radice dell albero che può contenere file o altre cartelle Ciascun file è individuato univocamente dal suo nome completo o percorso assoluto Ad es. D:\downloads\temp\002.part Due file con lo stesso nome in due cartelle distinte, ad esempio D:\Immagini\Compleanno\foto1.jpg D:\Documenti\foto1.jpg fanno riferimento a due file che in generale possono essere DIVERSI Alessandro Di Nuovo 16 16 Il gestore del file system D: Documenti Downloads Incoming Temp ... ... Alessandro Di Nuovo 17 17 Nozioni di base File System Alessandro Di Nuovo 18 Il gestore del file system La macchina virtuale realizzata dal gestore del file system Memoria virtuale Interfaccia periferiche virtuali Memoria virtuale File ... File ... Bus Interfaccia periferiche virtuali File ... File 19 19 Bus Processore virtuale Processore virtuale Bus di sistema Alessandro Di Nuovo L interprete dei comandi e l interfaccia grafica L interprete comandi e l interfaccia grafica Costituiscono l interfaccia verso l utente Consentono l interazione dell utente con il s.o. e con i programmi applicativi in esecuzione Permettono di accedere ai programmi conservati su memoria di massa e mandarli in esecuzione allocando la memoria necessaria e creando il processo relativo Nel caso di un sistema multiutente forniscono ai diversi utenti la visione di una macchina virtuale dedicata Cultura tecnologica del progetto Alessandro Di Nuovo 20 20 Una possibile classificazione dei moderni S.O. • I moderni sistemi operativi possono essere classificati in: • Sistemi monotask: • Permettono l esecuzione di un solo programma utente per volta (es. DOS) • Il computer a disposizione del programma dall’inizio alla fine della sua esecuzione • Coda dei job, gestita FIFO (first in, first out) e/o con priorità • Sistemi multitask • Permettono l esecuzione di più programmi utente contemporaneamente • Classificazione ulteriore: • • Multitasking cooperativo (Windows 3.1, MacOS) Multitasking preemptive (Windows 95/98/NT, Unix) • Time sharing o meno Alessandro Di Nuovo 21 21 Svantaggi dei sistemi monoprocessore mono-tasking Nessuna interazione utente-programma Lentezza: la CPU non può essere usata da nessun processo mentre il programma in esecuzione svolge operazioni di I/O (molto piu lente di letture/scritture in Memoria) Esempio: DOS è un SO monotasking; non si può fare niente altro mentre si formatta un floppy o si memorizzano dati su disco Cultura tecnologica del progetto Alessandro Di Nuovo 22 22 Multitasking (time sharing) Ripartizione del tempo di CPU tra tutti i processi che la vogliono Ogni job rimane in esecuzione solo per un quanto di tempo, poi l esecuzione passa al prossimo job e il primo va in attesa à Esecuzione globale più veloce Durata del quanto di tempo tra 100 e 200 millisecondi à granularità molto fine A ciascun utente sembra di avere la CPU tutta per lui, solo più lenta Cultura tecnologica del progetto Alessandro Di Nuovo 23 23 Stati di un processo Inizio esecuzio ne Selezione primo processo pronto e sua esecuzione Processo in esecuzione Processi pronti Termine quanto di tempo Richiesta di operazione di I/ O Processo Completamento operazione in attesa di I/O (evento esterno atteso) Alessandro Di Nuovo 24 24 Attesa Se il processo richiede operazioni ad altri dispositivi (es. Operazioni di I/O), la CPU rimarrebbe inutilizzata è lo scheduler mette il processo in stato di attesa, il dispatcher sceglie un nuovo processo tra i pronti dalla tabella, quando l operazione sarà finita, lo scheduler dichiarerà di nuovo pronto il processo Permette un utilizzo molto più efficiente delle risorse di elaborazione Esempio: durante la digitazione di un documento di testo, l utente compie molte pause per riflettere sul contenuto che sta scrivendo questo tempo è usato dal sistema per compiere altre operazioni in contemporanea (ad es. gestire la ricezione di e-mail) Alessandro Di Nuovo 25 25 Sistemi mono e multiprocessore Time sharing in sistemi mono-processore: multi-tasking (più programmi in esecuzione con una sola CPU) Sistemi multiprocessore: le varie CPU possono lavorare contemporaneamente su job diversi ciascuna CPU opera in multi-tasking Cultura tecnologica del progetto Alessandro Di Nuovo 26 26 Bootstrap: avvio del SO All inizio, la CPU ha in indirizzo fissato nel registro contatore di programma, che punta all indirizzo nella ROM (Read Only Memory) ove inizia il programma di bootstrap che è sempre memorizzato lì L esecuzione del programma di bootsrap trasferisce il kernel del Sistema Operativo da una parte prestabilita della memoria di massa (hard-disk, floppy-disk, CD-Rom,…) in memoria principale Quindi l esecuzione prosegue con un salto all area di memoria principale contenente il Sistema Operativo (che quindi viene mandato in esecuzione) Tra le prime operazione del kernel del Sistema Operativo vi sono tipicamente quelle di caricamento di altri componenti software: driver delle periferiche installate programmi di sistema lanciati automaticamente all avvio Alessandro Di Nuovo 27 27 Bootstrap Alessandro Di Nuovo 28 28 MS-DOS Sviluppato dalla Microsoft nel 1981 per il PC IBM Adottato da altri con PC IBM-compatibili Molto limitato: mono-utente, mono-tasking Circa 50 comandi per il SO: DIR per vedere il contenuto di una directory COPY per copiare file DEL per cancellare un file REN per cambiare il nome a un file CD per muoversi in un altra directory MD per creare nuove directory RD per cancellare directory Nome file: per eseguire il file (se eseguibile) … Cultura tecnologica del progetto Alessandro Di Nuovo 29 29 MS Windows – Elementi principali Interfaccia grafica Mouse che sposta un cursore Cut & paste (copia e incolla) Drag & drop (trascina e lascia) Icone associate a file, directory, dischi, … Directory come cartelle Pulsanti Finestre: cornici con strumenti Menu di comandi Alessandro Di Nuovo 30 30 Breve storia di windows 1/2 Nel 1980 la Microsoft era una piccola società con 40 dipendenti, che fatturava 8 milioni di dollari. Bill Gates venne contattato dall'IBM, che in quel periodo dominava il mercato degli elaboratori mainframe ed aveva appena iniziato la realizzazione di un personal computer, per scrivere un nuovo sistema operativo. Nasce così l'MS DOS ed esplode il boom del computer per tutti. Due anni dopo Bill Gates annuncia la nascita di una prima versione di Windows (1982). Non è un sistema operativo, ma una semplice interfaccia grafica attaccata al DOS molto rozza. Gli utenti cominciano a prendere confidenza con questa nuova dimensione. A maggio, nel 1990, viene lanciato Windows 3.0 e un anno dopo esce Windows 3.1. Nel '94 il fatturato è di 4,65 miliardi di dollari. Nel '95 viene lanciato Windows 95 e i dollari salgono a quasi 6 miliardi. Internet Explorer comincia ad insidiare la posizione di leader tra i browser di Netscape. Infine nel '98 esce la nuova versione di Windows (Windows 98) e nel frattempo la crescita del sistema operativo di rete, Windows NT, si consolida fino a creare serie minacce a ben più blasonati sistemi. Cultura tecnologica del progetto Alessandro Di Nuovo 31 31 Breve storia di windows 2/2 Il successore di windows NT è Windows 2000. Windows 2000 compare in due versioni: la Professional e la Server. La prima è la soluzione ideale per applicazioni desktop mentre la seconda per la gestione e l amministrazioni di reti, domini, ecc. Con il nuovo millennio si registra l uscita del nuovo Windows Millennium Edition (ME), praticamente un Windows 98 SE rivisto nella grafica, potenziato a livello di funzioni multimediali e nel quale fa la sua definitiva scomparsa il buon vecchio DOS. Alla fine del 2002 viene presentato Windows XP nelle versioni Home, Professional e Server. La prima prenderà il posto di Windows ME mentre le altre due sostituiranno le analoghe versioni di Windows 2000. Windows XP presenta un interfaccia completamente ridisegnata, un ottimo supporto alle periferiche attualmente sul mercato e una grande supporto ai prodotti multimediali non ultimi i videogame grazie all integrazione diretta delle DirectX. Windows XP è presente sul mercato anche nella versione a 64 bit per processori Alpha. Nel 2006 è stata rilasciato Windows Vista. Tra le principali novità: pieno supporto dei processori a 64 bit (funziona però anche a 32 bit); nuovo motore per l interfaccia grafica; funzionalità avanzate di ricerca dei documenti archiviati; maggiore protezione rispetto agli attacchi informatici. Cultura tecnologica del progetto Alessandro Di Nuovo 32 32 Unix Sistema Operativo: multi-utente, multi-tasking, con time-sharing Nato negli anni 60 con un progetto congiunto AT&T e MIT Concepito per poter funzionare su diverse piattaforme hardware con adattamenti limitati Interprete dei comandi: shell testuale più di 300 comandi, con opzioni Disponibilità di interfaccia grafica (finestre, mouse, etc.) messa a disposizione da un insieme di moduli separati (sistema X Window) Cultura tecnologica del progetto Alessandro Di Nuovo 33 33 Linux Linux è una delle molte varianti di Unix con la peculiarità di essere open source (= il cui codice sorgente è liberamente disponibile) La sua nascita è dovuta in parte alle restrizioni imposte da AT&T all’uso di del codice sorgente di UNIX per la didattica: hanno indotto Andy Tanenbaum allo sviluppo di MINIX, un implementazione di UNIX per scopi didattici MINIX ha ispirato Linus Torvalds a realizzare una propria implementazione del kernel UNIX Il kernel sviluppato da Linus è stato combinato con una suite di programmi UNIX, sviluppati nell ambito del progetto GNU (iniziativa che ha originato il movimento open source), per formare la prima distribuzione di Linux e renderla disponibile su Internet come software open source Oggi esistono innumerevoli distribuzioni di Linux, distinte per diverse combinazioni di kernel, interfacce grafiche (le più note sono Gnome e KDE) e programmi di utilità. Alessandro Di Nuovo 34 34 Linux Gnome à ß KDE Alessandro Di Nuovo 35 35 BSD BSD è un altra versione open source del sistema operativo Unix, in questo caso nata alla University of California, Berkeley (USA) Ritenuto più stabile di Linux (anche grazie ad un gruppo di sviluppo più ristretto, quindi più controllabile) ma il numero di applicazioni disponibili è più ristretto (principalmente applicazioni per i server) Oggi esistono 4 distribuzioni principali di BSD: 3 distribuzioni free: FreeBSD, OpenBSD, NetBSD 1 distribuzione a pagamento, all interno del Sistema Operativo Apple MAC OS-X Cultura tecnologica del progetto 36 36 Alessandro Di Nuovo MAC OS-X Architettura MAC OS Applicazioni • MAC OS-X è l ultima generazione di S.O. per i personal computer prodotti da Apple • Abbandonato il precedente sistema operativo Apple ha costruito la nuova generazione del proprio S.O. a partire da una variante di BSD, chiamata Darwin, che rimane open source • A questo nucleo, Apple ha aggiunto componenti proprietari, dall interfaccia grafica (Aqua) ad una suite di applicazioni e utilities. GUI à Kernel, gestori di risorse e servizi di base Alessandro Di Nuovo 37 37 Introduzione al Deadlock Definizione: Un insieme di processi e in stallo se ogni processo dell’insieme è in attesa di un evento che solo un altro processo dell’insieme può causare Normalmente l’evento è l’accesso ad una risorsa occupata Nessun processo può Andare in esecuzione Rilasciare la risorsa Essere sbloccato Alessandro Di Nuovo 38 38 Condizioni per il Deadlock • Condizione di mutua esclusione Ogni risorsa è assegnata ad un processo o è disponibile • Condizione di “Hold and wait” I processi che detengono risorse possono chiederne altre • Condizione di assenza di prerilascio Le risorse assegnate non possono essere tolte forzatamente ad un processo • Condizione di attesa circolare Deve esistere una catena circolare di due o più processi ognuno dei quali è in attesa di una risorsa occupata dal prossimo processo della catena Alessandro Di Nuovo 39 39 Algoritmo dello struzzo • Fare finta che il problema non esiste • È ragionevole se • Il deadlock è un evento raro • Il costo della sua prevenzione è alto • UNIX e Windows hanno tale approccio • La valutazione da fare è rispetto a • convenienza • correttezza Alessandro Di Nuovo 40 40