Scheduling della CPU e dei processi

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

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.

True (A)

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.

<p>Turnaround</p> Signup and view all the answers

Collega il tipo di scheduling con la sua descrizione:

<p>First Come, First Served = I processi vengono eseguiti nell'ordine in cui entrano nella coda di ready. Shortest Job First = I processi più brevi vengono eseguiti per primi. Priority scheduling = I processi con la priorità più alta vengono eseguiti per primi. Round Robin = A ciascun processo viene concesso un intervallo fisso di tempo, quindi il processo successivo in coda viene eseguito. Multilevel Queue = I processi vengono raggruppati in code a diversi livelli, ciascuna con la sua politica di scheduling.</p> Signup and view all the answers

Il Waiting time è il tempo che un processo spende in coda di Ready.

<p>True (A)</p> Signup and view all the answers

Qual è la relazione tra Waiting time e Turnaround time?

<p>Il Turnaround time è uguale al Waiting time più il tempo di esecuzione del processo.</p> Signup and view all the answers

Quale algoritmo di scheduling prevede di assegnare a ciascun processo un intervallo fisso di tempo per l'esecuzione?

<p>Round Robin (C)</p> Signup and view all the answers

Il processo che sta usando la CPU può volontariamente passare dallo stato di running allo stato di ready.

<p>False (B)</p> Signup and view all the answers

Quale dei seguenti è un motivo per cui il sistema operativo interviene per spostare un processo dalla coda di wait alla coda di ready?

<p>Il processo è stato avviato per la prima volta (B), Il processo ha completato un'operazione di I/O (C)</p> Signup and view all the answers

Lo scheduling preemptive è più sicuro per gli utenti, ma la sua implementazione richiede un sistema operativo e un'architettura hardware ______.

<p>più sofisticate</p> Signup and view all the answers

Cosa fa il sistema operativo quando il timer hardware scade mentre un processo sta usando la CPU?

<p>Il sistema operativo interrompe l'esecuzione del processo e riassegna la CPU a un altro processo dalla coda di ready.</p> Signup and view all the answers

Abbina i tipi di scheduling con le loro caratteristiche:

<p>Scheduling senza (diritto di) prelazione = Il sistema operativo interviene solo quando un processo entra dalla coda di wait alla coda di ready o quando è più importante del processo in esecuzione Scheduling con (diritto di) prelazione = Il sistema operativo interviene anche quando il timer hardware scade, interruptando il processo in esecuzione e assegnando la CPU ad un altro processo dalla coda di ready</p> Signup and view all the answers

I sistemi operativi moderni usano solo lo scheduling senza prelazione.

<p>False (B)</p> Signup and view all the answers

Elenca almeno due ragioni per cui il sistema operativo può spostare un processo dalla coda di ready alla coda di wait.

<p>Un processo può essere spostato dalla coda di ready alla coda di wait se richiede un'operazione di I/O o se il sistema operativo ritiene che un altro processo sia più importante in quel momento.</p> Signup and view all the answers

Quale dei seguenti è un vantaggio dello scheduling preemptive?

<p>Tutte le precedenti (D)</p> Signup and view all the answers

Quale dei seguenti algoritmi consente l'interruzione di un processo in esecuzione se arriva un processo con burst time inferiore?

<p>Shortest-Remaining-Time-First (SRTF) (C)</p> Signup and view all the answers

SJF è sempre implementabile nella gestione dei processi.

<p>False (B)</p> Signup and view all the answers

Qual è il tempo medio di attesa nel caso di SJF preemptive con i processi forniti?

<p>3</p> Signup and view all the answers

In SJF, spostando un processo breve prima di uno di lunga durata, il tempo medio di _________ diminuisce.

<p>attesa</p> Signup and view all the answers

Abbina i processi con i loro burst time:

<p>P1 = 7 P2 = 4 P3 = 1 P4 = 4</p> Signup and view all the answers

Qual è il tempo di attesa medio prodotto dalla sequenza di esecuzione SJF non-preemptive?

<p>4 (B)</p> Signup and view all the answers

SJF può essere sia preemptive che non preemptive.

<p>True (A)</p> Signup and view all the answers

Cosa deve fare la CPU quando un processo con next CPU burst più breve arriva in coda?

<p>Interrompere il processo attualmente in esecuzione.</p> Signup and view all the answers

Qual è la politica di scheduling utilizzata per i processi nella coda foreground?

<p>RR (C)</p> Signup and view all the answers

Tutti i processi in una coda vengono gestiti con la stessa politica di scheduling.

<p>False (B)</p> Signup and view all the answers

Qual è il meccanismo di bilanciamento del carico attivato da Linux SMP?

