Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
STATI DI UN PROCESSO
Un processo può trovarsi in tre diversi stati:
- in esecuzione, quando sta utilizzando il processore;
- in attesa (bloccato), quando è in attesa del verificarsi di un evento esterno, ad esempio, la terminazione di un'operazione di input/output o la possibilità di utilizzare una qualche risorsa in uso da parte di altri processi;
- pronto, quando è potenzialmente in condizione di poter utilizzare il processore che è occupato da un altro processo: vi è una lista di processi in attesa che il processore si dedichi a loro e quando si dedica a loro il processo va in esecuzione.
Abbandono dell'esecuzione
Ciò può verificarsi per tre diverse ragioni:
- terminazione: il processo termina la sua esecuzione e abbandona il sistema (dipende dal processo stesso);
- richiesta di un'operazione di input/output o di una risorsa occupata. In questo caso il processo passa allo stato di attesa, il
` per ogni paragrafo del testo.
2. Utilizza il tag `` per evidenziare le parole o frasi in grassetto.
3. Utilizza il tag ` Il processo viene liberato e può essere concesso ad un altro processo pronto (dipende dal processo stesso). Cambio di esecuzione: per realizzare in modo equo l'alternanza tra i vari processi, in certi casi può essere opportuno fermare un processo, rimetterlo nello stato di pronto e concedere il processore ad un altro processo. (forzata dal sistema) Esempio: sto lavorando su word e arriva una notifica antivirus. Il processo word viene messo in stato di pronto e attende di essere rimesso in esecuzione. Da un altro punto di vista, si può vedere il sistema di gestione dei processi come formato da un certo numero di code, ognuna delle quali contiene i processi che si trovano nello stesso stato (ad esempio coda processi pronti, in attesa) e immaginarlo come in questa immagine: FAMIGLIE DI PROCESSI I processi hanno classificazioni diverse che riguardano gli utilizzi e le esigenze lavorative. Vi sono due principali tipologie di classificazione: Contiene tutte le informazioni sui processi attivi: Context switch (cambio di contesto) - Il S.O. salva il contenuto di tutti i registri del processore nel descrittore della tabella dei processi del processo P1 che è stato sospeso; - Seleziona un processo P2 pronto per l'esecuzione; - Copia all'interno dei registri del processore i valori dei registri salvati nel descrittore del processo P2, in modo da ripristinare lo stato in cui P2 si trovava al momento della sospensione; - Se P2 non era mai stato eseguito in precedenza (è un processo nuovo), è sufficiente caricare nel registro PC l'indirizzo della sua prima istruzione. In questo modo ogni processo, quando riparte, si trova esattamente nella situazione in cui era quando è stato sospeso. Il context switch non può essere effettuato troppo frequentemente in quanto è tempo non dedicato ai processi utente e perciò in un certo senso, sprecato. Politiche di scheduling del processore Le strategie utilizzate nella selezione del prossimo processo da mandare in esecuzione possono essere diverse e prendono il nome di politiche di gestione o scheduling del processore. L'obiettivo di queste politiche è l'ottimizzazione di due parametri di riferimento: Massimizzare il numero di programmi che vengono eseguiti Nell'unità di tempo, cioè il throughput del sistema, in modo tale che il processore svolga il massimo lavoro possibile Minimizzare il tempo di esecuzione dei processi, detto anche tempo di turnaround, cioè il tempo che intercorre tra l'istante in cui un processo viene creato e quello in cui esso termina. Preemption Le politiche di scheduling possono essere a breve termine o a lungo termine, in cui si deve decidere il grado di multi-programmazione del processore, ossia il numero dei processi che devono essere mantenuti contemporaneamente attivi all'interno del sistema. Le prime possono essere suddivise in non-preemptive e preemptive. Questi processi hanno una priorità maggiore e non possono essere interrotti dal processore stesso in quanto esso deve dedicarsi immediatamente a loro finché non ne ha terminato l'esecuzione. Secondo le politiche non-preemptive, il processo in esecuzione può essere sostituito solo se si ferma. volontariamente, magari in attesa di un'operazione di I/O; Nelle politiche preemptive, invece, il sistema operativo può decidere di bloccare un processo per mandarne in esecuzione un altro (preemptive=with prior right). Nel caso delle politiche preemptive è possibile che un processo in esecuzione venga rimesso nello stato di pronto e il processore ceduto ad un altro processo: questa operazione prende il nome di preemption ossia pre-rilascio del processore. First Come First Served (FCFS) O First In First Out (FIFO) Si tratta di una politica non-preemptive in cui i processi sono eseguiti nell'ordine in cui vengono sottomessi al sistema. La coda dei processi pronti viene gestita selezionando il prossimo processo da mandare in esecuzione dall'inizio della coda, e inserendo in fondo alla coda i processi che diventano pronti. Quindi, ogni volta che il processore è libero, viene selezionato e mandato in esecuzione il primo processo della coda. Shortest Job First (SJF)È una politica non-preemptive. Lo schema è simile a quello della politica FCFSma, invece di selezionare il primo processo della coda dei pronti, viene selezionato quello che richiede meno tempo per terminare o per fermarsi sulla prossima operazione di attesa. Si può dimostrare che eseguendo i processi nell'ordine crescente di tempo, si ottiene il minimo tempo medio di turnaround; questo dipende dal fatto che, se si eseguono prima i processi più corti, il tempo medio di attesa dei processi nella coda dei pronti è minimo. Purtroppo, non si conosce a priori il tempo necessario ad un processo per terminare e questo parametro può solo essere stimato (es., dimensioni e numero istruzioni). Si noti, tuttavia, che il numero di istruzioni che costituiscono il codice di un programma non è una buona misura del tempo di esecuzione. Un programma, infatti, può contenere gruppi di istruzioni che devono essere ripetute molte volte. Shortest La scelta della durata del quanto di tempo è fondamentale. Se è troppo breve, si ha uno scambio frequente, e quindi una contemporaneità di esecuzione più marcata, ma si hanno anche frequenti context switch con la conseguente perdita di tempo. Se il quanto di tempo è troppo lungo, si rischia di cadere nella politica FCFS perché nessun processo viene mai interrotto. La politica Round Robin (o alcune sue varianti più sofisticate) è quella adottata nei sistemi operativi interattivi. Vi è una distinzione tra politiche eque (fair) e politiche non eque (unfair). Una politica si dice equa se garantisce che ogni processo prima o poi verrà selezionato e andrà in esecuzione; le politiche FCFS e Round Robin sono esempi di politiche eque. Nel caso di politiche non eque, invece, c'è il rischio che un
` per inserire una nuova riga quando necessario.
4. Utilizza il tag `` per creare una lista non ordinata.
5. Utilizza il tag `
tipologia progettuale:
- Processi compute bound ovvero lunghe computazioni senza la necessità di frequenti interazioni con l'esterno;
- Processi input/output bound (I/O bound) (frequenti interazioni con esterno come elaborazione di testi);
Per esigenza elaborativa:
- Modello batch, in cui l'utente richiede l'esecuzione di un programma, se non disinteresse, e ritorna a recuperare i risultati dopo un certo tempo. (a lotti - x computer bound);
- Modello time-sharing, in cui più utenti richiedono contemporaneamente l'esecuzione di processi interattivi e il tempo di elaborazione viene suddiviso tra i vari processi che vengono alternati nell'esecuzione (interattivo x I/O bound);
- Modello real-time in cui la gestione deve essere effettuata rispettando vincoli di tempo di esecuzione e di tempo di risposta, come in aereo o una centrale elettrica (in tempo reale).
Gestione dei processi
Per gestire un insieme di processi contemporaneamente attivi è necessario ricordare,per ciascuno di essi, alcune informazioni quali lo stato in cui si trova il punto del programma in cui si è arrivati. Inoltre è necessario mantenere in memoria l'immagine del processo, ossia il codice del programma in esecuzione e i dati su cui sta lavorando.
Il sistema operativo mantiene in una zona di memoria riservata, una tabella detta tabella dei processi (PCBT - Process Control Block Table), in cui vengono registrate tutte le informazioni sui processi attivi.
PCBT (Process Control Block Table)