Procesy użytkownika mają dostęp do pamięci o tym samym poziomie uprzywilejowania co ich własny.
Poziomów uprzywilejowania może być tyle ile aktualnie działających procesów.
Żaden proces nie może korzystać z pamięci innego procesu. Istnieje specjalny blok, tzw. Pamięci dzielonej (shared memory)
Procesy jądra mają dostęp do przestrzeni adresowej wszystkich procesów.
Proces
To program w trakcie wykonywania, któremu przydzielono przestrzeń adresową i który został wprowadzony do tablicy procesów.
Etapy tworzenia procesu:
• Tworzenie nowej przestrzeni adresowej (opcjonalne)
• Tworzenie i inicjowanie bloku znaczników stanu (control-błock)
• Inicjacja kontekstu procesu
• Umieszczanie procesu w kolejce szeregowania
Tablica procesów Zawiera:
• Identyfikator procesu
• Zbiór znaczników stanu
Znaczniki stanu opisują zachowanie procesu, jego odniesienia do pamięci i systemu plików w momencie przełączenia procesora do wykonywania innego procesu.
Znaczniki stanu Znaczniki stanu zawierają:
• Wskaźniki stosu
• Aktualny stan procesu (aktywny, gotowy, uśpiony, nieaktywny)
• Wskaźnik do struktury reprezentującej przestrzeń adresową
• Priorytet procesu
Hierarcha procesów (w UNIX, Linux)
Proces nadrzędny i jego procesy potomne.
(W Windowsie jest układ płaski, wszystkie procesy na jednej linii)
Synchronizacja procesów
W systemie operacyjnym z wieloprogramowaniem, uruchamiane procesy:
• Wykonują niezależne od siebie zadania i nie korzystają ze wspólnych zasobów w inny sposób niż ich odczytywanie
• Procesy są wzajemnie od siebie zależne lub rywalizują o wyłączny dostęp do tych samych zasobów sprzętowych lub programowych
Mechanizm synchronizacji