6 Systemy Operacyjne 30 11 2010 Zarządzanie procesami2


SYSYTEMY OPERACYJNE
Zarządzanie procesami
30.11.2010
Tworzenie procesu na przykładzie SO UNIX
Proces macierzysty
Proces potomny
w = folk()
Pamięć operacyjna
Proces potomny
nowy program
(obraz nowego procesu)
Proces macierzysty
folk()
Przykład:
W = frok();
printf( Ala );
printf( Ola );
Przykład:
w = fork();
if(w == 0)
{ //proces potomny
exec('plik wykonywalny');
}
else
{ //proces macierzysty
//...
}
w=fork();
w = folk()
w = folk()
w = folk() w = folk()
w=fork();
w = folk() w = folk() w = folk() w = folk()
w=fork();
PID
2
PID
1
liczba powołanych procesów =2n
gdzie : n  liczba instrukcji fork();
proces 'init'  proces pierwotny
Stany procesów w SO UNIX
3
2 1
ZOMBI
4
operacje WE/WY
5 6
1  stany stanu gotowy do wykonania
2  proces wykonywany w trybie jądra
3  proces wykonywany w trybie użytkownika
4  proces uśpiony w pamięci
5  proces uśpiony poza pamięcią
6  proces gotowy do wykonania poza pamięcią
Algorytmy pracy programu szeregującego (Scheduler'a)
Scheduler  jest wywoływany przez przerwania :
" zewnętrzne,
" generowane przez zegar systemowy.
1. Kolejka
Procesy nowe
P P2 P1 PROCESOR
n
Procesy gotowe
do wykonania
" algorytm prosty co do realizacji (wydaje się sprawiedliwy),
" mało efektywny.
Przepustowość = liczba procesów obsługiwanych / sekundę
2. Priorytet
Procesy gotowe
do wykonania
P1
P2 priorytet max
AKTYWNY
Pn
3. Kolejki priorytetowe (np.: WINDOWS)
priorytety
31 P1 P6 P9
P4
P2 P7
1
P3 P5 P8
0 kolejki
Wywłaszczanie
4.Postarzanie priorytetów (np.: UNIX)
Kolejka procesów
gotowych do
wykonania
priorytet
priorytet początkowy
P1
czas oczekiwania
P2
priorytet max
AKTYWNY
Pn
polecenie 'nice'  wykonanie procesu z niższym priorytetem


Wyszukiwarka