• Non ci sono risultati.

Scheduling a macchina singola

N/A
N/A
Protected

Academic year: 2021

Condividi "Scheduling a macchina singola"

Copied!
209
0
0

Testo completo

(1)

Pre-requisiti:

Classi di complessità

Programmazione Lineare (Intera)

Sistemi Organizzativi

docente: Stefano Smriglio stefano.smriglio@univaq.it

Programmazione Lineare (Intera) Metodo branch-and-bound

Cammini minimi su grafi Materiale didattico:

M. Pinedo, Scheduling (Systems, Models and Algorithms) – Prentice Hall

A. Agnetis, dispense http://www.dii.unisi.it/~agnetis/didattica

Trasparenti dalle lezioni http://www.di.univaq.it/~oil

(2)

Parte I:

Scheduling a macchina singola

(3)

1. Introduzione: esempi, elementi di un problema di scheduling, notazione. Formulazioni PLM, PLB 2. Problemi a macchina singola

1//ΣΣΣΣwjCj algoritmo WSPT

1/chain/ΣΣΣΣw C algoritmo polinomiale

Indice

1/chain/ΣΣΣΣwjCj algoritmo polinomiale

1/prec/hmax algoritmo di Lawler

1/rj,prmp/Lmax regola preemptive EDD

1/rj/Lmax complessità, branch-and-bound

1//ΣΣΣΣUj algoritmo di Moore

1//ΣΣΣΣhj Programmazione dinamica

1//ΣΣΣΣTj algoritmo pseudo-polinomiale

1//ΣΣΣΣwjTj branch-and-bound

(4)

Introduzione

problemi di scheduling esempi

classificazione

(5)

Esempio

Silvia (S) e Francesca (F) giungono nello stesso momento ad una macchina fotocopiatrice. F deve fare 1 fotocopia, S ne deve fare 100.

Il galateo imporrebbe a S di lasciar passare per prima F, che ha un compito molto più breve.

È una buona idea?

Analisi. Supponiamo che l’esecuzione di una fotocopia richieda 3 secondi. Due casi:

S

Attesa totale = 300 + 303 = 603 F

precede

0 300

303 S

Attesa totale = 3 + 303 = 306 F precede

0 3

303

(6)

Esempio

E se Francesca F arrivasse all’istante rf?

Attesa totale = 300 + 303 – rf =

= 603 – r

0 300

S F 303

r = 603 – rf

0 300

0 303

rf

Di nuovo, il galateo imporrebbe a Silvia di interrompere le proprie copie in favore di Francesca:

rf

Attesa totale = 3 + 303 = 306 rf + 3

(7)

Ricapitolando

• Attività: 2 blocchi di fotocopie (di durata nota)

• Risorse: una macchina fotocopiatrice

• Vincoli:

 Capacità: al più una fotocopia alla volta

 (caso 2) F non può iniziare prima dell’istante rf

 (caso 2) F non può iniziare prima dell’istante rf

• Misura: attesa complessiva presso la macchina fotocopiatrice

• Rappresentazione di una soluzione: diagramma di Gantt

S

0 300

303F

(8)

CPU scheduling

• Il sistema operativo disciplina l’accesso alla CPU dei diversi programmi di calcolo.

• tecnica time-sharing (Linux): il tempo di CPU è suddiviso in intervalli (definiti dal timer interrupt) e, in ogni intervallo, è possibile eseguire al più un processo.

possibile eseguire al più un processo.

• diversi obiettivi: rispondere prontamente a ciascun processo, evitare interruzioni prolungate, evitare ritardi nei processi più urgenti.

• Linux attribuisce dinamicamente una priorità ai processi.

Ad es., la priorità è proporzionale all’attesa del processo

(9)

CPU scheduling

• Attività: programmi

• Risorse: CPU

• Vincoli: Capacità: al più un programma in ciascun intervallo per ciascuna CPU

• Misure:

• tempo massimo di attesa di un programma

