SO-1st-2.3-w4.tresc-1.0-Slajd8

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Przeliczanie priorytetu

Przeliczanie priorytetu

  1. Każdy takt zegara (lub co któryś, np. co 4, zależnie od implementacji) zwiększa wartość cpu bieżącego (wykonywanego) procesu.
  2. 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).
  3. 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.
  4. 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.


<< Poprzedni slajd | Spis treści | Następny slajd >>