Modulo 1: Le I.C.T. : Il Sistema Operativo Prof. Alberto Postiglione Corso di Informatica Generale (AA 07-08) Corso di Laurea in Scienze della Comunicazione Università degli Studi di Salerno INTRODUZIONE AI SISTEMI OPERATIVI Curtin 6.4 1
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) # 3 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 Prof Alberto Postiglione Università Salerno Le funzioni principali del sistema operativo 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. 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 # 4 Prof Alberto Postiglione Università Salerno 2
BIOS BIOS è software memorizzato perennemente in ROM BIOS accede alle informazioni sulle periferiche (Setup del computer) memorizzate nella CMOS E una via di mezzo tra hardware e software (Firmware) # 5 Prof Alberto Postiglione Università Salerno 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) Il comando si stampa viene passato dal programma al SO 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 # 6 Prof Alberto Postiglione Università Salerno 3
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 Gestore del File system # 7 Prof Alberto Postiglione Università Salerno 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 attivando i programmi corrispondenti o effettuando le operazioni richieste # 8 Prof Alberto Postiglione Università Salerno 4
La Gestione dei Processi I programmi in esecuzione vengono chiamati processi Programma = lista di istruzioni = nozione statica Processo = programma in esecuzione =nozione dinamica ATTENZIONE: in ogni istante di tempo una CPU può eseguire un solo processo 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) # 9 Prof Alberto Postiglione Università Salerno La Gestione dei Processi Diverse tecniche di gestione dei processi: Monoprogrammazione e monoutenza Multiprogrammazione e monoutenza (o Multitasking) Multielaborazione e multiutenza Elaborazione parallela (con hardware apposito) La scelta dipende anche dal tipo di calcolatore e dalle sue caratteristiche hw # 10 Prof Alberto Postiglione Università Salerno 5
Monoutenza e Monoprogrammazione Single User e Single Task Modalità operativa dei personal computer fino a qualche anno 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. 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 # 11 Prof Alberto Postiglione Università Salerno 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 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. 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. # 12 Prof Alberto Postiglione Università Salerno 6
Monoutenza e Multiprogrammazione Un processo perde l uso della CPU (Deallocazione) se: C è richiesta di un operazione di I/O da parte del processo in esecuzione, che in termini di tempo è molto lenta. 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) # 13 Prof Alberto Postiglione Università Salerno 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. Ovviamente le operazioni non vengono fatte nello stesso momento, ma è applicato i principio del multitasking (il processore esegue le varie operazioni un po alla volta, passando dall una all altra). # 14 Prof Alberto Postiglione Università Salerno 7
Multiutenza e Multiprogrammazione Multi User e Multi Task E la modalità operativa dei sistemi Windows server : permette l accesso al computer ad più utenti per volta, Ognuno dei quali può mandare in esecuzione più programmi, che utilizzano le stesse risorse del computer. 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. # 15 Prof Alberto Postiglione Università Salerno Sicurezza e protezione nei 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 Si può restringere a certi utenti l accesso al file system e alle risorse L utente può avere un proprio ambiente personalizzato # 16 Prof Alberto Postiglione Università Salerno 8
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 parallelismo spaziale parallelismo di istruzione # 17 Prof Alberto Postiglione Università Salerno Elaborazione Parallela Le principali modalità di elaborazione parallela sono: SIMD (Single Instruction Multiple Data) Ogni CPU esegue le stesse operazioni su dati diversi CPU semplici, in numero elevato Es.: elaborazione di immagini, di suoni, simulazioni a grana fine MIMD (Multiple Instruction Multiple Data) Ogni CPU esegue operazioni diverse su dati diversi CPU anche complesse, in numero ristretto Es.: elaborazione di grosse quantità di dati, come le immagini a grana grossa # 18 Prof Alberto Postiglione Università Salerno 9
La Gestione della memoria centrale Il gestore della memoria deve allocare la memoria e partizionarla tra i processi che la richiedono Grazie al gestore della memoria gli strati superiori hanno l illusione che ogni processo abbia una memoria dedicata # 19 Prof Alberto Postiglione Università Salerno La Gestione della memoria centrale Un servizio offerto dalla gestione della memoria è la cosiddetta memoria virtuale E possibile eseguire programmi più grandi della memoria centrale caricando in memoria solo alcuni parti (pagine) del programma Quando serve una pagina del programma residente su disco avviene la sostituzione di una pagina in memoria con quella desiderata # 20 Prof Alberto Postiglione Università Salerno 10
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 Allo stesso modo, il processore non può prevedere il momento in cui un dispositivo in output avrà terminato di produrre i dati in uscita Sono pertanto necessarie delle forme di sincronizzazione tra i dispositivi e il processore # 21 Prof Alberto Postiglione Università Salerno La Gestione delle Periferiche di I/O Un dispositivo di input deve avvertire il processore quando un dato di input è disponibile Un dispositivo di output deve avvertire il processore quando ha terminato di produrre dati in uscita o quando è pronto per ricevere dati dal processore I dispositivi di Input/Output inviano al processore un segnale, detto interrupt, per richiedere l'attenzione del processore stesso # 22 Prof Alberto Postiglione Università Salerno 11
La Gestione delle Periferiche di I/O 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 Se non c'è alcun segnale di interrupt il processore prosegue normalmente, altrimenti sospende l'esecuzione del programma in esecuzione ed esegue le operazioni richieste dal dispositivo # 23 Prof Alberto Postiglione Università Salerno LA GESTIONE DEI FILE (FILE SYSTEM) Curtin 6.6 12
Il file system Dati e programmi sono memorizzati sul disco fisso all interno di contenitori logici detti files. Un file èuna contenitore di informazioni identificato da un nome (filename) e 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 # 25 Prof Alberto Postiglione Università Salerno 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. 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.). # 26 Prof Alberto Postiglione Università Salerno 13
I nomi dei Files In base all estensione di un file, il Sistema Operativo è in grado di apre l applicazione permettendoci di cliccare direttamente sul nome del file. # 27 Prof Alberto Postiglione Università Salerno 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 Una directory ha un nome che la contraddistingue dalle altre directory Lo scopo principale delle directory è di organizzare i file presenti nel dispositivo di memorizzazione # 28 Prof Alberto Postiglione Università Salerno 14
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 ROOT # 29 Prof Alberto Postiglione Università Salerno File System Gerarchico # 30 Prof Alberto Postiglione Università Salerno 15
Unità Il file system può gestire file memorizzati in più memorie di massa (floppy disk, hard disk, CD-Rom, 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 # 31 Prof Alberto Postiglione Università Salerno 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) All interno della stessa directory non possono esistere più file con lo stesso nome (nome+estensione) Il percorso per arrivare dalla ROOT al file in questione si chiama pathname # 32 Prof Alberto Postiglione Università Salerno 16
Pathname (o percorso) La directory principale si chiama \ (o ROOT Radice) Nel percorso le directory sono separate dal carattere \ # 33 Prof Alberto Postiglione Università Salerno Programmi di gestione dei files Esplora Risorse Visualizza cartelle e files nelle varie unità secondo una struttura ad albero. # 34 Prof Alberto Postiglione Università Salerno 17
Programmi di gestione dei files Motore di ricerca 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 # 35 Prof Alberto Postiglione Università Salerno LE CATEGORIE DEI SISTEMI OPERATIVI Curtin 6.5 18
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. 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. # 37 Prof Alberto Postiglione Università Salerno Sistemi Operativi per Desktop MS-DOS, della Microsoft, è stato il primo sistema operativo per PC (in disuso) Windows, della MS, è installato su circa il 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 Windows Vista, il sistema operativo di ultima generazione MacOS X, della Apple è installato su circa il 9% dei PC Linux/Unix è installato sul restante 1% dei Computer. # 38 Prof Alberto Postiglione Università Salerno 19
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 IBM OS/2 (non più utilizzato) Unix # 39 Prof Alberto Postiglione Università Salerno 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 è completamente gratuito è 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 ) # 40 Prof Alberto Postiglione Università Salerno 20
Sistemi Operativi Proprietari (Mainframe) 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 ) 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. # 41 Prof Alberto Postiglione Università Salerno Altri Sistemi Operativi per tascabili e palmari, che utilizzano un touch-screen e una tastiera virtuale: Windows CE Windows Mobile 2003 Palm OS Sistemi Operativi Embedded sono invece incorporati in piccoli dispositivi e sono codificati su un chip di memoria ROM, invece che su Hard Disk. # 42 Prof Alberto Postiglione Università Salerno 21
Il Sistema Operativo 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. 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. # 43 Prof Alberto Postiglione Università Salerno 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 Ottimizzare le prestazioni: ridurre l overhead al minimo per ottenere il massimo throughput # 44 Prof Alberto Postiglione Università Salerno 22
LE UTILITA DI UN SISTEMA OPERATIVO Curtin 6.7 La Formattazione di un Disco Predisposizione del disco all uso da parte di un Sistema Operativo Creazione di una tabella, (detta File Allocation Table, FAT, oppure Master File Table, MFT, nei sistemi più moderni) con le informazioni principali sui files, sulla loro disposizione su disco e sui settori vuoti # 46 Prof Alberto Postiglione Università Salerno 23
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 Quando il disco è vuoto i cluster di un file vengono memorizzati in settori contigui 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. # 47 Prof Alberto Postiglione Università Salerno 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) la testina di lettura deve spostarsi molte volte sul disco per raccogliere e serializzare le varie parti di un file # 48 Prof Alberto Postiglione Università Salerno 24
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 A1 A2 A3 A4 B1 B2 B3 C1 C2 C3 C4 C5 C6 # 49 Prof Alberto Postiglione Università Salerno 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. 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. Scanning: programma che individua difetti o danneggiamenti della superficie del disco, problemi di allocazione dei files o problemi nella Tabella di allocazione # 50 Prof Alberto Postiglione Università Salerno 25
L eliminazione dei files e il cestino Cancellare un file significa eliminarlo dal file system La cancellazione avviene a livello logico: lo spazio occupato dal file cancellato non viene liberato immediatamente, ma viene marcato come libero Un file cancellato viene semplicemente spostato in una cartella speciale, il CESTINO, in modo da poterlo recuperare, se necessario. Dopo un certo numero di giorni, oppure in caso di riempimento del cestino, o in seguito ad un operazione esplicita, il cestino viene svuotato, e quindi lo spazio viene effettivamente liberato # 51 Prof Alberto Postiglione Università Salerno 26