wszystkie informacje potrzebne do śledzenia procesu podczas przełączania są przechowywane w pakiecie danych zwanym blokiem sterowania procesem. Blok sterowania procesem zazwyczaj zawiera:
- numer ID, który identyfikuje proces
- wskazuje na lokalizacje w programie i jego dane, w których ostatnio miało miejsce przetwarzanie
- zawartość rejestru
- Stany różnych flag i przełączników
- wskazuje na górną i dolną granicę pamięci wymaganej dla procesu
- Lista plików otwieranych przez proces
- priorytet procesu
- stan wszystkich flag i przełączników
- urządzenia we/wy potrzebne procesowi
każdy proces ma przypisany do niego Status. Wiele procesów nie zużywa czasu procesora, dopóki nie otrzyma jakiegoś rodzaju danych wejściowych. Na przykład proces może czekać na naciśnięcie klawisza przez użytkownika. Podczas gdy czeka na naciśnięcie klawisza, nie używa czasu procesora. Podczas oczekiwania jest „zawieszony”. Po naciśnięciu klawisza system operacyjny zmienia swój status. Gdy status procesu zmienia się, np. z oczekującego na aktywny lub z zawieszonego na uruchomiony, informacje w bloku sterowania procesem muszą być wykorzystane, jak dane w każdym innym programie, do bezpośredniego wykonania części systemu operacyjnego przełączającej zadania.
Reklama
ten proces wymiany odbywa się bez bezpośredniej ingerencji użytkownika, a każdy proces otrzymuje wystarczającą ilość cykli procesora, aby wykonać swoje zadanie w rozsądnym czasie. Problemy mogą się rozpocząć, jeśli użytkownik próbuje mieć zbyt wiele procesów działających w tym samym czasie. Sam system operacyjny wymaga pewnych cykli procesora, aby wykonać zapisywanie i zamianę wszystkich rejestrów, kolejek i stosów procesów aplikacji. Jeśli uruchomiona zostanie wystarczająca ilość procesów, a system operacyjny nie zostanie starannie zaprojektowany, system może zacząć używać zdecydowanej większości dostępnych cykli procesora do przełączania między procesami, a nie uruchamiania procesów. Kiedy to się dzieje, nazywa się to thrashingiem i zwykle wymaga pewnego rodzaju bezpośredniej interwencji użytkownika, aby zatrzymać procesy i przywrócić porządek w systemie.
Ta zawartość nie jest kompatybilna na tym urządzeniu.
Ta zawartość nie jest kompatybilna na tym urządzeniu.
jednym ze sposobów, w jaki projektanci systemów operacyjnych zmniejszają szansę na thrashing, jest zmniejszenie zapotrzebowania na nowe procesy do wykonywania różnych zadań. Niektóre systemy operacyjne pozwalają na” process-lite”, zwany wątkiem, który może poradzić sobie z całą pracochłonną procesorem w normalnym procesie, ale ogólnie nie zajmuje się różnymi typami I/O i nie tworzy struktur wymagających rozległego bloku kontroli procesu zwykłego procesu. Proces może uruchomić wiele wątków lub innych procesów, ale wątek nie może uruchomić procesu.
do tej pory wszystkie harmonogramy, o których rozmawialiśmy, dotyczyły jednego procesora. W systemie z dwoma lub więcej procesorami, system operacyjny musi podzielić obciążenie między Procesory, starając się zrównoważyć wymagania wymaganych procesów z dostępnymi cyklami na różnych procesorach. Asymetryczne systemy operacyjne wykorzystują jeden procesor do własnych potrzeb i dzielą procesy aplikacyjne pomiędzy Pozostałe Procesory. Symetryczne systemy operacyjne dzielą się między różne procesory, równoważąc popyt w stosunku do dostępności procesora, nawet gdy sam system operacyjny jest wszystkim, co działa.