Martignoni Sistemi Operativi Monga Lezione VI: Lo...

8

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

[email protected]

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