Programma:
SISTEMI OPERATIVI
Il Sistema Operativo. Funzioni del S. O. Evoluzione
dei S.O. Sistema di calcolo. Sistemi monoprogrammati.
Sistemi multiprogrammati. Componenti del S.O.
Servizi di un S.O. System call. Struttura del
S. O. Sistemi monolitici, a struttura semplice,
a livelli. Macchine virtuali. Modello cliente-servitore.
Processi. Stati di un processo. Descrittore
(PCB) del processo. Creazione e terminazione
di un processo. Processi indipendenti. Processi
concorrenti. Processi cooperanti. Relazione
tra processi. Sezione critica. Semafori binari
e semafori generalizzati. Le primitive WAIT
e SIGNAL. Problema del buffer limitato. Problema
dei lettori e degli scrittori. Regioni critiche
condizionali. Problema del buffer limitato.
Problema dei cinque filosofi. Il monitor. Sincronizzazione
con più processori - TSL. Modelli di
interazione tra processi. Modello ad ambiente
globale. Modello a scambio di messaggi. Comunicazione.
Deadlock e starvation. Risorse. Grafo di allocazione
delle risorse. Metodi per la gestione del deadlock.
Scheduling della CPU. Code di scheduling. Scheduler.
Scheduler a breve, medio e lungo termine. Criteri
di scheduling. Algoritmi di scheduling: Round
-Robin, scheduling con priorità, FCFS
e SJF.
Gestione della memoria. Spazio fisico e spazio
logico. Linker. Loader. Overlay. Rilocazione
statica e rilocazione dinamica. Swapping. Sistemi
a partizione singola. Allocazione con partizione
fisse. Allocazione con partizioni variabili.
Frammentazione interna e esterna. Processi eseguenti
lo stesso codice.
Paginazione. Tabella dei frame. Supporto hw.
Registri associativi (TLB). Paginazione a più
livelli. Memoria virtuale. Paginazione su richiesta.
Page-fault. Algoritmi di rimpiazzo: ottimale,
FIFO, LRU, “della seconda opportunità”
e “dell’orologio”. Pagine
condivise. Dimensione delle pagine. Politica
di allocazione dei frame. Segmentazione. Segmentazione
con paginazione.
Sottosistema di I/O. Architettura di riferimento.
Controllori. Compiti del sw di I/O. File System.
I file e le directory. Metodi di accesso. Metodi
di allocazione.
Sistemi distribuiti. Reti di comunicazione.
Topologia delle reti. Tipi di reti. Nominazione
e risoluzione dei nomi. Stategie di instradamento.
Stategie riguardanti i pacchetti e strategie
riguardanti la connessione. Contesa. CSMA/CD.
Passaggio di token. Slot di messaggio. Architetture
di rete. Il modello ISO-OSI. Il TCP-IP. Sistemi
operativi di rete. Sistemi operativi distribuiti.
Servizi remoti. File system distribuito. Accesso
a file remoti.
IL LINGUAGGIO JAVA
Introduzione alla applicazioni
Java
La memoria: concetti fondamentali. I calcoli
aritmetici. Gli operatori relazionali e di uguaglianza.
Introduzione alle applet Java
Gli oggetti. Alcune applet.
Le strutture di controllo
Le strutture di controllo. Gli operatori di
assegnazione. I tipi di dati primitivi. Gli
operatori logici.
I metodi
I moduli di programma in Java. I metodi. Le
definizioni di metodo. I package. Le regole
di visibilità. I metodi sovraccarichi.
Gli array
Gli array. Dichiarazione ed allocazione degli
array. I riferimenti. Array multidimensionali
La programmazione basata sugli oggetti
Le classi. I costruttori. Final. La composizione.
This. I membri finalize. I metodi static.
La programmazione orientata agli oggetti
Le superclassi e le sottoclassi. I membri protected.
L'ereditarietà. Il polimorfismo. Il binding
dinamico. Le superclassi astratte e le classi
concrete. Le interfacce. Classi interne.
Stringhe e caratteri
Concetti fondamentali. I costruttori String.
I principali metodi della classe String. La
classe StringBuffer. La classe Character. La
classe StringTokenizer.
I/O da file.
Testi
di riferimento:
A. Silberschatz, P.
Galvin, Sistemi Operativi, Addison-Wesley
A.S. Tanenbaum, I moderni Sistemi Operativi,
Jackson Libri
Deitel, Deitel, Java Fondamenti di programmazione,
Apogeo
Altro materiale
verrà fornito durante lo svolgimento
del corso.
Modalità
di svolgimento del corso e dell’esame:
L'esame consiste in
una prova orale e in una tesina di approfondimento
di un particolare aspetto del JAVA.
|