• tempo massimo di attesa di un programma

• tempo di completamento di tutti i programmi

• ritardi nei processi “urgenti”

(10)

Scheduling dei velivoli in atterraggio

• La torre di controllo (ATC) ha il compito di assegnare una pista ed un istante di atterraggio a ciascun velivolo nel proprio campo radar (area terminale)

• Ogni velivolo ha una finestra temporale [r,s] definita da due istanti di atterraggio estremi, a seconda che il due istanti di atterraggio estremi, a seconda che il velivolo viaggi:

- alla sua massima velocità (istante r)

- in modalità di minimo consumo (istante s)

• Un velivolo in atterraggio impegna la pista per un tempo noto ma genera turbolenza: quello successivo deve attendere un tempo di “separazione” (funzione delle dimensioni dei velivoli)

(11)

Scheduling dei velivoli in atterraggio

• Ad ogni velivolo è associato un orario di atterraggio predeterminato (e pubblicato nelle tabelle)

• “L’importanza” di un velivolo dipende da fattori quali la dimensione, la compagnia, la distanza percorsa…

• Attività: atterraggi

• Risorse: k piste

• Risorse: k piste

• Vincoli:

•Capacità: su ogni pista, al più un atterraggio in un certo istante

• finestre temporali di atterraggio

• separazione fra atterraggi consecutivi

• Misura:

• somma (pesata in base all’importanza) dei ritardi rispetto all’orario pubblicato

(12)

Ancora nella vita quotidiana…

Aldo (A), Bruno (B), Carlo (C), Duilio (D) condividono un appartamento e, ogni mattino, ricevono 4 giornali:

Financial Times (FT), Guardian (G), Daily Express (DE), Sun (S).

Ognuno ha i propri gusti…inizia la lettura ad una certa ora, legge i giornali nella sua sequenza preferita e ora, legge i giornali nella sua sequenza preferita e (ciascuno) per un tempo prefissato:

Aldo 8.30 FT(60) G (30) DE (2) S(5) Bruno 8.45 G(75) DE(3) FT(25) S(10)

Carlo 8.45 DE(5) G(15) FT(10) S(30) Duilio 9.30 S(90) FT(1) G(1) DE(1) lettore inizio Sequenza giornali (min.)

(13)

inoltre, ciascun lettore:

 rilascia un giornale solo dopo averlo letto completamente.

 termina la lettura di tutti i giornali prima di uscire.

Ancora nella vita quotidiana…

infine, i quattro lettori attendono che tutti abbiano terminato di leggere prima di uscire di casa

Problema:

A che ora A, B, C, D riescono (finalmente!) ad uscire?

(14)

Interpretazione

Aldo 8.30 FT(60) G (30) DE (2) S(5) Bruno 8.45 G(75) DE(3) FT(25) S(10)

Carlo 8.45 DE(5) G(15) FT(10) S(30) Duilio 9.30 S(90) FT(1) G(1) DE(1) lettore inizio Sequenza giornali (min.)

A G B

S

Duilio 9.30 S(90) FT(1) G(1) DE(1)

DE FT

D C

determinare in quale sequenza ciascun giornale “accetta” i lettori in modo da minimizzare il tempo di lettura totale.

(15)

Soluzioni

Aldo 8.30 FT(60) G (30) DE (2) S(5) Bruno 8.45 G(75) DE(3) FT(25) S(10)

Carlo 8.45 DE(5) G(15) FT(10) S(30) Duilio 9.30 S(90) FT(1) G(1) DE(1) lettore inizio Sequenza giornali (min.)

una possibile soluzione:

FT A D C B

G B C A D

DE C B A D

S D A C B

giornale Sequenza lettori

Duilio 9.30 S(90) FT(1) G(1) DE(1)

ESERCIZIO:

valutare l’ora in cui A,B,C e D escono di casa

(16)

C

FT A B

ESERCIZIO:

