Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałSulisław Kosiba Został zmieniony 11 lat temu
1
Procesy współbieżne Copyright, 2004 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl http://www.cs.put.poznan.pl/jnawrocki/tpi/ Teoretyczne podstawy informatyki Wykład 7
2
J.Nawrocki, Procesy współbieżne Ulepszenia Sieci Petri
3
J.Nawrocki, Procesy współbieżne Wprowadzenie Program 1 System oper. Program 2 Program 3 WieloprogramowośćWielozadaniowość Cray
4
J.Nawrocki, Procesy współbieżne Plan wykładu Podstawowe pojęcia Interferencja obliczeń Metoda ścisłej wymiany Instrukcja TSL Semafory binarne Problem producent-konsument Implementacja semaforów
5
J.Nawrocki, Procesy współbieżne Proces Podstawowe pojęcia Proces = Program w trakcie wykonania Program Wartości rejestrów Licznik rozkazów Dane...
6
J.Nawrocki, Procesy współbieżne Procesy na 1 procesorze Podstawowe pojęcia A A B B C C D D
7
J.Nawrocki, Procesy współbieżne Procesy na 1 procesorze Podstawowe pojęcia A A B B C C D D
8
J.Nawrocki, Procesy współbieżne Procesy na 1 procesorze Podstawowe pojęcia A A B B C C D D
9
J.Nawrocki, Procesy współbieżne Procesy na 1 procesorze Podstawowe pojęcia A A B B C C D D
10
J.Nawrocki, Procesy współbieżne Procesy na 1 procesorze Podstawowe pojęcia A A B B C C D D
11
J.Nawrocki, Procesy współbieżne Procesy na 1 procesorze Podstawowe pojęcia A A B B C C D D
12
J.Nawrocki, Procesy współbieżne Stany procesu Podstawowe pojęcia Wykonywany Gotowy Zablokowany
13
J.Nawrocki, Procesy współbieżne Plan wykładu Podstawowe pojęcia Interferencja obliczeń Metoda ścisłej wymiany Instrukcja TSL Semafory binarne Problem producent-konsument Implementacja semaforów
14
J.Nawrocki, Procesy współbieżne Interferencja obliczeń Z = Zarobek studenta Z:= Z + 100Z:= Z + 300 Z: 7
15
J.Nawrocki, Procesy współbieżne Z: 7 Interferencja obliczeń X:= Z; X:= X + 100; Z:= X Z:= Z + 100Z:= Z + 300 Z = Zarobek studenta
16
J.Nawrocki, Procesy współbieżne Z: 107 Interferencja obliczeń X:= Z; X:= X + 100; Z:= X Z:= Z + 100Z:= Z + 300 Z = Zarobek studenta
17
J.Nawrocki, Procesy współbieżne Z: 107 Interferencja obliczeń X:= Z; X:= X + 100; Z:= X Y:= Z; Y:= Y + 300; Z:= Y Z:= Z + 100Z:= Z + 300 Z = Zarobek studenta
18
J.Nawrocki, Procesy współbieżne Z: 407 Interferencja obliczeń X:= Z; X:= X + 100; Z:= X Y:= Z; Y:= Y + 300; Z:= Y Z:= Z + 100Z:= Z + 300 Z = Zarobek studenta
19
J.Nawrocki, Procesy współbieżne Z: 7 Interferencja obliczeń X:= Z; X:= X + 100 Z:= Z + 300 Z = Zarobek studenta Z:= Z + 100 Z:= X X: 107
20
J.Nawrocki, Procesy współbieżne Z: 7 Interferencja obliczeń X:= Z; X:= X + 100 Y:= Z; Y:= Y + 300; Z:= Z + 300 Z = Zarobek studenta Z:= Z + 100 Z:= Y Z:= X X: 107 Y: 307
21
J.Nawrocki, Procesy współbieżne Z: 307 Interferencja obliczeń X:= Z; X:= X + 100 Y:= Z; Y:= Y + 300; Z:= Y Z:= Z + 300 Z = Zarobek studenta Z:= Z + 100 Z:= X X: 107 Y: 307
22
J.Nawrocki, Procesy współbieżne Z: 107 Interferencja obliczeń X:= Z; X:= X + 100; Z:= X Y:= Z; Y:= Y + 300; Z:= Y Z:= Z + 300 Z = Zarobek studenta Z:= Z + 100 X: 107 Y: 307
23
J.Nawrocki, Procesy współbieżne Z: 107 Interferencja obliczeń X:= Z; X:= X + 100; Z:= X Y:= Z; Y:= Y + 300; Z:= Y Z:= Z + 300 Z = Zarobek studenta Z:= Z + 100 X: 107 Y: 307
24
J.Nawrocki, Procesy współbieżne Plan wykładu Podstawowe pojęcia Interferencja obliczeń Metoda ścisłej wymiany Instrukcja TSL Semafory binarne Problem producent-konsument Implementacja semaforów
25
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
26
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
27
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
28
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
29
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
30
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
31
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
32
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
33
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
34
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
35
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
36
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
37
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany Bum!
38
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany sekcja_krytyczna
39
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany while true do begin sekcja_krytyczna(); inne_czynności() end; while true do begin sekcja_krytyczna(); inne_czynności() end;
40
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany while true do begin while kolej <> 0 do; sekcja_krytyczna(); kolej:= 1; inne_czynności() end; while true do begin while kolej <> 1 do; sekcja_krytyczna(); kolej:= 0; inne_czynności() end; 0 1
41
J.Nawrocki, Procesy współbieżne Plan wykładu Podstawowe pojęcia Interferencja obliczeń Metoda ścisłej wymiany Instrukcja TSL Semafory binarne Problem producent-konsument Implementacja semaforów
42
J.Nawrocki, Procesy współbieżne Komunikacja międzyprocesowa Instrukcja TSL... call CNO1 sekcja_krytyczna call Otworz1 inne_czynności... call CNO1 sekcja_krytyczna call Otworz1 inne_czynności... CzekajNaOtwarcie
43
J.Nawrocki, Procesy współbieżne Otworz1: mov Zamek1, 0 ret CNO1: mov rej, Zamek1 mov Zamek1, 1 cmp rej, 0 jne CNO1 ret Komunikacja międzyprocesowa Instrukcja TSL Zamknięty Otwarty
44
J.Nawrocki, Procesy współbieżne CNO1: mov rej, Zamek1 mov Zamek1, 1 cmp rej, 0 jne CNO1 ret Komunikacja międzyprocesowa Instrukcja TSL CNO1: mov rej, Zamek1 mov Zamek1, 1 cmp rej, 0 jne CNO1 ret Zamek1 = 0
45
J.Nawrocki, Procesy współbieżne CNO1: mov rej, 1 xchg rej, Zamek1 cmp rej, 0 jne CNO1 ret Otworz1: mov Zamek1, 0 ret Komunikacja międzyprocesowa Instrukcja TSL
46
J.Nawrocki, Procesy współbieżne Plan wykładu Podstawowe pojęcia Interferencja obliczeń Metoda ścisłej wymiany Instrukcja TSL Semafory binarne Problem producent-konsument Implementacja semaforów
47
J.Nawrocki, Procesy współbieżne Semafory binarne
48
J.Nawrocki, Procesy współbieżne Semafory binarne
49
J.Nawrocki, Procesy współbieżne Sekcja krytyczna Semafory binarne
50
J.Nawrocki, Procesy współbieżne Semafory binarne Sekcja krytyczna
51
J.Nawrocki, Procesy współbieżne Semafory binarne Sekcja krytyczna
52
J.Nawrocki, Procesy współbieżne Semafory binarne Sekcja krytyczna down
53
J.Nawrocki, Procesy współbieżne Semafory binarne Sekcja krytyczna
54
J.Nawrocki, Procesy współbieżne Semafory binarne Sekcja krytyczna up
55
J.Nawrocki, Procesy współbieżne Semafory binarne Sekcja krytyczna
56
J.Nawrocki, Procesy współbieżne Plan wykładu Podstawowe pojęcia Interferencja obliczeń Metoda ścisłej wymiany Instrukcja TSL Semafory binarne Problem producent-konsument Implementacja semaforów
57
J.Nawrocki, Procesy współbieżne Producent-Konsument Magazyn Producent Konsument Produkuj_elem Wstaw_elem
58
J.Nawrocki, Procesy współbieżne Producent-Konsument Magazyn Producent Konsument Produkuj_elem Wstaw_elem Pobierz_elem
59
J.Nawrocki, Procesy współbieżne Producent-Konsument Magazyn Producent Konsument Produkuj_elem Wstaw_elem Pobierz_elem Konsumuj_elem
60
J.Nawrocki, Procesy współbieżne Producent-Konsument Magazyn Producent Konsument Produkuj_elem Wstaw_elem Pobierz_elem Konsumuj_elem
61
J.Nawrocki, Procesy współbieżne While true do begin produkuj_elem; wstaw_elem; end; Producent-Konsument Semafory binarne i uogólnione Producent While true do begin pobierz_elem; konsumuj_elm end; Konsument
62
J.Nawrocki, Procesy współbieżne While true do begin produkuj_elem; down (mutex); wstaw_elem; up (mutex); end; Producent-Konsument Semafory binarne i uogólnione Producent While true do begin down (mutex); pobierz_elem; up (mutex); konsumuj_elm end; Konsument
63
J.Nawrocki, Procesy współbieżne While true do begin produkuj_elem; down (mutex); wstaw_elem; up (mutex); up (full) end; Producent-Konsument Semafory binarne i uogólnione Producent While true do begin down (full); down (mutex); pobierz_elem; up (mutex); konsumuj_elm end; Konsument
64
J.Nawrocki, Procesy współbieżne While true do begin produkuj_elem; down (empty); down (mutex); wstaw_elem; up (mutex); up (full) end; Producent-Konsument Semafory binarne i uogólnione Producent While true do begin down (full); down (mutex); pobierz_elem; up (mutex); up (empty); konsumuj_elm end; Konsument
65
J.Nawrocki, Procesy współbieżne Plan wykładu Podstawowe pojęcia Interferencja obliczeń Metoda ścisłej wymiany Instrukcja TSL Semafory binarne Problem producent-konsument Implementacja semaforów
66
J.Nawrocki, Procesy współbieżne Rejestry procesora AX 3 BX 0 CX 7 DX 1 SI 8 DI 2 10 13 18 2 0 1 4 0 2 6 3 16 IP SFZF. PSW
67
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu AX 3 BX 0 CX 7 DX 1 SI 8 DI 2 10 13 18 2 0 1 4 0 2 6 3 16 IP SFZF. PSW AX 3 BX 0 CX 7 DX 1 SI 8 DI 2 SFZF. PSW 16 IP Next...
68
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu AX 3 BX 0 CX 7 DX 1 SI 8 DI 2 10 13 18 2 0 1 4 0 2 6 3 16 IP SFZF. PSW Next...
69
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu Next...
70
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu Next...
71
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu Next... Curr
72
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu Next... Curr
73
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu Next... Curr
74
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu Next... Curr
75
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu Next... Curr procedure RunNext; begin SaveCurrent; Curr:= Curr^.Next; LoadCurrent; RunCurrent end;
76
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu Next down(s)... Curr
77
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu down(s)... Curr
78
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu down(s)... Curr
79
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu down(s)... Curr
80
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu down(s)... Curr
81
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu down(s)... Curr
82
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu down(s)... Curr
83
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu down(s)... Curr s 0 Val Proc
84
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu down(s)... s 0 Val Proc Curr
85
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu down(s)... Curr s 0 Val Proc
86
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu down(s)... Curr s 0 Val Proc procedure down(s: sem); begin s.Val:= s.Val – 1; if s.Val < 0 then begin Pred= Curr; while Pred^.Next <> Curr do Pred:= Pred^.Next; Pred^.Next:= Curr^.Next; Curr^.Next:= s.Proc; s.Proc:= Curr end end; DI; Save; ; Load; EI; Run
87
J.Nawrocki, Procesy współbieżne Rekord aktywacji procesu procedure down(s: sem); begin s.Val:= s.Val – 1; if s.Val < 0 then begin Pred= Curr; while Pred^.Next <> Curr do Pred:= Pred^.Next; Pred^.Next:= Curr^.Next; Curr^.Next:= s.Proc; s.Proc:= Curr end end; DI; Save; ; Load; EI; Run Zadanie domowe
88
J.Nawrocki, Procesy współbieżne Podsumowanie Interferencja obliczeń Ścisła zmiana Instrukcja TSL Semafory binarne i uogólnione Problem producent-konsument Programowanie współbieżne jest trudniejsze niż sekwencyjne Wreszcie!
89
J.Nawrocki, Procesy współbieżne Literatura A. Tanenbaum, Operating Systems: Design and Implementation, Prentice- Hall, 1987.
90
J.Nawrocki, Procesy współbieżne Ocena wykładu 1. Wrażenie ogólne? (1 - 6) 2. Zbyt wolno czy zbyt szybko? 3. Czy dowiedziałeś się czegoś ważnego? 4. Co poprawić i jak?
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.