Sistema operativo, gestione dei processi Flashcards
Sistema operativo: ruolo
Programma che gestisce attività
Livelli del sistema operativo
- Gestione dei processi
- Gestione della memoria: Indirizzamento in memoria dei programmi
- Gestione I/O: lettura/scrittura da/su periferica
- Gestione file system: organizzazione file su disco fisso
- Prompt dei comandi: comandi direttamente al sistema operativo
Processo: definizione
Programma in esecuzione, caratterizzato dalla terna programma, dati, contesto
Stati in cui si può trovare un processo
- Running: Nel CIR c’è un’istruzione di questo processo. Con singolo processore ci può essere al massimo un processo running alla volta
- Ready: Processo non è in esecuzione, ma può diventarlo perché non necessita di risorse occupate in quel momento. Se la sua prossima istruzione viene messa nel CIR, diventa running
- Blocked: Processo non può andare in esecuzione perché una risorsa che necessita è occupata
Passaggi tra stati di un processo (transizioni)
- Preemption: Processo running rimosso e spostato in ready
- Dispatch: processo ready diventa running
- Block: processo running diventa blocked, perché cerca di accedere ad una risorsa occupata
- Wake-Up: processo blocked diventa ready, perché la risorsa necessaria si libera.
Rappresentazione di tutti i processi nel calcolatore
- Nella CPU c’è al più un processo
- Coda dei processi ready: contiene tutti i processi ready, ordinati
Tipi di architettture
- Non Preemptive: programma in esecuzione viene eseguito fino al suo termine
- Preemptive: In ogni istante di tempo, viene scelto un processo da eseguire, e questo viene eseguito per un quanto temporale, dopodiché torna ready. La dimensione del quanto temporale viene stabilita dal sistema operativo, ad esempio 5 ms
Ruolo del gestore dei processi
- Il tempo viene diviso dal sistema operativo in quanti temporali
- Nella prima parte di ogni quanto temporale viene deciso quale processo eseguire, dopodiché c’è l’effettiva esecuzione
- La presa di decisione deve occupare un tempo trascurabile
- Il problema della presa di decisione è on line: cambia in futuro, ma a priori non si sa in che modo
- Il gestore dei processi va in esecuzione all’inizio di ogni quanto temporale per stabilire il processo da eseguire:
- Interrupt con cadenza temporale, generato da un timer, manda in esecuzione il gestore dei processi
- Cambio di contesto
- Un algoritmo ordina i processi ready sulla base di informazioni contenute in tabelle
- Viene mandato in esecuzione il processo scelto, il primo della coda, con un interrupt di tipo software
- I processi ready quindi vengono ordinati in una coda, la coda dei processi ready; il primo della coda viene mandato in esecuzione
Come vengono ordinati i processi ready
- I processi vengono ordinati sulla base di informazioni a cui il sistema operativo accede mediante la tabella dei processi
- La tabella ha in una colonna un codice che identifica il processo (PID: Process Identifier), nell’altra colonna un puntatore a una zona di memoria in cui si trovano le informazioni per quel processo (PCB: Process Control Block), come il suo stato, le risorse che sta usando, le risorse che attende, la sua scadenza temporale
Problemi generati dalle risorse mutuamente esclusive
- La presenza di risorse mutuamente esclusive può causare deadlock
Risorse mutuamente esclusive
Risorse che possono essere usate da un solo processo alla volta
Deadlock
Situazione di stallo in cui due processi rimangono bloccati in attesa di un’azione dell’altro, ad esempio se entrambi hanno bisogno di una risorsa che sta usando l’altro
Gestione deadlock
- Uscire dalla deadlock: serve sistema operativo progettato per farlo, in grado di terminare il processo che causa la deadlock rilasciando la risorsa (recovery)
- Prevenire le deadlock: sistema progettato in modo che non si verifichino le condizioni che causano deadlock