Systemy Operacyjne

ZARZĄDZANIE PROCESAMI

Proces to program w trakcie wykonywania. W nowoczesnych systemach z podziałem czasu proces jest jednostką pracy.

Proces to ciąg czynności wykonywanych za pośrednictwem ciągu rozkazów, których wynikiem jest wykonanie pewnych zadań systemowych lub programów użytkownika

Kilka procesów może być związanych z jednym programem.

W czasie wykonywania proces może tworzyć nowe procesy.

Ograniczenia systemów jednozadaniowych

Potrzeba stosowania systemów wielozadaniowych

Rodzaje procesów

Stan procesu

Diagram stanów procesu

Stany procesu w systemie LINUX

Blok kontrolny procesu

Kolejki planowania

Diagram kolejek w planowaniu procesów

Planiści

Planista długoterminowy

Planista długoterminowy (ang. long-term scheduler), inaczej planista zadań (ang. job scheduler), wybiera procesy z puli zadań w pamięci pomocniczej i ładuje je do pamięci operacyjnej w celu wykonania.

Planista krótkoterminowy

Planista krótkoterminowy (ang. short-term scheduler), czyli planista przydziału procesora (ang. CPU scheduler), wybiera jeden proces spośród procesów gotowych do wykonania i przydziela mu procesor.

Planista krótkoterminowy a planista długoterminowy

Planista krótkoterminowy a planista długoterminowy

Planista krótkoterminowy a planista długoterminowy

Planista krótkoterminowy a planista długoterminowy

Wymiana procesów

Rodzaje procesów z punktu widzenia planisty

Przełączanie kontekstu

Przełączanie kontekstu polega na przełączeniu procesora z aktualnie wykonywanego procesu do innego procesu. Operacja ta wymaga przechowania stanu aktualnie wykonywanego procesu i załadowania przechowywanego stanu nowego procesu.

Działania na procesach

Tworzenie nowego procesu w systemie UNIX

Tworzenie nowego procesu w systemie UNIX

Zakończenie procesu w systemie UNIX

Zakończenie procesu w systemie UNIX

Komunikacja pomiędzy procesami

Wątek (proces lekki) jest podstawową jednostką wykorzystania procesora, w skład której wchodzą: licznik rozkazów, zbiór rejestrów, obszar stosu.

Sekcja kodu, sekcja danych oraz pozostałe zasoby wątek współużytkuje z innymi wątkami. Wątki umożliwiają programowanie współbieżne a na platformach wieloprocesorowych pozwalają na implementację prawdziwego przetwarzania równoległego.