Gli scheduler a due livelli sono utili solo per gestire lo scambio?


10

La pianificazione a due livelli è utile quando un sistema esegue più processi di quelli che si adattano alla RAM: uno scheduler di livello inferiore commuta tra i processi residenti e uno scheduler di livello superiore scambia gruppi di processi dentro e fuori.

Non trovo altra menzione della pianificazione a due livelli nei sistemi operativi di Andrew Tanenbaum : Design and Implementation , 1st ed. L'esercizio 2.22 chiede perché si potrebbe usare la pianificazione a due livelli; Non so se sia presente come controllo di comprensione della lettura o ci siano altri motivi non menzionati in modo evidente nel testo.

La pianificazione a due livelli è utile per gestire altre contese di risorse, oltre alla memoria?


1
Potrebbe essere utile per le cache e l'IO del disco, ma questo non è "oltre alla memoria".
Raffaello

Come dice @Raphael, ma in altre parole, evita / riduce il thrashing.
Dave Clarke,

Risposte:


8

Esistono altre forme di pianificazione a due livelli oltre al tipo che descrivi. Ad esempio, un livello di pianificazione potrebbe essere per utente e l'altro potrebbe essere per processo, con l'obiettivo di dare a un utente con 20 processi la stessa quantità di tempo CPU di un utente con 1 processo. Con uno scheduler a livello singolo, ogni processo potrebbe richiedere 1/21 del tempo della CPU.

Un'altra forma di pianificazione a due livelli potrebbe essere quella per processo e per thread, con l'obiettivo di fornire a un processo con 20 thread lo stesso tempo di CPU di un processo con 1 thread.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.