Podcast
Questions and Answers
Qual è la principale funzione del sistema operativo nel processo di scheduling?
Qual è la principale funzione del sistema operativo nel processo di scheduling?
Il processo può spostarsi autonomamente dalla coda di attesa a quella di ready.
Il processo può spostarsi autonomamente dalla coda di attesa a quella di ready.
False (B)
Cosa accade quando il timer hardware scade durante l'esecuzione di un processo?
Cosa accade quando il timer hardware scade durante l'esecuzione di un processo?
Il controllo della CPU viene restituito al sistema operativo.
Lo scheduling _____ è quello in cui il sistema interviene per gestire i processi in esecuzione.
Lo scheduling _____ è quello in cui il sistema interviene per gestire i processi in esecuzione.
Signup and view all the answers
Abbina i tipi di scheduling con la loro descrizione:
Abbina i tipi di scheduling con la loro descrizione:
Signup and view all the answers
Quale di queste affermazioni è vera riguardo il scheduling preemptive?
Quale di queste affermazioni è vera riguardo il scheduling preemptive?
Signup and view all the answers
I moderni sistemi operativi 'general purpose' utilizzano solo lo scheduling non-preemptive.
I moderni sistemi operativi 'general purpose' utilizzano solo lo scheduling non-preemptive.
Signup and view all the answers
Quale dei seguenti parametri non è parte della politica MFQS?
Quale dei seguenti parametri non è parte della politica MFQS?
Signup and view all the answers
La multielaborazione simmetrica (SMP) prevede un solo scheduler per tutti i core.
La multielaborazione simmetrica (SMP) prevede un solo scheduler per tutti i core.
Signup and view all the answers
Qual è uno degli obiettivi principali della politica di scheduling MFQS?
Qual è uno degli obiettivi principali della politica di scheduling MFQS?
Signup and view all the answers
I sistemi multi-core si basano su __________ per distribuire processi su più core.
I sistemi multi-core si basano su __________ per distribuire processi su più core.
Signup and view all the answers
Abbina i seguenti termini ai loro significati corretti:
Abbina i seguenti termini ai loro significati corretti:
Signup and view all the answers
Qual è il termine per il metodo di scheduling in cui il processo attualmente in esecuzione viene interrotto se arriva un processo con un burst time più breve?
Qual è il termine per il metodo di scheduling in cui il processo attualmente in esecuzione viene interrotto se arriva un processo con un burst time più breve?
Signup and view all the answers
Il tempo di attesa medio aumenta sempre utilizzando l'algoritmo SJF.
Il tempo di attesa medio aumenta sempre utilizzando l'algoritmo SJF.
Signup and view all the answers
Qual è la formula per calcolare il tempo medio di attesa in un algoritmo di scheduling?
Qual è la formula per calcolare il tempo medio di attesa in un algoritmo di scheduling?
Signup and view all the answers
SJF può essere sia __________ che __________.
SJF può essere sia __________ che __________.
Signup and view all the answers
Abbina i processi con i loro tempi di arrivo:
Abbina i processi con i loro tempi di arrivo:
Signup and view all the answers
È sempre possibile conoscere in anticipo il prossimo burst time di un processo in SJF.
È sempre possibile conoscere in anticipo il prossimo burst time di un processo in SJF.
Signup and view all the answers
Quale tra i seguenti processi ha il burst time più breve nel contesto SJF?
Quale tra i seguenti processi ha il burst time più breve nel contesto SJF?
Signup and view all the answers
Qual è l'analisi principale che giustifica l'uso di SJF?
Qual è l'analisi principale che giustifica l'uso di SJF?
Signup and view all the answers
Il tempo medio di attesa dei processi P1, P2, P3 e P4 nella gestione SJF preemptiva è __________.
Il tempo medio di attesa dei processi P1, P2, P3 e P4 nella gestione SJF preemptiva è __________.
Signup and view all the answers
Quale tra i seguenti algoritmi è considerato il migliore per lo scheduling?
Quale tra i seguenti algoritmi è considerato il migliore per lo scheduling?
Signup and view all the answers
L'algoritmo FCFS fornisce sempre tempi di attesa e turnaround eccellenti.
L'algoritmo FCFS fornisce sempre tempi di attesa e turnaround eccellenti.
Signup and view all the answers
Qual è la priorità in SJF?
Qual è la priorità in SJF?
Signup and view all the answers
Il sistema operativo può calcolare la priorità dei processi in modo _______ o _______.
Il sistema operativo può calcolare la priorità dei processi in modo _______ o _______.
Signup and view all the answers
Abbina i seguenti algoritmi di scheduling con le loro caratteristiche:
Abbina i seguenti algoritmi di scheduling con le loro caratteristiche:
Signup and view all the answers
Cosa si intende per 'starvation' in uno scheduling a priorità?
Cosa si intende per 'starvation' in uno scheduling a priorità?
Signup and view all the answers
SJF preemptive non può migliorare il tempo di attesa medio rispetto a SJF non preemptive.
SJF preemptive non può migliorare il tempo di attesa medio rispetto a SJF non preemptive.
Signup and view all the answers
Come può essere implementato lo scheduling a priorità?
Come può essere implementato lo scheduling a priorità?
Signup and view all the answers
In SJF, i processi vengono selezionati sulla base del loro ______________.
In SJF, i processi vengono selezionati sulla base del loro ______________.
Signup and view all the answers
Quale affermazione descrive meglio FCFS?
Quale affermazione descrive meglio FCFS?
Signup and view all the answers
Qual è la regola empirica riguardo il CPU burst in relazione a q?
Qual è la regola empirica riguardo il CPU burst in relazione a q?
Signup and view all the answers
Lo scheduling a multilivello viene utilizzato solo nei sistemi operativi più recenti.
Lo scheduling a multilivello viene utilizzato solo nei sistemi operativi più recenti.
Signup and view all the answers
Quali sono le tre categorie di processi nel multi-level queue scheduling?
Quali sono le tre categorie di processi nel multi-level queue scheduling?
Signup and view all the answers
Il tipo più generale di algoritmo di scheduling è lo scheduling a __________ con retroazione.
Il tipo più generale di algoritmo di scheduling è lo scheduling a __________ con retroazione.
Signup and view all the answers
Collega i seguenti metodi di scheduling con i loro utilizzi:
Collega i seguenti metodi di scheduling con i loro utilizzi:
Signup and view all the answers
Quale politica di scheduling viene utilizzata per i processi foreground?
Quale politica di scheduling viene utilizzata per i processi foreground?
Signup and view all the answers
Nello scheduling con retroazione, l'assegnamento di un processo a una coda è fisso.
Nello scheduling con retroazione, l'assegnamento di un processo a una coda è fisso.
Signup and view all the answers
Che succede a un processo che non completa il CPU burst nel tempo assegnato?
Che succede a un processo che non completa il CPU burst nel tempo assegnato?
Signup and view all the answers
La percentuale di CPU assegnata alla coda foreground è __________.
La percentuale di CPU assegnata alla coda foreground è __________.
Signup and view all the answers
Quale dei seguenti è un potenziale svantaggio dello scheduling a priorità fissa?
Quale dei seguenti è un potenziale svantaggio dello scheduling a priorità fissa?
Signup and view all the answers
Flashcards
Scheduling preemptivo
Scheduling preemptivo
Il sistema operativo interrompe l'esecuzione del processo corrente e passa il controllo ad un altro processo in coda di ready.
Scheduling non preemptivo
Scheduling non preemptivo
Il sistema operativo non può interrompere il processo corrente finché non lo termina volontariamente.
Processo in coda di ready
Processo in coda di ready
Il processo deve attendere la liberazione della CPU per iniziare l'esecuzione.
Processo in esecuzione
Processo in esecuzione
Signup and view all the flashcards
Processo in coda di wait
Processo in coda di wait
Signup and view all the flashcards
Ruolo del sistema operativo
Ruolo del sistema operativo
Signup and view all the flashcards
Intervento del sistema operativo
Intervento del sistema operativo
Signup and view all the flashcards
Shortest Job First (SJF)
Shortest Job First (SJF)
Signup and view all the flashcards
SJF non preemptive
SJF non preemptive
Signup and view all the flashcards
SJF preemptive
SJF preemptive
Signup and view all the flashcards
Il problema di stimare la durata dei processi
Il problema di stimare la durata dei processi
Signup and view all the flashcards
Stima basata su medie pesate
Stima basata su medie pesate
Signup and view all the flashcards
Ottimalità di SJF
Ottimalità di SJF
Signup and view all the flashcards
Tempo di attesa medio
Tempo di attesa medio
Signup and view all the flashcards
Turnaround
Turnaround
Signup and view all the flashcards
Passaggio di controllo in SJF preemptive
Passaggio di controllo in SJF preemptive
Signup and view all the flashcards
First Come First Served (FCFS)
First Come First Served (FCFS)
Signup and view all the flashcards
Scheduling a priorità
Scheduling a priorità
Signup and view all the flashcards
Priorità interna
Priorità interna
Signup and view all the flashcards
Priorità esterna
Priorità esterna
Signup and view all the flashcards
Starvation
Starvation
Signup and view all the flashcards
Aging
Aging
Signup and view all the flashcards
SJF come scheduling a priorità
SJF come scheduling a priorità
Signup and view all the flashcards
FCFS come scheduling a priorità
FCFS come scheduling a priorità
Signup and view all the flashcards
Qualità di un algoritmo di scheduling
Qualità di un algoritmo di scheduling
Signup and view all the flashcards
Cos'è MFQS?
Cos'è MFQS?
Signup and view all the flashcards
Cosa rende speciali i sistemi multi-core?
Cosa rende speciali i sistemi multi-core?
Signup and view all the flashcards
Come funziona la multielaborazione simmetrica (SMP) nei sistemi multi-core?
Come funziona la multielaborazione simmetrica (SMP) nei sistemi multi-core?
Signup and view all the flashcards
Perché il bilanciamento del carico è importante nei sistemi multi-core?
Perché il bilanciamento del carico è importante nei sistemi multi-core?
Signup and view all the flashcards
Quale problema potrebbe sorgere nei sistemi multi-core con una coda di processi condivisa?
Quale problema potrebbe sorgere nei sistemi multi-core con una coda di processi condivisa?
Signup and view all the flashcards
Regola empirica dei burst di CPU
Regola empirica dei burst di CPU
Signup and view all the flashcards
Classificazione dei processi in base al comportamento
Classificazione dei processi in base al comportamento
Signup and view all the flashcards
Scheduling a code multiple
Scheduling a code multiple
Signup and view all the flashcards
Politica di scheduling delle code
Politica di scheduling delle code
Signup and view all the flashcards
Scheduling a code multilivello
Scheduling a code multilivello
Signup and view all the flashcards
Retroazione nello scheduling a code multilivello
Retroazione nello scheduling a code multilivello
Signup and view all the flashcards
Retrocessione di un processo in MFQS
Retrocessione di un processo in MFQS
Signup and view all the flashcards
Preemption in MFQS
Preemption in MFQS
Signup and view all the flashcards
Scheduling a code multilivello con retroazione (MFQS)
Scheduling a code multilivello con retroazione (MFQS)
Signup and view all the flashcards
Spostamento di un processo tra le code in MFQS
Spostamento di un processo tra le code in MFQS
Signup and view all the flashcards
Study Notes
Scheduling della CPU
- Il multitasking e il time sharing cercano di massimizzare l'utilizzo della CPU.
- Il progettista del sistema operativo (SO) deve stabilire regole per decidere, quando un processo lascia la CPU, quale processo sarà il prossimo ad entrare in esecuzione.
- L'insieme di queste regole e la loro applicazione pratica prende il nome di Scheduling della CPU.
Fasi di elaborazione e di I/O
- In un processo si alternano fasi di utilizzo della CPU (burst di CPU) e fasi di attesa per il completamento di operazioni di input/output (I/O) (burst di I/O).
- Processi CPU-bound: utilizzano molto la CPU e poco i dispositivi di I/O (esempio: compilatore).
- Processi I/O-bound: utilizzano poco la CPU e molto i dispositivi di I/O (esempio: editor di testo, browser).
Lo scheduler della CPU
- Il SO si occupa di decidere a quale processo assegnare la CPU quando un processo abbandona la CPU.
- Questa operazione prende il nome di Scheduling della CPU, ed è gestita dal modulo chiamato scheduler del SO.
- Lo scheduler interviene per scegliere il processo successivo da assegnare alla CPU.
- Si possono considerare quattro situazioni: scheduling con e senza diritto di prelazione.
Scheduling con e senza prelazione
-
- Il processo in esecuzione passa volontariamente dallo stato di running allo stato di waiting per eseguire un'operazione di I/O.
-
- Il processo in esecuzione termina.
- In entrambi i casi, lo scheduler deve scegliere un nuovo processo dalla coda di ready per evitare che la CPU resti inattiva (idle).
- Un sistema operativo che gestisce questi casi è sufficiente per implementare il multitasking.
- Il SO deve evitare che un processo si impossessi permanentemente della CPU.
Scheduling con e senza prelazione: ulteriori dettagli
-
- Il processo in esecuzione viene obbligato a passare dallo stato di running allo stato di ready.
- Questo passaggio non avviene volontariamente.
- Nelle sistemi time-sharing, il SO mantiene il controllo permanente del sistema per evitare situazioni negative.
- Il SO deve gestire l'esecuzione di vari processi.
Criteri di Scheduling
- Massimizzare l'utilizzo della CPU nell'unità di tempo (anche se dipende dal carico).
- Massimizzare il throughput (numero di processi completati in media in una certa unità di tempo).
- Minimizzare il tempo di risposta (tempo che intercorre dall'avvio di un processo a quando inizia l'esecuzione, particolarmente importante nei sistemi interattivi).
- Minimizzare il turnaround time (tempo medio di completamento di un processo, dalla prima volta che entra in coda di ready fino alla terminazione).
- Minimizzare il waiting time (tempo di attesa, somma del tempo passato dal processo in coda di ready fino al momento in cui inizia l'esecuzione).
Algoritmi di Scheduling
- First Come, First Served (FCFS): Scheduling per ordine di arrivo.
- Shortest Job First (SJF): Scheduling per la brevità.
- Priority Scheduling: Scheduling per priorità.
- Round Robin (RR): Scheduling circolare.
- Multilevel Queue: Scheduling a code multiple.
- Multilevel Feedback Queue: Scheduling a code multiple con retroazione.
First Come First Served (FCFS)
- L'implementazione è facile: gestisce la coda di ready (ready queue) in modo FIFO (First-In, First-Out).
- Il PCB di un processo che entra nella ready queue viene collocato alla fine della coda.
- Quando la CPU si libera, viene assegnata al processo che si trova in testa alla coda.
- FCFS non è adatto ai sistemi time-sharing.
- Il tempo di attesa può essere elevato se ci sono processi di lunga durata.
Shortest Job First (SJF)
- Si esamina la durata del prossimo burst di CPU di ogni processo nella coda di ready e si assegna la CPU al processo con il burst più breve.
- Questo algoritmo può essere preemptive (SRTF - Shortest Remaining Time First).
- Se un processo con un burst minore arriva in coda, nel caso preemptive, interrompe il processo attuale e passa la CPU al nuovo processo.
Scheduling a priorità
- Ad ogni processo è associata una priorità (solitamente un numero intero).
- La CPU è assegnata al processo con la priorità più alta nella ready queue.
- SJF è un tipo di scheduling a priorità.
- FCFS è anche uno scheduling a priorità.
Scheduling a priorità: considerazioni aggiuntive
- Il calcolo della priorità può essere interno al sistema (basato sul comportamento del processo) o esterno (basato su criteri esterni al sistema operativo, come l'utente che ha lanciato il processo).
- Lo scheduling a priorità può essere preemptive o non preemptive.
- Possono verificarsi problemi di starvation (un processo non riesce mai ad ottenere la CPU a causa di processi con priorità più alta).
Scheduling Round Robin (RR)
- Ogni processo ha un quanto di tempo (es. 10-100 millisecondi) di utilizzo della CPU.
- Se un processo non rilascia volontariamente la CPU entro il quanto di tempo, viene interrotto e reinserito nella ready queue.
- La ready queue è gestita come una coda circolare.
Scheduling Round Robin: ulteriori dettagli
- Se ci sono n processi nella ready queue e il quanto di tempo è q, allora ogni processo riceve 1/n del tempo della CPU e nessun processo aspetta più di (n-1)q unità di tempo.
- L'algoritmo RR è adatto ai sistemi time-sharing.
- Le prestazioni di RR dipendono dal valore del quanto di tempo.
Scheduling a code multiple
- I processi sono divisi in classi (es. foreground, background, batch).
- Ogni classe ha la sua politica di scheduling (es. foreground: RR; background: FCFS).
- L'assegnazione alla classe può essere fissa o basata sulla priorità.
- Possibili problemi di starvation.
Scheduling a code multilivello con retroazione (MFQS)
- È il tipo di scheduling più generale e complesso.
- I processi possono essere spostati da una coda all'altra in base a parametri (lunghezza del burst di CPU, comportamenti, ecc.).
- È più flessibile del scheduling a code multiple.
Scheduling per sistemi multi-core
- Le architetture moderne hanno più core di elaborazione.
- I moderni SO usano la multi-elaborazione simmetrica (SMP), che distribuisce le risorse tra i core.
- Importante il bilanciamento del carico per un utilizzo efficiente di tutti i core.
- Il SO può gestire una coda per ogni core o una coda comune.
Esempi di scheduling in sistemi operativi
- Solaris usa scheduling a priorità con code multiple e retroazione.
- Windows usa scheduling a priorità con retroazione.
- Linux usa il Completely Fair Scheduler (CFS).
Ulteriori approfondimenti
- Presenta un'analisi degli algoritmi di scheduling.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Questo quiz esplora le funzioni e i metodi di scheduling dei sistemi operativi, concentrandosi su aspetti come scheduling preemptive e non-preemptive, e politiche specifiche come MFQS. Rispondi a domande su come i processi vengono gestiti e distribuiti nei moderni sistemi multi-core.