data la soluzione in tabella valutare l’ora in cui A,B,C e D escono di casa

FT A D C B

G B C A D

DE C B A D

S D A C B

giornale Sequenza lettori

D C

FT A

G

DE

S

8.30 9.09.00 10.00 11.00

11.51

B

B C A

D D C

B A

A

C B D

(17)

Enumerazione totale

• Il numero di soluzioni è (4!)4 = 331.776

• per un problema con n lettori e m giornali diventa (n!)m.

• esaminando 10.000 soluzioni al secondo (4 giornali e n

• esaminando 10.000 soluzioni al secondo (4 giornali e n lettori):

5 354 min

10 2 · 1017 giorni

n tempo

(18)

Elementi di un problema di scheduling:

job: attività da svolgere – insieme J = {1,…,n}

In generale

Con il termine scheduling si indica l’allocazione temporale di risorse scarse ad attività

job: attività da svolgere – insieme J = {1,…,n}

Fotocopia, esecuzione di un programma di calcolo Un job può rappresentare una singola attività o un insieme di attività (task) tecnologicamente legate

macchine: risorse che eseguono le attività – insieme M={1,…,m}

Fotocopiatrice, CPU, giornali

(19)

tempo di processamento pij durata del processamento del job j sulla macchina i

release date rj tempo in cui j arriva nel sistema, rendendosi disponibile al processamento

Attributi dei job

rendendosi disponibile al processamento

due date dj tempo entro il quale si desidera che il job j sia completato (data di consegna)

peso wj indica l’importanza del job j

(20)

Classificazione

Il processamento di un job su una macchina è detto operazione.

I problemi di scheduling si classificano in base alle caratteristiche dei task e all’architettura delle macchine

Notazione a tre campi: αααα/βββ/γγγγ:β α

α α

α descrive il sistema di macchine

β β β

β rappresenta vincoli e modalità di processamento (0, 1 o più componenti)

γγγγ indica l’obiettivo macchine

(21)

Campo α

Macchina singola (1) : ciascun job richiede una singola operazione da eseguirsi sull’unica macchina disponibile

Macchine identiche parallele (Pm) : ciascun job richiede una singola operazione da eseguirsi su una qualunque delle m macchine identiche.

1 2

m

(22)

Campo α

Flow shop (Fm) : Ciascun job è composto di m task, ciscuno da eseguirsi su una macchina secondo una sequenza fissata, uguale per tutti i job.

1 2 m

Job shop (Jm) : Ciascun job j è composto di m(j) task, ciscuno da eseguirsi su una macchina secondo una sequenza fissata, dipendente da j

(23)

Campo β

Release dates (rj): il job j non può iniziare il processamento prima dell’istante rj

Preemption (prmp): è ammesso interrompere un’operazione per iniziarne una nuova. Il processamento eseguito prima dell’interruzione non va perso: quando eseguito prima dell’interruzione non va perso: quando l’operazione viene ripresa, essa richiede solo il tempo rimanente di processamento

1 2 1

schedule ammissibile

job 1 2

pj 3 4 1 5 7

(24)

Campo β

prec: è dato un grafo G = (N, A) diretto e aciclico che rappresenta una relazione di precedenza fra job. Un job j può iniziare solo se tutti i suoi predecessori sono stati completati

3 1

2 4

5

2

1 4 3 5

schedule non ammissibile

chain: caso speciale in cui ogni componente connessa del grafo è un cammino orientato (catena)

(25)

Campo β

•Tempi di set-up (sjk): tempo richiesto per il riattrezzaggio delle macchine fra i job j e k. Se dipende dalla macchina i, si esprime con sijk

• breakdown (brkdwn): le macchine non sono sempre

• breakdown (brkdwn): le macchine non sono sempre disponibili, ma hanno periodi fissati di interruzione del servizio

(26)

Definizioni

Cj tempo di completamento del job j Lj = Cj–dj lateness del job j

Tj = max(Lj,0) tardiness del job j Uj = 1 se Cj>dj e 0 altrimenti

job 1 2

pj 7 8 dj 9 11

2 1

0 7 15

C1= 7 L1= −2

T1 = 0 U1= 0

C2= 15 L2= 4 T2 = 4

U2= 1

(27)

Campo γ: funzioni obiettivo

• Makespan (Cmax) : max (C1, …, Cn) tempo di completamento dell’ultimo job

• Massima Lateness (Lmax) : Lmax =max (L1, …, Ln)

• Tempo totale pesato di completamento (ΣΣΣΣwjCj)

• Tempo totale pesato di completamento (ΣΣΣΣwjCj) o (weighted flow-time)

• Tardiness totale pesata (ΣΣΣΣwjTj)

• Numero di tardy job (ΣΣΣΣUj)

tutte funzioni obiettivo regolari cioè non-decrescenti in C1, …, Cn

(28)

Esempio

job 1 2

wj 2 3 pj 7 8 dj 9 11

2 1

0 7 15

Lmax= 4

ΣwjCj = 59

ΣwjTj = 12

ΣUj = 1

dj 9 11

(29)

Sequenze e schedule

• Si definisce sequenza una permutazione dei job che definisce l’ordine con cui i job sono processati su una certa macchina

• Si definisce schedule un assegnamento di un istante di inizio a ciascuno dei task di ogni job (se prmp, istanti di inizio di ciascuna delle parti in cui viene suddiviso un task)

(30)

Schedule nondelay

uno schedule ammissibile è detto nondelay se nessuna macchina è ferma quando esiste un’operazione disponibile al processamento

In molti casi (sempre se prmp) le soluzioni ottime sono nondelay. Ciò non è vero in generale

(31)

E

SERCIZIO

: schedule nondelay

dato il seguente problema P2/prec/Cmax

1

2

10

job 1 2 3 4 5 6 7 8 9 10

3

4

5 8

6 7 9

job 1 2 3 4 5 6 7 8 9 10

pj 7 6 6 1 2 1 1 7 7 14

costruire uno schedule nondelay e verificarne l’ottimalità

(32)

1 2 9 5

46 7 8 3 10

32 M1

M2

Soluzione nondelay:

E

SERCIZIO

: schedule nondelay

0 10 20 30

0 10 20 30

1 2 9

5 4 6 7

8

3 10

27

M1 M2

fermo macchina “forzato”

Soluzione ottima:

(33)

1.1 Scheduling a macchina singola

Formulazioni di Programmazione Lineare Booleana e Mista (PL(0-1)-PLM)

Booleana e Mista (PL(0-1)-PLM)

(34)

Formulazione disgiuntiva

Variabili decisionali “naturali”:

t j Rn istante di inizio del job j, j = 1, …, n

i precede j ⇒ t t + p Macchina a capacità unitaria:

= 0 1 yij

se i precede j se j precede i i precede j ⇒

j precede i ⇒ ti t j + pj t j ti + pi

Variabili aggiuntive (binarie):

valgono in alternativa !!

(35)

Formulazione disgiuntiva (PLM)

i precede j ⇒ yij = 1 ⇒

j precede i ⇒ yij = 0 ⇒ ti t j + pj t j ti + pi

Formulazione disgiuntiva

J j

i p

t t

M

yij + j i i

) ,

