SO-1st-2.3-w4.tresc-1.0-Slajd8
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Przeliczanie priorytetu
- Każdy takt zegara (lub co któryś, np. co 4, zależnie od implementacji) zwiększa wartość cpu bieżącego (wykonywanego) procesu.
- Przy każdym przeliczaniu priorytetów procesów gotowych (co około 1 sekundę) wartość ta, niezależnie od tego, czy była zwiększana, czy nie, dzielona jest przez 2 (współczynnik zaniku).
- Przy każdym przeliczaniu priorytetów, po zmniejszeniu wartości parametru cpu następuje przeliczenie priorytetu użytkownika, zgodnie z podanym wzorem. Na priorytet ten składa się więc:
- baza — umożliwiająca podział na pasma priorytetów,
- cpu — miara wykorzystania procesora,
- nice — wartość określana przez użytkownika.
- Jeśli proces jest w trybie użytkownika (jego priorytet pri jest na poziomie użytkownika) następuje zmiana parametru pri . Konsekwencją tej zmiany może być jednak konieczność umieszczenia procesu w innej kolejce. Operacja przebiega zatem tak, że najpierw proces jest usuwany z kolejki, następuje podstawienie nowej wartości parametru pri , a następnie ponowne powiązanie deskryptora w kolejce na właściwej pozycji. Taki sposób przeliczania ogranicza skalowalność, gdyż czas potrzebny na tę operację jest proporcjonalny do liczby procesów. Zwiększająca się liczba procesów powoduje więc wydłużenie tego czasu.