Głównymi zadaniami systemu operacyjnego w zakresie zarządzania procesami są: planowanie przydziału procesora poszczególnym procesom, synchronizacja procesów oraz obsługa operacji komunikacji między równolegle wykonywanymi procesami.
Zarządzanie pamięcią operacyjną
Pamięć operacyjna jest dla procesu równie ważnym zasobem komputera jak procesor, ponieważ aby proces mógł być realizowany, musi być umieszczony w pamięci operacyjnej. Zarządzanie pamięcią jest związane przede wszystkim z: udostępnieniem istniejącej pamięci fizycznej wszystkim procesom występującym w danej chwili w systemie, załadowaniem kodu oraz danych do przydzielonych miejsc pamięci, modyfikacją rozkazów w załadowanych programach, w których występują adresy fizyczne a także ochroną obszarów pamięci poszczególnych procesów.
Istnieje szereg algorytmów udostępniania pamięci poszczególnym procesom. Różnią się one między innymi: liczbą ciągłych bloków pamięci przydzielonych jednemu procesowi (od jednego do wielu), możliwością przemieszczania granicy obszaru pamięci (granica ta może być niezmienna na cały czas trwania procesu, lub może być swobodnie przemieszczania podczas przydzielania procesowi dodatkowego obszaru pamięci). W wielu systemach operacyjnych proces otrzymuje określoną liczbę stron pamięci o ściśle określonym i niezmiennym rozmiarze, lecz możliwy jest także przydział segmentu o zmiennym rozmiarze.
We współczesnych systemach operacyjnych zarządzanie pamięcią operacyjną odbywa się poprzez zastosowanie mechanizmów tzw. pamięci wirtualnej. Zastosowanie pamięci wirtualnych pozwala użytkownikowi oraz programiście wykonywać operacje w taki sposób, jakby programy oraz dane przechowywane były w pojedynczych ciągłych blokach pamięci o rozmiarze często przewyższającym rozmiar pamięci fizycznej komputera. Podczas przenoszenia programów oraz danych między pamięcią operacyjną i pamięcią masową, podsystem pamięci wirtualnej wykonuje operacje translacji adresów wirtualnych, wyznaczonych na etapie kompilacji i konsolidacji programu, na adresy fizyczne określające numery komórek w pamięci operacyjnej. Wszystkie operacje przenoszenia danych oraz translacji adresów są wykonywane przez system operacyjny i są „przeźroczyste" dla użytkownika/programisty.
Ochrona pamięci związana jest z kontrolą adresów i ma za zadanie niedopuszczenie do zapisu a także odczytu komórek pamięci wchodzących do przestrzeni adresowej danego procesu przez inne procesy. Takie operacje występują najczęściej na skutek błędów w programach.
W celu właściwego zarządzania pamięcią operacyjną system operacyjny wykonuje następujące operacje: przechowuje informacje o aktualnie zajętych oraz wolnych obszarach pamięci, przydziela pamięć nowym procesom oraz zwalnia pamięć po procesach, które zakończyły działanie, wykonuje operacje związane z ochroną pamięci, przenosi procesy między pamięcią operacyjną
21