SO-II-4p-Sistemi Operativi
-
Upload
master2020 -
Category
Documents
-
view
224 -
download
0
Transcript of SO-II-4p-Sistemi Operativi
-
7/24/2019 SO-II-4p-Sistemi Operativi
1/14
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 1
Parte II
Processi e Thread
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 2
Processi
Concetto fondamentale per lo svluppo dei sistemioperativi, e di applicazioni complesse
Permette di decomporre lapplicazione in un insieme diprocessi sequenziali
I processi vengono elaborati a rotazione sulla CPU Su di un sistema uniprocessore lelaborazione in realt
non parallela mapseudoparallela Il programmatore pu concentrarsi sul singolo processo
come se avesse a disposizione lintero sistema Solo le interazioni esplicite con gli altri processi devonoessere considerate
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 3
Processi
Solo un programma attivo in ogni istante La multiprogrammazione virtualizza la CPU come se ogni processo avesse una CPU per se Il SO mantiene sotto controllo lo stato dei processi
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 4
Creazione di processi
I processi vengono creati per svolgere precisi compiti Allatto della creazione il SO li prende in carico e ne fa
avanzare lesecuzione, secondo precise politiche
Processi di sistema eprocessi utente Situazioni in cui vengono creati processi Al bootstrap del SO
Viene avviato un primo processo (iniziatore) Questo crea altri processi per i servizi del SO Alcuni processi accettano richieste dellutente
Per servire una richiesta dellutente Per avviare lesecuzione di un job batch
-
7/24/2019 SO-II-4p-Sistemi Operativi
2/14
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 5
Terminazione di processi
I processi possono terminare per cause diverse e conmodalit diverse
Questo pu avvenire con o senza il loro consenso Tipiche situazioni di terminazione Uscita normale (volontaria)
Uscita per errore (volontaria)
Fatal error (involontaria)
Ucciso da un altro processo (involontaria)
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 6
Gerarchie di processi
Un processo pu creare un altro processo
Processo genitore (parent process) Processo figlio (child process) I figli possono creare altri figli: crescete e riproducetevi Nellambito della gerarchia i padri (e gli avi) conservano
particolari diritti sui figli, per esempio quello di ucciderli
UNIX ha un concetto chiaro e netto di gerarchia, e
organizza i processi inprocess group In Windows il concetto pi sfumato: i padri possono inqualche modo cedere i loro diritti sui figli
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 7
Stati fondamentali di un processo
Un processo si trova a rotazione in uno dei tre statiRunning: in esecuzione sulla CPU
Ready: pronto ad eseguire appena gli viene concessa la CPUBlocked: in attesa di un evento per riprendere lesecuzione
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 8
I cambiamenti di stato sono indotti: Tra ready e running (e vice-versa): dallo scheduler, il
processo del SO che assegna la CPU
Tra running e blocked: dal verificarsi di un evento checausa il blocco, es. richiesta di I/O, attesa di segnale
Tra blocked e ready: dal verificarsi dellevento di cui ilprocesso in attesa, es. fine I/O, ricezione di segnale
In tutti i casi il cambiamento viene indotto da una trap o dauna interruzione
Le trap e le interruzioni vengono gestite dal (micro)kernel
Cambiamenti di stato
-
7/24/2019 SO-II-4p-Sistemi Operativi
3/14
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 9
Stati dei processi
Oltre agli stati fondamentali esistono molti altri stati Definizioni sofisticate e dipendenti dal SO Tipicamente lo stato contiene informazioni su
Comportamento del processo in tempi recenti
Risorse possedute dal processo, e.g. memoria
Priorit
Alcuni esempi
Sleeping Hybernate
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 I I - 10
Implementazione dei processi
Il sistema operativo mantiene per ciascun processo tutte
le informazioni necessarie a gestirlo Identificazione e gerarchia
Risorse assegnate
Stato del processo
Stato della CPU etc.
Le informazioni sono riunite in una apposita struttura, laProcess Table
La struttura differisce nei dettagli a seconda del SO
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 11
La Process Table
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 I I - 12
Thread
In un processo possibile distinguere due componenti Le risorse allocate al processo: files aperti, processi
figli, etc. (vedi Process Table) La sua esecuzione: e tutti i dettagli relativi, stato della
CPU, stack etc.
pensabile e vantaggioso avere pi esecuzioni per lostesso processo, che ne condividono le risorse
Ciascuna di queste denominata thread
I moderni sistemi operativi supportano i thread
-
7/24/2019 SO-II-4p-Sistemi Operativi
4/14
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 13
Thread e processi
(a) Tre processi ciascuno con un unico thread(b) Un unico processo con tre thread
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 I I - 14
Thread e processi (2)
Alcuni item sono condivisi da tutti i thread di uno stessoprocesso
Altri sono replicati per ogni thread Il SO mantiene parte dellinformazione a livello di thread
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 15
Gestione dello stack
Ogni thread ha il proprio stack Tutte le variabili locali si mantengono distinte
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 I I - 16
Benefici del multithreading
Creazione e terminazione di un thread molto pi leggere Modularit e flessibilit delle applicazioni Implementazione di server concorrenti:
creazione dinamica di un threadper ogni nuovarichiesta di servizio
gestione implicita della concorrenza Parallelismo di esecuzione: uno stesso processo pu essere
elaborato in parallelo da pi processori Aumento del livello di multiprogrammazione: migliore
utilizzazione della/e CPU
-
7/24/2019 SO-II-4p-Sistemi Operativi
5/14
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 17
Esempio: Web server
Il dispatcherriceve le richieste e le alloca Ogni richiesta viene assegnata ad uno worker Gli workerse non occupati dormono
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 I I - 18
Web server: schema del codice
(a) Schema del codice del dispatcher(b) Schema del codice dello worker
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 19
Web server con thread: vantaggi
Aumenta il parallelismo allapplicazione Possibile servire pi richieste contemporaneamente
Quando alcuni thread sono bloccate, altri possonoessere ready ed andare in esecuzione sulla CPU
Semplifica lo sviluppo dellapplicazione Tutti i dettagli dellelaborazione concorrente di pi
richieste sono gestite implicitamente
Il programmatore non deve tener conto di questi dettagli
Rende lesecuzione complessiva pi leggera
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 I I - 20
Esempio: word processor
Possibile avere un thread per ciascun documento apertocontemporaneamente
Fanno tutti la stessa cosa su documenti diversi
Possibile avere anche pi thread per gestire un solodocumento Gestione interfaccia Gestione dei backup periodici Riformattazione del documento
ES
Con tre documenti aperti su Power Point, possocontrollare sul Task Manager, e vedo che ho 8 thread
-
7/24/2019 SO-II-4p-Sistemi Operativi
6/14
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 21
Esempio: Power Point
Erano aperti tre documenti
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 I I - 22
Dati processo
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 23
Dati thread
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 I I - 24
Comunicazione tra processi
Processi e thread sono spesso cooperanti nellambito diuna stessa applicazione o di uno stesso sistema
Per cooperare necessitano di Scambiarsi informazioni(dati, messaggi) Sincronizzarsi, per garantire la correttezza
della esecuzione Lassenza di sincronizzazione pu condurre ad una
esecuzione i cui risultati dipendono da circostanzeesterne (es. ordine di scheduling)
Sincronizzazione necessarie in presenza di condizioni dicorsa (race conditions)
-
7/24/2019 SO-II-4p-Sistemi Operativi
7/14
-
7/24/2019 SO-II-4p-Sistemi Operativi
8/14
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 29
Corse critiche e stallo
La mutua esclusione pu solo essere garantita tramitemeccanismi e primitive offerte dal SO
Le soluzioni proposte devono aggirare due problemi tra lorocontrastanti
I processi devono poter essere bloccati per evitare cheentrino in pi di uno nella sezione critica
Lesistenza di situazioni di blocco anche temporaneopu causare situazioni di stallo e di attesa indefinita
Purtroppo tutte le soluzioni proposte sono relativamentecomplesse, ed implicano un dispendio di risorse
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 I I - 30
Atomicit delle operazioni
Un processo prima di entrare nella sezione critica deveeffettuare due operazioni:
1. Controllare se la sezione libera
2. Entrare nella sezione, se essa libera
Alle due operazioni corrispondono almeno due istruzionimacchina, in genere molte di pi
Lelaborazione di un processo pu essere interrotta dopoqualsiasi istruzione macchina
Lintera azione non atomica cio indivisibile, e questopu provocare situazioni scorrette
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 31
Corsa critica: esempio
I due ProcessiA e B condividono una sezione critica e si alternano
sulla sezione critica
A controlla se la sezione critica libera La sezione critica libera e A memorizza linformazione
Lelaborazione di A viene interrotta Viene ripresa lelaborazione di B B controlla se la sezione critica libera La sezione critica libera e B memorizza linformazione B entra nella sezione critica B continua a lavorare nella sezione critica Lelaborazione di B viene interrotta Viene ripresa lelaborazione di A A entra nella sezione critica (aveva gi controllato)
SiaA che B si trovano nella sezione critica
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 I I - 32
Soluzione ingenua
Proteggere la sezione critica con un flag LOCK LOCK=0: sezione critica libera
LOCK=1: sezione critica occupata Un processo prima di entrare1. Controlla LOCK
2. Se LOCK=0 pone LOCK=1
3. Entra
Siccome i passi 1. e 2. richiedono istruzioni distinte, lacorsa critica si riproduce nellaccesso a LOCK
La soluzione non funziona
-
7/24/2019 SO-II-4p-Sistemi Operativi
9/14
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 33
Alternanza stretta (busy waiting)
Corretta ma estremamente inefficiente
Un processo pu attendere anche se laltro non nellasezione critica Viola una delle condizioni
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 I I - 34
TSL (Test Set an Lock)
Soluzione che richiede laggiunta di una istruzione macchina In una sola azione ininterrompibile la TSL op1,op2
Copia il valore delloperando op2 in op1 Forza il valore di op2 ad 1
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 35
Esempio: produttore - consumatore
Lavora se trova
uno slot pieno
ConsumatoreProduttore
Lavora se trova
uno slot libero
Buffer
N slot
I due processi condividono il buffer Ilproduttore scrive nel buffer se trova almeno una slot libera;
se no attende Il consumatore legge dal buffer se trova almeno una slot
piena; se no attende
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 I I - 36
Produttore - consumatore: problemi
Una soluzione al problema deve garantire che
1. I due processi non manipolino contemporaneamente il
buffer (sezione critica)2. Il produttore vada in condizione di blocco quando ilbuffer pieno
3. Il consumatore vada in condizione di blocco quando ilbuffer vuoto
4. Il produttore venga risvegliato se in blocco e si liberauna slot
5. Il consumatore venga risvegliato se in blocco e vieneriempita una slot
-
7/24/2019 SO-II-4p-Sistemi Operativi
10/14
-
7/24/2019 SO-II-4p-Sistemi Operativi
11/14
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 41
Richieste di CPU (burst)
Molto variabili e dipendono dalla natura del processo (a) CPU bound (b) I/O bound
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 I I - 42
Obiettivi dello scheduling
Lassegnazione della CPU ai processi (thread) che sononello stato ready fatta dal processo scheduler
Vengono utilizzati particolari discipline di scheduling, basatisu criteri diversi, e spesso contrastanti
massimizzare lutilizzazione della CPU
minimizzare il tempo di esecuzione di unprocesso/thread
minimizzare il tempo di risposta, attesa prima che unprocesso produca un output
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 43
Obiettivi e tipologie di sistemi
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 I I - 44
Priorit e prelazione
Ai processi e ai thread possono essere associateprioritper avvantaggiarli o per penalizzarli:
Priorit statiche: sono una caratteristica intrinseca
dei processi
Priorit dinamiche: dipendono dai livelli di servizioconseguiti finora dal processo/thread
Lo schema di assegnazione delle priorit pu esseremodificato dallo amministratore del sistema
Laprelazione un caso estremo di priorit: consente disottrarre la CPU ad un processo in stato running
-
7/24/2019 SO-II-4p-Sistemi Operativi
12/14
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 45
Scheduling nei sistemi batch
Obiettivi Massimizzare lutilizzazione della CPU
Massimizzare il throughput(job/ora)
Minimizzare il tempo di turnaround(media del tempo trala sottomissione e la fine del job)
Non interessa il tempo di risposta perch gli utenti non sonointerattivi
Molti grandi sistemi centralizzati hanno una parte del caricocostituita da job batch
Il carico batch viene elaborato a sistema scarico (a notte)
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 I I - 46
Scheduling nei sistemi interattivi
Lobiettivo prioritario di minimizzare i tempi di risposta
Si tende a favorire i processi con comportamento I/Obound, a scapito dei CPU bound Non ha senso lo scheduling a tre livelli Ha senso uno scheduling a due livelli
Memory scheduling
CPU scheduling Di seguito si discute il CPU scheduling
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 47
Scheduling FCFS
FCFS: First Come First Served I processi vengono mandati in esecuzione nello stesso
ordine in cui sono entrati nella ready list Non vi prelazione: ogni processo rimane sulla CPU finoal suo completamento, o fino a quando esso non la rilasciaspontaneamente
Penalizza i processi I/O bound che chiedono poca CPU Favorisce i processi CPU bound
Causa un sottoutilizzo dei dispositivi di I/O
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 I I - 48
Scheduling SSTF
SSTF: Shortest Service Time First Viene scelto sempre il processo che richiede il tempo di
servizio pi corto
I tempi di servizio richiesti non sono noti: vengono previsti inbase alle esperienze recenti
Disciplina interessante perch garantisce minimizzazionedel tempo medio di risposta
Per causa un peggioramento della varianza del tempo dirisposta
Interessante soprattutto in contesti interattivi
-
7/24/2019 SO-II-4p-Sistemi Operativi
13/14
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 49
Scheduling SSTF: esempio
(a) FCFS (8,4,4,4)
Tempo totale 20
Tempo medio 13.5
Tempo minimo 8 Tempo massimo 20
(b) SSTF (4,4,4,8)
Tempo totale 20
Tempo medio 11
Tempo minimo 4 Tempo massimo 20
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 I I - 50
Scheduling Round-Robin
Round-Robin : la giostra Ciascun processo/thread resta sulla CPU al massimo per
un tempo , detto quantum Trascorso questo viene reinserito alla fine della coda
Processi I/O-bound: fanno prevalentemente I/O e nonsfruttano quasi mai il tempo di CPU concesso Processi CPU-bound: utilizzano tutto il tempo di CPU
concesso, e devono fare molti giri
richiesta di I/O
fine processo
CPU
tempo scaduto
processi ready
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 51
Round-Robin a code multiple
Classi di priorit servite nellordine, solo se le classisuperiori sono esaurite Priorit dinamiche usate per riparare alle ingiustizie
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 I I - 52
Shortest process next
Viene scelto il processo con la minore richiesta di CPU Problema: stimare a priori la durata dei burstdi CPU
richiesti dai vari processi
Ci si basa sulla storia passata per aggiornare la stima Sia n la stimaaccumulata al passo n e Tn il tempo
effettivamente sperimentato La nuova stima sar n+1 = n+ (1- ) Tn La costante permette di stabilire quanto pesa la storia
passata e quanto quella recente
La tecnica di previsione si chiama aging
-
7/24/2019 SO-II-4p-Sistemi Operativi
14/14
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 53
Guaranteed scheduling
Lidea quella che ciascun processo abbia la fetta di CPUche gli spetta da una divisione equa
Se i processi sono n la sua share dovrebbe essere 1/n Si accumula per ciascuno il tempo totale di CPU goduto Ad ogni passo si calcola per ogni processo il rapporto fra il
tempo goduto e quello spettante
Rapporti bassi significano ingiustizie subite
Lo scheduler sceglie sempre il processo con il rapporto pibasso
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 I I - 54
Scheduling nei sistemi real-time
Elaborazione basata su eventi al cui servizio sonoassociate scadenze (deadline)
Creato un processo per ogni evento, con vita breve ecomportamento prevedibile
Obiettivo dello scheduler: fare in modo che le deadline deiprocessi siano rispettate (in modo hardo soft)
Due tipi di eventi
Periodici: si presentano ad intervalli regolariAperiodici: non prevedibili
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 55
Scheduling nei sistemi real-time
In genere ci sono diverse serie di eventi periodici Il requisito minimo e che il sistema possa sostenere il carico
(schedulable system)
Se ci sono m serie di eventi con richeste di CPU pari a Ci eperiodo Pi , la condizione
Scheduling di tipo statico o dinamico Caso di particolare interesse i sistemi multimedia
(2)
1
1
m
i
i i
C
P=