1 Introduzione ai sistemi operativi Monica Bianchini Dipartimento di Ingegneria dellInformazione...

Click here to load reader

  • date post

    01-May-2015
  • Category

    Documents

  • view

    215
  • download

    0

Embed Size (px)

Transcript of 1 Introduzione ai sistemi operativi Monica Bianchini Dipartimento di Ingegneria dellInformazione...

  • Slide 1
  • 1 Introduzione ai sistemi operativi Monica Bianchini Dipartimento di Ingegneria dellInformazione E-mail: [email protected]
  • Slide 2
  • 2 Sommario Introduzione Scopo del sistema operativo Architettura del sistema operativo Storia dei sistemi operativi Struttura dei sistemi operativi La gestione dei processi La gestione della memoria Il file system La gestione dei dispositivi di I/O Linterfaccia utente Esempi di sistemi operativi UNIVAC Il primo calcolatore concepito ed impostato come prodotto commerciale, fu realizzato da Eckert e Mauchly (gli stessi costruttori dellENIAC) per lUfficio Centrale di Statistica degli Stati Uniti. Lalgebra di Boole truefalse Fu teorizzata dal matematico inglese George Boole (1810 1864) nel lavoro Analisi Matematica della Logica, pubblicato nel 1847. Include un insieme di operazioni su variabili logiche (o variabili booleane), che possono assumere i due soli valori true e false, indicati da 1 e 0. Le tecniche sviluppate nellalgebra booleana possono essere applicate allanalisi ed alla progettazione dei circuiti elettronici, poich essi sono realizzati con dispositivi che possono assumere solo due stati. tabella di verit Su insiemi di costanti e variabili logiche possono essere definite funzioni che hanno esse stesse la caratteristica di assumere due soli valori. La definizione di una funzione booleana pu essere effettuata per mezzo di una tabella di verit, che indica il valore della funzione in corrispondenza di ogni possibile configurazione dei valori degli argomenti. Le funzioni booleane possono essere scritte e manipolate anche con metodi algebrici, dato un insieme di funzioni (o operazioni) elementari tramite le quali poter esprimere ogni altra funzione. UNIVAC Il primo calcolatore concepito ed impostato come prodotto commerciale, fu realizzato da Eckert e Mauchly (gli stessi costruttori dellENIAC) per lUfficio Centrale di Statistica degli Stati Uniti. Lalgebra di Boole truefalse Fu teorizzata dal matematico inglese George Boole (1810 1864) nel lavoro Analisi Matematica della Logica, pubblicato nel 1847. Include un insieme di operazioni su variabili logiche (o variabili booleane), che possono assumere i due soli valori true e false, indicati da 1 e 0. Le tecniche sviluppate nellalgebra booleana possono essere applicate allanalisi ed alla progettazione dei circuiti elettronici, poich essi sono realizzati con dispositivi che possono assumere solo due stati. tabella di verit Su insiemi di costanti e variabili logiche possono essere definite funzioni che hanno esse stesse la caratteristica di assumere due soli valori. La definizione di una funzione booleana pu essere effettuata per mezzo di una tabella di verit, che indica il valore della funzione in corrispondenza di ogni possibile configurazione dei valori degli argomenti. Le funzioni booleane possono essere scritte e manipolate anche con metodi algebrici, dato un insieme di funzioni (o operazioni) elementari tramite le quali poter esprimere ogni altra funzione.
  • Slide 3
  • 3 Introduzione
  • Slide 4
  • 4 Introduzione Il software pu essere diviso in due grandi classi: programmi di sistema i programmi di sistema, che gestiscono le funzionalit del sistema di calcolo programmi applicativi i programmi applicativi, che risolvono i problemi degli utenti programmi di sistema Sistema Operativo Linsieme dei programmi di sistema viene comunemente identificato con il nome di Sistema Operativo (SO)Definizione controlla lesecuzione di programmi applicativi interfaccia fra le applicazioni e lhardware Un sistema operativo un programma che controlla lesecuzione di programmi applicativi ed agisce come interfaccia fra le applicazioni e lhardware del calcolatore
  • Slide 5
  • 5 Scopo del sistema operativo Gestione EFFICIENTE delle risorse del sistema di elaborazione Rendere AGEVOLE linterfaccia tra luomo e la macchina
  • Slide 6
  • 6 Gestione dei processi Gestione della memoria principale Gestione della memoria di massa (file system) Realizzazione dellinterfaccia utente Gestione dellaccesso simultaneo di pi utenti alla stessa macchina Esecuzione simultanea di pi processi sulla stessa macchina Rilevamento e gestione degli errori Accounting Compiti del sistema operativo
  • Slide 7
  • 7 Esempio: il SO come gestore risorse 1 Si consideri un ristorante con un capocuoco (che dirige la cucina) ed i suoi aiutanti, camerieri e clienti: I clienti scelgono un piatto dal men Un cameriere prende lordine e lo consegna al capocuoco Il capocuoco riceve lordine e assegna uno o pi aiutanti alla preparazione del piatto Ogni aiutante si dedicher alla preparazione di un piatto, il che potr richiedere pi attivit diverse Il capocuoco supervisiona la preparazione dei piatti e gestisce le risorse (limitate) disponibili
  • Slide 8
  • 8 Esempio: il SO come gestore risorse 2 Il capocuoco il sistema operativo! I clienti sono gli utenti Le ricette associate ai piatti sono i programmi Il men ed il cameriere costituiscono linterfaccia verso il sistema operativo (grafica e non) Gli aiutanti sono i processi La cucina il computer; pentole, fornelli, etc. sono le componenti hardware
  • Slide 9
  • 9 Esempio: il SO come gestore risorse 3 Problemi del capocuoco: Esecuzione fedele delle ricette Allocazione efficiente delle risorse esistenti (aiutanti, fornelli, etc.) Coordinamento efficiente degli aiutanti Licenziamento degli aiutanti che non si comportano secondo le regole Problemi del sistema operativo: Efficienza nelluso delle risorse (processori, memoria, dischi, etc.) Protezione nelluso delle risorse Coordinamento dei processi
  • Slide 10
  • 10 Il SO come macchina estesa 1 Visione a strati delle componenti hardware/software che compongo un elaboratore
  • Slide 11
  • 11 Il SO come macchina estesa 2 virtualizza macchina astratta Il SO pu essere inteso come uno strumento che virtualizza le caratteristiche dellhardware sottostante, offrendo allutente la visione di una macchina astratta pi potente e pi semplice da utilizzare di quella fisicamente disponibile In questa visione, un SO nasconde a programmatori/utenti i dettagli dellhardware e fornisce uninterfaccia conveniente e facile da usare agisce come intermediario tra programmatore/utente e hardware Parole chiave Indipendenza dallhardware Comodit duso Programmabilit
  • Slide 12
  • 12 I SO sono costituiti da un insieme di moduli, ciascuno dedicato a svolgere una determinata funzione I vari moduli del SO interagiscono tra loro secondo regole precise, al fine di realizzare le funzionalit di base della macchina Architettura del sistema operativo KERNEL Gestore dei Processi Gestore della Memoria Centrale Gestore dellI/O Gestore del File System Interfaccia utente
  • Slide 13
  • 13 Storia dei sistemi operativi
  • Slide 14
  • 14 Storia dei sistemi operativi Levoluzione dei sistemi operativi stata spinta stata spinta dal progresso tecnologico dellhardware ha guidato ha guidato il progresso tecnologico dellhardware Esempio Esempio: Gestione degli interrupt Protezione della memoria Memoria virtuale... Perch analizzare la storia dei sistemi operativi? Perch permette di capire lorigine di certe soluzioni presenti nei SO attuali Perch lapproccio migliore per capire come certe idee si sono sviluppate Perch alcune delle soluzioni pi antiche sono ancora utilizzate
  • Slide 15
  • 15 Storia dei sistemi di elaborazione Generazione 0: Babbage (17921871) macchina analitica Progetta la macchina analitica (programmabile, meccanica) Non aveva sistema operativo La prima programmatrice della storia Lady Ada Lovelace (figlia del poeta Lord Byron) Generazione 1: 19451955 Valvole e tavole di commutazione Generazione 2: 19551965 Transistor e sistemi batch Generazione 3: 19651980 Circuiti integrati, multiprogrammazione e timesharing Generazione 4: 1980oggi Personal computer
  • Slide 16
  • 16 Generazione 1: 19451955 Come venivano costruiti? Calcolatori a valvole e tavole di commutazione Come venivano usati? Solo calcoli numerici (calcolatori non elaboratori) Un singolo gruppo di persone progettava, costruiva, programmava e manuteneva il proprio computer Come venivano programmati? In linguaggio macchina (stringhe di 0 e 1) Programmazione su tavole di commutazione Nessun sistema operativo!
  • Slide 17
  • 17 Generazione 1: 19451955 Principali problemi: Scarsa affidabilit (guasti frequenti) Rigidit nellassegnazione dei ruoli Non esiste il concetto di programmatore come entit separata dal costruttore di computer e dallutente Utilizzazione lenta e complessa; loperatore doveva 1) caricare il programma da eseguire 2) inserire i dati di input 3) eseguire il programma 4) attendere il risultato 5) in caso di errore, ricominciare dal punto 1) Tutto ci a causa dellassenza del SO
  • Slide 18
  • 18 Generazione 2: 19551965 Come venivano costruiti? Introduzione dei transistor Costruzione di macchine pi affidabili ed economiche Come venivano usati? Gli elaboratori iniziano ad essere utilizzati per compiti diversi Si crea un mercato, grazie alle dimensioni ed al prezzo ridotti Avviene una separazione tra costruttori, operatori e programmatori Come venivano programmati? AssemblyFortran Linguaggi di alto livello: Assembly, Fortran Tramite schede perforate Sistemi operativi batch FORTRANASSEMBLYLINGUAGGIO MACCHINA FORTRAN ASSEMBLYLINGUAGGIO MACCHINA e = (a+b)*(c+d) LOAD a, %r0 10000001101101011010101010101000 LOAD b, %r1 ADD %r0, %r1 LOAD c, %r2 LOAD d, %r3 ADD %r2, %r3 MULT %r1, %r3 STORE %r3, e FORTRANASSEMBLYLINGUAGGIO MACCHINA FORTRAN ASSEMBLYLING