Vorresti sapere quali meccanismi di pianificazione sono impiegati in 15.04, time-sharing o in tempo reale, sono abbastanza sicuro che sia FIFO, Round Robin, SJF?
PS: nuovo su Linux
Vorresti sapere quali meccanismi di pianificazione sono impiegati in 15.04, time-sharing o in tempo reale, sono abbastanza sicuro che sia FIFO, Round Robin, SJF?
PS: nuovo su Linux
Risposte:
Pianificatore di processo
Uno scheduler di processi gestisce l'allocazione delle risorse della CPU per l'esecuzione dei processi e mira a massimizzare l'utilizzo complessivo della CPU massimizzando al contempo le prestazioni interattive.
Dal kernel 2.6.23 (che sarebbe come da Hardy 8.04 LTS) Completamente Fair Scheduler (CFS) basato su "Scadenza delle scale rotanti". Panoramica da kernel.org :
CFS sta per "Completely Fair Scheduler" ed è il nuovo pianificatore di processi "desktop" implementato da Ingo Molnar e unito in Linux 2.6.23. È il sostituto del precedente codice di interattività SCHED_OTHER del programmatore vanilla.
L'80% del design di CFS può essere riassunto in una sola frase: CFS fondamentalmente modella una "CPU multi-tasking ideale e precisa" su hardware reale.
La "CPU multi-tasking ideale" è una CPU (inesistente :-)) che ha una potenza fisica del 100% e che può eseguire ciascuna attività a uguale velocità precisa, in parallelo, ciascuna a 1 / nr_running velocità. Ad esempio: se sono in esecuzione 2 attività, viene eseguita ciascuna al 50% della potenza fisica, ovvero in parallelo.
Su hardware reale, possiamo eseguire una sola attività alla volta, quindi dobbiamo introdurre il concetto di "runtime virtuale". Il runtime virtuale di un'attività specifica quando il prossimo intervallo di tempo inizierà l'esecuzione sulla CPU multi-tasking ideale sopra descritta. In pratica, il runtime virtuale di un'attività è il suo runtime effettivo normalizzato al numero totale di attività in esecuzione.
Pianificatore I / O
La pianificazione di input / output è il metodo utilizzato dal sistema operativo per decidere in quale ordine le operazioni di I / O del blocco verranno inviate ai volumi di archiviazione.
Articolo di Phoronix sulla pianificazione : Linux 3.16: Scadenza I / O Scheduler generalmente conduce con un SSD.
È possibile modificare lo scheduler I / O aggiungendo l'opzione "elevator =" a "GRUB_CMDLINE_LINUX_DEFAULT =" in grub.
Probabilmente è più facile (supponendo sda e scadenza) farlo in questo modo però:
Per mostrare l'elenco degli scheduler disponibili:
cat /sys/block/sda/queue/scheduler
E per modificare uno scheduler (può essere fatto al volo):
echo deadline > /sys/block/sda/queue/scheduler
Da kernel / git / torvalds / linux.git
Puoi controllare cosa viene usato (supponendo sda come primairy):
cat /sys/block/sda/queue/scheduler