<p>Ogni 200 millisecondi (A)</p> Signup and view all the answers

Qual è il principale vantaggio dello scheduling a code multilivello con retroazione?

<p>Adattabilità della gestione dei processi in base al comportamento degli stessi.</p> Signup and view all the answers

È vantaggioso spostare un processo da un core all'altro a causa della presenza di vari livelli di cache.

<p>False (B)</p> Signup and view all the answers

Una regola empirica dice che l'80% dei CPU burst dovrebbe essere minore di ___

<p>q</p> Signup and view all the answers

Cosa accade ai dati e alle istruzioni di un processo man mano che vengono indirizzati?

<p>Vengono copiati nei vari livelli di cache.</p> Signup and view all the answers

Abbina le seguenti code di scheduling con la loro politica di gestione:

<p>Foreground = RR Background = FCFS Batch = FCFS Coda di retrocessione = RR/FCFS</p> Signup and view all the answers

Quale approccio è utilizzato per gestire la priorità delle code?

<p>Preemption (C)</p> Signup and view all the answers

Le specifiche system call permettono di vincolare un processo ad un certo _____ .

<p>core</p> Signup and view all the answers

Abbina i livelli di cache con il loro costo in cicli di clock necessari per l'accesso:

<p>Cache L1 = 1-3 cicli Cache L2 = 3-10 cicli Cache L3 = 10-40 cicli Memoria primaria = 100-200 cicli</p> Signup and view all the answers

I processi non interattivi appartengono sempre alla coda foreground.

<p>False (B)</p> Signup and view all the answers

Cosa succede a un processo se non termina il suo CPU burst nel tempo assegnatogli nella coda?

<p>Viene retrocesso alla coda successiva.</p> Signup and view all the answers

Qual è un vantaggio di avere una coda separata per ciascun core?

<p>Evita problemi della coda unica (C)</p> Signup and view all the answers

Il bilanciamento del carico è completamente automatico in presenza di un'unica RQ.

<p>True (A)</p> Signup and view all the answers

Perché non è conveniente spostare un processo tra diversi core?

<p>Perché il processo non troverà più nei core di destinazione i dati nelle cache private.</p> Signup and view all the answers

Qual è la classe di priorità più alta nel sistema di scheduling di Solaris?

<p>Real time (B)</p> Signup and view all the answers

In Solaris, una volta che un processo termina, si sposta automaticamente nella classe interattiva.

<p>False (B)</p> Signup and view all the answers

Quante classi di priorità ci sono nel sistema di scheduling di Solaris?

<p>Quattro</p> Signup and view all the answers

In Solaris, il sistema usa una tabella con __________ righe per l'assegnazione del quanto di tempo.

<p>60</p> Signup and view all the answers

Abbina le seguenti classi di priorità con la loro descrizione:

<p>Real time = Priorità maggiore Sistema = Priorità intermedia Interattiva = Classi con criteri di scheduling simili a time sharing Time sharing = Priorità minore</p> Signup and view all the answers

Quale delle seguenti affermazioni è vera riguardo il quanto di tempo assegnato ai processi in Solaris?

<p>Il quanto di tempo è inversamente proporzionale alla priorità. (D)</p> Signup and view all the answers

I processi nelle classi time sharing e interattiva hanno gli stessi criteri di scheduling.

<p>True (A)</p> Signup and view all the answers

Cosa determina il quanto di tempo che viene assegnato a un processo in Solaris?

<p>La Priorità corrente del processo</p> Signup and view all the answers

Flashcards

Regola empirica CPU burst

L'80% dei CPU burst dovrebbe essere inferiore a q.

Scheduling a code multiple

Tecnica di programmazione in cui i processi sono divisi in classi, come foreground e background.

Tipi di code

Foreground (interattivi), background (non interagenti), batch (esecuzione differita).

Politica di scheduling

Ogni coda ha una politica di scheduling: RR per foreground, FCFS per background e batch.

Signup and view all the flashcards

Scheduling a priorità fissa

Servire prima i processi nella coda foreground, seguendo quelli in background e batch.

Signup and view all the flashcards

Time slice

Assegnamento di una percentuale di tempo CPU alle diverse code.

Signup and view all the flashcards

Scheduling multilivello con retroazione

Algoritmo di scheduling dove i processi possono essere spostati tra le code a seconda del loro comportamento.

Signup and view all the flashcards

Preemption

Meccanismo che consente di interrompere un processo in esecuzione per dare priorità ad un altro.

Signup and view all the flashcards

Utilizzo della CPU

Massimizzare l'uso della CPU in un'unità di tempo.

Signup and view all the flashcards

Throughput

Numero di processi completati in media in un'unità di tempo.

