Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Procesy współbieżne Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.

Podobne prezentacje


Prezentacja na temat: "Procesy współbieżne Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki."— Zapis prezentacji:

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?


Pobierz ppt "Procesy współbieżne Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki."

Podobne prezentacje


Reklamy Google