UD 1.5c: Il Sistema Operativo Il Sistema Operativo E’ in assoluto il prodotto più complesso mai progettato e realizzato dagli uomini. Windows XP conta 40 Milioni di linee di codice Stampate su fogli A4, con interlinea singola, occuperebbero 750.000 pagine (750 volumi da 500 pagine l’uno) Senza Sistema Operativo non sarebbe possibile utilizzare i moderni computer (se non in casi speciali) 16 nov 2011 Supervisiona e gestisce l’intero sistema. Carica ogni programma dal disco fisso in RAM e lo esegue Determina dove e come memorizzare dati e programmi sui dischi. Permette l’interazione tra programmi, utenti e hardware 2 Le funzioni principali del S.O. Gestisce le risorse hardware del sistema di elaborazione Controlla, ottimizza l’uso e coordina la comunicazione tra le varie risorse hardware del computer, sia principali (processore e RAM) che periferiche (memorie di massa, schermo, stampanti, tastiera, ecc.). Gestisce le risorse software del sistema di elaborazione Pilota e controlla l’esecuzione degli altri programmi Assegna le risorse ai programmi applicativi e ne controlla l’attività, per evitare che entrino in conflitto fra loro. 16 nov 2011 Gestisce l’interazione tra utente e macchina. Ogni operazione che l’utente svolge sul computer viene intercettata dal S.O. direttamente quando l’utente con dei comandi esegue certe operazioni predefinite indirettamente quando si serve di programmi applicativi per svolgere operazioni più complesse 3 BIOS BIOS è software memorizzato perennemente in ROM (oggi EEPROM). E’ una via di mezzo tra hardware e software (Firmware). BIOS accede alle informazioni sulle periferiche (Setup del computer) memorizzate nella CMOS CMOS: Piccola porzione di memoria, presente sulla scheda madre di un PC, che contiene informazioni necessarie al funzionamento del PC. La memoria CMOS è alimentata dalla corrente di casa quando il PC è sotto tensione e da una piccola pila a bottone presente sulla mainboard quando ci troviamo in assenza di alimentazione. 4 16 nov 2011 BIOS Il BIOS fornisce il collegamento tra il software e l’hardware. In particolare, Il BIOS è lo strumento utilizzato dal SO per accedere all’hardware. Il SO intercetta ogni richiesta di uso di una periferica e la trasmette al BIOS Ad esempio, quando si chiede di stampare un documento dall’interno di un programma (es Word) 16 nov 2011 Il comando di stampa viene passato dal programma al SO 5 Dal Sistema Operativo esso passa poi al BIOS Il BIOS, infine, si collega alla stampante, dopo aver trasformato la richiesta di stampa in una serie di comandi comprensibili alla stampante Funzionalità di un SO Per svolgere le sue funzioni, un SO deve essere in grado di eseguire i seguenti compiti: Interprete dei comandi Gestore dei processi Gestore della memoria centrale Gestore delle periferiche di I/O 16 nov 2011 Gestore del File system 6 Interprete comandi E’ l’unica parte del sistema operativo direttamente visibile all’utente L’interprete comandi interpreta i comandi inviati dall’utente (da tastiera o con il mouse) e li esegue 16 nov 2011 attivando i programmi corrispondenti o 7 effettuando le operazioni richieste La Gestione dei Processi I programmi in esecuzione vengono chiamati processi Programma = lista di istruzioni = nozione statica Processo = programma in esecuzione =nozione dinamica 16 nov 2011 ATTENZIONE: in ogni istante di tempo una CPU può eseguire un solo processo 8 Il Sistema Operativo deve stabilire, in ogni dato istante di tempo, quale processo può utilizzare la CPU Inoltre deve reagire agli eventi esterni (le interruzioni provenienti dalle periferiche) La Gestione dei Processi Diverse tecniche di gestione dei processi: Monoprogrammazione e monoutenza Multiprogrammazione e monoutenza (o Multitasking) Multielaborazione e multiutenza 16 nov 2011 Elaborazione parallela (con hardware apposito) 9 La scelta dipende anche dal tipo di calcolatore e dalle sue caratteristiche hw Monoutenza e Monoprogrammazione Single User e Single Task Modalità operativa dei personal computer fino a 15-20 anni fa (sistema MS-DOS): permette l’accesso al computer ad un solo utente per volta, il quale può mandare in esecuzione un solo programma alla volta. 16 nov 2011 E' il modo più semplice per gestire un elaboratore il S.O. gestisce in modo sequenziale i diversi programmi, uno per volta poca efficienza dell'hw a causa della diversa velocità tra CPU e periferiche 10 Monoutenza e Multiprogrammazione Single User e Multi Task (multiprogrammazione) E’ la modalità operativa dei sistemi Windows ‘client’: permette l’accesso al computer ad un solo utente per volta, Il quale può mandare in esecuzione più programmi, che utilizzano le stesse risorse del computer. il S.O 16 nov 2011 deve essere in grado di gestire l’uso contemporaneo delle stesse risorse (ad esempio la RAM) da parte delle applicazioni contemporaneamente attive, senza che si creino “conflitti”. 11 In particolare, poiché il processore è unico e quindi può soddisfare una sola richiesta per volta, deve assegnare la CPU al singolo processo, tenendo fermi tutti gli altri processi “attivi”, che restano in attesa di poter utilizzare, a loro volta, la CPU. Monoutenza e Multiprogrammazione Un processo perde l’uso della CPU (Deallocazione) se: E’ richiesta un’operazione di I/O da parte del processo in esecuzione, che in termini di tempo è molto lenta. 16 nov 2011 Termina il tempo a disposizione del processo. Ogni processo accede alla CPU per un breve intervallo di tempo (ad esempio 10 ms), terminato il quale la CPU viene staccata dal processo e viene agganciata al processo successivo, e poi al successivo, ecc., fino a tornare al primo e così via (tecnica del time-sharing o condivisione di tempo) 12 Multitasking Pronto: il processo attende il proprio turno per essere eseguito; In Esecuzione: Il processo ha accesso alla CPU che ne esegue le istruzioni; In Attesa: il processo attende il completamento di un’operazione asincrona Multithreading Un programma può effettuare più operazioni contemporaneamente sullo stesso documento. Ad esempio può leggere dati immessi da tastiera, stampare, visualizzare e contemporaneamente salvare il documento. 16 nov 2011 Ovviamente le operazioni non vengono fatte nello stesso momento, ma è applicato il principio del multitasking (il processore esegue le varie operazioni un po’ alla volta, passando dall’una all’altra). 14 Multiutenza e Multiprogrammazione Multi User e Multi Task E’ la modalità operativa dei sistemi Windows ‘server’: permette l’accesso al computer a più utenti per volta, 16 nov 2011 Ognuno dei quali può mandare in esecuzione più programmi, che utilizzano le stesse risorse del computer. 15 Richiede l’impiego di notevoli risorse sia da parte del sistema operativo sia dell’hardware, per questo generalmente la si trova nei sistemi più sofisticati e su macchine di una certa potenza. Sicurezza e protezione - SO multiutente Un sistema operativo multiutente deve possedere un meccanismo per identificare gli utenti Il sistema più usato è quella di attribuire a ciascun utente una login ed una password Ad ogni utente può essere attribuito un costo per le risorse da lui usate 16 nov 2011 Si può restringere a certi utenti l’accesso al file system e alle risorse 16 L’utente può avere un proprio ambiente personalizzato Elaborazione Parallela Più CPU o più elaboratori cooperano nell'esecuzione dei programmi Problematiche molto complesse Richiedono speciali architetture dei sistemi di elaborazione Sono lo stato dell'arte della tecnologia corrente La CPU può essere caratterizzata da diversi livelli di parallelismo: parallelismo di parola (stringhe di n bit di lunghezza) parallelismo spaziale (indica la quantità di dati che vengono elaborati contemporaneamente) parallelismo di istruzione : 16 nov 2011 due istruzioni indipendenti e che utilizzano diverse risorse, possono essere eseguite contemporaneamente 17 La Gestione della memoria centrale Il gestore della memoria deve allocare la memoria e partizionarla tra i processi che la richiedono 16 nov 2011 Grazie al gestore della memoria gli strati superiori hanno l’illusione che ogni processo abbia una memoria dedicata 19 La Gestione della memoria centrale Un servizio offerto dalla gestione della memoria è la cosiddetta memoria virtuale o swapping 16 nov 2011 E’ possibile eseguire programmi più grandi della memoria centrale caricando in memoria solo alcuni parti (pagine) del programma 20 Quando serve una pagina del programma residente su disco avviene la sostituzione di una pagina in memoria con quella desiderata La Gestione delle Periferiche di I/O Una caratteristica comune a tutti i dispositivi è quella di operare in modo asincrono rispetto al processore Consideriamo una tastiera che produce dei dati di input. Il processore non è in grado di prevedere e di controllare il momento in cui un dato di input sarà a disposizione 16 nov 2011 Allo stesso modo, il processore non può prevedere il momento in cui un dispositivo in output avrà terminato di produrre i dati in uscita 21 Sono pertanto necessarie delle forme sincronizzazione tra i dispositivi e il processore di La Gestione delle Periferiche di I/O Un dispositivo di input deve avvertire il processore quando un dato di input è disponibile 16 nov 2011 Un dispositivo di output deve avvertire il processore quando ha terminato di produrre dati in uscita o quando è pronto per ricevere dati dal processore 22 I dispositivi di Input/Output inviano al processore un segnale, detto interrupt, per richiedere l'attenzione del processore stesso La Gestione delle Periferiche di I/O 16 nov 2011 Ad ogni ciclo di clock, l'unità di controllo, prima di iniziare l'esecuzione della prossima istruzione del programma in corso, verifica se è arrivato un segnale di interrupt da parte di qualche dispositivo 23 Se non c'è alcun segnale di interrupt il processore prosegue normalmente, altrimenti sospende l'esecuzione del programma attivo ed esegue le operazioni richieste dal dispositivo Le Categorie dei Sistemi Operativi Sistema Operativo e Hardware Tutti gli elaboratori sono dotati di Sistema Operativo. Un Sistema Operativo è legato alla complessità dell’hardware (un SO di un mainframe è diverso da quello di un portatile) Monoprogrammazione-Multiprogrammazione-Multiutenza sono invece una caratteristica del sistema operativo. 16 nov 2011 Caricando su un PC il sistema operativo DOS, avremo un funzionamento di tipo “single user e single task”. Se sullo stesso PC carichiamo Windows XP Professional, avremo un funzionamento di tipo “Single User e Multi Task”. Infine caricando il sistema operativo Windows XP Server, avremo un funzionamento di tipo “Multi User e Multi Task”. 25 Sistemi Operativi per Desktop MS-DOS, della Microsoft, è stato il primo sistema operativo per PC (in disuso) Windows, della MS, è installato su circa 80-90% dei PC Windows 95/98, sistemi operativi per PC, di vecchia generazione Windows NT, sistema operativo per PC , di vecchia generazione e utilizzato come server di rete Windows 2000/XP, sistemi operativi per PC ancora molto diffusi 16 nov 2011 Windows 8/Windows 10, i sistemi operativi di ultima generazione 26 MacOS X, della Apple è installato su circa il 2% dei PC Linux/Unix è installato sui restanti Computer. Sistemi Operativi per Server Server: Computer che gestisce reti di altri computer. Sistemi Operativi potenti, sicuri e affidabili. Sono Multiuser, Multitasking, Multithreading Esempi: Windows Server 16 nov 2011 IBM OS/2 (non più utilizzato) 27 Unix Sistemi Operativi Opensource Linux e Unix sono Sistemi Operativi “aperti”. Un SO aperto, detto anche “Opensource”, funziona su macchine diverse. Fa parte della categoria dei software Public Domain, quindi esso è 16 nov 2011 completamente gratuito 28 è modificabile da qualsiasi programmatore, essendo distribuito assieme al codice sorgente Presente in molte versioni, a volte non compatibili tra di loro (dato che ognuno può “modificarlo”) Sistemi Operativi Proprietari Un SO “Proprietario” funziona su un solo tipo di computer. Sviluppati da grandi case per mainframe e minicomputer IBM sviluppò il SO OpenMVS Digital sviluppò il VMS (poi diventato OpenVMS) Spesso le case costruttrici sviluppavano anche il Software Applicativo (detto anch’esso “proprietario”) 16 nov 2011 Svantaggi principali: Dipendenza pressoché totale dal produttore anche per semplici operazioni di “personalizzazione” che coinvolgono modifica del codice Costi elevatissimi Difficoltà di “portabilità” del software e, spesso, anche dei dati. 29 Altri Sistemi Operativi Smartphone e Tablet iOS 7.1 Android Windows Phone 8 Blackberry 10 16 nov 2011 … 30 Sistemi Operativi Embedded sono invece incorporati in piccoli dispositivi e sono codificati su un chip di memoria ROM, invece che su Hard Disk. Il Sistema Operativo 16 nov 2011 In un computer possono essere presenti più sistemi operativi, utilizzabili singolarmente poiché un loro uso contemporaneo creerebbe un conflitto nella gestione delle risorse della macchina. 31 Per poter installare più sistemi operativi è necessario suddividere l'hard disk in sezioni separate (partizioni) e assegnare a ognuna un sistema operativo che avrà il compito di gestire il computer ogni volta che si lavora con essa. Prestazioni di un Sistema Throughput: quantità di lavoro effettivamente svolto, espressa in qualche unità di misura sensata (job al minuto, ecc.) Overhead: i “costi di gestione” 163 nov 2011 Ottimizzare le prestazioni: ridurre l’overhead al minimo per ottenere il massimo throughput 32 Gestione del file system Il file system Dati e programmi sono memorizzati sul disco fisso all’interno di “contenitori logici” detti files. Un file è un contenitore di informazioni identificato da un nome (filename) e 21 nov 2011 memorizzato in una delle memorie di massa Tra i compiti più importanti del sistema operativo vi è la gestione dei files (file system management) che si occupa di gestire i documenti presenti nelle memorie di massa organizzandoli logicamente permettendo di operare su di essi 34 I nomi dei Files In quasi tutti i sistemi operativi un filename è costituito da due parti: il nome vero e proprio e l’estensione, separata dal nome da un punto, paragonabili al nome e al cognome di una persona. Il nome è scelto dall’utente. 21 nov 2011 L’estensione rappresenta il tipo di dato che il file contiene solitamente indica il programma con cui è stato creato il file (“.doc” per i documenti Word, “.exe” o “.bat” per i file eseguibili, “.jpg” o “gif” per le immagini, ecc.). 35 21 nov 2011 I nomi dei Files 36 In base all’estensione di un file, il Sistema Operativo è in grado di aprire la corretta applicazione semplicemente cliccando sul nome del file. Cartelle o Directory Per rendere più agevole il ritrovamento dei files, il disco è diviso in cartelle (chiamate directory) Una directory è un contenitore logico che può contenere a sua volta altre cartelle o semplici files 21 nov 2011 Una directory ha un nome che la contraddistingue dalle altre directory 37 Lo scopo principale delle directory è di organizzare i file presenti nel dispositivo di memorizzazione File System Gerarchico La maggior parte dei sistemi operativi adotta un file system gerarchico: le cartelle sono strutturate ad albero, la cui radice è detta directory principale o 21 nov 2011 ROOT 38 39 File System Gerarchico 21 nov 2011 Unità Il file system può gestire file memorizzati in più memorie di massa (floppy disk, hard disk, CDRom, unità di rete, ecc.) Ad ogni memoria di massa è associata una lettera identificativa e/o un nome A: è il floppy disk C: è l’hard disk D: è il CD-Rom F: è l’unità Flash 21 nov 2011 40 Pathname (o percorso) Ogni file si trova in una sola directory, la quale, a sua volta, si può trovare in un’altra directory (e così via) 21 nov 2011 All’interno della stessa directory non possono esistere più file con lo stesso nome (nome+estensione) 41 Il percorso per arrivare dalla ROOT al file in questione si chiama pathname Pathname (o percorso) La directory principale si chiama \ (o ROOT – Radice) 21 nov 2011 Nel percorso le directory sono separate dal carattere \ 42 Programmi di gestione dei files Esplora Risorse 21 nov 2011 Visualizza cartelle e files nelle varie unità secondo una struttura ad albero. 43 Programmi di gestione dei files Motore di ricerca 21 nov 2011 Esistono versioni dei motori di ricerca che vengono applicati alla gestione dei files interni al proprio sistema. L’utente si muove come se navigasse in Internet 44 Le Utilità di un Sistema Operativo La Formattazione di un Disco Predisposizione del disco all’uso da parte di un Sistema Operativo 21 nov 2011 Creazione di una tabella, (detta File Allocation Table, FAT, oppure Master File Table, MFT) con le informazioni principali sui files, sulla loro disposizione su disco e sui settori vuoti 46 La Deframmentazione di un Disco Il Sistema Operativo memorizza un file scomponendolo in parti della stessa dimensione (dette cluster), pari generalmente alla dimensione del settore su disco 21 nov 2011 Quando il disco è vuoto i cluster di un file vengono memorizzati in settori contigui 47 Quando il disco comincia a riempirsi i vari cluster di un file (soprattutto se esso è molto grande) vengono memorizzati dove c’è posto, spesso in settori molto distanti l’uno dall’altro. La Deframmentazione di un Disco Quando un file è frammentato, il sistema impiega molto tempo ad “aprirlo” (cioè a copiarlo in RAM per permettere l’utilizzo) 21 nov 2011 la testina di lettura deve spostarsi molte volte sul disco per “raccogliere” e serializzare le varie parti di un file 48 La Deframmentazione di un Disco Deframmentazione: spostamento dei cluster di un file finchè tutti i frammenti sono su zone contigue del disco es. Dati i file A (4 cluster), B (3 cl.) e C (6 cl.) … C3 C4 A1 A2 B3 A4 C6 C1 B1 A3 B2 C5 C2 … 21 nov 2011 … A1 A2 A3 A4 B1 B2 B3 C1 C2 C3 C4 C5 C6 … 49 Lo Scanning di un Disco Durante l’uso possono danneggiarsi parti di un supporto e diventare quindi inutilizzabili, rendendo di fatto inutilizzabile tutto il file che comprende queste parti. 21 nov 2011 Per limitare i danni è possibile effettuare, a livello preventivo, una scansione del disco, in modo da accantonare i settori guasti, ma non ancora “allocati” ad alcun file. 50 Scanning: programma che individua difetti o danneggiamenti della superficie del disco, problemi di allocazione dei files o problemi nella Tabella di allocazione