Introduzione ai Sistemi Operativi Corso di Sistemi Operativi Proff. Cotroneo Domenico De Carlini Ugo Mazzeo Antonino Tramontana Porfirio 1 Libri per il corso z Libro di testo: z z Ancilotti – Boari – Ciampolini – Lipari – Sistemi Operativi – McGraw Hill Libri consigliati per approfondimento: z z z z Silberschatz – Galvin – Gagne - Sistemi operativi. Concetti ed esempi – Pearson Education Italia Ancilotti – Boari – Programmazione concorrente – McGraw Hill Stallings - Sistemi Operativi, Jackson Libri Tanembaum – I moderni Sistemi Operativi – Prentice Hall 2 Introduzione ai S.O. z Sommario della lezione: Introduzione ai Sistemi Operativi z Cenni Storici z Classificazione z z Riferimenti z P. Ancilotti, M.Boari, A. Ciampolini, G. Lipari, “Sistemi Operativi”, Mc-Graw-Hill (Cap.1) 3 Perché studiare i SO z z z Non ci sono molti sistemi operativi in corso di sviluppo E' molto improbabile che sviluppiate un sistema operativo durante la vostra carriera professionale .....allora, perchè si studiano? 4 Perché studiare i SO z i SO sono dovunque - essi hanno la funzione primaria di gestire le risorse di calcolo z Un SO fornisce un astrazione delle risorse... dando l'"illusione" all'utente di avere una memoria "infinita", una CPU veloce, dedicata ad ogni utente, z I SO forniscono un accesso uniforme (virtualizzato) a risorse estremamente eterogenee z I SO costituiscono il punto di incontro tra hardware e software z La conoscenza della struttura interna e dei principi di funzionamento di SO è indispensabile per la programmazione di sistema e permette di scrivere programmi più efficienti 5 I sistemi Operativi z z Un Sistema Operativo (S.O.) è un insieme di programmi che operano sull’hardware di un calcolatore con l’obiettivo di: z semplificare lo sviluppo di programmi z realizzare politiche di gestione delle risorse hardware Il Sistema Operativo si pone come interfaccia tra l’utente (o il software) e l’hardware, fornendone un’astrazione 6 I sistemi Operativi Il SO …. z … definisce una macchina virtuale (o estesa) e quindi un insieme di astrazioni che semplificano lo sviluppo delle applicazioni (ad es. Il SO fornisce il concetto di FILE invece di quello di “insiene di byte memorizzati in un disco”) z …realizza politiche di gestione delle risorse hardware definendo i criteri con cui assegnare una risorsa a fronte di più richieste contemporanee 7 Struttura di un Sistema di elaborazione utenti interprete dei comandi e comandi compilatori e interpreti librerie di sistema interfaccia delle chiamate del sistema operativo segnali gestione dei terminali sistema di I/O a caratteri driver di terminali file system scheduling della CPU avvicendamento sostituzione delle pagine sistema di I/O a blocchi paginazione su richiesta driver di nastri e dischi memoria virtuale interfaccia del Sistema Operativo con l’architettura fisica controllore di terminali terminali controllori di dispositivi dischi e nastri controllore di memoria memoria fisica 8 Struttura di un Sistema di elaborazione interf. utenti interf. di libreria interf. system call utenti programmi di utilità (shell, compiler, …) libreria standard (open, close, read, write, ..) Sistema Operativo (process management, memory management, file system, I/O, ...) modo utente modo kernel hardware (CPU, memoria, dischi, terminali, …) 9 Un po’ di storia… z Prima fase: Hardware costoso, personale economico z z z z Seconda fase: Hw economico, personale costoso z z Sistemi Time-sharing (utenti che utilizzano un terminale economico per collegarsi ad un server condiviso) Terza fase: Hw molto economico, personale molto costoso z z z Utente alla console: sistemi “single-user” Sistemi Batch Sistemi Multiprogrammati Personal Computing: un sistema per utente Distributed Computing: tanti sistemi per utente Quarta fase: Servizi a maggiore qualità z z Sistemi Operativi Real-Time ; Sistemi transazionali 10