1 (

J j

i p

t t

M

yij + i j j ,

t j 0 ∀ ∈j J

J j

i

yij {0,1} ,

M costante grande (quanto?)

(36)

Problemi minsum: 1// ∑ ∑ ∑ ∑

j

w

j

C

j

min

∑ ∑ ∑

+

= +

J j

j j J

j

j j J

j

i i

j t p w t w p

w ( )

J j

i p

t t

M

yij + j i i

) ,

1 (

J j

i p

t t

M

yij + i j j ,

t j 0 ∀ ∈j J

J j

i

yij {0,1} ,

n2+n variabili 2n2 vincoli

(37)

Esercizio

Formulare come problema di PLM la seguente istanza del problema 1/rj/j wjCj

job 1 2 3

pj 3 1 2

pj 3 1 2

rj 0 2 0

wj 3 2 4

(38)

Problemi minsum: 1// ∑

j

w

j

T

j

} 0 , max{

min j

J j

j j

j t p d

w +

J j

i p

t t

M

yij + j i i

) ,

1

(1 yij)M + tj ti pi i, j J (

J j

i p

t t

M

yij + i j j ,

t j 0 ∀ ∈j J

J j

i

yij {0,1} ,

(39)

RICHIAMO: Funzioni convesse lineari a tratti

è il più piccolo valore z per cui

1

1x d

c +

Tx d

c

z + i = 1,...,m

2

2x d

c +

3

3x d

c +

) (

max1,..., i

T m i

i c x + d

=

x

b Ax ≥

) (

max

min 1,..., i

T m i

i c x + d

=

b Ax ≥

z min

m i = 1,..., z

d x

ciT + i

i T

i x d

c

z + i = 1,...,m

(40)

Formulazione PLM

} 0 , max{tj + pj dj

j

j p

0 d −

tj

j jf

w min

j

j p

0 d −

} 0 , max{

min j

J j

j j

j t p d

w +

fj ≥ tj + pj −dj, j ∈J

0 fj

(41)

Formulazione PLM

j jf

w min

J j

d p

t

fj j j j,

0 fj

J j

i p

t t

M

yij + j i i

) ,

