sistemi operativi

28
Sistemi Operativi Mauro Brunato Michele Grisafi Informazioni sul corso Definizione e storia Sistemi Operativi Mauro Brunato, Michele Grisafi Dipartimenti di Ingegneria e Scienze dell’Informazione Universit` a di Trento Anno Accademico 2020-2021, secondo semestre Ultima revisione: 28 febbraio 2021

Upload: others

Post on 26-Nov-2021

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemi Operativi

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

Page 2: Sistemi Operativi

SistemiOperativi

MauroBrunatoMicheleGrisafi

Informazionisul corso

Definizione estoria

Docenti

Mauro Brunatoe-mail: [email protected]

Michele Grisafie-mail: [email protected]

Page 3: Sistemi Operativi

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

Page 4: Sistemi Operativi

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)

Page 5: Sistemi Operativi

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.

Page 6: Sistemi Operativi

SistemiOperativi

MauroBrunatoMicheleGrisafi

Informazionisul corso

Definizione estoria

Domande/ricevimento

Utilizzare al meglio tutti gli strumenti messi a disposizione daMoodle (forum, etc.)Ricevimento: concordare via email.

Page 7: Sistemi Operativi

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!

Page 8: Sistemi Operativi

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.

Page 9: Sistemi Operativi

SistemiOperativi

MauroBrunatoMicheleGrisafi

Informazionisul corso

Definizione estoria

Prerequisiti

Bagaglio matematico di base (analisi, algebra lineare)

Programmazione (linguaggio C)

Architettura degli elaboratori

Page 10: Sistemi Operativi

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

Page 11: Sistemi Operativi

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.

Page 12: Sistemi Operativi

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.

Page 13: Sistemi Operativi

SistemiOperativi

MauroBrunatoMicheleGrisafi

Informazionisul corso

Definizione estoria

Hardware

Librerie condivise

User space

GUI

Shell Applicazioni utente

Kernel spaceGestione e astrazione dell’hardware

Page 14: Sistemi Operativi

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).

Page 15: Sistemi Operativi

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.

Page 16: Sistemi Operativi

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).

Page 17: Sistemi Operativi

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.

Page 18: Sistemi Operativi

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.

Page 19: Sistemi Operativi

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

Page 20: Sistemi Operativi

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.

Page 21: Sistemi Operativi

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

Page 22: Sistemi Operativi

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

Page 23: Sistemi Operativi

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.

Page 24: Sistemi Operativi

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.

Page 25: Sistemi Operativi

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.

Page 26: Sistemi Operativi

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.

Page 27: Sistemi Operativi

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. . .

Page 28: Sistemi Operativi

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.