Swappa : Uni / Sistemi Operativi - Appunti caotici
Creative Commons License

Torna alla pagina di Sistemi Operativi


 :: Appunti caotici ::

Lezione 1 Schedulazione

Pag 1

Sommario

Il principio che muove (e dà significato) allo scheduling è l'ordinamento dei processi, thread inclusi.

Pag 2

Obiettivo

Obiettivo dello scheduling è la definizione del criterio (le politiche) con cui ordinare i processi affinché sia garantita la turnazione.

Livelli di schedulazione

I livelli di schedulazioni sono livelli di astrazione che tengono conto delle diverse prospettive ed esigenze temporali. Si dividono in:

Per quanto riguarda quelli a lungo termine c'è da notare come essi non facciano le loro valutazioni in base ai soli processi caricabili nello spazio di memoria disponibile (in quel momento), ma ad uno spazio di memoria astratto che tiene conto anche dei processi futuri da caricare.

Pag 3

Schedulazione a breve termine (1)

Anche detta short-term scheduler o CPU-scheduler, ha come obiettivo ordinare i processi già presenti in memoria centrale e nello stato di pronto all'esecuzione. Quindi i processi attivi non caricati in memoria centrale vengono ignorati (sprecheremmo del tmepo per caricarli dalla memoria di massa), così come quelli nello stato di wait (perché anche se avessero accesso al processore dovrebbero comunque aspettare il completamento delle operazioni sulle risorse per cui sono in attesa).

Schedulazione a breve termine (2)

L'algoritmo che gestisce questo tipo di schedulazione deve essere:

Pag 4

Schedulazione a lungo termine (1)

Anche detta long-term scheduler o job-scheduler, riprendendo il nome job dalle sequenze di lavoro eseguite in modalità batch nei mainframe (che tentano di completare il lavoro nel mino tempo possibile).

Ordina tutti i processi ready-to-run nel sistema (sia dalla memoria centrale che da quelle di massa) identificando il gruppo di processi che devono essere caricati in memoria centrale per l'esecuzione e posti nello stato di pronto all'esecuzione.

Costruisce il gruppo mescolando processi CPU-bound e I/O-bound in modo da massimizzare lo sfruttamento atteso del processore. Esagerare con i CPU-bound significherebbe sì sfruttare al meglio il processore, ma annullando di fatto le interazioni con l'utente. Al contrario, esagerare con gli I/O-bound garantirebbe una corretta e fluida interazione, ma con tempi di elaborazione eterni.

Schedulazione a lungo termine (2)

Pag 5

Schedulazione a medio termine (1)

Anche detta medium-term scheduler.

Tra i problemi che cercherà di risolvere ci sarà quello legato della memoria centrale esaurita a causa delle dimensioni dei processi caricati: per averne tanti, spesso ne carico porzioni di dimensioni limitate, con la conseguenza che dovrò caricarne di nuovi ogni volta che termino la computazione di quelli precedenti.

Schedulazione a medio termine (2)

Per ridurre la concorrenza tra i processi, ottimizzarna la distribuzione tra CPU-bound e I/O-bound e dare maggior memoria centrale ai processi caricati in essa, introduco un livello intermedio di schedulazione.

Questo modifica dinamicamente il gruppo di processi caricati in memoria centrale e posti nello stato di pronto all'esecuzione dallo schedulatore a lungo termine al fine di adattare il gruppo di processi caricato in memoria centrale all'effettiva distribuzione dei lavori che essi stanno svolgendo.

Quindi la schedulazione a medio termine corregge gli ordinamenti della schedulazione a lungo termine (che non poteva prevedere tutti gli scenari a priori) in base alla situazione attuale.

Pag 6

Schedulazione a medio termine (3)

...

Schedulazione a medio termine (4)

...

Pag 7

Attivazione (1)

...

Attivazione (2)

La schedulazione con rilascio anticipato pre-emptive scheduling è asincrona con l'evoluzione della computazione, perché non sa quando scadrà il quanto di tempo concesso dal time-sharing.


Torna alla pagina di Sistemi Operativi

(Printable View of http://www.swappa.it/wiki/Uni/SO-Mod3-3-Lez1)