1 (

J j

i p

t t

M

yij + i j j ,

t j 0 ∀ ∈j J

J j

i

yij {0,1} ,

(42)

Problemi min-max: L

max

f min

J j

d p

t

f j j j,

0 f

J j

i p

t t

M

yij + j i i

) ,

1 (

J j

i p

t t

M

yij + i j j ,

t j 0 ∀ ∈j J

J j

i

yij {0,1} ,

(43)

Formulazioni Time-indexed

Variabili binarie: xjt =1 se j inizia nel periodo t; 0 altrimenti Orizzonte temporale [0,T] discretizzato in periodi di durata unitaria. Il periodo t concide con l’intervallo di [t 1, t]

vincolo 1 (Completezza): ogni job inizia in un qualche t

1 2 3 4 5 T≥Σpj

j

j

j

n j

x

pj

T

t jt 1, 1,...,

1 1

=

∑ =

+

=

j

(44)

Formulazioni Time-indexed

vincolo 2 (Capacità): al più un job processato nel periodo t un job occupa il periodo t se inizia nell’intervallo [t pj+1, t]

T t

x

j

j

p T t

p t s

js n

j

,..., 1

, 1

) 1 ,

min(

) 1 ,

1 max(

1

=

+

+

=

=

t

j

j j

quindi:

(45)

Formulazione PL(0-1)

∑ ∑

=

+

= n

j

p T

t

jt jt

j

x c

1

1

1

min

n j

x

pj

T

jt

1 , 1 ,...,

1

=

+

=

cjt costo di assegnazione del job j all’istante t

1 ,...,

1

; ,..., 1

}, 1 , 0

{ = = +

j

jt j n t T p

x

nT variabili; n + T vincoli

n j

x

t jt

1 , 1 ,...,

1

=

∑ =

=

T t

x

j

j

p T t

p t s

js n

j

,..., 1

, 1

) 1 ,

min(

) 1 ,

1 max(

1

=

+

+

=

=

(46)

Funzioni obiettivo (min-sum)

j

se j inizia nel periodo t si ha Cj = t+pj1

t t+pj1

tempo totale di completamento:

∑ ∑

=

=

+

=

=

+

n

j

j j n

j

p T

t

jt j

j t p x w C

w

j

1 1

1

1

) 1

