Next: Przykład bezpośredniego wywołania schedule()
Up: Wywoływanie funkcji schedule()
Previous: Wywoływanie funkcji schedule()
  Spis rzeczy
Procedury jądra wywołują bezpośrednio funkcję schedule()
w przypadku gdy
- aktualnie wykonywany proces nie może dostać pewnego wymaganego zasobu.
- aktualnie wykonywany proces właśnie się zakończył (w funkcji do_exit)
Skoncentrujemy się teraz na ciekawszym przypadku, gdy oddający sterowanie dalej pozostaje w systemie.
Wykonywane są wtedy następujące instrukcje:
- Wstawienie aktualnego procesu do kolejki oczekiwanie
- Ustawienie stanu procesu na TASK_INTERRUPTIBLE lub TASK_UNINTERRUPTIBLE
- Wywołanie schedule()
- Sprawdzenie czy zasób jest już wolny. Jeżeli nie powraca do punktu 2
- Usunięcie proces z kolejki oczekiwania
Subsections
Ignacy Kowalczyk
2001-11-16