Podcast
Questions and Answers
Quali sono i criteri principali che uno scheduler può considerare quando decide quale processo eseguire?
Quali sono i criteri principali che uno scheduler può considerare quando decide quale processo eseguire?
- Minimizzare il Tempo di risposta (correct)
- Minimizzare il Waiting time (correct)
- Minimizzare il Turnaround time (correct)
- Massimizzare il Throughput (correct)
- Massimizzare l'utilizzo della CPU (correct)
Il Throughput è il numero di processi completati in una certa unità di tempo.
Il Throughput è il numero di processi completati in una certa unità di tempo.
True (A)
Perché il Tempo di risposta è particolarmente importante nei sistemi interattivi?
Perché il Tempo di risposta è particolarmente importante nei sistemi interattivi?
Perché in un sistema interattivo, un tempo di risposta lungo rende l'esperienza utente lenta e frustrante. Gli utenti si aspettano risposte immediate alle loro azioni.
Il ______ time è il tempo medio di completamento di un processo, dalla sua entrata nella coda di Ready alla sua terminazione.
Il ______ time è il tempo medio di completamento di un processo, dalla sua entrata nella coda di Ready alla sua terminazione.
Collega il tipo di scheduling con la sua descrizione:
Collega il tipo di scheduling con la sua descrizione:
Il Waiting time è il tempo che un processo spende in coda di Ready.
Il Waiting time è il tempo che un processo spende in coda di Ready.
Qual è la relazione tra Waiting time e Turnaround time?
Qual è la relazione tra Waiting time e Turnaround time?
Quale algoritmo di scheduling prevede di assegnare a ciascun processo un intervallo fisso di tempo per l'esecuzione?
Quale algoritmo di scheduling prevede di assegnare a ciascun processo un intervallo fisso di tempo per l'esecuzione?
Il processo che sta usando la CPU può volontariamente passare dallo stato di running allo stato di ready.
Il processo che sta usando la CPU può volontariamente passare dallo stato di running allo stato di ready.
Quale dei seguenti è un motivo per cui il sistema operativo interviene per spostare un processo dalla coda di wait alla coda di ready?
Quale dei seguenti è un motivo per cui il sistema operativo interviene per spostare un processo dalla coda di wait alla coda di ready?
Lo scheduling preemptive è più sicuro per gli utenti, ma la sua implementazione richiede un sistema operativo e un'architettura hardware ______.
Lo scheduling preemptive è più sicuro per gli utenti, ma la sua implementazione richiede un sistema operativo e un'architettura hardware ______.
Cosa fa il sistema operativo quando il timer hardware scade mentre un processo sta usando la CPU?
Cosa fa il sistema operativo quando il timer hardware scade mentre un processo sta usando la CPU?
Abbina i tipi di scheduling con le loro caratteristiche:
Abbina i tipi di scheduling con le loro caratteristiche:
I sistemi operativi moderni usano solo lo scheduling senza prelazione.
I sistemi operativi moderni usano solo lo scheduling senza prelazione.
Elenca almeno due ragioni per cui il sistema operativo può spostare un processo dalla coda di ready alla coda di wait.
Elenca almeno due ragioni per cui il sistema operativo può spostare un processo dalla coda di ready alla coda di wait.
Quale dei seguenti è un vantaggio dello scheduling preemptive?
Quale dei seguenti è un vantaggio dello scheduling preemptive?
Quale dei seguenti algoritmi consente l'interruzione di un processo in esecuzione se arriva un processo con burst time inferiore?
Quale dei seguenti algoritmi consente l'interruzione di un processo in esecuzione se arriva un processo con burst time inferiore?
SJF è sempre implementabile nella gestione dei processi.
SJF è sempre implementabile nella gestione dei processi.
Qual è il tempo medio di attesa nel caso di SJF preemptive con i processi forniti?
Qual è il tempo medio di attesa nel caso di SJF preemptive con i processi forniti?
In SJF, spostando un processo breve prima di uno di lunga durata, il tempo medio di _________ diminuisce.
In SJF, spostando un processo breve prima di uno di lunga durata, il tempo medio di _________ diminuisce.
Abbina i processi con i loro burst time:
Abbina i processi con i loro burst time:
Qual è il tempo di attesa medio prodotto dalla sequenza di esecuzione SJF non-preemptive?
Qual è il tempo di attesa medio prodotto dalla sequenza di esecuzione SJF non-preemptive?
SJF può essere sia preemptive che non preemptive.
SJF può essere sia preemptive che non preemptive.
Cosa deve fare la CPU quando un processo con next CPU burst più breve arriva in coda?
Cosa deve fare la CPU quando un processo con next CPU burst più breve arriva in coda?
Qual è la politica di scheduling utilizzata per i processi nella coda foreground?
Qual è la politica di scheduling utilizzata per i processi nella coda foreground?
Tutti i processi in una coda vengono gestiti con la stessa politica di scheduling.
Tutti i processi in una coda vengono gestiti con la stessa politica di scheduling.
Qual è il meccanismo di bilanciamento del carico attivato da Linux SMP?
Qual è il meccanismo di bilanciamento del carico attivato da Linux SMP?
Qual è il principale vantaggio dello scheduling a code multilivello con retroazione?
Qual è il principale vantaggio dello scheduling a code multilivello con retroazione?
È vantaggioso spostare un processo da un core all'altro a causa della presenza di vari livelli di cache.
È vantaggioso spostare un processo da un core all'altro a causa della presenza di vari livelli di cache.
Una regola empirica dice che l'80% dei CPU burst dovrebbe essere minore di ___
Una regola empirica dice che l'80% dei CPU burst dovrebbe essere minore di ___
Cosa accade ai dati e alle istruzioni di un processo man mano che vengono indirizzati?
Cosa accade ai dati e alle istruzioni di un processo man mano che vengono indirizzati?
Abbina le seguenti code di scheduling con la loro politica di gestione:
Abbina le seguenti code di scheduling con la loro politica di gestione:
Quale approccio è utilizzato per gestire la priorità delle code?
Quale approccio è utilizzato per gestire la priorità delle code?
Le specifiche system call permettono di vincolare un processo ad un certo _____ .
Le specifiche system call permettono di vincolare un processo ad un certo _____ .
Abbina i livelli di cache con il loro costo in cicli di clock necessari per l'accesso:
Abbina i livelli di cache con il loro costo in cicli di clock necessari per l'accesso:
I processi non interattivi appartengono sempre alla coda foreground.
I processi non interattivi appartengono sempre alla coda foreground.
Cosa succede a un processo se non termina il suo CPU burst nel tempo assegnatogli nella coda?
Cosa succede a un processo se non termina il suo CPU burst nel tempo assegnatogli nella coda?
Qual è un vantaggio di avere una coda separata per ciascun core?
Qual è un vantaggio di avere una coda separata per ciascun core?
Il bilanciamento del carico è completamente automatico in presenza di un'unica RQ.
Il bilanciamento del carico è completamente automatico in presenza di un'unica RQ.
Perché non è conveniente spostare un processo tra diversi core?
Perché non è conveniente spostare un processo tra diversi core?
Qual è la classe di priorità più alta nel sistema di scheduling di Solaris?
Qual è la classe di priorità più alta nel sistema di scheduling di Solaris?
In Solaris, una volta che un processo termina, si sposta automaticamente nella classe interattiva.
In Solaris, una volta che un processo termina, si sposta automaticamente nella classe interattiva.
Quante classi di priorità ci sono nel sistema di scheduling di Solaris?
Quante classi di priorità ci sono nel sistema di scheduling di Solaris?
In Solaris, il sistema usa una tabella con __________ righe per l'assegnazione del quanto di tempo.
In Solaris, il sistema usa una tabella con __________ righe per l'assegnazione del quanto di tempo.
Abbina le seguenti classi di priorità con la loro descrizione:
Abbina le seguenti classi di priorità con la loro descrizione:
Quale delle seguenti affermazioni è vera riguardo il quanto di tempo assegnato ai processi in Solaris?
Quale delle seguenti affermazioni è vera riguardo il quanto di tempo assegnato ai processi in Solaris?
I processi nelle classi time sharing e interattiva hanno gli stessi criteri di scheduling.
I processi nelle classi time sharing e interattiva hanno gli stessi criteri di scheduling.
Cosa determina il quanto di tempo che viene assegnato a un processo in Solaris?
Cosa determina il quanto di tempo che viene assegnato a un processo in Solaris?
Flashcards
Regola empirica CPU burst
Regola empirica CPU burst
L'80% dei CPU burst dovrebbe essere inferiore a q.
Scheduling a code multiple
Scheduling a code multiple
Tecnica di programmazione in cui i processi sono divisi in classi, come foreground e background.
Tipi di code
Tipi di code
Foreground (interattivi), background (non interagenti), batch (esecuzione differita).
Politica di scheduling
Politica di scheduling
Signup and view all the flashcards
Scheduling a priorità fissa
Scheduling a priorità fissa
Signup and view all the flashcards
Time slice
Time slice
Signup and view all the flashcards
Scheduling multilivello con retroazione
Scheduling multilivello con retroazione
Signup and view all the flashcards
Preemption
Preemption
Signup and view all the flashcards
Utilizzo della CPU
Utilizzo della CPU
Signup and view all the flashcards
Throughput
Throughput
Signup and view all the flashcards
Tempo di risposta
Tempo di risposta
Signup and view all the flashcards
Turnaround time
Turnaround time
Signup and view all the flashcards
Waiting time
Waiting time
Signup and view all the flashcards
First Come, First Served
First Come, First Served
Signup and view all the flashcards
Shortest Job First
Shortest Job First
Signup and view all the flashcards
Round Robin
Round Robin
Signup and view all the flashcards
SJF (Shortest Job First)
SJF (Shortest Job First)
Signup and view all the flashcards
SJF preemptivo
SJF preemptivo
Signup and view all the flashcards
SJF non-preemptivo
SJF non-preemptivo
Signup and view all the flashcards
Tempo medio di attesa
Tempo medio di attesa
Signup and view all the flashcards
Difficoltà SJF
Difficoltà SJF
Signup and view all the flashcards
Burst time
Burst time
Signup and view all the flashcards
Stima del burst time
Stima del burst time
Signup and view all the flashcards
Bilanciamento del carico
Bilanciamento del carico
Signup and view all the flashcards
Coda comuna
Coda comuna
Signup and view all the flashcards
Coda separata per core
Coda separata per core
Signup and view all the flashcards
Meccanismo di bilanciamento in Linux SMP
Meccanismo di bilanciamento in Linux SMP
Signup and view all the flashcards
Cache
Cache
Signup and view all the flashcards
Problema di spostamento del processo
Problema di spostamento del processo
Signup and view all the flashcards
System call per vincolare un processo
System call per vincolare un processo
Signup and view all the flashcards
Costo in cicli di clock
Costo in cicli di clock
Signup and view all the flashcards
Scheduling
Scheduling
Signup and view all the flashcards
Classi di processo in Solaris
Classi di processo in Solaris
Signup and view all the flashcards
Priorità maggiore
Priorità maggiore
Signup and view all the flashcards
Quanto di tempo
Quanto di tempo
Signup and view all the flashcards
Prelazione
Prelazione
Signup and view all the flashcards
Tabella di prioritÃ
Tabella di prioritÃ
Signup and view all the flashcards
Priorità inversamente proporzionale
Priorità inversamente proporzionale
Signup and view all the flashcards
80 millisecondi
80 millisecondi
Signup and view all the flashcards
Stato di Running
Stato di Running
Signup and view all the flashcards
Stato di Ready
Stato di Ready
Signup and view all the flashcards
Preemptive Scheduling
Preemptive Scheduling
Signup and view all the flashcards
Non-preemptive Scheduling
Non-preemptive Scheduling
Signup and view all the flashcards
Timer Hardware
Timer Hardware
Signup and view all the flashcards
PCB (Process Control Block)
PCB (Process Control Block)
Signup and view all the flashcards
Coda di Ready
Coda di Ready
Signup and view all the flashcards
Coda di Wait
Coda di Wait
Signup and view all the flashcards
Study Notes
Scheduling della CPU
- Il multitasking e il time sharing mirano a massimizzare l'utilizzo della CPU.
- Per questo, il progettista del sistema operativo (SO) deve stabilire delle regole per decidere, quando un processo lascia la CPU, quale sarà il prossimo processo da eseguire.
- L'insieme di queste regole e la loro applicazione pratica è chiamato Scheduling della CPU.
Fasi di elaborazione e di I/O
- Nella vita di un processo si alternano fasi di uso della CPU (burst di CPU) e fasi di attesa per il completamento di operazioni di I/O (Burst di I/O).
- Distinzione fra:
- Processi CPU-bound: utilizzano molto la CPU e poco i dispositivi di I/O (es. compilatore).
- Processi I/O-bound: utilizzano poco la CPU e molto i dispositivi di I/O (es. editor di testo, browser).
Lo scheduler della CPU
- Lo scheduler è il modulo del SO che decide a quale processo assegnare la CPU quando un processo la rilascia.
- Questa operazione è detta Scheduling della CPU.
Scheduling con e senza prelazione
-
- Il processo che sta usando la CPU passa volontariamente dallo stato di running allo stato di waiting (ad esempio per compiere una operazione di I/O).
-
- Il processo che sta usando la CPU termina.
- In questi casi, lo scheduler deve prendere un processo dalla coda di ready e mandarlo in esecuzione per evitare che la CPU resti inattiva.
- Uno scheduler che interviene in questi casi è sufficiente per il multi-tasking.
- Se un programma contiene un ciclo infinito, il SO deve poter intervenire per evitare che blocchi permanentemente la CPU.
-
- Il processo che usa la CPU viene costretto a passare dallo stato di running allo stato di ready. Questo passaggio non è volontario. Nei sistemi time-sharing, il SO mantiene il controllo del sistema per evitare situazioni problematiche.
Criteri di Scheduling
- Massimizzare l'utilizzo della CPU nell'unità di tempo (dipenderà dal carico).
- Massimizzare il Throughput, ovvero la produttività del sistema (numero di processi completati in un dato intervallo di tempo).
- Minimizzare il Tempo di risposta, che è il tempo che intercorre tra l'avvio di un processo e il suo effettivo inizio di esecuzione (importante per i sistemi interattivi).
- Minimizzare il Turnaround time, ovvero il tempo totale di esecuzione di un processo (dal momento in cui entra nella coda di ready fino al termine).
- Minimizzare il waiting time, ossia il tempo di attesa complessivo di ciascun processo nella coda di ready. Il processo è pronto ad eseguire il suo codice, ma la CPU è occupata da un altro processo.
Algoritmi di Scheduling
- First Come, First Served (FCFS): I processi vengono elaborati secondo l'ordine di arrivo.
- Shortest Job First (SJF): Il processo con il tempo di esecuzione più breve viene elaborato per primo. SJF può essere preemptive o non preemptive.
- Priority Scheduling: I processi vengono elaborati in base alla loro priorità . SJF è un tipo di scheduling a priorità . La durata del prossimo burst di tempo è la priorità . FCFS è anche un tipo di scheduling a priorità (in questo caso, la priorità è l'ordine di arrivo).
- Round Robin (RR): I processi vengono elaborati con un quanto di tempo (intervallo di tempo di esecuzione). Se un processo non termina nel quanto, viene spostato in fondo alla coda di ready.
- Multilevel Queue: La coda di ready è suddivisa in più code (foreground, background, batch), ciascuna con la sua politica di scheduling.
- Multilevel Feedback Queue: Simile a Multilevel Queue, ma i processi possono cambiare coda durante la loro esecuzione in base al loro comportamento.
Il Dispatcher
- Lo scheduler ha il compito di scegliere il processo a cui assegnare la CPU.
- Il dispatcher è un altro modulo del SO che effettua l'operazione di context switch.
- Eseguire il passaggio del sistema in user mode.
- Posizionare il PC della CPU nella corretta locazione del programma da far ripartire.
Scheduling a code multiple (Multi-level Queue)
- Se i processi possono essere divisi in categorie come foreground (interattivi), background (non interattivi), batch (la cui esecuzione può essere differita), si può suddividere la ready queue in più code.
- Ogni coda può avere la sua politica di scheduling appropriata per le proprietà dei processi in essa contenuti.
Scheduling a code multilivello con retroazione (MFQS)
- È uno schema di scheduling più flessibile, in cui i processi possono essere spostati da una coda all'altra in base al loro comportamento.
Scheduling per sistemi multi-core
- Le architetture multi-core sono comuni.
- Ogni core ha il suo scheduler.
- I processi ready to run possono essere inseriti in una coda unica, oppure in code separate per ciascun core.
- Un aspetto importante è la gestione del bilanciamento del carico sui diversi core.
- I SO moderni spesso usano code separate, richiedendo quindi un meccanismo di bilanciamento del carico. Ad esempio, Linux SMP attiva il suo proprio meccanismo di bilanciamento del carico ogni 200 millisecondi, svuotando la coda di un core quando è inattivo e mandando un processo dalla coda comune (unica) a quello specifico core.
Esempi di sistemi operativi (Solaris, Windows, Linux)
- Sono descritti diversi schemi di scheduling usati in sistemi operativi come Solaris, Windows e Linux, che includono il concetto di priorità , la gestione delle code, e la retroazione per regolare il comportamento del sistema operativo.
Valutazione degli algoritmi di scheduling
- Vengono descritti metodi per valutare la prestazione di diversi algoritmi di scheduling.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.