Struktury danych

Struktury danych


Zarządzenie wymaga odpowiednich struktur dla danych na potrzeby ewidencji stanu procesów i zasobów, ich powiązań, potrzeb zasobowych procesów itp.

Strukturę danych na potrzeby opisu stanu procesu określa się jako deskryptor procesu lub blok kontrolny procesu . Zbiór takich informacji dla wszystkich procesów określa się jako tablicę procesów. Współcześnie na potrzeby deskryptorów rzadko wykorzystywana jest rzeczywiście statyczna tablica. Podejście takie gwarantuje szybki dostęp do informacji, ale jest mało elastyczne, gdyż narzuca górny limit na liczbę procesów w systemie, a w przypadku mniejszej ich liczby oznacza marnotrawstwo pamięci.

Zasoby mogą być bardzo zróżnicowane, dlatego ogólny określenie deskryptor zasobu ma raczej charakter pojęciowy, a nie definicyjny. W zależności od rodzaju zasobu struktura opisu może być bardzo różna. Często jest ona narzucona przez rozwiązanie przyjęte na poziomie architektury procesora (np. w przypadku pamięci), a czasami wynika z decyzji projektowych.

Deskryptor procesu


Zakres niezbędnych informacji, umożliwiających odpowiednie zarządzanie procesem może być różny w zależności od celów projektowych systemu operacyjnego lub przyjętych rozwiązań implementacyjnych. Np. w przypadku systemów dla komputerów osobistych identyfikator właściciela lub informacje do rozliczeń mogą okazać się zbędne. Prawa dostępu mogą by różnie zaimplementowane, zależnie od przyjętej koncepcji ochrony zasobów.

Część tych informacji jest jednak niezbędna w każdym deskryptorze. Stan procesu potrzebny jest do podjęcia decyzji odnośnie dalszego losu procesu (np. usunięcie procesu i zwolnienie zasobów, przesunięcie procesu z pamięci fizycznej do pamięci pomocniczej lub odwrotnie itp.). Licznik rozkazów i stan rejestrów niezbędne są do odtworzenia kontekstu danego procesu. Informacje na potrzeby planowania przydziału procesora umożliwiają właściwe szeregowanie procesów i podejmowanie decyzji przez planistów (ang. scheduler), chociaż część tych informacji może znajdować się poza właściwym deskryptorem. Informacje o zarządzaniu pamięcią umożliwiają ochronę obszarów pamięci, w szczególności powstrzymanie procesu przed ingerencją w obszary poza jego przestrzenią adresową. Informacje o stanie wejścia-wyjścia , obejmujące dane o przydzielonych urządzeniach, wykaz otwartych plików itp., umożliwiają odpowiednie zarządzanie tymi zasobami i dostępem do nich przez system operacyjny, ich odzyskiwanie po zakończeniu procesu itp.