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
Dealock (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 dio thread ...................................................................................................... 180
Sincronizzazione tra thread ............................................................................................................. 184
Lez. 15 - Sicronizzazione 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
Organizzaizone 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/usita ...................................................................................... 276
Architettura del sottosistema di I/O ............................................................................................... 283
Allocazione dei dispositivi ............................................................................................................... 288
Lez. 25 - Gestione dei dispositivi d'Ingresso/Uscita. Device drive ........................................................ 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 è uin breve richiamo alla parte relativ 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 elabrazione. Per esempio: utente usa funzione di read o
write e sarà compito del SO sviluppare insieme di comandi che servono per pilorate il
dispositivo di I/O.
Definizione di una macchina estesa (o virtuale): più potente della macchina GW perchè metter
a disposizioni 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 temrini di funzioni del SO e poi il SO si proccupa 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
venivamo 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.
- Paramentri: 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
contemporane
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 eseguzione. 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 consolle
- 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
A cura di stefano Silvani UTIU – È fatto divieto di qualsiasi forma di riproduzione vendita e divulgazione del presente materiale senza previa
5
autorizzazione dell’autore.
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 velocmente 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 seguenza 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 CP da parte del programma (gialla) e il tempo di attesa della CPU che attende il
completamente 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 are di
memoria che devono restare separate sopratutto 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