cjt = wj(t+pj−1)⇒ (

+

= j max{0, j j 1}

jt w t p d

c

∑ ∑

=

=

+

=

=

+

n

j

j j n

j

p T

t

jt j

j

j t p d x w T

w

j

1 1

1

1

) 1 ,

0 max(

tempo totale di completamento:

tardiness totale:

(47)

Esercizio

Formulare come problema di PL(0-1) la seguente istanza del problema 1/rj/j wjCj

job 1 2 3

pj 3 1 2

pj 3 1 2

rj 0 2 0

wj 3 2 4

(48)

Vincoli di precedenza

vincolo 3 (Precedenza i→j): se il job i non è iniziato nei periodi 1,2,…,t allora il job j non può iniziare nei periodi 1, 2,…, t + pi

t

j i

1 ,...,

1 ,

1 1

+

=

= +

=

j i

t

r

ir p

t

s

js x t T p p

x

i

quindi:

(49)

1.2 Tempo totale pesato di completamento Σ

Σ Σ

Σ w

j

C

j

(50)

nondelay schedule

Proprietà 0.1 Dato un problema del tipo 1//γ con γ funzione obiettivo regolare, esiste uno schedule ottimo in cui la macchina processa ininterrottamente dall’istante 0 all’istante Cmax= Σpj

(51)

Tempo totale pesato di completamento 1// Σ Σ Σ Σ w

j

C

j

Definiamo Weighted Shortest Processing Time (WSPT) una regola che ordina i job per valori non crescenti del rapporto wj/pj

Sussiste il seguente

Teorema 1.1 La regola WSPT calcola una soluzione ottima del problema 1//ΣwjCj

Sussiste il seguente

Dimostrazione. (Per contraddizione)

Assumiamo che S sia uno schedule ottimo e che non rispetti WSPT

(52)

Dimostrazione

Allora devono esserci in S due job adiacenti, diciamo j seguito da k tali che

wj/pj < wk/pk

Assumiamo che il job j inizi all’istante t.

Eseguiamo uno scambio dei job j e k ottenendo un Eseguiamo uno scambio dei job j e k ottenendo un nuovo schedule S'

S

S′

k

j t

k j

t+pj

t+pk

t+pj+pk

(53)

Dimostrazione

S

S ′

k

j t

k j

t+pj+pk

Il tempo totale (pesato) di completamento dei job che precedono e seguono la coppia (j,k) non è modificato dallo scambio. Il contributo dei job j e k in S è:

(t+pj)wj + (t+pj+pk)wk

mentre in S' è:

(t+pk)wk + (t+pk+pj)wj

(54)

Dimostrazione

in S] (t+pj)wj + (t+pj+pk)wk in S'] (t+pk)wk + (t+pk+pj)wj

Eliminando i termini uguali:

in S] pjwk in S'] pkwj

Quindi, se wj/pj < wk/pk, risulta pk wj < pj wk, cioè il tempo totale pesato in S' è strettamente inferiore a quello in S, contraddizione

(55)

Vincoli di precedenza 1/prec/ Σ w

j

C

j

Nel caso generale il problema è NP-Hard.

Consideriamo invece il caso in cui le precedenze sono rappresentate da un insieme di catene in parallelo:

1/chain/ΣΣΣΣwjCj

Per questo caso esiste un algoritmo di soluzione polinomiale.

(56)

Catene non interrompibili

Date due catene:

1 2 k

k+1 k+2 n

Minimizziamo ΣwjCj con il vincolo che i job di ciascuna catena debbano essere processati consecutivamente.

catena debbano essere processati consecutivamente.

Lemma 1.2 Se

allora la catena 1, …,k precede la catena k+1, …, n

>

+

= +

=

=

=

n k

j j

n k

j j

k

j j

k

j j

p w p

w

1 1

1 1

(57)

Dimostrazione

• Per la sequenza 1,2,…,k,k+1,k+2,…,n (S1) il tempo totale di completamento è

∑ + + + ∑

∑ + +

+

= + =

= +

k j

n

j j

