2009-10-21 5 views
18

Welche Planungsalgorithmen verwendet der Linux-Kernel?Welche Planungsalgorithmen verwendet der Linux-Kernel?

Wo kann ich mehr Informationen über Linux Kernel bekommen? (OS ersten Kurs ... Studenten-Ebene)

+0

Meinen Sie der "Scheduling-Algorithmus, den der Linux-Kernel verwendet"? –

+0

mm vielleicht, mein Englisch ist nicht gut. Ich meine, FCFS, Round Robin oder was nutzt der Linux-Kernel, um die Prozesse zu verarbeiten. – Nick

+0

Es ist ein wenig alt, aber versuchen Sie es [diese Seite] (http://web.archive.org/web/20141016155917/http://oreilly.com/catalog/linuxkernel/chapter/ch10.html). (Dies wurde zuvor als eine separate Antwort, die 4 upvotes erhielt. Unglücklicherweise scheint es die Politik der Website auf solche nützliche Antworten, sogar diejenigen, die Menschen für _7 Jahre_ geholfen haben, ist, dass sie gelöscht werden sollten ...) – user200783

Antwort

7

Der Linux-Kernel verschiedene Scheduling-Algorithmen zur Verfügung sowohl für die Prozessplanung und für I/O-Scheduling hat. Laden Sie es von www.kernel.org und rufen

make menuconfig 

Sie erhalten eine vollständige Liste aller verfügbaren Optionen mit einem integrierten Hilfe bekommen. Ein Typ, der einmal mit seinem O (1) Scheduler kam, ist Con Kolivas. Definitiv muss man sich ansehen, was er getan hat. Ich war einmal ein großer Durchbruch.

+1

Es wäre Sei nett, wenn du die Kategorie in menuconfig erwähnen kannst, dass die Scheduler gefunden werden können. – recluze

0

Ich denke, der Linux-Kernel hat tatsächlich ein paar verschiedene Scheduler, aus denen Sie zur Kompilierzeit auswählen können. Um mehr über den Linux-Kernel zu erfahren, können Sie den Quellcode des Kernels herunterladen (oder ihn online durchsuchen) und im Verzeichnis Dokumentation suchen. Zum Beispiel könnte das scheduler Unterverzeichnis hilfreich sein. Sie können natürlich auch nur den Code selbst betrachten.

+0

Der IO-Scheduler verfügt über verschiedene Algorithmen. Der Prozessplaner nicht. –

2

Wie bereits erwähnt, stehen je nach Verwendungszweck mehrere Scheduling-Algorithmen zur Verfügung.

Überprüfen Sie this article, wenn Sie mehr über das Planen in Linux erfahren möchten.

0

Linux Kernel erlaubt drei verschiedene Scheduling-Algorithmen vor allem

  1. kürzester Job ersten
  2. Runde Robin Scheduling
  3. Prioritätsbasierte vorbeugende Scheduling-Algorithmus.

Die dritten Planungsverfahren, die es mit niedrigerer Version von Linux-Versionen wie 2.4

+2

Wie kann es SJF tun, ohne die Dauer der Jobs vorher zu kennen? – pinkpanther

+0

@pinkpanther Es beobachtet ihre vergangenen Verhaltensweisen und verschiebt sie dementsprechend in den Prioritätswarteschlangen auf und ab. –

5

unterscheidet Wenn Sie nur wollen, zu überprüfen, was Scheduler Ihr Linux-System verwendet wird, und die zur Verfügung stehen Sie den folgenden Befehl ausführen können:

cat /sys/block/sda/queue/scheduler 

Die eine zwischen der [] ist die, die es im Moment verwendet. Die anderen sind verfügbar. es zu ändern:

sudo bash -c 'echo deadline > /sys/block/sda/queue/scheduler' 

Seien Sie vorsichtig, es zu setzen allerdings auf Standard zurück, es sei denn, Sie wissen, was Sie tun und wollen.

Standard (in neueren Ubuntu-Distributionen mindestens) ist CFQ (Completely Fair Scheduling):

http://en.wikipedia.org/wiki/CFQ

Interview mit dem Schöpfer (Jens Axboe):

http://kerneltrap.org/node/7637

Verwandte Themen