Martignoni Sistemi Operativi Monga Lezione VI: Lo...
Transcript of Martignoni Sistemi Operativi Monga Lezione VI: Lo...
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
1
Sistemi Operativi1
Mattia Monga
Dip. di Informatica e Comunicazione
Universit�a degli Studi di Milano, Italia
a.a. 2008/09
1c 2009 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia License.
http://creativecommons.org/licenses/by-sa/2.5/it/. Immagini tratte da [?] e da Wikipedia.
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
119
Lezione VI: Lo scheduling dei processi
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
120
Strutture dati
Per gestire i processi il s.o. usa una particolare strutturadati, detta Process Control Block (PCB)
Il PCB viene allocato all'avvio di ogni processo edeallocato al termine dello stesso
Esiste un PCB distinto per ogni processo
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
121
PCB
Identi�cazione del processo:
Identi�catore del processo (PID)Identi�catore del processo padre (PPID)Identi�catore dell'utente proprietario del processo (UID)
Stato del processoreTutti i registri del datapath accessibili dai processi utente
%EAX, . . .Program counterStack pointer: puntatori allo stack associato al processoCondition codesVariabili di stato: ag di interrupt, execution mode. LaProgram status word (PSW) contiene informazioni circalo stato del processore.
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
122
Pentium EFLAGS register
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
123
PCB (cont.)
Process Control Information
Process state: running, ready, blocked, halted.Priorit�a di schedulingInformazioni per l'algoritmo di scheduling: tempo dipermanenza nel sistema, tempo di CPU,Eventi: identi�cativo dell'evento di cui il processo �eeventualmente in attesaCampi di strutture dati: puntatori utilizzati quando il PCB�e inserito in code di attesaVariabili per la comunicazione tra processiEventuali privilegi concessi al processo: quantit�a dimemoria, risorse del sistemaGestione della Memoria
Tabelle delle pagine o dei segmenti
Risorse utilizzate
File aperti e/o creati
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
124
PCB MINIX
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
125
Context switch
Dall'esecuzione di P1 a P2
1 Salva lo stato del processore
2 Aggiorna il PCB del processo in esecuzione (P1)
3 Sposta il PCB di P1 nella coda adeguata: ready, blocked
4 Seleziona un altro processo per l'esecuzione (P2)
5 Aggiorna il PCB di P2
6 Aggiorna le strutture di gestione della memoria
7 Ripristina il contesto del processore relativo a P2
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
126
Thread
In alcuni sistemi �e possibile che un processo si articoli inpi�u thread sequenziali (lightweight processes)
Sono sotto-attivit�a di un processo: ne condividono lerisorse (in particolare la memoria)
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
127
Thread
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
128
Implementazioni di thread
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
129
Implementazioni di thread
User-level thread
Kernel-level thread
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
130
Thread scheduling
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
131
User vs. Kernel thread
User Thread
Lo switching tra thread �e molto pi�u veloce, si risparmiauna chiamata al kernel
Kernel thread
Quando un thread si blocca (ad esempio per compiereI/O) l'intero processo pu�o continuare la sua esecuzione, nelcaso di gestione a livello utente NO!
Soluzioni ibride: gruppi di thread utente sono gestiti comeun kernel thread.
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
132
Uso tipico di un calcolatore
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
133
CPU e I/O bound
Processi CPU-bound (o compute-bound)
Alternano lunghe computazioni (CPU burst) ad attivit�a diI/O (I/O wait) relativamente poco frequenti
Processi I/O-bound
Alternano brevi computazioni a frequenti attivit�a di I/OMigliorando le prestazioni delle CPU, i CPU burstdiventano sempre pi�u breviI processi I/O-bound dovrebbero venire eseguiti (i.e.occupare la CPU) ogni volta che lo richiedono per potertenere occupati i dischi
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
134
Lo scheduler
Lo scheduler
1 Per evitare di sprecare tempo di CPU durante l'I/O, mettei processi che eseguono I/O in stato di blocked
2 Seleziona tra i processi ready un nuovo processo daeseguire
3 In alcuni casi potrebbe poter decidere di revocare l'usodella CPU e rimettere un processo running nella coda deiready (preemption o prelazione)
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
135
Tipi di scheduling
Long-term Quando aggiungere un processo fra quellie�ettivamente eseguibili
Medium-term Quali fra i processi eseguibili tenere (almeno inparte) nella memoria centrale
Short-term Quale processo in memoria fare eseguire dallaCPU
I/O scheduling Quale processo servire nel caso di richieste diI/O multiple
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
136
Short-term scheduler
Noto anche come dispatcher o CPU scheduler
�E lo scheduler eseguito pi�u di frequente
Viene invocato quando si veri�ca uno dei seguenti eventi
Clock interruptsI/O interruptsOperating system callsSignals
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
137
CPU scheduler
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
138
Modalit�a
Preemptive (con diritto di prelazione) algoritmi che prevedonola possibilit di sospendere momentaneamente iprocessi in esecuzione per eseguire altri processi
Da running a blocked (es. I/O request)Da running a ready (es. IRQ) [preemptive]Da blocked a ready (es. I/O completed)[preemptive]Terminated
Non preemptive o run to completion un processo in esecuzionemantiene l'uso della CPU sino alla naturaleterminazione del burst
terminazione del processorichiesta di I/O,esplicito rilascio della CPU (yield)
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
139
Obiettivi di progetto
Come sempre occorre trovare un trade-o� fra obiettivi:
User-oriented
Response Time (tempo che intercorre tra la sottoposizionedi processo e il primo output)
System-oriented
Uso e�ciente delle risorse del sistema
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
140
Obiettivi
Fairness A ogni processo deve essere concessa la CPU inmaniera equa
Policy enforcement Le politiche di gestione stabilitedall'amministratore del sistema vengonorispettate
Balance Tutte le parti del sistema vengono sfruttate inmodo bilanciato
Sistemi batch
Throughput Il numero di job per unit�a di tempo �emassimo
Turnaround Il tempo fra sottoposizione e ottenimento deirisultati �e minimo
utilizzo della CPU La CPU �e sfruttata al massimo
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
141
Obiettivi
Sistemi interattivi
Response time Le richieste dell'utente vengono soddisfattevelocemente
Proporzionalit�a Il sistema risponde secondo le aspettativedell'utente
Sistemi real-time
Deadline meeting Le scadenze real-time vengonorispettate
Predicibilit�a Il comportamento �e predicibile
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
142
Scheduling nei sistemi batch
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
143
First Come First Served
Algoritmo non-preemptive
Implementazione molto facile
Average wait time molto variabile e generalmente lontanodall'ottimo
Dipende dai tempi di esecuzione di chi �e in coda davanti anoi
Inadatto ai sistemi interattivi
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
144
FCFS
Example
Processo T. di arrivo Burst
P1 0 24P2 10 3P3 12 3
Tempo di attesa P1 = 0;P2 = 14;P3 = 15
Average waiting time (0 + 14 + 15)=3 = 9:67
Average turnaround (24 + 17 + 18)=3 = 19:67
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
145
E�etto \convoglio" (convoy)
Se il processo in esecuzione �e CPU-bound, molti altri processi(magari I/O-bound) non possono essere eseguiti
Example
Processo T. di arrivo Burst
P1 1 24P2 0 3P3 0 3
Tempo di attesa P1 = 5;P2 = 0;P3 = 3
Average waiting time (5 + 0 + 3)=3 = 2:67
Average turnaround (29 + 3 + 6)=3 = 12:67
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
146
Shortest Job First
Presuppone la conoscenza del tempo di esecuzione diciascun processo
Tutti i processi hanno uguale importanza
La CPU viene assegnata al processo col tempo diesecuzione previsto minore
Versione preemptive: shortest remaining time next
All'arrivo di un nuovo job si rivaluta l'ordine e la sceltacorrente
Garantisce il minimo tempo di turnaround
SistemiOperativi
BruschiMartignoniMonga
Strutture datiper la gestionedei processi
Context switch
Thread
Scheduling
Short-termscheduling
Sistemi batch
FCFS
SJF
147
SJF
Example
Processo T. di arrivo Burst
P1 0 7P2 2 4P3 4 1P4 5 4
Tempo di attesa P1 = 0;P2 = 6;P3 = 3;P4 = 7
Average waiting time (0 + 6 + 3 + 7)=4 = 4:00
Average turnaround (7 + 10 + 4 + 11)=4 = 8:00