SYSTEMY OPERACYJNE
Zarządzanie procesami
23.11.2010
Proces – to program w trakcie jego realizacji wraz z przydzielonymi mu zasobami.
Zasoby:
•
procesor,
•
pamięć operacyjna,
•
urządzenia WE/WY.
Rodzaje procesów:
•
ciężkie,
•
lekkie (wątki – Threads).
Proces ciężki
kod programu
stos
stos użytkownika
stos jądra
dane
Plik wykonywalny (np. SO WINDOWS
pliki *.exe) – obraz procesu w pamięci
operacyjnej
pamięć operacyjna
P
n
⋮
P
2
P
1
•
procesy od siebie w pełni odseparowane
(SO UNIX),
•
wolne przełączanie procesów ciężkich.
Wątek (ang.: Thread)
Przestrzeń adresowa
procesora
współdzielona przez
wątki.
W
1
W
2
W
n
S
1
S
2
S
n
D
1
D
2
D
n
dane
•
współbieżna realizacja wątków,
•
wielozadaniowość na poziomie 1-go
procesu,
•
szybkie przełączanie wątków.
W
1
– wątek pierwszoplanowy
S
1
– stos pierwszoplanowy
D
1
– dane pierwszoplanowe
W
2
W
n
– wątki wtórne
Wielozadaniowy system operacyjny
Bibliotek Pthread (SUN)
Zalety wielozadaniowości:
•
wygoda użytkownika,
•
zwiększenie interaktywności użytkownika z komputerem.
Cykl życia procesu
Cykl życia procesu przy jednym rdzeniu
W
1
2
cd
W
W
1
AKTYWNY
WE/WY
K
O
L
EJ
K
A
pr
oc
es
y
go
to
w
e
do
w
yk
on
an
ia
przekroczony limit czasu
wywłaszczenie
exit() proces
kończy działanie
procesy nowopowstałe
scheduler
scheduler – program szeregujący.
Cykl życia procesu prze czterech rdzeniach
Powołanie do życia nowego procesu (np. w SO UNIX)
PID – Process Identifier
AKTYWNY 1
WE/WY
K
O
L
EJ
K
A
pr
oc
es
y
go
to
w
e
do
w
yk
on
an
ia
przekroczony limit czasu
wywłaszczenie
exit() proces
kończy działanie
procesy nowopowstałe
scheduler
AKTYWNY 2
AKTYWNY 4
AKTYWNY 3
Proces
macierzysty PID
1
fork()
Proces
potomny
(klon procesu
macierzystego)
PID
2
PID
2
PID
1
ko
pi
a
Proces macierzysty