Zarządzanie pamięcią operacyjną
Mechanizmy zarządzania pamięcią operacyjną różnią się znacznie w zależności od wersji systemu Jest to ściśle związane z ograniczeniami sprzętowymi. W wersjach systemu wcześniejszych niż 3BSD UNIX oraz prostych wersjach systemu, wykorzystywanych na sprzęcie klasy PC, technika wymiany obszarów pamięci pomiędzy pamięcią operacyjną a dyskową jest stosowana w ograniczonym zakresie. To znaczy, że jeśli w systemie znajduje się zbyt wiele procesów i brakuje wolnego obszaru pamięci operacyjnej, to niektóre z tych procesów są usuwane (często używa się określenia wymiatanie - ang. swapping) na dysk, aż zwolni się wystarczająco duży obszar pamięci operacyjnej. Alokacja pamięci odbywa się w tego typu systemach według algorytmu FF (ang. First Fit). Jeśli rozmiar pamięci operacyjnej przydzielonej do danego procesu wzrasta, to alokowany jest nowy jej fragment. Obraz pamięci procesu jest kopiowany i pamięć zwalniana, a odpowiednie tablice systemowe są uaktualniane. Jeśli w danej chwili nie ma odpowiednio dużego, spójnego obszaru pamięci, proces ulega zawieszeniu. Decyzję o tym, który proces ma być wprowadzony do pamięci operacyjnej lub z niej usunięty, podejmuje proces zawiadowcy (ang. scheduler), czyli proces 0 (w niektórych systemach znany również pod nazwą swapper process) Proces zawiadowcy jest budzony okresowo (zazwyczaj co kilka sekund) i sprawdza, które procesy powinny być usunięte z pamięci, a które do niej wprowadzone. W pierwszej kolejności są usuwane procesy najdłużej przebywające w pamięci lub procesy duże i podobnie wprowadzane są procesy, które były poza systemem najdłużej lub są małe. Aby uniknąć problemu migotania, nie pozwala się na usunięcie procesów, które nie przebywały w systemie przez określony czas. Taki schemat zarządzania pamięcią operacyjną wykorzystuje wiele wersji systemu UNIX: wszystkie systemy USG (UNIX Support Group) z wcześniejszymi wersjami System V włącznie. Natomiast wszystkie wersje Berkeley UNIX opierają się na technice stronicowania [8, 10, 14] .