25*$1,==$=,21(',81 6,67(0$23(5$7,92
Come sono organizzate le diverse ULVRUVH componenti di un S.O. e le modalità di interconnessione tra di esse
6LVWHPLPRQROLWLFL
6LVWHPLDOLYHOOL
0DFFKLQHYLUWXDOL
0RGHOORFOLHQWHVHUYLWRUH
)LOH 6\VWHP e memorizzazione e uso delle risorse
3URFHVVL e uso delle risorse
6,67(0,0212/,7,&,
Il sistema operativo è scritto come un LQVLHPH GLSURFHGXUe, tutte alloVWHVVROLYHOOR di
gerarchia.
Le funzioni possono chiamarsi reciprocamente s sono invocabili attraverso EHQGHILQLWH
interfacce
tipicamente LQWHUUXSWVRIWZDUHo WUDS Requisiti di
SURWH]LRQH
eULXVR
SURJUDPPD
SURJUDPPD
1
2 3
4
SURFHGXUD
GLVHUYL]LR WDEHOODGHOOH
FKLDPDWH
FKLDPDWD
GLVLVWHPD
LSURJUDPPLGL
XWHQWHRSHUDQR LQXVHUPRGH
LOVLVWHPD
RSHUDLQ
VXSHUYLVRU RSHUDWLYR
PRGH
6HSDUD]LRQH 62 3URFHVVL8WHQWH
(6(03,2GL6,67(0$PRQRSURJUDPPDWR
SURJUDPPLDSSOLFDWLYL
SURJUDPPLGLVLVWHPD UHVLGHQWL
JHVWLRQHGHLGLVSRVLWLYL GL,206'26
JHVWLRQHGHLGLVSRVLWLYL 520%,26 6206'26
:LQGRZV
:LQGRZV PXOWLSURJUDPPDWR"
:LQGRZV17 PXOWLSURJUDPPDWR
6,67(0$$/,9(//,
• Le funzioni del S.O. sono organizzate per OLYHOOLJHUDUFKLFL
• Ogni livello definisce un WLSR di servizio e le PRGDOLWj per essere utilizzato dai OLYHOOL VXSHULRUL
• 0DFFKLQHYLUWXDOL Ogni livello definisce una nuova macchina, aggiungendo nuove funzionalità alla precedente
• Livelli ccome DLXWR nel progetto per superare difficoltà pratiche nella realizzazione (gerarchia)
02'(//2&/,(17(6(59,725(
• Sistemi operativiPRGHUQL la maggior parte delle funzioni del sistema operativo sono realizzate come SURFHVVLGLXWHQWH
.(51(/ NHUQHO
PRGH
XVHU
PRGH
SURFHVVR
FOLHQWH PHPRU\ SURFHVV
VHUYHU VHUYHU VHUYHUILOH
VHUYHU WHUPLQDO
SURFHVVR
FOLHQWH
• Per richiedere un servizio un SURFHVVR FOLHQWH(utente) invia una richiesta ad un SURFHVVRVHUYLWRUH (es.: OHWWXUDGLXQILOH)
• 9DQWDJJL
J le funzioni sono suddivise in parti di dimensioni ridotte e ben specificate J protezione contro errori: le funzioni non
hanno accesso al kernel (operano in XVHU PRGH)
&/$66,),&$=,21('(, 6,67(0,23(5$7,9,
2UJDQL]]D]LRQHLQWHUQD 9LVLELOLWjXWHQWH
* monoprogrammato
* batch
* multiprogrammato
* interattivo
* a divisione di tempo
* general purpose
* special purpose
6,67(0,0212352*5$00$7,
Si gestiscono i programmi in modo sequenziale nel tempo
Tutte le risorse hardware e software del
sistema sono dedicate ad un solo programma per volta.
XWLOL]]RGHOOD&38 7S7W 7S = tempo dedicato dalla CPU alla
esecuzione del programma 7W= tempo totale di permanenza del
programma nel sistema
WKURXJKSXW = numero di programmi eseguiti per unità di tempo
3HUDYHUHDOWDHIILFLHQ]DVLYRUUHEEHDYHUHXQ XWLOL]]RYLFLQRDGHWKURXJKSXWHOHYDWR
L%$66$87,/,==$=,21('(//(5,6256(
6,67(0,08/7,352*5$00$7,
Si JHVWLVFRQR "contemporaneamente" più programmi indipendenti presenti nella memoria principale
• Migliore XWLOL]]D]LRQHGHOOHULVRUVH (riduzione dei tempi morti)
• 0DJJLRUHFRPSOHVVLWj del S.O.:
- algoritmi per la gestione delle risorse (CPU, memoria, I/O)
- protezione degli ambienti dei diversi programmi
3URFHVVLVHQ]DPXOWLSURJUDPPD]LRQH
3URJUDPPD3
3URJUDPPD3
LQL]LR
LQL]LR DWWHVD
DWWHVDGDWL DWWHVDGDWL
DWWHVDGDWL VWRS
GDWL VWRS DWWHVD
DWWHVDGDWL DWWHVDGDWL
• Durata dell'esecuzione :
2 minuti (1 minuti per programma)
• Occupazione della CPU:
1 minuti (50%)
• 3 e 3 eseguono per 1 secondo, quindi attendono per 1 secondo (30 volte)
3URJUDPPD3
LQL]LR DWWHVDGDWL DWWHVDGDWL DWWHVDGDWL VWRS 3URJUDPPD3
LQL]LR
DWWHVDGDWL
DWWHVDGDWL VWRS
DWWHVDGDWL
Esecuzione dei programmi FRQ multiprogrammazione
3URJUDPPD3
3URJUDPPD3
LQL]LR
DWWHVDGDWL
DWWHVDGDWL VWRS
DWWHVDGDWL
LQL]LR
DWWHVDGDWL
DWWHVDGDWL VWRS
DWWHVDGDWL
• Durata dell'esecuzione:
1 minuti
• Occupazione CPU:
1 minuti (100%) (caso teorico) L efficienza (in genere) più bassa e
throughput inferiore a 1 al minuto (2 uscite ogni 2 minuti)
6,67(0,D',9,6,21(GL7(032
Astrazione di più PDFFKLQHYLUWXDOL
• Ogni utente ha un proprio programma in memoria ed a ciascuno è dedicata una macchina virtuale
• Si abbreviano i tempi di attesa dei programmi corti
• Tempo impiegato dal S.O. per trasferire il controllo da un programma ad un altro (RYHUKHDG)
6,67(0,%$7&+
• I programmi sono inseritiDORWWL nella memoria di massa e successivamente elaborati in
multiprogrammazione
• 2ELHWWLYR migliore utilizzazione possibile delle risorse (elevatoWURXJKSXW)
• Scelta dell’insieme di programmi (MREPL[) in memoria principale che ottimizzano l’utilizzo delle risorse
6,67(0,,17(5$77,9,
• Più utenti che utilizzano contemporaneamente il sistema di calcolo (a divisione di tempo)
• 2ELHWWLYR
migliorare i tempi di risposta per l’utente (in contrasto con l’ottimizzazione delle risorse)
• Scelta del processo che ha più urgenza di servizio
6,67(0,*(1(5$/385326(
• Centri di Calcolo di grandi dimensioni
• Utenze di tipo differenziato
• Modalità di uso batch ed interattivo 6,67(0,63(&,$/385326(
• Dedicati adDSSOLFD]LRQLVSHFLILFKH, spesso con hardware speciale (dispositivi di I/O)
• 6LVWHPLLQWHPSRUHDOH il sistema di calcolo deve "rispondere" entro un limite di tempo (tempo di reazione)
- tempo reale VWUHWWR: il tempo di risposta è molto stringente come vincolo e non può non essere rispettato (p.e. processi industriali) - tempo realeGHEROH: il tempo di risposta deve
essere "ragionevole" (p.e. sistema interattivo per la prenotazione voli)
,03/(0(17$=,21('(/
),/(6<67(0
EUDFFLR
UHDGZULWHWHVWLQH FLOLQGUR
WUDFFLDW
URWD]LRQH
Struttura del disco
Componenti:
• disk driver parte meccanica (motore del dispositivo, testine di lettura e scrittura)
• disk controller controlla interazione con la CPU. Trasforma le istruzioni di I/O in comandi al disk driver
LQGLUL]]RILVLFR
• settore (blocco fisico) unità minima di informazione che può essere letta o scritta da/su disco VHWWRUH 32 − 4096 byte
WUDFFLD 4 − 32 settori VXSHUILFLH 20 − 1550 tracce
• per individuare un settore:
VHHNWLPH per raggiungere la traccia
ODWHQF\WLPH per portare il settore sotto la testina
• il S.O. vede il disco come un vettore di blocchi fisici
• gli indirizzi dei blocchi si incrementano
all’inizio di una traccia, lungo tutte le tracce di un cilindro e per tutti i cilindri
• l’indirizzo di un blocco viene espresso tramite QXPHURGLFLOLQGUR
QXPHURGLWUDFFLDQHOFLOLQGUR RQXPHURGLVXSHUILFLHH QXPHURGLVHWWRUHQHOODWUDFFLD
*(67,21(GHOOR63$=,2/,%(52
%,70$3
Ogni blocco è rappresentato da un bit ( se libero, se occupato)
Jè semplice trovare QEORFFKLFRQVHFXWLYL Kla mappa deve essere contenuta in PHPRULD
SULQFLSDOH (efficienza)
LISTA DI BLOCCHI LIBERI
LQRQqHIILFLHQWH occorre leggere un blocco per avere l’indirizzo del successivo
1 2
5 3 4
0
6 7
9 10
13 11 12
8
14 15
25 26 29
27 28
24
30 31 17 18 21
19 20
16
22 23
puntatore al primo blocco libero
PRGLILFD il primo blocco contiene gli indirizzi di Qblocchi liberi. L’ultimo di questi contiene
l’indirizzo di altriQsettori liberi, etc.
0(72',GL$//2&$=,21(
GHL%/2&&+,,03(*1$7,
• Un file è memorizzato inEORFFKLGLE\WH di dimensione finita (blocchi logici)
• Tutte le operazioni di I/O avvengono in termini di blocchi logici
Esempio: NE\WH EORFFRORJLFR
NE\WH EORFFRILVLFR
Ogni OHWWXUDVFULWWXUD di XQEORFFR comporta la OHWWXUDVFULWWXUD di GXHVHWWRUL
6HPSUHil SO bufferizza i blocchi letti/scritti per ottmizzare i tempo di interazione con il disco e per fornire servizi più veloci alle richieste dei processi utente
4XDOLSURFHVVLXWHQWHVRQRIDYRULWL"
¢&RPHVLSRVVRQRRWWHQHUHEXRQLVHUYL]L"
$OORFD]LRQH FRQWLJXD
DOLVWDOLQNDWD
DGLQGLFH
$OORFD]LRQHFRQWLJXD
GLUHWWRULR
)LOH,QL]LR)LQH
count 0 2
tr 14 3
mail 19 6
list 28 4
f 6 2
5
4
6 7
9 10
13
11 12
8
14 15
25 26
29
27 28
24
30 31
17 18
21
19 20
16
22 23
FRXQW
I
PDLO WU
OLVW
• riduce il tempo di seek
• consente sia accessi sequenziali sia diretti
$FFHVVRVHTXHQ]LDOH: il file system memorizza l’indirizzo dell’ultimo blocco letto/scritto.
L’accesso avviene per il blocco successivo
$FFHVVRFRQWLJXR: se il file inizia al bloccoE, l’accesso avviene per il bloccoEL
3UREOHPL
K 'HWHUPLQD]LRQH dello spazio contiguo tecniche di ILUVWILWEHVWILWZRUVWILW L )UDPPHQWD]LRQHHVWHUQD
HVLJHQ]HGL compattamento L &UHVFLWDGLQDPLFD dei file
$OORFD]LRQHD/,67$
1 2
5 3 4
0
6 7
9 10 13
11 12
8
14 15
25 26 29
27 28
24
30 31 17 18 21
19 20
16
22 23 -1 10
16 25
1
GLUHWWRULR ILOH LQL]LR ILQH
MHHS
• La scrittura in un file comporta ODULFHUFD di un blocco nella OLVWDGHLEORFFKLOLEHULe
l’inserimento alla fine del file
• 1RQ c'è frammentazione esterna e QRQ QHFHVVDULR conoscere la lunghezza del file
• Efficienza SHUDFFHVVLVHTXHQ]LDOL 3UREOHPL
K GRSSLROLQNSHUHYLWDUHSUREOHPL (perdita di un puntatore)
L Spazio richiesto per i puntatori
L Accesso diretto QRQUHDOL]]DELOHin pratica
)UDPPHQWD]LRQH
mancanza o non disponibilità di risorse che sono invece potenzialmente presenti
Frammentazione INTERNA
Frammentazione ESTERNA
$OORFD]LRQHDOLVWDOLQNDWD
Allocazione a lista risolve i problemi della allocazione contigua
J IUDPPHQWD]LRQHHVWHUQD J FUHVFLWDGLQDPLFDGLXQILOH
ma
L Non supporta un DFFHVVRGLUHWWR: i blocchi sono sparsi su tutto il disco
L I puntatori ai vari blocchi sono VSDUVLsu tutto il disco
$OORFD]LRQHDLQGLFH
1 2
5 3 4
0
6 7
9 10 13
11 12
8
14 15
25 26 29
27 28
24
30 31 17 18 21
19 20
16
22 23 -1
10
16 25
1
GLUHWWRULR
ILOH EORFFRLQGLFH
MHHS
9 16 1 1025 -1 -1 -1
$OORFD]LRQHDLQGLFH: tutti i puntatori ai blocchi di file sono contenuti in un EORFFRLQGLFH
• Per leggere il blocco LHVLPR si usa il
puntatore contenuto nella SRVL]LRQHLHVLPD del blocco indice
• AllaFUHD]LRQHdi un file, il suo blocco indice contiene tutti QLO. Quando VLVFULYH il blocco i- esimo, l’indirizzo viene scritto nella posizione i-esima del blocco indice
• Possibilità diDFFHVVRGLUHWWR senza IUDPPHQWD]LRQHHVWHUQD
L Spazio per il blocco indice
$OORFD]LRQHDLQGLFH
• Se il file è di dimensioni elevate, il blocco indice può occupare GXHRSLEORFFKL
• L'ultimo elemento di un blocco indice è QLO (per file piccoli) o OLQGLUL]]R di un altro blocco indice (per i file grandi)
• Indice a più livelli. Il primo blocco indice contiene indirizzi di altri blocchi indice che contengono gli indirizzi dei blocchi
GXHOLYHOOL) (VHPSLR
EORFFRLQGLFH,OLYHOOR
SXQWDWRULDEORFFKLLQGLFH
EORFFRLQGLFH,,OLYHOOR
SXQWDWRULDEORFFKL
;SXQWDWRULDEORFFKL 7RWDOH EORFFKL
EORFFR E\WH E\WH
0HWRGLGLDOORFD]LRQH
3URSULHWjLQGLFDWLYH
JUDGRGLXWLOL]]D]LRQHGHOODPHPRULD
WHPSRQHFHVVDULRSHUDFFHGHUHDGXQ EORFFRVXOGLVFR
PHWRGLGLDFFHVVRFRQVHQWLWL
7DEHOODGLDOORFD]LRQHGHLILOHGLGLFFR )$7GL06'26
WHVW QRPH
GHVFULWWRUHGHOILOH
EORFFRLQL]LDOH
HQGRIILOH
)$7 1REORFFKLGHOGLVFR
LQGLFHGHLEORFFKLGHOGLVFR
,QGLFHGHOGLVFRLQWHUR
ORGANIZZAZIONE dei DIRETTORI
I direttori consentono l’accesso ai blocchi (o al primo blocco del file, o a un descrittore del file) e sono file a loro volta
'LYHUVHRUJDQL]]D]LRQLVWRULFDPHQWH
La SULPDRUJDQL]]D]LRQH mantiene un ILOHV\VWHPXQLFR per tutti gli utenti
$ % &
$
GLUHWWRULRUDGLFH
La VHFRQGDRUJDQL]]D]LRQH riconosce e mantiene un ILOHV\VWHPSHURJQLXWHQWH (a ciascuno viene dato uno spazio unico)
&
&
$
$ % &
GLUHWWRULRUDGLFH
$ % &
GLUHWWRUL GLXWHQWH
VERSO UNIX
Una RUJDQL]]D]LRQH gerarchica consente agli utenti di decidere e mantenere la SURSULDVWUXWWXUD]LRQH con i SURSULGLUHWWRUL
$ % &
GLUHWWRULRUDGLFH
GLUHWWRUL GLXWHQWH
$
%
% % % & &
& &
& & &
VRWWRGLUHWWRUL GLXWHQWH
In UNIX il file system è unificato e non ci sono limiti ai direttori
Ci sono sistemi operativi in cui ilILOHV\VWHP può anche essere non gerarchico ma a JUDIRDQFKH FLFOLFR
Si ricordi la differenza tra link hardware e software
$66(*1$=,21(GHO352&(6625(
(CPU SCHEDULING)
• 6FKHGXOHU quella parte del S.O.che decide a quale dei SURFHVVLSURQWL presenti nel sistema assegnare il controllo della CPU
• I processi possono essere o in memoria principale o in memoria secondaria
• $OJRULWPRGLVFKHGXOLQJ realizza un particolare FULWHULRGLVFHOWD tra i processi pronti
Possibili criteri di scelta:
• utilizzo della CPU
• produttività
WKURXJKSXWFRPHXVFLWHSHUXQLWjGLWHPSR
• tempo di "turnaround" (sistemi batch) SHUPDQHQ]DQHOVLVWHPD
• tempo di risposta (sistemi interattivi) JDUDQWHQGRULVSRVWHSURQWH
• non privilegio (fairness) JLXVWL]LDQHOVHUYL]LR
3RVVLELOLWjGHJOLDOJRULWPLGLVFKHGXOLQJ
VFKHGXOLQJSUHHPSWLYHun processo in esecuzione perde il controllo della CPU anche se logicamente può proseguire VFKHGXOLQJQRQSUHHPSWLYH
un processo in esecuzione prosegue fino al rilascio spontaneo della CPU
WHUPLQD]LRQHULFKLHVWDGL,2
VRVSHQVLRQHSHUDWWHVDGLHYHQWR
5HOD]LRQLWUD352&(66,
Processi FRQFRUUHQWL Processi LQWHUDJHQWL Processi LQGLSHQGHQWL
3URFHVVL&21&255(17,
Due processi sono concorrenti se la loro esecuzione si sovrappone nel tempo
più CPU (overlapping) una sola CPU (interleaving)
W W
3 3 3
3 3 3
Due processi sono concorrenti se la prima operazione di uno inizia prima dell’ultima dell’altro
3URFHVVL,1',3(1'(17,
3 3 3
R R
R
R
R R
R R
11 i 1 Rn1
12 i 2 n2
1m i m nm
1 i n Proprietà
stato non condiviso
esecuzione
deterministica e riproducibile
3URFHVVL,17(5$*(17,
- modificano variabili comuni (stato condiviso)
- esecuzione non deterministica: il risultato dipende dalla sequenza di esecuzione relativa e non è predicibile
- esecuzione non riproducibile: il risultato non è sempre lo stesso per gli stessi dati di ingresso
3URFHVVL&21&255(17,H,17(5$*(17, Competizioneper l'uso di risorse comuni che non possono essere usate contemporaneamente
Cooperazionenell'eseguire un'attività comune mediante scambio di informazioni (comunicazione)
Interazione tra processi
competizione sull’uso delle risorse comunicazione reciproca se interagenti (attraverso file, mailbox, etc.)
/LYHOOLGLVFKHGXOLQJ
/RQJWHUPVFKHGXOLQJMREVFKHGXOLQJdetermina quali programmi devono essere caricati dalla memoria di massa alla memoria principale
* controlla il JUDGRGLPXOWLSURJUDPPD]LRQH (numero di processi in memoria principale)
* possibile criterio di scelta: insieme (mix) equilibrato di processi
"&38ERXQG" e ",2ERXQG"
* interviene ad intervalli di tempo
relativamente lunghi; algoritmi più complessi 6KRUWWHUPVFKHGXOLQJ seleziona tra i processi
pronti in memoria principale quello cui assegnare la CPU
* elevata frequenza di intervento
* efficienza
* SROLWLFD: FIFO, priorità, etc...
'LVSDWFKHUrealizza le operazioninecessarie per assegnare il controllo della CPU al processo selezionato dal VKRUWWHUPVFKHGXOHU:
* cambio di contesto
* ritorno allo stato di utente
* mette in esecuzione il processo selezionato
0RGHOORDVWDWL
long-term
coda dei processi pronti CPU
I/O
coda di I/O
attesa per I/O
quanto di tempo terminato esecuzione
del figlio
interruzione
fork
attesa per nterruzione termine
0HGLXPWHUPVFKHGXOLQJ
rimuovetemporaneamente dalla memoria principale un processo in esecuzione
* riduzione del grado di multiprogrammazione
* modifica dell’insieme di programmi in memoria principale
6ZDSSLQJ(VZDSLQVZDSRXW)
FRGHGL,2 FRGDGHLSURFHVVLSURQWL
,2
FRGDGHLSURFHVVLSDU]LDOPHQWHHVHJXLWL
VZDSLQ VZDSRXW
&38
$OJRULWPLGLVKRUWWHUPVFKHGXOLQJ 6FKHGXOLQJ5RXQG5RELQ
(RR)- La coda dei processi pronti è gestita FIFO, ma ad ogni processo è assegnata la CPU per un TXDQWRGLWHPSR (47) prefissato
&38 3 3 3
- Se il processo P1 non termina durante QT, la CPU viene assegnata a P2 e P1 è inserito in fondo alla coda
- 6FHOWDGL47 deve essere VXIILFLHQWHPHQWH grande rispetto al tempo di cambio del
contesto (ordine delle decine di msec)
6FKHGXOLQJD3ULRULWj
&38 3 3
3 3
3 3Q Q
OLYHOOLGLSULRULWj FRGH
In ogni istante, è in esecuzione il processo pronto a SULRULWjPDVVLPD
•
3ULRULWjVWDWLFD
fissata alla creazione dei processi in base alle loro caratteristiche(V processi di I/O con priorità più elevata
• 3URFHVVLIRUHJURXQG (sistema, interattivi)DOWD 3URFHVVLEDFNJURXQG(batch) EDVVDSULRULWj
• Problema della VWDUYDWLRQ: ad un processo a bassa priorità può non venire mai assegnata la CPU perchè vi sono sempre processi a SULRULWj SLHOHYDWD
6FKHGXOLQJD3ULRULWjGLQDPLFD
può essere modificata durante l'esecuzione dei processi:
• per SHQDOL]]DUH processi che impegnano troppo la CPU
• per evitare fenomeni di VWDUYDWLRQ
• per favorire processi ,2ERXQG
(VHPSLR81,;
• 3LOLYHOOLGLSULRULWj (crescente dall’alto al basso)
• 5RXQGURELQ tra i processi allo stesso livello
(quanto di tempo = 100 msec)
• $JJLRUQDPHQWRGLQDPLFR della priorità
ad esempio DGRJQLVHFRQGR
1XRYD3ULRULWj %DVH8VR&38 - EDVH normalmente =, assume un valore >
tramite la V\VWHPFDOO1,&(
- XVR&38 contatore per ogni processo incrementato di ad ogni clock (5 o 6 interruzioni per QT).
Diviso per , per ridurre la penalizzazione per uso elevato di CPU.
81,; - 6WUXWWXUDDFRGHGLSULRULWj
. ..
OLYHOOR
OLYHOOR
OLYHOOR
OLYHOOR
FRPSOILJOLR WHUPRXWSXW WHUPLQSXW EXIIHUGLVFR
,2GLVFR SULRULWjDOWD
SULRULWjEDVVD
SURFHVVLLQFRGD VXOLYHOOLGLSULRULWj
FKHRSHUDQR SURFHVVL LQXVHUPRGH
SURFHVVLFKH GHYRQRHVHJXLUH
XQDV\VWHPFDOO
(VHPSLR81,;
• Quando un processo esegue una V\VWHPFDOO, può YHQLUHEORFFDWR(es.: richiesta di uso del disco)
• Al verificarsi dell'evento atteso, il processo diventa SURQWR e viene inserito nel relativo livello di priorità (priorità negativa significa priorità alta)
• VLIDYRULVFRQR i processi interattivi (attesa per un terminale) e che eseguono I/O
)LUVW&RPH)LUVW6HUYHG)&)6
CPU assegnata ai processi in accordoDOORUGLQH WHPSRUDOHGLDUULYR nel sistema
• coda dei processi pronti servita),)2
• il processo mantiene la CPU fino al rilascio
VSRQWDQHR (terminazione, blocco); QRSUHHPSWLRQ
• prestazioni basse in termini di tempo medio di attesa
• Utilizzabile in sistemi EDWFK
(VHPSLR)&)6
3URFHVVL 7HPSRGLHVHFX]LRQH
3
3
3
• I processi arrivano nell'ordine 333 e sono serviti FCFS
WHPSRGLWXUQDURXQG P1 30
" " P2 85
" " P3 90
Ordine:333produce
WHPSRPHGLRGLWXUQDURXQG (30+85+90) / 3 = 68.33 Ordine:333produce
WHPSRPHGLRGLWXUQDURXQG = 43.33
6KRUWHG-RE)LUVW6-)
Tra tutti i processi nella coda dei pronti si sceglie quello GLGXUDWDPLQRUH
• occorre conoscere le carattersitiche dei processi (FDULFRVWDELOH)
• fornisce laVROX]LRQHRWWLPD (tempo medio di attesa PLQLPR)
P1 D Se eseguiti nell'ordine:
P2 E P1 finisce al tempo D
P3 F P2 " " DE P4 G P3 " " DEF
P4 " " DEFG 7HPSRPHGLRGLDWWHVD DEFG
D incide più degli altri, arrivando per primo e ottenendo il servizio per primo
Quindi deve essere quello minimo Come calcolarlo? A priori.
(VHPSLR6-)
3URFHVVL 7HPSRGLHVHFX]LRQH
P1 8
P2 4
P3 4
P4 4
6HTXHQ]DGLHVHFX]LRQH
)&)6 (8 + 12 + 16 + 20) / 4 = 14 6-)
P2 4 WHPSRPHGLRGLWXUQDURXQG P3 4 (4 + 8 + 12 + 20) / 4 = 11
P4 4
P1 8