Swappa : Uni / Sistemi Operativi
Creative Commons License

Torna alla pagina di Sistemi Operativi


 :: Appunti caotici ::

Lezione 3 Sospensione e riattivazione dei processi

Pag 1

Sommario

...

Pag 2

Classificazione dei processi rispetto all'uso delle risorse fisiche cioè figa un po' più lungo ancora e suppa tipo pawwa cazzo

Nel codice di un processo I/O-bound abbiamo molte operazioni di input/output intervallate da poche istruzioni legate al processore; viceversa nei processi CPU-bound (in un caso limite potrei anche non avere mai un'operazione di I/O).

Sono ovviamente delle casistiche estreme, poi esistono le vie di mezzo.

Realizzazione del multi-tasking (1)

L'obiettivo è ovviamente consentire la turnazione dei processi sul processore, massimizzandone lo sfruttamento.

Se ho un processo CPU-bound dovrò effettuare meno turnazioni, in quanto per sua stessa natura darà tanto da fare al processore. Per garantirne invece un discreto utilizzo anche con processi I/O-bound, dovrei eseguirne più di uno. Tutto sta quindi nel "dosaggio" dei processi lanciati, data la loro incidenza sull'omogeneità della loro evoluzione parallela.

Metodologia:

Pag 3

Realizzazione del multi-tasking (2)

Bisogna operare una distinzione tra:

Politiche di sospensione dei processi nel multi-tasking

Il processo in esecuzione può essere sospeso in modo implicito (effettuato automaticamente dall'ambiente operativo) o esplicito (è il processo che richiama volontariamente l'operazione di rilascio del processore).

Modo implicito:

Modo esplicito:

Tutte le volte che avverranno uno di questi tre casi, il processore verrà SEMPRE rilasciato su quel punto del processo (che viene dunque sospeso).

La sospensione in questi casi è sincrona con l'evoluzione della computazione in procedure del sistema operativo; avviene infatti sempre su una funzione del sistema operativo (non dell'applicazione), quindi con il processo in esecuzione nella modalità supervisor, non utente.

Pag 4

Time Sharing (1)

La tecnica del Time Sharing è stata introdotta per dare l'illusione al processo di di possedere il processore tutto per se. Quest'illusione è creta tramite la turnazione dei processi sul processore facendo credere quindi di far evolvere contemporaneamente le computazioni desiderate. Il problema sorge sui processi CPU-bound i quali non rilasciano di frequente il processore, facendo perdere di conseguenza tale illusione. Una soluzione valida è di forzare il rilascio del processore (pre-emption).

Time Sharing (2)

...

Pag 5

Time Sharing (3)

Il realtime clock è il dispositivo fisico che scandisce il tempo generando periodicamente una interruzione che segnala che è passato un certo intervallo di tempo. E' sostanzialmente un chip sulla scheda madre, contenente un cristallo che viene fatto oscillare in modo estremamente stabile con segnali elettrici.

Il periodo di oscillazione è segnalato nel manuale del calcolatore, e in qualche caso è anche programmabile.

Se il periodo RTC è troppo breve vado incontro a un sovraccarico di gestione dell'interruzione, perché avrei richieste di rilascio incredibilmente frequenti. Quindi moltiplico tale periodo per un fattore k, in modo che solo un'interruzione ogni k viene considerata come termine del quanto di tempo, e quindi solo questa scatenerà la rimozione del processo in esecuzione (con una pre-emption)

Politiche di sospensione dei processi nel time-sharing

In sistemi time-sharing, oltre alle politiche di sospensione dei processi viste prima se ne aggiunge una quarta, ovvero sospensione quando scade il quanto di tempo. E' anch'essa implicita, è asincrona (perché è fuori dal controllo del programmatore) e garantisce che ci sia un'equa distribuzione dei tempi di calcolo.

Pag 6

Sospensione del processo in esecuzione

...

Riattivazione del processo

...

Pag 7

Cambiamento del processo in esecuzione (1)

...

Cambiamento del processo in esecuzione (2)

...

Pag 8

Dispatching del processo per esecuzione

...


Torna alla pagina di Sistemi Operativi

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