cerca
Sistemi Operativi - Appunti caotici
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Uni.SO-Mod3-3-Lez3 History

Hide minor edits - Show changes to output

Added lines 67-69:
Quando ho pi¨ utenti che usano processi diversi posso raggruppare tali processi in base al loro tipo. Ogni tipologia Ŕ assegnata ad un livello della coda il quale possiede un suo algoritmo di schedulazione.

!!!!Coda a pi¨ livelli (2)
Deleted lines 71-73:
!!!!Coda a pi¨ livelli (2)
...
Changed lines 74-75 from:
...
to:
In questo caso ho sempre una coda con pi¨ livelli, la differenza Ŕ che i processi presenti su tali livelli possono migrare da un livello a un altro livello. La possibilitÓ di far migrare i livelli Ŕ stata introdotta per poter tenere in considerazioe la prioritÓ dei processi. Se ho un processo che perde prioritÓ e ad un livello sottostante ne ho un altro che possiede prioritÓ pi¨ alta, posso far scendere il primo processo per far salire il secondo in modo tale che possa usare il processore.
Added lines 77-80:
Per poter consentire questa migrazione devo poter stabilire quale processo ha prioritÓ pi¨ alta, quindi introduco delle politiche di promozione per far passare di grado il processo.

!!Pag 9
!!!!Schedulazione in sistemi multiprocessore (1)
Changed lines 83-84 from:
!!Pag 9
!!!!Schedulazione in sistemi multiprocessore (1)
to:
!!!!Schedulazione in sistemi multiprocessore (2)
Deleted lines 85-87:
!!!!Schedulazione in sistemi multiprocessore (2)
...
Changed lines 57-58 from:
...
to:
Si supponga che il processo P termini e passa a quello successivo, ovvero il prcesso Q. Quest'ultimo si trova nello stato di wait allora passo al processo R che Ŕ quello successivo, il quali si trova nello stato di ready to run e allora lo posso mettere nella coda. Si passa al successivo, ovvero al processo R, anch'esso Ŕ nello stato di ready to run, dunque lo sbatto nella coda. Il processo successivo (processo T) si trova nello stato di wait allora termino il ciclo. A questo punto riparto da capo per poter riscandire i processi che prima si travavano nello stato di wait.
Changed lines 31-32 from:
...
to:
In questa tecnica devo conoscere il tempo minimo richiesto al processore da parte del processore. Se non conosco tale tempo posso effettuare una stima, ma rischio di commettere errori e di non poter ottimizzare il processore. Un altro modo Ŕ di vedere nel passato quel processo quanto tempo ha tenuto occupato il processore, ma si tratta comunque di una stima e non Ŕ precisa.
Changed line 15 from:
!!!!First-Come, First-Served: FCFS(1)
to:
!!!!First-Come, First-Served: FCFS (1)
Changed line 19 from:
!!!!First-Come, First-Served: FCFS(2)
to:
!!!!First-Come, First-Served: FCFS (2)
Changed line 23 from:
!!!!Shortest-Job-First: SJF
to:
!!!!Shortest-Job-First: SJF (1)
Added lines 26-92:
!!!!Shortest-Job-First: SJF (2)
...

!!Pag 4
!!!!Shortest-Job-First: SJF (3)
...

!!!!PrioritÓ (1)
La prioritÓ Ŕ una proprietÓ del processo che indica quanto prima dobbiamo eseguirlo rispetto ad altri, indipendentemente dall'ordine con cui arrivano.

Si tratta in pratica di assegnare ad ogni processo un indice che indica il suo livello di prioritÓ, sarÓ poi il sistema operativo a decidere come trattarlo. Va infatti detto che non Ŕ affatto automatico il collegamento "indice alto"-"prioritÓ alta". Ad esempio nei sistemi UNIX pi¨ l'indice Ŕ basso e pi¨ Ŕ importante; in particolare i processi di sistema hanno prioritÓ negativa (il minimo Ŕ -20) mentre quelli delle applicazioni positiva.

Infine, da notare come dare pi¨ proprietÓ non vuol dire necessariamente dare pi¨ tempo ad ogni processo.

