Kolejki i priorytety Procesy oczekujące na zwolnienie procesora mogą mieć różną ważność. Przykładowo, może to być proces dokonujący pomiaru w toczącym się eksperymencie, edytor teksu, proces systemowy uruchomiony celem zrobienia okresowych porządków i zadanie symulacji numerycznej pewnego układu fizycznego wykonywane długi czas w tle. Pierwsze dwa procesy mają to do siebie, że większość czasu oczekują na zajście operacji wejścia wyjścia, a gdy już to nastąpi, powinny natychmiast reagować, z kolei dwa ostatnie wykorzystują głównie czas procesora, ale nie są na tyle pilne, by nie mogły ustępować w razie potrzeby innym. W zależności od pilności zadania i jego dotychczasowego przebiegu, system operacyjny nadaje procesowi priorytet. Generalnie, czym mniejszą liczbą jest wyrażony, tym lepiej z punktu widzenia procesu - ma większy dostęp do procesora. Dla każdego priorytetu tworzona jest osobna kolejka procesów gotowych do wykonania. Dopóki w kolejce o priorytecie wyrażonym mniejszą liczbą czekają procesy, procesy z kolejki większego priorytetu nie będą wykonywane. Najmniejsze priorytety są zarezerwowane dla użytku systemu operacyjnego, są one do tego stopnia uprzywilejowane, że procesy wykonujące się z tymi priorytetami nie są wywłaszczane. Stąd też są używane jedynie w wyjątkowych okolicznościach przez krótkie procedury systemowe. Użytkownik ma zwykle możliwość wyboru priorytetu dla uruchamianego procesu, jednakże jest w swym wyborze ograniczony "z dołu". System operacyjny rezerwuje sobie możliwość zmiany priorytetu w trakcie działania procesu, celem wyrównania szans różnych procesów.
... zobacz całą notatkę
Komentarze użytkowników (0)