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 dell’esame
:
L'esame consiste in una prova orale
e in una tesina di approfondimento di un particolare
aspetto del JAVA.
|