(:title Sistemi Operativi:)
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:
- sospensione del processo in esecuzione, salvando in modo sicuro lo stato di evoluzione della computazione in modo tale da poter tornare ad eseguire il processo dallo stesso punto in cui l'avevo lasciato
- ordinamento dei processi in stato di pronto per vedere quale deve essere eseguito per primo (scheduling dei processi) (importantissimo: se sei in inghilterra devi pronunciarlo "sceduling"! se no sono guai grossi :| )
- selezione del processo in stato di pronto da mettere in esecuzione (dispatching), generalmente il primo della lista dopo l'ordinamento fatto prima
- riattivazione del processo selezionato
Pag 3
Realizzazione del multi-tasking (2)
Bisogna operare una distinzione tra:
- politiche, le regole. Non dipendono da come sarà realizzata la turnazione, ma permette di fare delle scelte su come dovrà essere
- meccanismi, ovvero le operazioni per realizzare le politiche, la cui scelta non sarà fatta a seconda dei casi, ma sempre allo stesso modo. Saranno dunque caratterizzati esclusivamente dal processore e dalla struttura dati utilizzata
Politiche di sospensione dei processi nel multi-tasking
Il processo in esecuzione può essere sospeso in modo implicito (effettuato automaticamente dal sistema operativo) o esplicito (è il processo che richiama volontariamente l'operazione di rilascio del processore).
Modo implicito:
- dopo aver effettuato una richiesta di I/O, tipica di tutti i sistemi operativi. E' cosa saggia perché tiene conto del fatto che generalmente a una chiamata I/O segue un tempo di attesa legato ai tempi elettro-meccanici di esecuzione dell'operazione richiesta
- dopo aver creato un sottoprocesso attendendone la terminazione
Modo esplicito:
- quando rilascia volontariamente il processore
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)
...
Time Sharing (2)
...
Torna alla pagina di Sistemi Operativi