|
Il Modulo SOSA - Sistemi Operativi e Sistemi
Aperti, tenuto dal Prof. Maurelio Boari e realizzato secondo il Modello
didattico del NETTUNO, è un corso propedeutico alle attività formative
nell'ambito del progetto AIPA di "Formazione Informatica per la Pubblica
Amministrazione" destinata a specialisti di architetture e gestione di
reti, specialisti di ambienti aperti e sistemi distribuiti, progettisti
di applicazioni, programmatori e gestori di applicazioni sul web. Il corso
è fruito in autoapprendimento, e prevede un attività di tutoraggio in
rete di supporto alle videolezioni e agli strumenti multimediali proposti,
secondo le metodologie didattiche a distanza del NETTUNO Contenuti delle videolezioni: 1 - Funzioni di un sistema operativo Vengono chiarite le funzioni fondamentali di un sistema operativo, precisando le sue relazioni da un lato con l'hardware del sistema di elaborazione dall'altro con il software di sistema e con i programmi applicativi. Sono introdotte alcune definizioni relative alle modalità di funzionamento dei sistemi di elaborazione precisando il significato dei termini: sistemi monoprogrammati, multiprogrammati, a divisione di tempo (time sharing), in tempo reale (real time), sistemi dedicati,sistemi transazionali e sistemi distribuiti. Con riferimento a questa classificazione sono collocati i sistemi operativi Windows NT e UNIX . 2 - Struttura dei sistemi operativi Sono introdotte le componenti fondamentali di un sistema operativo. Per ciascuna di esse sono indicati gli obiettivi e viene fornita una breve descrizione. Viene precisato come le system call rappresentino lo strumento con il quale i programmi in esecuzione possono utilizzare le funzioni di un sistema operativo . I programmi in esecuzione possono essere programmi di utente o programmi di sistema utilizzati tramite opportuni comandi a disposizione dell'utente. Facendo riferimento ad entrambi i sistemi operativi, viene mostrata la gerarchia degli strati software dell'ambiente di programmazione e le relative interfacce a supporto delle richieste degli utenti. Viene infine presentata l'organizzazione interna di un sistema operativo facendo riferimento come esempi ad UNIX e NT e rinviando al CD per ulteriori approfondimenti. 3 - Introduzione ai processi Viene precisato il significato del termine processo confrontato con il termine programma e ne vengono definite le proprietà fondamentali ( stato, descrittore etc..) . Vengono introdotti il concetto di interazione tra processi ed i relativi modelli di riferimento (a memoria comune e a scambio di messaggi). Viene fatto un breve accenno ai problemi di sincronizzazione tra processi ed ai relativi strumenti rinviando alla parte sul CD per ulteriori precisazioni sui sistemi operativi UNIX e NT. Viene introdotto il Kernel di un sistema operativo con particolare riferimento alla gestione del salvataggio e ripristino dei contesti dei processi, alla scelta dei processi da mettere in esecuzione, alla ricezione e gestione delle interruzioni ed alla realizzazione delle system call. 4 - Esempi di funzioni del sistema operativo. Vengono illustrate con maggiore dettaglio due tra le principali funzioni svolte dal sistema operativo: l'assegnazione della CPU tra i processi e la gestione della memoria principale, rinviando al CD di approfondimento per l'illustrazione di altre funzioni. Per la parte relativa allo scheduling si provvede ad una classificazione degli algoritmi e ad una illustrazione dei livelli di scheduling. Per quanto riguarda la gestione della memoria viene introdotto il concetto di memoria virtuale e la sua realizzazione mediante le tecniche di impaginazione e segmentazione. 5 - Sistemi distribuiti e sistemi aperti Vengono introdotte le proprietà fondamentali dei sistemi distribuiti e la loro evoluzione. Viene presentato il concetto di sistema aperto facendo riferimento da un lato alla necessità di fare colloquiare tra lo loro sistemi distribuiti collegati in rete e dall'altro ai problemi dovuti alle diversità di questi sistemi sia per aspetti architetturali che per i diversi tipi di sistemi operativi e di gestione dei data-base utilizzati. Sono precisate le proprietà fondamentali dei sistemi aperti: interoperabilità, portabilità, consistenza, modularità. Sono classificati gli standard a livello di prodotti software di base e viene messa in evidenza la loro importanza nell'ambito dei sistemi aperti. 6 - Protocolli di comunicazione Viene precisato il significato di servizi di rete e viene presentata la loro strutturazione in livelli secondo il modello OSI. Sono precisate le funzioni svolte da ciascun livello e viene introdotto il protocollo TCP/IP Viene infine precisata la differenza tra sistemi a connessione e sistemi senza connessione. 7 - Architetture client-server Viene introdotto il modello client-server come modello di coordinamento tra le attività dei diversi elaboratori in un sistema distribuito. Sono indicate le varie architetture dei sistemi client-server (a due o tre livelli) e i vari tipi di suddivisione delle funzioni tra client e server. Sono indicati i differenti tipi di server e viene precisato il ruolo degli standard. 8 - Middleware Viene precisato come con questo termine si intenda quel complesso di programmi che controllano la comunicazione tra client e server ed eseguono tutte le trasformazioni necessarie per rendere comprensibile una richiesta client al server. Sono precisate le funzioni fondamentali del middleware (localizzazione del server, risoluzione delle potenziali incompatibilità tra i protocolli di comunicazione, trasmissione delle richieste, ricezione delle risposte etc..). Sono introdotte la chiamata di procedura remota (RPC), come strumento per la comunicazione in ambiente distribuito ed i processi leggeri(thread), con l'obiettivo di migliorare le prestazioni dei server. |