To tylko jedna z 2 stron tej notatki. Zaloguj się aby zobaczyć ten dokument.
Zobacz
całą notatkę
Systemy operacyjne i sieci dr Piotr Zadora
Wykład 6
Zarządzanie procesami - exit
Procesy uruchamiane w systemie powinny zawierać na końcu wywołanie funkcji systemowej exit() z podaniem jej wartości zakończenia (0 - bezbłędnie, 0 - kod błędu) dostępnej dla procesu macierzystego za pośrednictwem parametru statloc
Segmenty pamięci
Procesy w systemach uniksopodobnych korzystają z czterech wyodrębnionych segmentów pamięci:
Segmentu kodu,
Segmentu danych
Segmentu sterty
Segmentu stosu,
Segment danych rozrasta się w kierunku adresów rosnących, segment stosu w kierunku adresów malejących.
Sterta jest obszarem pamięci używanym przez proces do dynamicznego przydzielania dodatkowego obszaru na dane podczas wykonywania programu
Zarządzanie procesami - brk
Stos rozrasta się w obszarze adresów nieużywanych, w sposób automatyczny, w miarę wywoływania funkcji programu znajdujących się na kolejnych stopniach zagnieżdżenia.
Rozrastanie się segmentu danych jest określone kolejnymi wywołaniami funkcji segmentowej brk() wyznaczającej adres nowej granicy segmentu danych (specyficzna dla Uniksowych).
W praktyce programistycznej stosuje się dynamiczne przydzielanie obszarów pamięci na duże kolekcje danych (od dołu): kod, dane zainicjowane tylko do czytania, dane zainicjowane do czytania i pisania, dane nieinicjowane, sterta, pusty obszar, stos
Model Procesu
Przykład wieloprogramowania czterech procesów z jednym, wspólnym oraz z czterema licznikami programów (diagram)
Tworzenie procesu
W przypadku uproszczonych systemów operacyjnych dla mikrokontrolerów (wbudowanych) możliwe jest przyjęcie założenia, że proces już istnieje. Inaczej jest w przypadku systemów ogólnego przeznaczenia.
Cztery czynniki doprowadzające do stworzenia procesu:
inicjalizacja systemu
Wywołanie funkcji systemowej
Żądanie użytkownika
Inicjalizacja zadania wsadowego
Procesy tworzone w momencie inicjalizacji systemu operacyjnego dzielą się na procesy pierwszoplanowe (foreground processes) oraz procesy działające w tle (background processes) nazywane również demonami
W systemach typu klient/serwer procesy tworzone mają własną przestrzeń adresową, różną od przestrzeni procesów macierzystych.
... zobacz całą notatkę
Komentarze użytkowników (0)