Risposta alla Domanda n° 3 Di Vezzoni Roberto

Queste sono le risposte pervenute… al solito i miei commenti in rosso.
1. Fornisci le definizioni di processo e di programma. Illustra le differenze e le somiglianze. (pag 63) Indica
quali sono gli elementi di un programma e quelli di un processo.(collegamento con pag 67: schema con
codice e dati…)
1) Un programma in linguaggio macchina è pronto per l'esecuzione ed è un insieme di bit collocati in un file su disco
cioè:
_ Non cambia nel tempo;
_ Non modifica lo stato della memoria e del program counter e dei registri;
Si può dire quindi che un programma è un'entità statica;
Un processo invece è un'entità dinamica, l'esecuzione di un processo infatti modifica lo stato della memoria dei registri e
le modifiche sono diverse nel corso delle possibili esecuzioni, quindi si può dire che:
_ Un processo è un'entità dinamica il cui stato di esecuzione è determinato dai valori assunti dal program counter, dai
registri utente e di stato, dalla memoria e dallo stack;
_ Un processo ha una traccia di esecuzione, definita come la sequenza di stati assunti dal processore durante
l'esecuzione del processo;
_ A un processo sono associati il codice, un'area dati e le altre risorse adesso assegnate, quali memorie, processori, file,
dispositici I/O e ogni altra risorsa assegnabile;
Un processo è un programma in esecuzione
Mettere in evidenza anche le somiglianze: area dati e codice fanno parte di un programma e dei processi.
Si vede bene questo nello schema a pag 67. Il processo ha in più anche lo stack e il PCB (completo di tutti i suoi dati…
con valori dei puntatori, di tutti i registri e in particolare del Program Counter).
Per meglio specificare il concetto di processo è utile un esempio come quello in figura p 63, dove si evidenzia la traccia di
tutti i valori assunti di registri nel corso dell’esecuzione.
2) Illustra il diagramma degli stati completo, spiegando dettagliatamente sia gli stati che le transizioni.
Gli stati di un processo possono essere:
 NEW=il sistema operativo crea la struttura dati che rappresenta il processo
 READY=il sistema operativo assegna al processo le risorse richieste e le colloca in memoria
 RUNNING=il sistema operativo decide di eseguire il processo assegnando ad esso il processore.
Non dimenticare, sono stati del processo anche:
 NEW=…
 TERMINATED=…
Una volta che il processo è stato creato,messo in memoria e mandato in esecuzione, e si trova precisamente nello stato
RUNNING, l’evoluzione del processo può eseguire 3 strade diverse:
1. il processo completa la sua esecuzione durante il time slice in cui è running e cede il controllo al sistema
operativo che lo mette nello stato TERMINATED.
2. il tempo assegnato al processo scade e l’orologio di sistema invia un segnale di interruzione .La gestione
dell’interruzione causa l’intervento del sistema operativo che mette il processo interrotto nello stato
READY, in coda con gli altri processi. (La sua esecuzione verrà successivamente ripresa, quando di
nuovo si troverà in cima alla coda. Molti sistemi operativi durante questo passaggio abbassano la priorità
al processo appena tornato in coda ready)
3. il processo richiede un’operazione di input/output e ne deve attendere il completamento. Il sistema
operativo attiva l’operazione di I/O, mette il processo nello stato WAITING e seleziona uno dei processi
READY per l’esecuzione.
Esaminando gli stati di un processo e le relative transizioni notiamo che un processo passa diverse volte negli stati
ready,running,waiting. In particolare si possono individuare 2 cicli:
 ciclo causato dallo scadere dei quantum temporali assegnati al processo: runningreadyrunning :
PROGRAMMA BATCH
 ciclo percorso dal processo quando esegue operazioni di lettura e scrittura: runningwaitingreadyrunning :
PROGRAMMA INTERATTIVO.
Utili i disegni in verifica
Le transizioni di stato di un processo sono:
1. AMMISSIONE: transizione da new a ready provocata da un utente (In particolare è però lo schedulatore
a lungo termine che gestisce questo passaggio, ogni collegamento è apprezzato!!!)
2. ASSEGNAZIONE: transizione da ready a running eseguita dal sistema operativo , in particolare gestita
dallo scheduler a …)
3. INTERRUZIONE: transizione da running a ready causata da un’interruzione, (TERMINE DEL TIME
SLICE!!!)
Ne hai parlato al punto 2 del precedente elenco…
4. ATTESA EVENTO: transizione da running a waiting causata dal processo stesso Quando richiede
un’operazione di I/O
Ne hai parlato al punto 3 del precedente elenco
5. AVVIENE EVENTO: transizione da waiting a ready causata da un evento esterno al processo: il
processo ha ottenuto la risorsa di I/O che attendeva.
Tantovale fondere i due elenchi in cui si parla delle transizioni e parlare di ciascuno una volta sola. In ogni caso ci sono
tutti e va bene.
Nel diagramma degli stati completo voglio anche gli stati “sospeso” e i relativi passaggi di stato (si trovano anche nella
risposta successiva).
GRADO DI MULTIPROGRAMMAZIONE: somma del numero dei processi running con quello dei processi ready e dei
processi waiting.
Risposta alla Domanda n° 3 Di Vezzoni Roberto
Spiega in che cosa consistono gli stati sospesi e come viene gestito lo swapping (pagg 66, 67)
Ai Processi che nella memoria sono stati spostati su disco viene assegnato lo stato Sospeso:
questi processi non sono più considerati dal sistema operativo per l’esecuzione.
i processi ready dalla memoria passano allo stato ready sospeso, mentre i processi bloccati passano nello stato waiting
sospeso. I processi nello stato waiting e ready sospeso costituiscono i processi dormienti
(processi che sono stati rimossi momentaneamente dalla memoria centrale).
Cause:
● Il sistema operativo deve fare partire un processo ad elevata priorità che richiede spazio in memoria: esso rimuove
alcuni processi dalla memoria centrale e li colloca temporaneamente su un disco(SWAP OuT)
●tutti i processi in memoria sono nello stato Waiting e,per non lasciare inutilizzato il sistema operativo decide di portare in
memoria altri processi,attualmente su disco,in grado di essere eseguiti (SWAP IN). Se la memoria è piena occorre
creare spazio in memoria spostando sul disco alcuni processi
Questa gestione della memoria (RAM + disco) è chiamata…
●L’esecuzione multiprogrammata dei processi ha un costo dovuto all’intervento del sistema operativo che interrompe un
programma e ne manda in esecuzione un altro.(questo concetto va spiegato)
**** Vedi Schema ****
Il passaggio di un processo allo stato sospeso, La Sospensione,abbassa il grado di multiprogramazione,mentre
l’attivazione di un processo lo aumenta.
Attivazione: e la transizione opposta alla sospensione ed e accompagnata da un operazione di SWAP IN(nel corso della
quale l’immagine del processo è riportata in memoria) e pure essa è gestita dal SO in Base alle sue politiche di gestione
dei processi.
Sospensione: è il passaggio allo stato sospeso ed e causata dal SO in base alle proprie politiche di
schedulazione,seguita dall operazione di SWAP OUT (nel corso della quale il processo e trasferito su disco,dove viene
virtualizzato).
Avviene Evento: processo di waiting e ready sospeso ed è causato dall evento ke l’ha portato in processo,quando era
attivo,a blokkarsi nello stato waiting in attesa di quello specifico evento.
BASTA SCRIVERE IN FORMA SMS… in verifica verranno pesantemente penalizzati!!!
Provate a scrivere un curriculum in SMS, vedrete quante offerte di lavoro!!!