Parte 3 Sistemi Operativi Sistema operativo Il sistema operativo (Operating System - OS): – offre le operazioni base necessarie per: ♦ l’uso efficace del computer mediante funzionalità che non sono fornite direttamente dall’hardware ♦ agisce da intermediario fra l’Utente e l’Hardware, per fornire un ambiente nel quale l’utente possa eseguire i programmi applicativi in maniera “sicura” ed efficiente – è un insieme di programmi che gestisce tutte le funzioni basilari di un computer (gestione disco, tastiera, video, mouse, reti, ecc.) – installato nell’hard disk, è un software (di sistema) che viene caricato nella RAM all’accensione del computer (fase di boot) e rimane attivo fino allo spegnimento Informatica - A.A. 2010/2011 - Sistemi operativi 3.1 1 Sistema operativo - funzioni • Esegue il boot • Gestisce la memoria centrale (RAM) • Gestisce i dispositivi di input/output (disco, stampante, tastiera, video, mouse, ecc.) • Gestisce l’organizzazione logica dei file • Gestisce le connessioni alle reti e le relative comunicazioni di dati • Gestisce il caricamento e l’esecuzione di programmi • Gestisce gli account degli utenti Informatica - A.A. 2010/2011 - Sistemi operativi 3.2 Sistemi operativi - tipi Mondo MICROSOFT Windows Mondo Unix - like Linux Macintosh Hp/UX Informatica - A.A. 2010/2011 - Sistemi operativi 3.3 2 Sistemi operativi - PC Sistemi operativi più usati (su pc - marzo 2010): Rispetto al 2009: • Windows 7 ha già guadagnato una bella fetta di mercato portando a un declino di Windows Vista e dell' immortale Windows XP • In leggera flessione il Sistema Operativo di Apple, Mac OS X nonostante l'hype mediatico per il lancio del nuovissimo iPad • Linux invece rimane stabile Informatica - A.A. 2010/2011 - Sistemi operativi 3.4 Sistemi operativi – Smart Phone Android (Google) è il SO più usato (basato su kernel Linux), grazie al supporto di diversi partner: HTC, Samsung, LG, Motorola, Ericsson, Sony. A seguire Symbian (erede di EPOC, supportato ora quasi solo da Nokia) Poi IOS di Apple, BlackBerry OS di Research In Motion, e Windows Phone 7 e Windows Mobile di Microsoft forse penalizzati dalla recente uscita. Informatica - A.A. 2010/2011 - Sistemi operativi 3.5 3 Microsoft Windows – Le origini • La prima versione indipendente di Microsoft Windows versione 1.0 del 1985 - non disponeva di un gran numero di funzionalità ed ebbe scarso successo • Windows 1.0 non forniva un sistema operativo completo, ma era un'estensione dell'MS-DOS • A limitare le funzionalità di Windows erano soprattutto alcune cause legali con Apple: per esempio, le finestre dei programmi potevano apparire solo affiancate sullo schermo e non potevano essere sovrapposte; inoltre non vi era il "cestino", in quanto Apple sosteneva di detenere i diritti su questo paradigma • Microsoft in seguito rimosse entrambe le limitazioni sottoscrivendo un contratto di licenza Informatica - A.A. 2010/2011 - Sistemi operativi 3.6 Microsoft Windows – Le versioni • Venticinque anni di versioni: – 1.0 (1985) - 2.0 (1987) - 3.0 (1990) – 95 – NT – 98 – 2000 – XP – Vista - 7 Progettato come • Terzultimo: XP aggiornamento di • Penultimo (2007): Vista Vista: quando la (gestazione lunga e travagliata) • Ultimo (2009): Windows 7 Informatica - A.A. 2010/2011 - Sistemi operativi base di partenza è buona non si può sbagliare! 3.7 4 Unix – La storia Nasce nei Bell Laboratories AT&T all’interno del Computing Science Research Group − Idea di K. Thompson nel 1969 – prima versione in linguaggio assembler − D. Ritchie, B. Kernigam nel periodo1970-1973 continuano lo sviluppo in linguaggio C Successo enorme tra i programmatori Bell Laboratories AT&T Diffusosi rapidamente in ambito accademico (CMU, Berkeley, ..., Helsinki) grazie al fatto che i sorgenti (scritti in linguaggio di programmazione C dal 1973) venivano inviati a un prezzo simbolico Informatica - A.A. 2010/2011 - Sistemi operativi 3.8 Unix – La storia AT&T accusata di violare legge Antitrust nel 1974 − − AT&T non poteva più fare affari in campi che non fossero la telegrafia e la telefonia UNIX provided “as is”, no support L'assenza di supporto ufficiale forzò gli utenti UNIX a scambiarsi informazioni − Idee, manuali, programmi, bug fix Nacque una “diaspora” di varianti UNIX (AT&T, BSD, SCO – versioni commerciali - e… GNU/Linux!) • Ora usato principalmente in ambito aziendale e su computer (server, router) inseriti in rete • Oggi il SO Unix più diffuso è Sun Solaris Informatica - A.A. 2010/2011 - Sistemi operativi 3.9 5 Il progetto GNU Nel 1971, un giovane ricercatore (Richard Stallman) viene assunto nel Laboratorio di Intelligenza Artificiale dell'MIT Era un tipo particolare… Nel 1983 Stallman decide di scrivere un nuovo sistema operativo compatibile con il modello UNIX ma non proprietario GNU: GNU is not UNIX Nasce il software libero – open source 1985 Free Software Foundation Informatica - A.A. 2010/2011 - Sistemi operativi 3.10 Linux - Origini Un grande problema del progetto GNU è l'assenza di un kernel − − Il nucleo del sistema operativo Doveva essere basato su microkernel che non era ancora pronto a quel tempo L'ambiente GNU deve appoggiarsi su kernel preesistenti (UNIX), limitandone di fatto l'adozione Nel 1991, un giovane studente universitario di Helsinki, Linus Torvalds, decide di scrivere il pezzo mancante (il kernel) Informatica - A.A. 2010/2011 - Sistemi operativi 3.11 6 Linux - Origini • Nel settembre 1991 viene completata la versione 0.99 del Kernel Linux • Il motivo di tanto successo è stato dovuto alla possibilità di reperire liberamente il codice sorgente di Linux • 16 Gennaio 1992: nuova versione che porta novità a livello legale circa la licenza – In precedenza era esplicitamente vietato ottenere un qualsiasi ritorno economico dalla sua diffusione – Da questa versione viene adottata la GNU General Public License (GPL): essa concede ai licenziatari il permesso di modificare il programma, di copiarlo e di ridistribuirlo con o senza modifiche, gratuitamente o a pagamento – > Vincolo di rilascio delle modifiche al pubblico Informatica - A.A. 2010/2011 - Sistemi operativi 3.12 Free software Termine coniato da Richard Stallman Il fatto che il software free sia gratuito non è in alcun modo garantito In inglese c'è una ambiguità terminologica − Free=Libero − Free=Gratuito Stallman chiarisce il concetto con il motto: “Free as in freedom, not as in free beer” Informatica - A.A. 2010/2011 - Sistemi operativi 3.13 7 Mac OS • Mac OS è il sistema operativo dedicato della Apple per i computer Macintosh a partire dal 1984 • Acronimo di Macintosh Operating System • Fu il primo sistema operativo ad utilizzare con successo un'interfaccia grafica • Mac OS è in realtà riferito a 2 famiglie di sistemi operativi: – Mac OS Classic: il SO montato sul primo modello di Macintosh nel 1984 ed evolutosi, attraverso numerose versioni, fino al 2001 (attualmente non più supportato) – L'attuale Mac OS X (pronuncia ten), completamente riscritto e basato su piattaforma UNIX, commercializzato a partire dal 2001 Informatica - A.A. 2010/2011 - Sistemi operativi 3.14 Parte 3 Modulo 1: Struttura del Sistema Operativo 8 Sistemi operativi - componenti • Kernel (nucleo) – la parte più vicina all’hardware • Programmi di gestione dei dispositivi (driver) • Interprete dei comandi • Gestore della memoria primaria • Gestore dei processori • Gestore dell’I/O • Gestore dei file (File System) Informatica - A.A. 2010/2011 - Sistemi operativi 3.16 Sistemi operativi - componenti Hardware Sistema Op. • Elementi principali di un sistema operativo e dei componenti hardware: Kernel del Sistema Operativo (gestione memoria, CPU) Sottosistema di gestione Input/Output Driver SCSI Driver Keyboard Driver Mouse Driver PCI Bus Driver Floppy Driver ATAPI Controller SCSI Controller Keyboard Controller Mouse Controller PCI Bus Controller Floppy Controller ATAPI SCSI Bus Tastiera Mouse PCI Bus Floppy ATAPI Devices (es. CD-ROM) Meglio fare un passo indietro… Informatica - A.A. 2010/2011 - Sistemi operativi 3.17 9 Sistema di Elaborazione + Utente Hardware Software UTENTE … APPLICAZIONI Sistema Operativo ? Controller SCSI Controller Keyboard Controller Mouse Controller PCI Bus Controller Floppy Controller ATAPI SCSI Bus Tastiera Mouse PCI Bus Floppy CD-ROM Informatica - A.A. 2010/2011 - Sistemi operativi 3.18 Un quadro più preciso Hardware Sistema Operativo SW UTENTE … APPLICAZIONI Interfaccia utente Gestione file system Gestione memoria, Gestione CPU Sottosistema di gestione Input/Output Driver SCSI Driver Keyboard Driver Mouse Driver PCI Bus Driver Floppy Driver ATAPI Controller SCSI Controller Keyboard Controller Mouse Controller PCI Bus Controller Floppy Controller ATAPI SCSI Bus Tastiera Mouse PCI Bus Floppy (es. CD-ROM) Informatica - A.A. 2010/2011 - Sistemi operativi 3.19 10 Scopi di un Sistema Operativo 1. Rendere disponibile un’interfaccia user-friendly (amichevole) per l’interazione uomo-macchina 2. Fornire un supporto interattivo e per utenti multipli (nel caso di sistema multi-programmato o multi-tasking) 2.1 Gestire i Processi (e l’uso della CPU) 2.2 Gestire la Memoria Centrale 3. Fornire un supporto uniforme per l’Input/Output 4. Gestire la memoria secondaria Informatica - A.A. 2010/2011 - Sistemi operativi 3.20 Prima impressione • Se l’impressione che avete avuto è che: – il Sistema Operativo gestisca tutto, – senza il Sistema Operativo, la vita degli informatici professionisti sarebbe molto più complessa – senza il Sistema Operativo, la vita degli utilizzatori dell’informatica sarebbe molto più complessa – l’evoluzione e la diffusione dell’informatica si deve in larga parte anche ai progressi nel campo dei sistemi operativi … siete sulla buona strada per capire Informatica - A.A. 2010/2011 - Sistemi operativi 3.21 11 Funzioni del Sistema Operativo • Il Sistema Operativo è un software (di sistema) sempre attivo, ovvero sempre caricato in memoria centrale, in tutte le fasi: – Fase di avvio (bootstrap) – Fase di funzionamento – Fase di spegnimento Informatica - A.A. 2010/2011 - Sistemi operativi 3.22 Fase di avvio: BOOTSTRAP • Fase iniziale che va dall’accensione del computer fino al caricamento del Sistema Operativo in memoria principale (RAM) per poterlo rendere attivo • Il bootstrap avviene in fasi successive: – prima viene caricata una piccola parte di istruzioni (BIOS) che si trova in un supporto di memoria elettronica permanente (Read Only Memory (ROM) o più di recente EEPROM riscrivibili), separata dalla RAM, che sa dove andare a prendere e caricare un’altra, ... , – … fino a che tutto il Sistema Operativo (necessario) è in memoria centrale e in esecuzione Informatica - A.A. 2010/2011 - Sistemi operativi 3.23 12 BIOS • BIOS (Basic Input Output System) • Fornisce una serie di funzioni di base per l'accesso all'hardware e alle periferiche integrate nella scheda madre – Controlli preliminari sulla funzionalità dei componenti fondamentali (RAM, tastiera, dischi, porte) – Inizializzazione corretta delle periferiche – Lettura di alcuni parametri (come ora e data correnti) da una piccola memoria RAM CMOS tamponata (mantenuta alimentata) – Caricamento del boot loader (primo settore di un disco impostato da BIOS), dove c’è indicata la locazione iniziale del sistema operativo vero e proprio Informatica - A.A. 2010/2011 - Sistemi operativi 3.24 Bootstrap Informatica - A.A. 2010/2011 - Sistemi operativi 3.25 13 Fase di spegnimento: SHUTDOWN • Quando il computer è in funzione, utilizza molti dati temporanei che (per efficienza) vengono mantenuti in memoria centrale (RAM) e solo periodicamente o a richiesta vengono memorizzati su memoria secondaria (disco) • Lo shutdown consente di “fare ordine e pulizia”: – le informazioni utili temporaneamente in RAM vengono copiate su memoria secondaria che non è volatile – le informazioni non necessarie vengono eliminate – i “canali” aperti vengono chiusi, ecc. • Se lo shutdown non viene effettuato correttamente (es., guasto, black-out) c’è il rischio di perdere informazioni utili o di trovarsi con dati incongruenti Informatica - A.A. 2010/2011 - Sistemi operativi 3.26 Componenti • I Sistemi Operativi sono generalmente costituiti da un insieme di moduli, ciascuno dedicato a svolgere una determinata funzione • I vari moduli del Sistemi Operativi interagiscono tra di loro secondo regole precise al fine di realizzare le funzionalità di base dalla macchina Informatica - A.A. 2010/2011 - Sistemi operativi 3.27 14 Componenti Interfaccia utente Gestore dell’I/O Gestore dei Processi Gestore del File System Gestore della Memoria Centrale *KERNEL Informatica - A.A. 2010/2011 - Sistemi operativi 3.28 Componenti • Nucleo (kernel) • Costituito da quei programmi che realizzano le funzioni più critiche e più vicine all’hardware come la Gestione dei programmi “di base”, della memoria primaria e del controllo dei processi • File System • Gestisce la memorizzazione, il reperimento,il trasferimento delle informazioni contenute nelle memorie di massa. Consente all'utente di organizzare tali dati servendosi delle strutture logiche e delle funzioni ad alto livello • Gestione dell’I/O • Gestisce l'Input/Output ovvero le periferiche di sistema • Interfaccia utente (“Shell”) • Manipolazione (di solito visuale ed amichevole) di file e directory, Informazioni sullo stato, caricamento ed esecuzione di programmi Informatica - A.A. 2010/2011 - Sistemi operativi 3.29 15 Kernel del Sistema Operativo • Kernel (nocciolo, nucleo) Contiene i programmi per la gestione delle funzioni base del calcolatore • Kernel suddiviso in moduli. Ogni modulo ha una funzione diversa • Funzioni più importanti: – gestione processore – gestione processi – gestione memoria (principale e virtuale) Informatica - A.A. 2010/2011 - Sistemi operativi 3.30 Shell del Sistema operativo • Shell (guscio): interfaccia tra SO e utenti • Di solito grafica (GUI – Graphical User Interface), ma anche testuale Informatica - A.A. 2010/2011 - Sistemi operativi 3.31 16 Parte 3 Modulo 2: Interfaccia utente Componenti Interfaccia utente Gestore dell’I/O Gestore dei Processi Gestore del File System Gestore della Memoria Centrale *KERNEL Informatica - A.A. 2010/2011 - Sistemi operativi 3.33 17 Interfaccia utente • Tutti i Sistemi Operativi implementano dei meccanismi per rendere agevole l’utilizzo del sistema da parte degli utente • L’insieme di questi meccanismi di accesso al computer prende il nome di Interfaccia Utente Informatica - A.A. 2010/2011 - Sistemi operativi 3.34 Due tipi di interfaccia • Interfaccia testuale (o a riga di comando) – Interprete dei comandi (shell) – Esempi: Linux/Unix (prime versioni), MS-DOS • Interfaccia grafica (a finestre) Graphical User Interface (GUI) – L’output dei vari programmi viene visualizzato in maniera grafica all’interno di finestre – L’utilizzo di disegni rende più intuitivo l’uso del calcolatore – Esempi: Linux/Unix, Microsoft WINDOWS, MAC Informatica - A.A. 2010/2011 - Sistemi operativi 3.35 18 Interfaccia testuale Informatica - A.A. 2010/2011 - Sistemi operativi 3.36 Interfaccia grafica (GUI) Informatica - A.A. 2010/2011 - Sistemi operativi 3.37 19 Il desktop come interfaccia • Desktop = l’immagine visualizzata sul monitor quando si accende il PC – è colorata o dotata di sfondo – l’informazione è visualizzata lungo i bordi esterni del desktop, sotto forma di icone – ci sono tre tipi base di icone: ♦ applicazioni ♦ cartelle ♦ file (programmi) (directory) (documenti) Informatica - A.A. 2010/2011 - Sistemi operativi 3.38 Il desktop (cont.) • Il “desktop” è una metafora – ORIGINE: lavorare al PC è come sedere ad una scrivania ♦ si possono archiviare lavori (file) ♦ organizzare ♦ usare gli archivi in raccoglitori (directory) applicazioni (un programma o la calcolatrice) – OGGI: stare al PC è molto di più di una scrivania: riproduzione video e audio, giochi, apprendimento, navigazione Web, … Informatica - A.A. 2010/2011 - Sistemi operativi 3.39 20 PC per Ascoltare la musica • Esempio di metafora per l’interfaccia utente – il software che riproduce i CD sul computer sfrutta un’interfaccia grafica (GUI) – la GUI somiglia a un comune lettore musicale ♦i pulsanti somigliano a quelli di un tipico lettore CD ♦ l’utente può applicare alla GUI la sua conoscenza del funzionamento del lettore CD fisico senza avere bisogno di ulteriori istruzioni perché la simbologia gli è familiare Informatica - A.A. 2010/2011 - Sistemi operativi 3.40 Simboli Ci sono pulsanti, controlli a scorrimento, pulsanti triangolari, ecc. Tutte forme che mirano ad essere intuitive (da usare senza dover consultare il manuale) Informatica - A.A. 2010/2011 - Sistemi operativi 3.41 21 Esempio: iTunes Informatica - A.A. 2010/2011 - Sistemi operativi 3.42 Menu • Lista di operazioni che il software può eseguire • Quali operazioni sono disponibili (operazioni simili sono raggruppate) • Prendono la forma di una barra dei menu • Tutte le operazioni che un programma può eseguire sono elencate nei menu Informatica - A.A. 2010/2011 - Sistemi operativi 3.43 22 Funzionamento dei menu • I menu che si aprono “scendendo giù” dalla barra si chiamano menu a tendina • Quando si clicca il pulsante destro del mouse sono visualizzati i cosiddetti menu pop-up • Con un click del mouse si apre il menu, che rivela un elenco di operazioni disponibili • Scorrendo il mouse lungo la lista, il comando prescelto viene evidenziato • Cliccare o rilasciare il pulsante sul comando evidenziato fa sì che il computer esegua l’operazione Informatica - A.A. 2010/2011 - Sistemi operativi 3.44 Informatica - A.A. 2010/2011 - Sistemi operativi 3.45 23 Parte 3 Modulo 3: Gestione delle Periferiche (Dispositivi di input/output) Dispositivi di Input/Output • I dispositivi sono molto eterogenei per velocità e funzioni: oggetti complessi da gestire! – Ad esempio, la maggior parte dei dispositivi sono seriali (es., stampante) e possono essere usati da un solo processo alla volta – Tuttavia, molti dispositivi (es., stampante di rete) possono ricevere molte richieste contemporaneamente Servono: • Meccanismi per la coordinazione delle varie richieste • Diverse strategie per la gestione dei processi in attesa di utilizzare una risorsa Informatica - A.A. 2010/2011 - Sistemi operativi 3.47 24 Necessità per la gestione Input/Output • Anche detta Gestione delle periferiche • Il Sistema Operativo deve – Fornire all’utente ♦ Visione astratta dei dispositivi (rende trasparenti le caratteristiche fisiche delle periferiche) ♦ Comandi per utilizzare i dispositivi – Ottimizzare l’utilizzo dei dispositivi ♦ Gestire la comunicazione di segnali verso di loro ♦ Coordinare l’accesso di più utenti (processi) Informatica - A.A. 2010/2011 - Sistemi operativi 3.48 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 sottostanti Informatica - A.A. 2010/2011 - Sistemi operativi 3.49 25 Gestione delle Periferiche di Input/Output • Il sottosistema di I/O del sistema operativo è strutturato in moduli, chiamati driver, che incapsulano le particolarità e i dettagli dei vari dispositivi • Device Driver delle periferiche (uno per ogni periferica e per ogni sistema operativo!) – Un driver è specifico sia dal punto di vista dell'hardware che pilota, sia dal punto di vista del sistema operativo per cui è scritto Non è possibile utilizzare driver scritti per un sistema operativo su uno differente, perché l'interfaccia è generalmente diversa! Informatica - A.A. 2010/2011 - Sistemi operativi 3.50 Device Driver • Il controllo dei dispositivi di I/O avviene attraverso speciali programmi detti Device Driver • Ogni dispositivo che si connette al computer (compresi lettori DVD, pen drive, macchina fotografica, ecc.) ha bisogno di un device driver che funga da interfaccia tra il dispositivo fisico e l’utente • I device driver sono spesso realizzati dai produttori dei dispositivi stessi che ne conoscono le caratteristiche fisiche in maniera approfondita Informatica - A.A. 2010/2011 - Sistemi operativi 3.51 26 Device Driver (Cont.) • Questi programmi implementano normalmente le seguenti funzioni: – Rendono trasparenti le caratteristiche fisiche tipiche di ogni dispositivo – Gestiscono la comunicazione dei segnali verso i dispositivi – Gestiscono i conflitti, nel caso in cui due o più processi vogliono accedere contemporaneamente allo stesso dispositivo Informatica - A.A. 2010/2011 - Sistemi operativi 3.52 Hardware Sistema Op. Device Driver (Cont.) Kernel del Sistema Operativo (gestione memoria, CPU) Sottosistema di gestione Input/Output Driver SCSI Driver Keyboard Driver Mouse Driver PCI Bus Driver Floppy Driver ATAPI Controller SCSI Controller Keyboard Controller Mouse Controller PCI Bus Controller Floppy Controller ATAPI SCSI Bus Tastiera Mouse PCI Bus Floppy (es. CD-ROM) Informatica - A.A. 2010/2011 - Sistemi operativi 3.53 27 Interrupt • Interrupt o interruzione: segnale asincrono che indica il bisogno dell’attenzione del sistema operativo • Generati dai controller dei dispositivi esterni alla CPU (di solito periferiche - dispositivi di Input/Output) • Ogni dispositivo è controllato da un apposito strumento hardware , detto controller, che ha il compito di comunicare il verificarsi di eventi esterni (dati disponibili, periferica libera, etc.) Informatica - A.A. 2010/2011 - Sistemi operativi 3.54 Spooling • Simultaneous Peripheral Operations On-Line (Spool) • Meccanismo che svincola la stampa di un file dal resto dell’elaborazione: il sistema continua la sua attività mentre la stampa è in corso • Stampante più lenta della CPU un file non può essere trasferito troppo velocemente dalla CPU alla stampante • Invece di inviare il file in maniera sincrona: • Il file viene messo su disco • Il Sistema Operativo crea un processo di spooling che fa procedere la stampa • Il processo che ha richiesto la stampa è svincolato da essa • Lo spooling può andare in esecuzione anche su un elaboratore remoto collegato in rete (print server) lo eseguirà un’altra CPU Informatica - A.A. 2010/2011 - Sistemi operativi 3.55 28 DMA (Direct Memory Access) • Meccanismo che permette ad alcune periferiche di accedere direttamente alla memoria di sistema per scambiare dati, o leggere o scrivere, senza chiamare in causa la CPU per ogni byte trasferito tramite il meccanismo usuale dell'interrupt e la successiva richiesta di operazione desiderata • Un singolo interrupt viene generato per un intero blocco trasferito • Ha il compito di gestire i dati permettendo a periferiche che lavorano a velocità diverse di comunicare senza interrompere continuamente la CPU • Usato da molti sistemi per unità a disco, schede grafiche e schede audio Informatica - A.A. 2010/2011 - Sistemi operativi 3.56 29