Sistemi operativi – slides + videolezioni
A cura di Stefano Silvani
Contents
- Lez. 1 - Concetti introduttivi - (prima parte) ........................................................................................... 4
- Funzioni di un SO ................................................................................................................................. 4
- Evoluzione dei Sistemi Operativi ......................................................................................................... 5
- Lez. 2 - Concetti introduttivi - (seconda parte) ..................................................................................... 10
- Lez. 3 - Concetti introduttivi - (terza parte) ........................................................................................... 25
- Lez. 4 - Concetti introduttivi - (quarta parte) ........................................................................................ 38
- Organizzazione di un SO .................................................................................................................... 38
- Lez. 5 - Proprietà dei processi - (prima parte) ....................................................................................... 53
- Stati di un processo ........................................................................................................................... 58
- Rappresentazione dei processi .......................................................................................................... 63
- Lez. 6 - Proprietà dei processi - (seconda parte) ............................................................................... 65
- Cambio di contesto ............................................................................................................................ 66
- Scheduling dei processi ..................................................................................................................... 70
- Operazioni sui processi ...................................................................................................................... 78
- Lez. 7 - Proprietà dei processi - (terza parte) ........................................................................................ 82
- Processi leggeri o thread ................................................................................................................... 82
- Interazione tra processi ..................................................................................................................... 87
- Lez. 8 - Proprietà dei processi - (quarta parte) ...................................................................................... 99
- Strumenti di sincronizzazione ........................................................................................................... 99
- Lez. 9 - Proprietà dei processi - (quinta parte) .................................................................................... 115
- Modello ad ambiente locale ............................................................................................................ 118
- Nucleo di sistema a processi ........................................................................................................... 125
- Lez. 10 - Proprietà dei processi - (sesta parte) .................................................................................... 127
- Deadlock (blocco critico) ................................................................................................................... 130
- Lez. 11 - Processi nel S.O. Unix ............................................................................................................ 140
- Caratteristiche dei SO ...................................................................................................................... 140
- Immagine di un processo: ............................................................................................................... 147
- Gestione dei processi ...................................................................................................................... 148
- Lez. 12 - Interazioni fra processi in Unix I ............................................................................................ 153
- Interazioni fra processi in Unix II ..................................................................................................... 159
- System call per l’uso dei segnali ...................................................................................................... 162
- Lezione n.13: Interazioni fra processi in Unix II ................................................................................... 167
A cura di Stefano Silvani UTIU – È fatto divieto di qualsiasi forma di riproduzione vendita e divulgazione del presente materiale senza previa 1 autorizzazione dell’autore.
- Comunicazione: pipe ....................................................................................................................... 167
- Lez. 14 - Threads nel S.O. Linux ........................................................................................................... 178
- Primitive di gestione dei thread ...................................................................................................... 180
- Sincronizzazione tra thread ............................................................................................................. 184
- Lez. 15 - Sincronizzazione in Java .......................................................................................................... 192
- Mutua esclusione in Java: ............................................................................................................... 195
- Sincronizzazione diretta ................................................................................................................. 197
- Lez. 16 - Gestione della memoria. Introduzione ................................................................................. 200
- Analogie tra Gestione dell’unità centrale e Gestione della memoria centrale ............................... 200
- Tecnica della virtualizzazione: Memoria Virtuale ........................................................................... 204
- Rilocazione degli indirizzi ................................................................................................................. 206
- Lez. 17 - Gestione della memoria. Parametri caratterizzanti .............................................................. 209
- Organizzazione della memoria virtuale: .......................................................................................... 215
- Allocazione della memoria fisica ..................................................................................................... 216
- Lez. 18 - Gestione della memoria. Tecnica delle partizioni ................................................................. 217
- Allocazione contigua ....................................................................................................................... 217
- Dimensioni della memoria virtuale ................................................................................................. 218
- Tecnica di partizione ........................................................................................................................ 220
- Lez. 19 - Gestione della memoria. Segmentazione ............................................................................. 229
- Classificazione ................................................................................................................................. 229
- Segmentazione a domanda ............................................................................................................. 240
- Lez. 20 - Gestione della memoria. Paginazione (prima parte) ............................................................. 244
- Lez. 21 - Gestione della memoria. Paginazione (seconda parte) ......................................................... 250
- Paginazione su domanda ................................................................................................................. 255
- Rimpiazzamento .............................................................................................................................. 259
- Algoritmo second chance ................................................................................................................ 263
- Lez. 22 - Gestione della memoria. Conclusioni ................................................................................... 265
- Segmentazione paginata ................................................................................................................. 265
- Lez. 23 - Gestione della memoria. Casi di studio ................................................................................. 268
- Caso di studio Unix ........................................................................................................................... 271
- Caso di studio Windows ................................................................................................................... 274
- Lez. 24 - Gestione dei dispositivi d'Ingresso/Uscita. Introduzione ...................................................... 276
- Compiti del sottosistema d’ingresso/uscita ...................................................................................... 276
- Architettura del sottosistema di I/O ............................................................................................... 283
- Allocazione dei dispositivi ............................................................................................................... 288
- Lez. 25 - Gestione dei dispositivi d'Ingresso/Uscita. Device driver ........................................................ 289
A cura di Stefano Silvani UTIU – È fatto divieto di qualsiasi forma di riproduzione vendita e divulgazione del presente materiale senza previa 2 autorizzazione dell’autore.
- Livello dipendente dai dispositivi .................................................................................................... 289
- Lez. 26 - Gestione dei dispositivi d'Ingresso/Uscita. Conclusioni ......................................................... 300
- Gestione canali DMA ....................................................................................................................... 302
- Organizzazione fisica dei dischi ....................................................................................................... 306
- Algoritmi di schedulazione .............................................................................................................. 309
- Dischi RAID ...................................................................................................................................... 311
- Lez. 27 - File system. Introduzione ...................................................................................................... 312
- Livello dei dispositivi virtuali ........................................................................................................... 319
- Lez. 28 - File system. Organizzazione .................................................................................................. 321
- Livello fisico ..................................................................................................................................... 321
- Metodi di accesso ............................................................................................................................ 324
- Meccanismi di protezione ............................................................................................................... 326
- Sistema di catalogazione ................................................................................................................. 327
- Lez. 29 - File system. Unix (prima parte) ............................................................................................. 331
- Lez. 30 - File system. Unix (seconda parte) ......................................................................................... 342
- Domande di verifica: ........................................................................................................................... 351
A cura di Stefano Silvani UTIU – È fatto divieto di qualsiasi forma di riproduzione vendita e divulgazione del presente materiale senza previa 3 autorizzazione dell’autore.
Lez. 1 - Concetti introduttivi - (prima parte)
Funzioni di un SO
Per capire bene le funzioni del SO guardiamo la figura sotto e vediamo come si colloca il SO con riferimento alle altre componenti del sistema elaborativo.
Gli utenti interagiscono col sistema secondo certe modalità tramite un terminale e possono richiedere diverse funzioni del Sistema di elaborazione in generale – per esempio possono scrivere un programma per essere compilato (ad esempio in Java o in C) e poi il programma viene passato all’interprete etc...
Il SO consente di definire una macchina virtuale (più potente rispetto alla macchina HW) e mette a disposizione dei programmi delle funzioni semplici mediante le quali i programmi possono usare le risorse. Come se il SO creasse una macchina virtuale diversa dalla macchina HW dotata di un insieme di risorse, potenzialità e funzioni superiori rispetto a quelle che ha la macchina stessa.
Questo sotto è un breve richiamo alla parte relativa ai Componenti del sistema di programmazione:
- Compilatori
- Caricatori (loader)
- Collegatori (linker)
- Interprete
Un Sistema Operativo (S.O.) è un insieme di programmi che operano sull’hardware di un calcolatore con l’obiettivo di:
- Semplificare lo sviluppo di programmi: nascondono le peculiarità dell’HW
- Realizzare politiche di gestione delle risorse hardware: ci sono più utenti, questi hanno bisogno di usare risorse dell’HW per esempio di utilizzare la CPU – il SO garantisce dei criteri di assegnazione della CPU ai programmi che la richiedono. Stesso discorso vale per l’utilizzo della memoria
Semplificare lo sviluppo di programmi
A cura di Stefano Silvani UTIU – È fatto divieto di qualsiasi forma di riproduzione vendita e divulgazione del presente materiale senza previa 4 autorizzazione dell’autore.
- Uso delle risorse HW (es. I/O) tramite system calls: chiamate di sistema sono funzioni che il SO mette a disposizione dei programmi applicativi perché attraverso queste funzioni vengono usati i dispositivi del ns sistema di elaborazione. Per esempio: utente usa funzione di read o write e sarà compito del SO sviluppare insieme di comandi che servono per pilotare il dispositivo di I/O.
- Definizione di una macchina estesa (o virtuale): più potente della macchina HW perché mette a disposizione delle funzioni per l’utente che servono per agire sull’HW del sistema di elaborazione
- Applicativo dall’hardware (trasparenza): indipendenza – ovvero una volta che l’utente esprime i suoi programmi solo in termini di funzioni del SO e poi il SO si preoccupa di trasformare le chiamate/richieste dell’utente in termini di gestione dell’HW è chiaro che l’app è indipendente dal tipo di HW. Pensiamo al caso del SO “MSDOS” che si è diffuso come standard e tutte le app venivano sviluppate presupponendo di usare MSDOS. Le app erano sviluppate usando le funzioni di questo SO. Questo ha consentito di avere un numero elevatissimo di macchine a disposizione e di poter ridurre i costi delle app.
Macchina virtuale: Es: controllare un floppy disk
- Numerosi comandi: lettura, scrittura, movimento del braccio etc.
- Parametri: indirizzo del blocco, numero di settori per traccia etc.
- Condizioni di stato e di errore
Realizzare politiche di gestione delle risorse hardware
- Evitare conflitti di accesso alle risorse
- Definire criteri (o politiche) con cui assegnare una risorsa a fronte di più richieste contemporanee
Evoluzione dei sistemi operativi
Elaborazione seriale:
- Assenza di SO: i programmi venivano eseguiti in serie (uno dopo l’altro) non c’era SO, faceva tutto il programmatore che attraverso la console introduceva i programmi direttamente e li metteva in esecuzione. Era lui che gestiva il tempo di macchina. Era un uso particolare del sistema di calcolo.. chi usava il calcolatore doveva essere un conoscitore delle logiche di funzionamento del calcolatore stesso
- Controllo tramite console
- Prenotazione tempo di macchina
- Tempo di preparazione
Semplici sistemi batch monitor:
- Residente in memoria centrale: si chiama “monitor” è un primo semplice SO che ha come compito fondamentale il controllo dell’esecuzione dei programmi. I programmi non si inserivano più a mano ma tramite schede perforate e poi la gestione ed assegnazione delle risorse veniva fatta (in modo seriale) tramite il monitor.
- Tecnica batch: batch significa “pacco” ricorda il pacco di schede usate per inserire all’interno del calcolatore il programma che doveva essere elaborato.
Vediamo velocemente lo schema dei sistema batch:
Sistemi monoprogrammati: significa che c’è un solo programma applicativo. Il monitor sta nella parte alta (SO) della figura sotto. Comandare sequenza di esecuzione dei programmi aspettando che un programma termini la propria esecuzione per poi lanciarne un altro.
Organizzazione della memoria in un sistema batch monoprogrammato: tutte le risorse si dedicano ad un solo programma alla volta.
Sistemi monoprogrammati
- Bassa utilizzazione della CPU: in fig sotto si vede uso CPU da parte del programma (gialla) e il tempo di attesa della CPU che attende il completamento della operazione di I/O e quindi vediamo che ci sono dei tempi (in blu) molto lunghi.
Ci sono delle evoluzioni nell’HW negli anni che hanno portato ad avere Sistemi di elaborazione più avanzati.
Caratteristiche hardware
- Anzitutto la memoria viene divisa in due parti: SO e programma di utente. Sono due aree di memoria che devono restare separate soprattutto perché il programma di utente non deve indirizzare zone che sono riservate al monitor. Quindi comincia a comparire un aspetto sempre presente che è quello dei due stati: uno stato in cui opera il SO e uno stato in cui opera l’utente. E l’utente quando opera in questo stato non può andare nella zona di memoria usata dal monitor
- Compare il concetto di “timer”: per far
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Sistemi operativi - Appunti
-
Appunti Sistemi Operativi - Seminari sistemi UAV , sistemi operativi NuttX-ROS
-
Appunti di Sistemi operativi
-
Sistemi operativi - Appunti