!!Pag 5
!!!!PrioritÓ (2)
'''Pre-emptive''': processo che diventa pronto interrompe processo in esecuzione richiedendo schedulazione.\\
Quando in pratica un processo entra nello stato ready-to-run andr˛ a vedere se nella lista dei processi running ho solo processi di prioritÓ minore, nel qual caso toglier˛ con una pre-emption quello in esecuzione e caricher˛ quello nuovo. Se invece in esecuzione ho un processo di prioritÓ maggiore, ordiner˛ l'ultimo arrivato secondo i normali criteri di schedulazione (anche se generalmente mantengo l'ordine di arrivo, cosý aggiungo in coda e tebbona)

'''Non pre-emptive''':processo che diventa pronto non interrompe rocesso in esecuzione richiedendo schedulazione.\\
Se il processo considerato ha prioritÓ maggiore di quello in esecuzione, lascio finire quest'ultimo e quando sarÓ completato mander˛ in esecuzione quello nuovo

!!!!PrioritÓ (3)
Un problema di questo tipo di politica di schedulazione Ŕ che processi a bassa prioritÓ potrebbero rimanere ready-to-run per un tempo indefinito; basta infatti che continuino ad arrivare processi a prioritÓ maggiori che gli soffino il posto. Questo fenomeno prende il nome di ''starvation'', che se proprio vogliamo dirlo in italiano lo chiameremo "blocco indefinito" e non (letteralmente) ''affamamento'', o Puree si incazza.

La soluzione Ŕ introdurre un progressivo invecchiamento delle prioritÓ, detto ''aging''. In pratica, se abbiamo un processo che rimane in starvation per un tempo abbastanza lungo, cominciamo ad aumentargli la prioritÓ proporzionalmente al tempo di attesa, sperando che acquisisca (e prima o poi accadrÓ) abbastanza prioritÓ da essere eseguito. Una volta ottenuto il suo turno di computazione gli riabbatto la prioritÓ allo stato iniziale, e riprendo il ciclo di prima (starvation, invecchiamento, computazione, ecc).

Ho quindi delle prioritÓ di tipo dinamico che aumentano con l'invecchiare del processo.

!!Pag 6
!!!!Round-Robin RR (1)
...

!!!!Round-Robin RR (2)
Alcune caratteristiche:
* distribuzione uniforme del tempo di elaborazione tra i processi pronti (andando a turno a dare un quanto di tempo ai vari processi)
* velocitÓ di esecuzione dei processi dipende dal numero di processi pronti
* turnaround (tempo di permanenza nel sistema) dipende dalla durata del quanto di tempo

!!Pag 7
!!!!Coda a pi¨ livelli (1)
...

!!!!Coda a pi¨ livelli (2)
...

!!Pag 8
!!!!Coda a pi¨ livelli con retroazione C+LR (1)
...

!!!!Coda a pi¨ livelli con retroazione C+LR (2)
...

!!Pag 9
!!!!Schedulazione in sistemi multiprocessore (1)
...

!!!!Schedulazione in sistemi multiprocessore (2)
...

!!Pag 10
!!!!Schedulazione in sistemi multiprocessore (3)
...

!!!!Schedulazione in sistemi multiprocessore (4)
...
Changed line 94 from:
[[Torna alla pagina di Sistemi Operativi->SistemiOperativi]]
to:
[[Torna alla pagina di Sistemi Operativi->SistemiOperativi]]
Added line 18:
Added lines 1-26:
(:title Sistemi Operativi - Appunti caotici:)
[[Torna alla pagina di Sistemi Operativi->SistemiOperativi]]
----

%titolo%''':: Appunti caotici ::'''

%center%%sottotitolo%Lezione 3
%center%%sottotitolo%Politiche di schedulazione

!!Pag 1
!!!!Sommario
...

!!Pag 2
!!!!First-Come, First-Served: FCFS(1)
In questa politica si fa uso di una coda, ove i processi entrano ed attendono di essere eseguiti. L'ordine in cui i processi sono eseguiti (da come si pu˛ capire dal titolo) Ŕ il seguente:\\
"il primo che entra nella coda sarÓ il primo ad essere servito"
!!!!First-Come, First-Served: FCFS(2)
...

!!Pag 3
!!!!Shortest-Job-First: SJF
...

----
[[Torna alla pagina di Sistemi Operativi->SistemiOperativi]]