2009-10-21 14 views
18

Jakie algorytmy planowania używa jądro Linuksa?Jakie algorytmy planowania używa jądro Linux?

Gdzie mogę uzyskać więcej informacji o jądrze Linuksa? (Pierwszy kurs OS ... poziom studenta)

+0

masz na myśli "algorytm szeregowania, którego używa jądro Linuksa"? –

+0

mm może, mój angielski nie jest dobry. Mam na myśli, FCFS, round robin lub to, co używa jądra Linuxa do obsługi procesów. – Nick

+0

Jest trochę stary, ale spróbuj przeczytać [tę stronę] (http://web.archive.org/web/20141016155917/http://oreilly.com/catalog/linuxkernel/chapter/ch10.html). (Zostało to wcześniej opublikowane jako osobna odpowiedź, która otrzymała 4 przegrane. Niestety, wydaje się, że polityka tej witryny wobec takich przydatnych odpowiedzi, nawet tych, które pomogły ludziom na _7 lat_, jest taka, że ​​powinny one zostać usunięte ...) – user200783

Odpowiedz

7

Jądro Linux ma kilka różnych algorytmów szeregowania dostępny zarówno dla procesu planowania i I/O harmonogramu. Pobierz go z www.kernel.org i nazywają

make menuconfig 

Dostaniesz pełną listę wszystkich dostępnych opcji z wbudowaną pomoc. Jednym facetem, który kiedyś wymyślił harmonogram O (1) jest Con Kolivas. Zdecydowanie trzeba spojrzeć na to, co zrobił. Byłem kiedyś wspaniałym przełomem.

+1

bądź miły, jeśli możesz wspomnieć kategorię w menuconfig, że można znaleźć harmonogramy. – recluze

0

Myślę, że jądro Linuksa ma kilka różnych programów planujących, które można wybrać podczas kompilacji. Aby dowiedzieć się więcej o jądrze Linuksa, możesz pobrać kod źródłowy jądra (lub przeglądać go online) i zajrzeć do katalogu Documentation. Na przykład pomocny może być podkatalog scheduler. Można oczywiście po prostu spojrzeć na sam kod.

+0

Program planujący IO ma różne algorytmy. Harmonogram procesu nie działa. –

2

Jak już wspomniano, dostępnych jest kilka algorytmów harmonogramowania, zgodnie z przeznaczeniem.

Jeśli chcesz dowiedzieć się więcej o planowaniu w systemie Linux, sprawdź numer this article.

0

Linux Kernel pozwala na uzyskanie trzech różnych algorytmów szeregowania głównie

  1. najkrótsza pracy pierwszy
  2. rundy Robin Scheduling
  3. Algorytm szeregowania z wyprzedzeniem oparty na priorytetach.

Trzecia metoda planowania, który różni się o niższej wersji wersjach systemu Linux, takich jak 2.4

+2

W jaki sposób można zrobić SJF bez znajomości czasu trwania zadań przed ręką? – pinkpanther

+0

@pinkpanther Obserwuje ich przeszłe zachowania i odpowiednio je przenosi w górę iw dół w kolejkach priorytetów. –

5

Jeśli chcesz tylko sprawdzić, co scheduler system linux używa i które są dostępne można uruchomić następujące polecenie:

cat /sys/block/sda/queue/scheduler 

Ten, który znajduje się pomiędzy [] jest tym, którego używa w danej chwili. Pozostałe są dostępne. Aby zmienić go:

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

Bądź ostrożny, aby ustawić go z powrotem do domyślnego choć, chyba że wiesz co robisz i chcesz.

Domyślny (w nowszych dystrybucjach Ubuntu przynajmniej) jest CFQ (Completely Fair Scheduling):

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

Wywiad z twórcą (Jens Axboe):

http://kerneltrap.org/node/7637

Powiązane problemy