Vai al contenuto
Home » Notes » Appunti Sistemi Operativi: Processi e Threads

Appunti Sistemi Operativi: Processi e Threads

copertina appunti riassunto domande sistemi operativi processi e threads università

Raccolta di Riassunti e Appunti di Sistemi Operativi, sotto forma di domande e risposte sugli argomenti di Processi e Threads.
Fonti: il mio libro di Sistemi Operativi Operating System Concepts with Java, di Silberschatz, Galvin e Gagne.

Appunti Riassunto Sistemi Operativi – Capitolo Processi e Threads

Disegnare il grafo che rappresenta gli stati possibili di un processo e le transizioni tra stati. Per ogni transizione, indicare almeno una ragione che può causarla.

diagramma process state stati dei processi sistemi operativi

Da nuovo a ready: il processo è ammesso nella ready queue

Da ready a running: il processo è allocato al processore dall’algoritmo di CPU scheduling

Da running a ready: si verifica una interrupt

Da running a waiting: attesa di un evento oppure I/O

Da waiting a ready: si completa l’evento oppure I/O

Indicare almeno 4 motivi volontari e involontari per cambio di stato da running a qualcos’altro

Volontari:

  • il processo può terminare e andare in stato terminated
  • Può attendere una operazione di input o output e andare in stato waiting
  • Può attendere un semaforo con P(S), andando in stato waiting

Involontari:

  • Page fault, andando in stato waiting
  • Quanto di tempo scaduto dell’algoritmo di CPU scheduling, viene rimesso nella ready queue
  • Può essere spostato in ready queue dall’algoritmo di scheduling per allocare la CPU ad un altro processo
  • Fatal error, che porta il processo allo stato terminated

È vero o falso che un processo può uscire volontariamente dallo stato ready?

Dallo stato ready, l’unico stato che si può raggiungere è Running. È quindi falso che un processo possa uscire volontariamente dallo stato Ready, perché affinchè ciò avvenga, è necessario che lo scheduler lo selezioni per mandarlo in esecuzione.

Lo scheduler è, infatti, un piccolo software integrato nel sistema operativo che, tramite un algoritmo di scheduling (FIFO, RoundRobin, SJF) sceglie quali processi allocare alla CPU e in che ordine. Il suo obiettivo è sempre quello di massimizzare la produttività del sistema, riducendo il più possibile i tempi di esecuzione e di attesa dei singoli processi, evitando fenomeni indesiderati come starvation.

In quali transizioni del grafo deve intervenire il SO?

Il sistema operativo interviene in tutte le transizioni del grafo, perché deve modificare il campo “Stato del processo” nel Process Control Block di ogni singolo processo.

Che differenza c’è tra thread e processo? Che vantaggi ha il thread? Perché può essere vantaggioso usare thread al posto di processi? È possibile nei sistemi operativi moderni avere sia processi che thread, o sono due concetti incompatibili?

Per processo si fa riferimento ad un programma in esecuzione, inteso come non solo il codice ma anche le variabili che manipola nella memoria. Un thread è invece una specifica attività che sta svolgendo un programma, quindi, un programma può avere più threads.

Il vantaggio dei threads è che permettono di eseguire in maniera simultanea/parallela più operazioni, migliorando le performance e riducendo il tempo di elaborazione.

Nei sistemi moderni processi e thread sono due concetti differenti e un sistema operativo può averli entrambi.

Cos’è il Process Control Block e a cosa serve?

Il PCB è una struttura tabellare nel quale sono salvate le informazioni relative ad un processo (stato del processo, il program counter, registri della CPU, limiti di memoria, priorità del processo, dispositivi I/O assegnati al processo…) .
Il sistema operativo ha bisogno del PCB, ad esempio, per tener traccia delle interruzioni dei processi.

In un sistema che supporta i thread, il PCB viene esteso per includere informazioni su ogni thread.

Quali informazioni contiene il PCB e quanti ne esistono in un momento qualsiasi di attività di una macchina?

Il PCB contiene informazioni importanti come process ID, process state, CPU state (program counter, register) per riprendere l’attività di un processo, informazioni per la gestione della memoria e così via.

Il loro numero è uguale al numero dei processi: generalmente è presente una tabella per i PCB, quindi c’è un limite massimo.

Cosa è e cosa succede durante un context switch? Perché è importante che un sistema operativo minimizzi il tempo di context switch?

Il context switch è il passaggio della CPU a un nuovo processo che implica il salvataggio dello stato del processo attuale e il ripristino dello stato del nuovo processo. Quindi, quando avviene un context switch, il sistema salva il contesto del processo uscente nel suo PCB e carica il contesto del processo subentrante, salvato in precedenza.

È importante che un S.O. sia in grado di minimizzare il tempo di context switch per far lavorare il più possibile la CPU, perché è tempo di overhead, cioè il sistema svolge solo operazioni volte alla gestione dei processi e non alla computazione.

Cos’è il turnaround di un processo? E il waiting time?

Il turnaround di un processo è il tempo che trascorre da quando il processo passa a stato Ready (cioè viene inserito nella ready queue) a quando viene completata la sua esecuzione. Il waiting time è invece il “tempo di attesa”, ovvero il tempo che il processo trascorre aspettando, da quando arriva in ready queue a quando termina la sua esecuzione. La formula per calcolare il waiting time è, di conseguenza:

Tempo al quale il processo termina – tempo al quale il processo è arrivato in ready queue – burst time.

Cos’è la “process affinity” di un processo rispetto ad un certo processore?

Per process affinity si intende la buona norma di terminare l’esecuzione di un processo sulla stessa CPU core sulla quale la si è iniziata.

Cosa significa che un processo è in stato ready? Con quali algoritmi è gestito l’insieme dei processi ready?

Processo in stato ready significa che si trova nella ready-queue, pronto ad essere allocato alla CPU per andare in esecuzione. L’insieme dei processi nella ready queue è gestito dagli algoritmi di CPU scheduling come FIFO (FCFS), Round Robin, SJF, scheduling con priorità, multilevel queue…

Cosa sono base e limit register della memoria di un processo?

Ad ogni processo è riservata una precisa area di memoria in cui poter operare. Un determinato processo non deve, infatti, poter accedere ad aree di memoria riservate ad altri processi (errori, instabilità, problema di sicurezza). Base register e limit register memorizzano proprio i confini di questa area di memoria dedicata a un determinato processo.

Altri capitoli:
Struttura e architettura dei Sistemi Operativi
CPU scheduling
Semafori e concorrenza

Grazie per la lettura

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *