Zarządzanie procesami
Stany procesu:
Nowy - proces został utworzony
Aktywny - są wykonywane instrukcje
Czekający - proces czeka na zakończenie zdarzenia (np. operacja we/wy)
Gotowy- proces czeka na przydział procesora
Zakończony - proces zakończył działanie
Planowanie procesów
Procesy w systemie są ulokowane w kolejkach (process queue)
Procesy oczekujące w pamięci głównej gotowe do
działania są w kolejce procesów gotowych (ready queue)
• Procesy czekające na przydział konkretnego urządzenia
w kolejkach do urządzeń (device queue), każde
urządzenie ma własną kolejkę
Planowanie procesów
• Planista, program szeregujący (scheduler) - proces
systemowy, który odpowiada za wybrany proces z kolejek
• Planista długoterminowy (long-term scheduler), wybiera
procesy z pamięci masowej i ładuje je do pamięci w celu
wykonania
• Planista krótkoterminowy (short-time scheduler), planista
przydziału procesora (CPU scheduler) - wybiera jeden proces
spośród procesów gotowych do wykonania i przydziela mu
procesor;
Planowanie procesu
Rodzaje procesów:
• Procesy ograniczone przez we/wy - spędzają większość
czasu na operacjach we/wy
• procesy ograniczone przez procesor - spędzają większość
czasu na obliczeniach zajmując procesor
Zadanie planisty długoterminowego: dobranie dobrej mieszanki
procesów (process mix) zawierającą procesy obydwu
rodzajów
Planista średnioterminowy (medium-term scheduler) -
odpowiada za usuwanie procesów z pamięci w celu
zmniejszenia stopnia wieloprogramowości, takie
postępowanie - wymiana (swapping)
Planowanie przydziału procesora
Decyzje o przydziale procesora zapadają w sytuacjach:
Proces przeszedł od stanu aktywności, do stanu czekania
Proces przeszedł od stanu aktywności do stanu gotowości
Proces przeszedł od stanu czekania, do stanu gotowości
Proces kończy działanie
Planowanie przydziału procesora
1. Planowanie niewywłaszczeniowe (non-preemptive)
Proces, który dostał procesor, nie odda go zaś do swego
zakończenia lub przejścia w stan czekania
Nie wymaga wsparcia sprzętowego (np. zegara)
2. Planowanie wywłaszczeniowe (preemptive)
Kosztowne - wymaga mechanizmów koordynacji
Kryteria planowania
Wykorzystanie procesora - procesor powinien być zajęty pracą
Przepustowość (throughput) - liczba procesów kończonych w
jednostce czasu
Czas cyklu przetwarzania (turnaround time) - czas upływający
między nadejściem procesu do systemu i zakończeniem
przetwarzania procesu
Czas oczekiwania - suma okresów oczekiwania przez proces w
kolejce procesów gotowych do wykonania
Czas odpowiedzi (response time) - czas upływający między
wysłaniem Żądania i pierwszą odpowiedzią
algorytmy planowania
Strategia FCFS (First Come- First Served)
Proces, który pierwszy żąda procesor, pierwszy go otrzymuje
Wada: średni czas oczekiwania bywa długi
Algorytmy planowania
Najpierw najkrótsze zadanie SJF (Shortest Job First)
Wolny procesor zostaje przydzielony procesowi mającemu
najkrótszą wstępną fazę
Algorytmy planowania
Planowanie priorytetowe.
Każdemu procesowi przypisuje się priorytet.
Procesor przydziela się temu procesowi, którego priorytet jest
najwyższy w razie różnych priorytetów wg FCFS
Proces Czas trwania fazy Priorytet
Algorytmy planowania
Planowanie rotacyjne RR (Round Robin).
Podobny do FCFS, dodano wywłaszczanie:
• Ustala się małą jednostkę czasu - kwant czasu (time quantum),
10-100 ms
• Kolejka procesów gotowych do wykonania - kolejka cykliczna
• Każdy proces dostaje procesor na odcinek czasu, nie dłuższy
od kwantu czasu, kiedy jest generowane przerwanie od zegara
proces jest usuwany na koniec kolejki procesów gotowych
• Planista pobiera procesy w kolejności przyjścia FCFS