sistemi operativi
TRANSCRIPT
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Sistemi Operativi
Mauro Brunato, Michele Grisafi
Dipartimenti di Ingegneria e Scienze dell’InformazioneUniversita di Trento
Anno Accademico 2020-2021, secondo semestreUltima revisione: 28 febbraio 2021
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Docenti
Mauro Brunatoe-mail: [email protected]
Michele Grisafie-mail: [email protected]
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Link essenziali
Il corso e esclusivamente online.
DidatticaOnline
https://didatticaonline.unitn.it/dol/course/view.
php?id=30893
Zoom (tutte le lezioni, teoria e laboratorio)
https://unitn.zoom.us/j/81837009623
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Struttura e orario del corso
12 crediti formativi (96 ore) suddivisi fra teoria e laboratorio:
Lunedı 08:30–11:30 Laboratorio(3h divise in due sessioni da 1h15’ con pausa intermedia);
Martedı 08:30–10:30 Teoria(2h in una sola sessione);
Giovedı 08:30–11:30 Teoria(3h divise in due sessioni da 1h15’ con pausa intermedia)
Alcune ore di teoria (circa due a settimana) saranno dedicate asvolgere e discutere esercizi.Sospensioni:
martedı 16 marzo (ICT Days)
Lunedı 5 aprile (Pasquetta)
Giovedı 15 aprile (Prove parziali)
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Esame
(In via di definizione — la versione definitiva sara comunicata abreve.)
Due prove di laboratorio, svolte durante le settimanepreviste per le prove parziali (12 aprile e 7 giugno),conteranno complessivamente per il 50% del voto.
Un appello scritto con esercizi e domande di teoria contaraper il restante 50% del voto.
Alcune regole:
Per accedere alla prova scritta e necessaria la sufficienza(≥ 18/30) nell’esame di laboratorio;
per superare l’esame e necessaria la sufficienza in tutte leprove;
la prova di laboratorio resta valida per un anno;
se insufficienti, non sara possibile partecipare a un altroappello della stessa sessione.
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Domande/ricevimento
Utilizzare al meglio tutti gli strumenti messi a disposizione daMoodle (forum, etc.)Ricevimento: concordare via email.
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Bibliografia
I testi non sono obbligatori, e la maggior parte degli argomentie coperta da qualunque libro di base. E importante non fidarsidelle sole dispense, ma avere a disposizione qualcheriferimento stampato o online.
Abraham Silberschatz, Peter Galvin, Greg Gagne.Operating System Concepts, 9th Edition.John Wiley & Sons, Inc., 2005.ISBN: 978-1-118-09375-7.
Daniel Bovet, Marco Cesati.Understanding the Linux Kernel, 3rd Edition.O’Reilly.ISBN: 978-0-596-00565-8.
Nota bene — Vanno benissimo anche le edizioni tradotte!
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Approfondimenti
Andrew Tanenbaum, Herbert Bos. ModernOperating Systems, 4th Edition. Pearson HigherEducation, 2014. ISBN: 978-1-292-06142-9.
P. Ancillotti, M. Boari. Principi e tecniche diprogrammazione concorrente. Ed. UTET Libreria.
B. Kernighan, D. Ritchie. The C ProgrammingLanguage, Second Edition. Prentice Hall, Inc., 1988.ISBN 0-13-110362-8.
G. Glass, K. Ables. Linux for Programmers and Users.Pearson Prentice Hall, ISBN: 0-13-185748-7.
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Prerequisiti
Bagaglio matematico di base (analisi, algebra lineare)
Programmazione (linguaggio C)
Architettura degli elaboratori
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Programma del corso — teoria
Definizione e storia; panoramica sull’architettura
Processi: definizione, gestione, scheduling,sincronizzazione
Gestione dei deadlock
Gestione della memoria primaria
Gestione della memoria virtuale
Memoria secondaria: struttura del disco, gestione delfilesystem
Sottosistema di input/output
Sicurezza e Protezione
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Programma del corso — laboratorio
Richiami e approfondimenti sul linguaggio C — Uso di gcce make
Il sistema operativo Linux — Installazione, chiamate disistema, primitive di sincronizzazione
Progetti e assignment
Ulteriori dettagli saranno formiti dal docente di laboratorio.
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Che cos’e un sistema operativo?
E un insieme di programmi che fa da intermediario fral’hardware (processore, memoria, periferiche) e i programmiutente.
Gestisce e rende efficiente l’uso delle risorse hardware
Astrae l’hardware esponendo un’interfaccia uniforme per ilsuo utilizzo (file, allocazione della memoria, rete)
Come fa?
Modalita “privilegiata” (kernel mode, supervisor mode)con istruzioni macchina precluse ai programmi utente.
I programmi utente operano in “user mode” e possonoinvocare funzioni esposte dal SO.
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Hardware
Librerie condivise
User space
GUI
Shell Applicazioni utente
Kernel spaceGestione e astrazione dell’hardware
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Storia — Prima generazione (1940–1955)
Two early programmers (Gloria Ruth Gordon [Bolotsky] and Esther
Gerston) at work on the ENIAC. US Army photo from the archives of the
ARL Library (US Army Research Laboratory).
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Storia — Prima generazione
Elementi attivi: valvole termoioniche (primi prototipi conrele elettromeccanici) → enormi, molto calore generato,estrema fragilita.
Non c’e S.O.; spesso la programmazione avvienericablando i circuiti, o agendo su interruttori di unaconsole.
Sviluppo dei primi sistemi di I/O (schede e nastri perforati,stampanti).
Limitazione
Lunghi tempi di impostazione del programma, computer spessoin attesa→ Molto tempo di calcolo sprecato.
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Storia — Seconda generazione (1955-1965)
IBM 7090 operator’s console at the NASA Ames Research Center in 1961,
with two banks of IBM 729 magnetic tape drives. (NASA).
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Storia — seconda generazione
Transistor: aumento radicale dell’affidabilita, della velocitae della densita circuitale → commercializzazione pressogrosse banche, universita, centri governativi.
Il S.O. e poco piu di un interprete di comandi
Fortran Monitor System (IBM) include un interprete dicomandi e un compilatore FORTRAN.Le due componenti vengono caricate insieme in memoria.
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Storia — seconda generazione
Struttura di un job FMS
$JOB Inizio del job$FORTRAN Invocazione del compilatore. . .. . . Programma FORTRAN. . .$LOAD Carica il programma$RUN Esegui il programma. . .. . . Dati per il programma. . .$END Fine del job.
I comandi di controllo hanno $ in prima colonna.
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Storia — seconda generazione
Problema
Tempi d’attesa dovuti alla lettura delle schede e alla stampa,potenza di calcolo ancora sottoutilizzata.
Lettura
CPU
Stampa
Job 1 Job 2 Job 3
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Storia — seconda generazione
Soluzione: una batch pipeline
un sistema elettromeccanico legge piu job da schedeperforate e li registra su nastri (piu veloci)
Il mainframe legge e scrive nastri magnetici
Un altro sistema elettromeccanico stampa il contenuto deinastri di output.
Nastri di
sistema
IBM 1401 IBM 7090 IBM 1401
Trascrizione del job n−1 Esecuzione del job n Stampa del job n+1
Stampa dei risultati
Lettore di
schede
perforate
Registratore
su nastro
magnetico
Lettore di
nastro
magnetico
Registratore
su nastro
magnetico
Lettore di
nastro
magnetico
Stampante
Schede perforatecon programma e dati
Le tre fasi (lettura del programma e dei dati, compilazione edesecuzione, stampa dell’output) avvengono in parallelo susistemi separati→ Utilizzo piu efficiente della potenza di calcolo.
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Storia — seconda generazione
Sistema sequenziale “tradizionale”:
Lettura
CPU
Stampa
Job 1 Job 2 Job 3
Sistema batch con singoli dispositivi di I/O:
Lettura
CPU
Stampa
Job 1
Job 2
Job 3
Trasferimenti
via nastro
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Storia — seconda generazione
Ulteriore ottimizzazione
Moltiplicare i dispositivi di I/O.
La CPU, costosissima, resta unica e operasequenzialmente.
Job 1Trasferimenti
CPU
via nastro
Lettura
Lettura
Lettura
Stampa
Stampa
Stampa
Job 2
Job 3
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Storia — Terza generazione (1965–1980)
Circuiti integrati: densita circuitale in crescita, sistemisempre piu complessi→ Nuove applicazioni (p.es. gestionali).
Nascita dei minicomputer (∼ 100.000$)
Il sistema batch non si adatta bene a programmi con piucicli di I/O.
Multiprogrammazione
Ripartizione delle risorse (memoria) fra piu job.
Mentre un job e in attesa di input, eseguirne un altro.
Simultaneous Peripheral Operation On Line (spooling).
Esempio: OS/360, colossale progetto di IBM in continuaevoluzione per coprire tutti i dispositivi offerti.
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Storia — Terza generazione (1965–1980)
Time sharing
Utenti su terminali online, la CPU passa da un processoall’altro.
Necessita di proteggere gli ambienti di processi diversi
Esempi:
Preesistente: CTSS (Compatible Time Sharing System,MIT 1962)
Sistema sperimentale (MIT).Hardware: IBM 7094 modificato
MULTICS (Multiplexed Information and ComputingServices, MIT/BellLabs/GE)
Potenza di calcolo as-a-service.Ha introdotto numerose idee fondamentali.Troppo complesso, scritto in un linguaggio (PL/I) tropponuovo e con compilatori non ancora efficienti.
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Storia — Terza generazione — Unix
Nato nei Bell Labs come sistema monoutente (UniplexedInformation and Computing System - vedi MULTICS)
Presto evoluto in sistema multitasking, multiutente.
Un sistema di licenze del codice sorgente ha portato allacreazione di molte versioni.
Standard IEEE POSIX per uniformare i dialetti epermettere interoperabilita.
Principali dialetti: System V (AT&T), BSD (BerkeleySoftware Distribution), Linux (che useremo in laboratorio).
Mac OS X si basa su BSD, Android poggia su un sistemaLinux.
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Storia — Quarta generazione (dal 1980)
LSI (Large Scale Integration), microprocessori (CPU su unsingolo chip)→ microcomputer, personal computer.
Diffusione dei dischi magnetici (floppy disk)
CP/M (Control Program for Microcomputers)
Sviluppato da Digital Research nel 1977, basato suprocessori Intel (8080) e loro estensioni (Zilog Z80, inseguito anche Intel 8086 con CP/M86).Dominante per quasi un decennio, soppiantato daMS-DOS.
MS-DOS (Disk Operating System)
Sviluppato da Microsoft nel 1982 per IBM PC basato suprocessori Intel (8086) e loro successori (80286).Ha dato la stura a tutta la successione di sistemi operativiMicrosoft Windows, da Windows 98 in poi.
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Storia — Quarta generazione (dal 1980)
Apple Macintosh System Software (in seguito Mac OS)
Sviluppato da Apple per MacIntosh nel 1984 su processoreMotorola 68000.Sostituito da Mac OS X (basato su BSD Unix) nel 1999.Primo sistema di successo con interfaccia utente grafica,focus su user friendliness.
Dialetti Unix per microcomputer
Microsoft XENIX, Apple A/UX, IBM AIX, Apple Mac OSX, Linux, FreeBSD. . .
SistemiOperativi
MauroBrunatoMicheleGrisafi
Informazionisul corso
Definizione estoria
Storia — Quinta generazione (dal 1990?)
Mobile Computing
Symbian OS (Samsung, Sony Ericsson, Motorola, Nokia)Blackberry OS (Research In Motion, 2002)Varie incarnazioni di Windows per sistemi mobiliApple iOS (iPhone, 2007)Android (Google, 2008)
Linux con macchina virtuale Java-like per applicazioniutente.