Sommario della lezione
Non ci sono molti sistemi operativi in corso di sviluppo.
E’ molto improbabile che sviluppiate un sistema operativo durante la vostra carriera professionale
… allora, perchè si studiano?
I SO sono dovunque – essi hanno la funzione primaria di gestire le risorse di calcolo.
Un SO fornisce un’astrazione delle risorse… dando l’”illusione” all’utente di avere una memoria “infinita”, una CPU veloce, dedicata ad ogni utente.
I SO forniscono un accesso uniforme (virtualizzato) a risorse estremamente eterogenee.
I SO costituiscono il punto di incontro tra hardware e software.
La conoscenza della struttura interna e dei principi di funzionamento di SO è indispensabile per la programmazione di sistema e permette di scrivere programmi più efficienti.
Un Sistema Operativo (S.O.) è un insieme di programmi che operano sull’hardware di un calcolatore con l’obiettivo di:
Il Sistema Operativo si pone come interfaccia tra l’utente (o il software) e l’hardware, fornendone un’astrazione.
Il SO …
Prima fase: Hardware costoso, personale economico
Seconda fase: Hw economico, personale costoso
Terza fase: Hw molto economico, personale molto costoso
Quarta fase: Servizi a maggiore qualità
SO = loader + librerie di procedure comuni
Svantaggio: bassa percentuale di utilizzo di risorse hardware (costose)
Privilegiano lo sfruttamento del sistema a prezzo dell’assenza di interazione da parte dell’utente, che deve fornire in via preliminare il suo lavoro.
I lavori sono raggruppati in lotti e memorizzati su supporto magnetico.
Il S.O. gestisce l’avanzamento sequenziale dei singoli lavori.
Le unità di ingresso/uscita sono virtualizzate (spooling)
SO = loader + sequenziatore+ processore di output
Vantaggi
La macchina è meglio sfruttata grazie alla assenza di interazione con l’utente. Le operazioni di I/O sono più veloci.
Svantaggi
L’utente può anche attendere ore o giorni per avere i risultati del proprio lavoro.
Diversi job sono caricati in memoria contemporaneamente e la CPU viene alternativamente assegnata a ciascuno di essi.
Quando un Job deve attendere un’operazione di I/O, la CPU viene assegnata ad un altro job.
Richiede qualche forma di gestione della memoria e di scheduling della CPU.
L’hardware deve supportare gli interrupt di I/O e il DMA.
Quando un lotto ha bisogno di attendere il completamento di un'operazione di I/O, il processore può essere assegnato ad un altro lotto
Utilizza la multiprogrammazone per la gestione di un gruppo di task interattivi.
Il tempo del Processore è condiviso tra più utenti.
Più utenti accedono al sistema connettendosi simultaneamente da più terminali.
Vantaggio
L’utente opera come con un sistema dedicato.
Svantaggio
L’overhead introdotto dal S.O.
Personal Computing System
Evoluzione
Trattasi di sistemi interattivi destinati ad eseguire transazioni, ossia sequenze di operazioni elementari che richiedono l’esecuzione ciascuna di un programma o di una sua parte.
In un sistema transazionale l’utente interroga ed aggiorna archivi.
Tutti gli utenti operano sugli stessi archivi e richiedono l’esecuzione delle stesse operazioni elementari, fornendo i propri dati.
Il sistema in tempo reale è un sistema la cui correttezza dipende dalla velocità di esecuzione dei task.
Tipicamente sono sistemi che gestiscono programmi che interagiscono con l’ambiente esterno attraverso periferiche e che garantiscono ai dati di ingresso risposte in un tempo utile rispetto alle costanti di tempo proprie del’ambiente esterno.
Il tempo utile dipende dall’applicazione e quindi dall’ambiente esterno.
Introducono nuovi concetti e nuove problematiche.
Sistemi con un “doppio” concetto di correttezza:
Tipicamente sono sistemi in cui la proprietà di “predictability” è molto più importante delle “performance”.
1. Introduzione ai Sistemi Operativi
5. Scheduling nei sistemi mono-processore
6. Threads, SMP
8. Scheduling Multiprocessore e Real-Time
9. Gestione dei processi nei sistemi operativi Unix/Linux e Window...
10. Introduzione alla Programmazione Concorrente
11. Sincronizzazione nel modello ad ambiente globale
12. Problemi di cooperazione nel modello ad ambiente globale
14. Sincronizzazione nel modello ad ambiente locale
15. Deadlock
16. Programmazione Multithread
18. Memoria Virtuale
20. Il File System
21. Primitive di sincronizzazione nel kernel Linux
22. Esercitazione: System call per la gestione dei processi
23. Esercitazione: Inteprocess Communication e Shared Memory
24. Esercitazione: System Call per la gestione dei semafori in Linu...
25. Esercitazione: Problema dei Produttori e dei Consumatori
26. Posix Threads
P. Ancilotti, M.Boari, A. Ciampolini, G. Lipari, "Sistemi Operativi", Mc-Graw-Hill (Cap.1)