n k

j k

j j k

k p w p p w p

w p

w

1 1 1

1 1

1

1 K ( ) K

• Per la sequenza k+1,k+2,…,n,1,2,…,k (S2) il tempo totale di completamento è

∑ + + + ∑

∑ + +

+

+

= =

+ + =

+

n k j

n

j j

k j

n k

j j

n k

k p w p w p p w p

w

1 1 1

1 1

1

1 K ( ) K

(58)

Semplificando

S1

) )(

(

1 1

1 1

1

∑ ∑ ∑ ∑

= +

=

= =

+ + + =

k j

j n

k j

j k

j

k j

j n

j

k p w p w p

w K

S2

∑ = ∑ ∑

∑ + +

+

= = = +

+

=

n k j

n k

j j

k

j j

j n

k

j

p

j

w

k

p w p

w

1 1 1

1 1

K ( )( )

+

= = = +

+

=k j k j j k

j 1 1 1 1

• Quindi, ricordando l’ipotesi:

> ⇒

+

= +

=

=

=

n

k j

j n

k j

j k

j

j k

j

j

p w p

w

1 1

1

1 ( )( ) ( )( )

1 1

1 1

+

=

=

= +

=

<

n

k j

j k

j

j k

j

j n

k j

j p w p

w

cioè, S1migliore di S2

(59)

Coefficiente ρ di una catena

L’idea chiave dell’algoritmo è ricondurre 1/chain/ΣwjCj al problema di sequenziare catene non-interrompibili, in modo da utilizzare il Lemma 1.2.

Definizione 1.3 Data una catena 1 2 k Definizione 1.3 Data una catena 1 2 k definiamo coefficiente ρ della catena il seguente rapporto:

 

 

 

 

= ≤

= ρ

=

=

=

=

l

j j

l

j j

l

j j

l

j j

p w k

p l w k

1 1

* 1

* 1

1 ) max

, ,

1

( K

(60)

Esempio

1 2 3 4

job 1 2 3 4

pj 3 4 2 6

wj 10 4 17 8

1 2 3 4

l* = 3





= 









= ≤ ρ

=

=

15 ,39 9

,31 7

,14 3

10 4

1 ) max 4

, ,

1 (

1 1 l

j j

l

j j

p w l

K

(61)

Proprietà del coefficiente ρ

Proprietà 1.4 Se un job l* determina il coefficiente ρ(1,...,k) allora per qualunque 1<u<l* risulta:

l*

w

u

w

>

=

=

+

= +

=

u

j j

j j

l u

j j

u

j j

p w p

w

1 1

* 1 1

Riferimenti

Documenti correlati

 Nascono dalla richiesta di protezione dei contenuti da parte di produttori di contenuti multimediali,!. soprattutto musica

– Influisce sul tempo che il processo passerà nella ready queue in attesa della CPU.. • Un parametro di valutazione può dunque essere il tempo di attesa

❖ Se vi sono n processi nella ready queue ed il quanto di tempo è q , ciascun processo occupa 1/n del tempo di CPU in frazioni di, al più, q unità di tempo; nessun processo attende

| Se ci sono n processi nella coda dei processi pronti e il quanto di tempo è q, allora ciascun processo ottiene 1/n del tempo di CPU in parti lunghe al più q... Possibilità

• tecnica time-sharing (Linux): il tempo di CPU è suddiviso in intervalli (definiti dal timer interrupt) e, in ogni intervallo, è possibile eseguire al più un processo..

  Con n processi nella coda e un quanto di tempo = q, ogni processo riceve 1/n di CPU time in blocchi di q unità per

maggiore che sono in attesa da piu` tempo, qualora essi non siano marcati in maniera da non potere lasciare la runqueue corrente, per via di affinita` con i processi su quella

Starvation: si verifica quando uno o più processi di priorità bassa vengono lasciati indefinitamente nella coda dei processi pronti, perchè vi è sempre almeno un processo pronto