 
                                Politecnico di Milano Sistemi Operativi ed interazione con HW e CAD Corsi di Informatica Grafica Prof. Manuel Roveri Dipartimento di Elettronica e Informazione [email protected] Politecnico di Milano Indice  Il Sistema Operativo ◦ ◦ ◦ ◦ ◦ Software di sistema e applicativo Architettura di un sistema operativo Classificazione dei sistemi operativi Bootstrap Panoramica dei principali sistemi operativi  MS DOS, MS Windows, UNIX, Linux, BSD, Mac OS  Interazione tra SO, HW e CAD ◦ Un esempio pratico: la grafica computerizzata 2 Politecnico di Milano 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 3 Politecnico di Milano 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 4 Politecnico di Milano Sistemi Operativi MS-DOS  MS-Windows (95, 98, 2000, XP, Vista)  Unix  ◦ Commerciali: Sun Solaris, IBM AIX, HP-UX,… ◦ Linux ◦ BSD  Mac OS ◦ Mac OS X  Altri (IBM AS/400, Symbian,…) 5 Politecnico di Milano 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 6 Politecnico di Milano Architettura di un S.O. - 2 Programmi utente Interfacce utente Interprete dei comandi Interfaccia grafica Gestore del file system Gestore delle periferiche Gestori di risorse (kernel) Gestore della memoria Gestore dei processi (nucleo) Macchina fisica Politecnico di Milano 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 8 Politecnico di Milano Il Nucleo  La macchina virtuale realizzata dal nucleo Processore virtuale Processore virtuale ... Processore virtuale Bus di sistema Disco Memoria centrale Interfaccia delle periferiche 9 Politecnico di Milano 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 10 Politecnico di Milano 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 Disco Interfaccia delle periferiche 11 Politecnico di Milano 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 12 Il gestore delle periferiche Politecnico di Milano  La macchina virtuale realizzata dal gestore delle periferiche Interfaccia periferiche virtuali Memoria virtuale Bus Interfaccia periferiche virtuali Memoria virtuale ... Processore virtuale Bus Processore virtuale Bus di sistema Disco 13 Politecnico di Milano 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 14 Politecnico di Milano 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 15 Politecnico di Milano 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. curriculum_vitae.doc ◦ Il filename vero e proprio (curriculum_vitae) ◦ L’estensione (doc) 16 Politecnico di Milano 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 .dwg  file di AutoCAD ... 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 17 Politecnico di Milano 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 18 Il gestore del file system Politecnico di Milano D: Documenti Downloads Temp Incoming ... ... 19 Politecnico di Milano Il gestore del file system  Memoria virtuale La macchina virtuale realizzata dal gestore del file system Interfaccia periferiche virtuali Bus File ... Memoria virtuale File ... Processore virtuale Interfaccia periferiche virtuali File ... File Bus Processore virtuale Bus di sistema 20 Politecnico di Milano 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 21 Politecnico di Milano Una possibile classificazione dei moderni S.O. ◦ 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 22 Politecnico di Milano Svantaggi dei sistemi monoprocessore monomono-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 23 Multitasking (time sharing) Politecnico di Milano     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 24 Politecnico di Milano Stati di un processo Selezione primo processo pronto e sua esecuzione Inizio esecuzione Processo in esecuzione Processi pronti Termine quanto di tempo Richiesta di operazione di I/O Completamento operazione di I/O (evento esterno atteso) Processo in attesa 25 Politecnico di Milano 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) 26 Politecnico di Milano Sistemi mono e multimulti-processore  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 27 Politecnico di Milano 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 28 Politecnico di Milano Bootstrap 29 Politecnico di Milano MS--DOS MS    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) ◦ … 30 Politecnico di Milano 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 31 Breve storia di windows 1/2 Politecnico di Milano         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. 32 Breve storia di windows 2/2 Politecnico di Milano  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.  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.  Nel 2009 arriva Windows 7 ... 33 Politecnico di Milano 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) 34 Linux Politecnico di Milano   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à. 35 Politecnico di Milano Linux Gnome   KDE 36 Architettura MAC OS-X MAC OSOS-X Politecnico di Milano    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. Applicazioni GUI  Kernel, gestori di risorse e servizi di base 37 Politecnico di Milano Un esempio pratico: la grafica computerizzata Interazione tra HW, SO e CAD 38 Politecnico di Milano Un esempio pratico: la grafica computerizzata Hard Disk RAM Monitor Sistema Operativo Sistema Operativo Desktop AutoCAD File di salvataggio AutoCAD Accensione del computer 39 Politecnico di Milano Un esempio pratico: la grafica computerizzata (2) Hard Disk RAM Sistema Operativo Sistema Operativo AutoCAD AutoCAD File di salvataggio AutoCAD Dati di AutoCAD Monitor Frame Buffer Finestra di AutoCAD Display window 000000000000 000000000000 000000000000 000000000000 000000000000 Attivazione Programma AutoCAD 40 Politecnico di Milano Un esempio pratico: la grafica computerizzata (3) Hard Disk RAM Sistema Operativo Sistema Operativo AutoCAD AutoCAD File di salvataggio AutoCAD Monitor Dati di AutoCAD Frame Buffer Line X1Y1-X2Y2 000000100000 000001000000 000010000000 000100000000 000000000000 Finestra di AutoCAD Display window Generazione di una linea 41 Politecnico di Milano Un esempio pratico: la grafica computerizzata (4) Hard Disk RAM Sistema Operativo Sistema Operativo AutoCAD AutoCAD File di salvataggio AutoCAD Monitor Dati di AutoCAD Frame Buffer Line X1Y1-X2Y2 Circle X0Y0-R0 000000100000 000111100000 001010010000 000111100000 000000000000 Finestra di AutoCAD Display window Generazione di un cerchio 42 Politecnico di Milano Un esempio pratico: la grafica computerizzata (5) Hard Disk RAM Monitor Sistema Operativo Sistema Operativo AutoCAD AutoCAD File di salvataggio AutoCAD Dati di AutoCAD Frame Buffer Line X1Y1-X2Y2 Circle X0Y0-R0 Line X1Y1-X2Y2 Circle X0Y0-R0 000000100000 000111100000 001010010000 000111100000 000000000000 Salvataggio su file Finestra di AutoCAD Display window 43 Politecnico di Milano Un esempio pratico: la grafica computerizzata (6) Hard Disk RAM Monitor Sistema Operativo Sistema Operativo AutoCAD AutoCAD File di salvataggio AutoCAD Dati di AutoCAD Frame Buffer Line X1Y1-X2Y2 Circle X0Y0-R0 Circle X0Y0-R0 000000000000 000111100000 001000010000 000111100000 000000000000 Rimozione della linea Finestra di AutoCAD Display window 44 Politecnico di Milano Un esempio pratico: la grafica computerizzata (7) Hard Disk RAM Monitor Sistema Operativo Sistema Operativo AutoCAD AutoCAD File di salvataggio AutoCAD Dati di AutoCAD Frame Buffer Circle X0Y0-R0 Circle X0Y0-R0 000000000000 000111100000 001000010000 000111100000 000000000000 Salvataggio su file Finestra di AutoCAD Display window 45