linux-l: Multitasking-Konzepte

Stefan Janke sjanke at gmx.net
Sa Aug 2 19:08:40 CEST 1997


loewis at informatik.hu-berlin.de writes:

> Unter "normalem" Linux (etwa 2.0.x) kann man mit setscheduler(2)
> "Realzeitprozesse" erzeugen. Wenn man als Parameter SCHED_FIFO
> angibt und danach while(1); ausfuehrt, steht das System - keine
> Zeitscheiben mehr. Sowas darf natuerlich nur Ruth. SCHED_RR ist
> etwas freundlicher, SCHED_OTHER der Normalfall.
> Details siehe kernel/sched.c. setscheduler ist uebrigens ein Posix-
> konformer Systemruf.

Du meinst sicher sched_setscheduler. Damit der
while(1)-SCHED_FIFO-Prozess auch wirklich das System lahmlegt, sollte
man ihm auch gleich noch die hoechste Prioritaet (also 99) geben,
sonst haben andere Prozesse aus den Klasse SCHED_FIFO oder SCHED_RR
Vorrang.

Fuer SCHED_FIFO gilt:
 "process runs until either it is  blocked by an I/O request, it is
 preempted by a higher priority process, or it calls sched_yield."
SCHED_RR ist insofern freundlicher, weil ein Prozess an das Ende der
Warteschlange fuer die entsprechende Prioritaet gesetzt wird, wenn das
Zeitquantum abgelaufen ist.

ciao stefan

-- 
Well begun is half done.
		-- Aristotle




Mehr Informationen über die Mailingliste linux-l