• Non ci sono risultati.

Sistemi Operativi I

N/A
N/A
Protected

Academic year: 2021

Condividi "Sistemi Operativi I"

Copied!
2
0
0

Testo completo

(1)

Sistemi Operativi I

Diploma Universitario in Ingegneria Informatica ed Automatica Prof. Letizia Leonardi

Finalità del Modulo

Obiettivo del modulo è sia raggiungere una buona conoscenza dei concetti che sono alla base di un qualunque Sistema Operativo e sia affrontare la conoscenza di uno specifico Sistema Operativo (UNIX). In particolare, la conoscenza dei concetti di base viene affrontata da un punto di vista prettamente sistemistico, mentre per quanto riguarda UNIX si comincia con ripassare ed approfondire il livello di interfaccia esterno (comandi e relativo linguaggio).

Programma

Generalità sui Sistemi Operativi:

- evoluzione storica: dai primi sistemi ai moderni sistemi operativi.

- classificazione dei Sistemi Operativi: sistemi mono e multi-utente, sistemi batch e interattivi, sistemi in time-sharing e real-time.

Elementi di base di un Sistema Operativo.

Tecniche di programmazione concorrente: modelli per la sincronizzazione e la comunicazione fra processi in ambiente locale e globale. Il problema del blocco dei processi (deadlock). Meccanismi e politiche di protezione delle risorse.

Analisi di un Sistema Operativo esistente: UNIX.

Ripasso ed approfondimento dell'interfaccia utente:

- i principali comandi di utente: concetti di ridirezione e piping di comandi.

- la programmazione utilizzando diversi linguaggi comandi: il caso del Bourne shell.

Ore di lezioni previste in aula 40

Ore di esercitazioni previste in aula 10

Ore di esercitazioni guidate in laboratorio 20

Ore di esercitazioni assistite in laboratorio 30

Testi consigliati

PETERSON J., SILBERSCHTZ A., Operating System Concepts, Casa Editrice Addison-Wesley, 1990 (anche versione italiana: SILBERSCHATZ A., GALVIN P., Sistemi Operativi (quarta edizione), Casa Editrice Addison-Wesley, 1995).

MILENKOVIC M., Sistemi Operativi, Casa Editrice McGraw-Hill, 1990.

ANCILOTTI P., BOARI M., Principi e Tecniche di Programmazione Concorrente, Casa Editrice UTET, 1988.

BOURNE S. R., UNIX System V, Casa Editrice Addison-Wesley, 1990.

TANENBAUM A.S., Progettazione e sviluppo dei Sistemi Operativi, Casa Editrice Jackson, 1988.

Sono inoltre disponibili le fotocopie dei lucidi usati dal docente.

Per la parte relativa a UNIX (nonchè per un ripasso del Linguaggio C) si segnala inoltre:

BELLAVIA G., CORRADI A., LEONARDI L., Fondamenti di Informatica II: Dispense del corso (seconda edizione), Casa Editrice Esculapio, Progetto Leonardo, 1994.

Per un approfondimento del Linguaggio C si segnala anche:

LEONARDI L.: Linguaggio C: Raccolta di esercizi e relative soluzioni, Ed. Esculapio - Progetto Leonardo, 1996.

(2)

Sistemi Operativi II

Diploma Universitario in Ingegneria Informatica ed Automatica Prof. Letizia Leonardi

Finalità del Modulo

Obiettivo del modulo è sia di raggiungere una buona conoscenza di ogni livello di cui si compone un Sistema Operativo e sia di approfondire lo studio del Sistema Operativo UNIX. In questo caso, entrambi gli argomenti vengono affrontati da un punto di vista sistemistico prima a livello teorico e poi usando UNIX come caso di studio.

Programma

Sistema Operativo come gestore delle risorse, in particolare:

a) Gestione della CPU: algoritmi di scheduling.

b) Gestione della memoria: swapping, paginazione, segmentazione, memoria virtuale.

c) Gestione del File System: organizzazione logica ed allocazione fisica.

Problematiche dei sistemi distribuiti.

Analisi di un Sistema Operativo esistente: UNIX.

La programmazione di sistema utilizzando il linguaggio di programmazione C: in particolare, la gestione dei processi e la loro sincronizzazione secondo i meccanismi offerti dalle varie versioni:

Unix BSD 4.2 e Unix System V.

Accenno alle primitive di comunicazione per UNIX sistemi distribuiti: le socket.

Ore di lezioni previste in aula 40

Ore di esercitazioni previste in aula 10

Ore di esercitazioni guidate in laboratorio 20

Ore di esercitazioni assistite in laboratorio 30

Testi consigliati

PETERSON J., SILBERSCHTZ A., Operating System Concepts, Casa Editrice Addison-Wesley, 1990 (anche versione italiana: SILBERSCHATZ A., GALVIN P., Sistemi Operativi (quarta edizione), Casa Editrice Addison-Wesley, 1995).

MILENKOVIC M., Sistemi Operativi, Casa Editrice McGraw-Hill, 1990.

HAVILAND K., SALAMA B., Unix System Programming, Casa Editrice Addison-Wesley, 1987.

FOXLEY E., Unix for Super Users, Casa Editrice Addison-Wesley, 1985.

TANENBAUM A.S., Progettazione e sviluppo dei Sistemi Operativi, Casa Editrice Jackson, 1988.

Sono inoltre disponibili le fotocopie dei lucidi usati dal docente.

Per la parte relativa a UNIX (nonchè per un ripasso del Linguaggio C) si segnala inoltre:

BELLAVIA G., CORRADI A., LEONARDI L., Fondamenti di Informatica II: Dispense del corso (seconda edizione), Casa Editrice Esculapio, Progetto Leonardo, 1994.

Per un approfondimento del Linguaggio C si segnala anche:

LEONARDI L.: Linguaggio C: Raccolta di esercizi e relative soluzioni, Ed. Esculapio - Progetto Leonardo, 1996.

Riferimenti

Documenti correlati

● Esterno: denota il nome di un programma eseguibile che viene eseguito dalla shell, lanciando un altro processo; quando il programma termina, il controllo ritorna alla

❖ Gestione dei processi ⎯ processi e thread, sincroniz- zazione e concorrenza, scheduling della CPU, scheduling real−time, deadlock. ❖ Gestione della memoria centrale e

Si illustri usando il linguaggio di programmazione Java il “protocollo di accesso alla sezione critica” di un thread con il meccanismo dei semafori.. Soluzione: Occorre utilizzare

c. Tempo di attesa è il tempo speso nella coda dei processi pronti. Come “verifica” nota che: tempo di attesa = tempo di turnaround – tempo di esecuzione).. Si consideri il

La richiesta può essere accolta in quanto il nuovo valore di Available risulta essere (1,1,0,0).. Un possibile ordinamento di terminazione dei processi è P0, P2, P3, P1,

 Gestione della Memoria: il sistema deve allocare memoria per più job.  Scheduling della CPU: il sistema deve scegliere tra più

 Coda dei processi pronti (ready queue) – contiene tutti i processi che risiedono nella memoria centrale, pronti e in attesa di esecuzione.  Coda della periferica di I/O

 Una chiamata al kernel può bloccare tutti i thread di un processo, indipendentemente dal fatto che in realtà solo uno dei suoi thread ha causato la chiamata bloccante.  In sistemi