Część 1
Prawie Wszystko, co chcielibyście wiedzieć o
systemach operacyjnych, ale baliście się zapytać
Maciej J. Mrowiński
mrow@if.pw.edu.pl
Wydział Fizyki Politechnika Warszawska
5 października 2018
Pierwszy przykład poglądowy
1 p u b l i c cla ss E x a m p l e 0 0 1 {
2 p r i v a t e s t a t i c b o o l e a n s h o u l d R u n = true;
3
4 p u b l i c s t a t i c void main ( S t r i n g [] args ) {
5 T h r e a d t = new T h r e a d (new R u n n a b l e () {
6 @ O v e r r i d e
7 p u b l i c void run () {
8 S y s t e m . out . p r i n t l n (" S t a r t e d . ") ;
9 wh ile( s h o u l d R u n ) ;
10 S y s t e m . out . p r i n t l n (" Stopped , lol . ") ;
11 }
12 }) ;
13 t . s tar t () ;
14
15 S c a n n e r s c a n n e r = new S c a n n e r ( S y s t e m . in ) ;
16 if( s c a n n e r . h a s N e x t L i n e () ) {
17 s h o u l d R u n = f als e;
18 S y s t e m . out . p r i n t l n (" Stop ! ") ;
19 }
20 s c a n n e r . cl ose () ;
21 }
22 }
Zaliczenie
I Laboratorium - oceny z rozwiązywanych problemów, na koniec średnia, nieoddany problem wlicza się jako 0. Laboratorium musi być zaliczone.
I Wykład - praca domowa. Wykład musi być zaliczony.
Na koniec średnia z tych dwóch ocen.
Dzisiejszy Odcinek Sponsoruje...
Proces
Czym jest proces?
Proces
stack (stos)
heap (sterta) data text (kod)
Dygresja Niskopoziomowa
Stan Procesu
I new (nowy)
I running (aktywny)
I waiting (oczekujący)
I ready (gotowy)
I terminated (zakończony)
Stan Procesu
new
ready
terminated
running
waiting
Process Control Block (PCB) - Blok Kontrolny Procesu
wskaźnik
stan procesu wskaźnik instrukcji (IP)
numer procesu (PID)
rejestry ograniczenia pamięci
...
Process Control Block (PCB) - Blok Kontrolny Procesu
Process Control Block (PCB) - Blok Kontrolny Procesu
proces 0 system operacyjny proces 1
zapis PCB0 odczyt PCB1
zapis PCB1 odczyt PCB0
aktywnybezczynny (idle) bezczynny (idle)bezczynny (idle)
aktywny aktywny
Process Control Block (PCB) - Blok Kontrolny Procesu
head tail
PCB PCB PCB
kolejka procesów gotowych
head tail kolejka dysku 0
head tail
PCB kolejka dysku 1
Komunikacja Między Procesami (IPC - Interprocess Communication)
komunikaty
proces 0 SP
proces 1 SP
jądro SP
współdzielona pamięć
proces 0
proces 1
jądro
wspólna pamięć
Wątki
Czym są wątki (procesy lekkie)?
Wątki
Czym są wątki (procesy lekkie)?
Podstawowe jednostki wykorzystania procesora.
Wątki
proces jednowątkowy
kod dane pliki
rejestry stos
wątek
proces wielowątkowy
kod dane pliki
rejestry stos
rejestry stos
rejestry stos
wątek wątek wątek
Korzyści Programowania Wielowątkowego
Korzyści Programowania Wielowątkowego
I zdolność do reagowania
I dzielenie zasobów
I ekonomika - alokacja zasobów
I skalowalność
Planowanie Przydziału Procesora
Planowanie Przydziału Procesora
Cykle Faz Procesora i I/O
faza procesora faza I/O faza procesora faza I/O faza procesora faza I/O
czas
Procesy:
I CPU-bound(ograniczone przez procesor) - kilka długich faz procesora
I I/O-bound(ograniczone przez I/O) - wiele krótkich faz procesora
Planowanie Przydziału Procesora
Decyzje o przydziale procesora podejmuje dyspozytor (scheduler) w przypadku gdy:
1. proces przeszedł ze stanu running do waiting 2. proces przeszedł ze stanu running do ready 3. proces przeszedł ze stanu waiting do ready 4. proces kończy działanie
Planowanie Przydziału Procesora
Decyzje o przydziale procesora podejmuje dyspozytor (scheduler) w przypadku gdy:
1. proces przeszedł ze stanu running do waiting 2. proces przeszedł ze stanu running do ready 3. proces przeszedł ze stanu waiting do ready 4. proces kończy działanie
Jeżeli tylko 1 i 4, to planowanie niewywłaszczające (non-preemptive), w przeciwnym razie wywłaszczające (preemptive).
Kryteria Planowania
1. wykorzystanie procesora
2. przepustowość - liczba procesów kończonych w jednostce czasu
3. czas cyklu przetwarzania - czas między nadejściem procesu do systemu a zakończeniem procesu
4. czas oczekiwania - czas spędzony w kolejce procesów gotowych
5. czas odpowiedzi - czas między wysłaniem żądania a pojawieniem się pierwszej odpowiedzi
First-Come, First-Served (FCFS)
Proces Faza CPU
P1 24
P2 3
P3 3
P1 P2 P3
0 24 27 30
Średni czas oczekiwania: 17
P1 P2 P3
30
0 3 6
Średni czas oczekiwania: 3
First-Come, First-Served (FCFS)
Proces Faza CPU
P1 24
P2 3
P3 3
P1 P2 P3
0 24 27 30
Średni czas oczekiwania: 17
P1 P2 P3
30
0 3 6
Średni czas oczekiwania: 3
First-Come, First-Served (FCFS)
Proces Faza CPU
P1 24
P2 3
P3 3
P1 P2 P3
0 24 27 30
Średni czas oczekiwania: 17
P1 P2 P3
30
0 3 6
Średni czas oczekiwania: 3
Shortest-Job-First (SJF) bez wywłaszczenia
Proces Faza CPU
P1 6
P2 8
P3 7
P4 3
P4
0 3
P1
9 16
P3 P2
24 Średni czas oczekiwania: 7 (dla FCFS 10.25)
Shortest-Job-First z wywłaszczeniem
Proces Nadejście Proc. Faza CPU
P1 0 8
P2 1 4
P3 2 9
P4 3 5
P1 0 1
P2 5
P4 10
P1
17 26
P3
Średni czas oczekiwania: 6.5 (bez wyw. 7.75)
Planowanie Priorytetowe (Priority Scheduling)
Proces Priorytet Faza CPU
P1 3 10
P2 1 1
P3 4 2
P4 5 1
P5 2 5
P2 0 1
P5 6
P1
16 P3
18 19 P4
Średni czas oczekiwania: 8.2
Problem: głodzenie (starvation); rozwiązanie: postarzanie (aging).
Planowanie Priorytetowe (Priority Scheduling)
Proces Priorytet Faza CPU
P1 3 10
P2 1 1
P3 4 2
P4 5 1
P5 2 5
P2 0 1
P5 6
P1
16 P3
18 19 P4
Średni czas oczekiwania: 8.2
Problem: głodzenie (starvation); rozwiązanie: postarzanie (aging).
Round-Robin (Planowanie Rotacyjne)
Proces Faza CPU
P1 24
P2 3
P3 3
Kwant czasu: 4
0 P1
4 P2
7 P3
10
P1 P1 P1 P1 P1
14 18 22 26 30
Średni czas oczekiwania: 5.66
Problem: dobór kwantu czasu.
Round-Robin (Planowanie Rotacyjne)
Proces Faza CPU
P1 24
P2 3
P3 3
Kwant czasu: 4
0 P1
4 P2
7 P3
10
P1 P1 P1 P1 P1
14 18 22 26 30
Średni czas oczekiwania: 5.66 Problem: dobór kwantu czasu.
Planowanie z Wykorzystaniem Kolejek Wielopoziomowych
procesy systemowe procesy kadry procesy studentów procesy doktorantów
priorytet
Kolejki Ze Sprzężeniem Zwrotnym
kwant 8 kwant 16 FCFS