Blok kontrolny procesu (ang. Process Control Block, PCB) zwany także blokiem kontrolnym zadania – struktura danych w jądrze systemu operacyjnego, stanowiąca reprezentację procesu i przechowująca wszystkie informacje niezbędne do jego zarządzania oraz wykonywania.
PCB zawiera m.in. stan procesu, kontekst procesora (np. licznik rozkazów i inne rejestry procesora), informacje o planowaniu, zarządzaniu pamięcią oraz operacjach wejścia/wyjścia. Stanowi repozytorium danych potrzebnych do rozpoczęcia lub wznowienia wykonania procesu i jest wykorzystywany przez system operacyjny podczas przełączania kontekstu.
Budowa Implementacje PCB różnią się w zależności od systemu operacyjnego, jednak zazwyczaj obejmują: identyfikator procesu (PID) Stan procesu: określa aktualny stan procesu (np. nowy, gotowy, wykonywany, oczekujący). Licznik rozkazów (ang. program counter): wskazuje adres następnej instrukcji do wykonania Rejestry procesora: obejmują m.in. rejestry ogólnego przeznaczenia, wskaźnik stosu oraz rejestry warunków; ich zawartość musi być zachowana, aby umożliwić poprawne wznowienie procesu po przerwaniu; dokładna liczba i typy rejestrów zależą od architektury procesora. Informacje o planowaniu przydziału procesora: zawierają m.in. priorytet procesu, wskaźniki do kolejek planowania, oraz inne parametry wykorzystywane przez algorytm szeregowania (ang. scheduler). Informacje o zarządzaniu pamięcią: obejmują np. zawartości rejestrów bazowych i granicznych, tablice stron lub segmentów (w zależności od systemu wirtualnej pamięci używanego przez system operacyjny). Informacje do rozliczeń (ang. accounting): zawierają dane dotyczące wykorzystania czasu procesora, czasu rzeczywistego, ograniczenia czasowe, numery kont, numery zadań lub procesów itp. Informacje o stanie wejścia-wyjścia (I/O): obejmują listę przydzielonych urządzeń oraz otwartych plików. Informacje o relacjach między procesami: np. identyfikator procesu nadrzędnego (ang. parent process) lub lista procesów potomnych (ang. child process). Poniżej zamieszczony jest przykładowy schemat budowy Bloku kontrolnego procesu (PCB): {| class="wikitable" style="text-align: center" |- | Wskaźnik | Stan procesu |- | colspan=2 | Numer procesu (PID) |- | colspan=2 | Licznik rozkazów |- | colspan=2 | Rejestry |- | colspan=2 | Ograniczenia pamięci |- | colspan=2 | Wykaz otwartych plików |- | colspan=2 | Informacje o planowaniu przydziału procesora
Rola w przełączaniu kontekstu Podczas przełączania kontekstu system operacyjny zapisuje stan aktualnie wykonywanego procesu w jego PCB, a następnie odtwarza stan kolejnego procesu na podstawie danych zapisanych w jego PCB. Operacja ta polega m.in. na skopiowaniu zawartości rejestrów procesora do PCB zatrzymanego procesu oraz przywróceniu wartości rejestrów z PCB procesu, który ma zostać wznowiony.
Lokalizacja Aby zapewnić bezpieczną izolację procesów, PCB znajduje się w przestrzeni pamięci jądra systemu operacyjnego (ang. kernel space) i nie jest bezpośrednio dostępny dla procesów działających w trybie użytkownika. Struktury kontrolne procesów są przechowywane i zarządzane przez jądro, które wykorzystuje je do sterowania wykonywaniem procesów oraz planowaniu przydziału procesora. Dostęp do PCB mają wyłącznie mechanizmy systemu operacyjnego, co zapobiega nieautoryzowanej modyfikacji stanu procesów przez programy użytkownika.
Zobacz też proces system operacyjny przełączanie kontekstu algorytm szeregowania tablica stron
Przypisy
Bibliografia
Kategoria:Budowa systemu operacyjnego