Signup and view all the flashcards

Tempo di risposta

Tempo che intercorre dall'avvio di un processo all'inizio della sua esecuzione.

Signup and view all the flashcards

Turnaround time

Tempo medio di completamento di un processo, dall'ingresso in coda al termine.

Signup and view all the flashcards

Waiting time

Tempo totale passato in attesa nella coda di ready.

Signup and view all the flashcards

First Come, First Served

Algoritmo di scheduling per ordine di arrivo dei processi.

Signup and view all the flashcards

Shortest Job First

Scheduling che seleziona il processo con il minor tempo di esecuzione.

Signup and view all the flashcards

Round Robin

Algoritmo di scheduling circolare che assegna una quantità fissa di tempo a ciascun processo.

Signup and view all the flashcards

SJF (Shortest Job First)

Algoritmo di scheduling che esegue prima i processi con burst time minore.

Signup and view all the flashcards

SJF preemptivo

Versione di SJF in cui un processo in esecuzione può essere interrotto se un nuovo processo ha un burst time inferiore.

Signup and view all the flashcards

SJF non-preemptivo

Versione di SJF che non interrompe un processo in esecuzione, anche se arriva un nuovo processo con burst time inferiore.

Signup and view all the flashcards

Tempo medio di attesa

Tempo medio impiegato dai processi in coda prima di iniziare la loro esecuzione.

Signup and view all the flashcards

Difficoltà SJF

SJF non è implementabile perché il burst time futuro non è noto.

Signup and view all the flashcards

Burst time

Tempo totale richiesto da un processo per completare la sua esecuzione.

Signup and view all the flashcards

Stima del burst time

Tecnica per prevedere il prossimo burst time di un processo in base ai burst precedenti.

Signup and view all the flashcards

Bilanciamento del carico

Meccanismo per distribuire i processi tra core sovraccarichi e scarichi.

Signup and view all the flashcards

Coda comuna

Struttura unica per gestire i processi in attesa su diversi core.

Signup and view all the flashcards

Coda separata per core

Ogni core ha una sua coda di processi, migliorando l'efficienza.

Signup and view all the flashcards

Meccanismo di bilanciamento in Linux SMP

Attivo ogni 200 millisecondi per spostare processi tra code core.

Signup and view all the flashcards

Cache

Memoria veloce che conserva dati e istruzioni per accessi rapidi.

Signup and view all the flashcards

Problema di spostamento del processo

Rallentamento che si verifica quando un processo cambia core.

Signup and view all the flashcards

System call per vincolare un processo

Comandi che forzano un processo a restare su un core specifico.

Signup and view all the flashcards

Costo in cicli di clock

Misura del tempo necessario per accedere ai dati in cache.

Signup and view all the flashcards

Scheduling

Processo di assegnazione della CPU ai processi.

Signup and view all the flashcards

Classi di processo in Solaris

Quattro classi: real time, sistema, interattiva, time sharing.

Signup and view all the flashcards

Priorità maggiore

Real time ha la priorità maggiore nel scheduling.

Signup and view all the flashcards

Quanto di tempo

Tempo assegnato a un processo per usare la CPU.

Signup and view all the flashcards

Prelazione

Interruzione di un processo per assegnare la CPU a uno con priorità più alta.

Signup and view all the flashcards

Tabella di priorità

Struttura che memorizza priorità e quanti di tempo per processi.

Signup and view all the flashcards

Priorità inversamente proporzionale

Maggiore è la priorità, meno tempo viene assegnato.

Signup and view all the flashcards

80 millisecondi

Tempo assegnato ai processi con una priorità specifica (es.: priorità 30).

Signup and view all the flashcards

Stato di Running

Il processo attualmente in esecuzione sulla CPU.

Signup and view all the flashcards

Stato di Ready

Stato in cui un processo è pronto a essere eseguito.

Signup and view all the flashcards

Preemptive Scheduling

Tipo di scheduling dove il SO può interrompere un processo.

Signup and view all the flashcards

Non-preemptive Scheduling

Tipo di scheduling dove i processi non vengono interrotti.

Signup and view all the flashcards

Timer Hardware

Dispositivo che gestisce il passaggio della CPU tra i processi.

Signup and view all the flashcards

PCB (Process Control Block)

Struttura dati che contiene informazioni su un processo.

Signup and view all the flashcards

Coda di Ready

Struttura dati che contiene processi pronti all'esecuzione.

Signup and view all the flashcards

Coda di Wait

Struttura dati che contiene processi in attesa di eventi.

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

    1. 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).
    1. 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.
    1. 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.

Quiz Team

Related Documents

Scheduling della CPU PDF

More Like This

Use Quizgecko on...
Browser
Browser