Wstp do informatyki Wykad 6 Procesy wspbiene Jerzy
Wstęp do informatyki Wykład 6 Procesy współbieżne Jerzy. Nawrocki@put. poznan. pl http: //www. cs. put. poznan. pl/jnawrocki/wdi/ J. Nawrocki, Procesy współbieżne Copyright, 2007 © Jerzy R. Nawrocki
Wprowadzenie Wieloprogramowość Program 1 Program 2 Program 3 System oper. J. Nawrocki, Procesy współbieżne Wielozadaniowość Cray
Plan wykładu • Podstawowe pojęcia • • • Interferencja obliczeń Metoda ścisłej wymiany Instrukcja TSL Semafory binarne Problem producent-konsument Sieci Petri’ego J. Nawrocki, Procesy współbieżne
Podstawowe pojęcia Proces = Program w trakcie wykonania • Program • Wartości rejestrów • Licznik rozkazów • Dane • . . . J. Nawrocki, Procesy współbieżne
Podstawowe pojęcia Procesy na 1 procesorze A B J. Nawrocki, Procesy współbieżne C D
Podstawowe pojęcia Stany procesu Wykonywany Zablokowany J. Nawrocki, Procesy współbieżne Gotowy
Interferencja obliczeń Z = Zarobek studenta Z= Z + 100 Z= Z + 300 X= Z; X= X + 100; Z= X; Y= Z; Y= Y + 300; Z= Y; Z: 107 J. Nawrocki, Procesy współbieżne
Metoda ścisłej wymiany Bum! J. Nawrocki, Procesy współbieżne
Metoda ścisłej wymiany sekcja_krytyczna J. Nawrocki, Procesy współbieżne
Metoda ścisłej wymiany 0 while (true) { while (kolej != 0) ; sekcja_krytyczna(); kolej= 1; inne_czynności(); } 1 while (true) { while (kolej != 1) ; sekcja_krytyczna(); kolej= 0; inne_czynności(); } 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 • Sieci Petri’ego J. Nawrocki, Procesy współbieżne
Komunikacja międzyprocesowa Instrukcja TSL Czekaj. Na. Otwarcie. . . call CNO 1 sekcja_krytyczna call Otworz 1 inne_czynności. . . J. Nawrocki, Procesy współbieżne . . . call CNO 1 sekcja_krytyczna call Otworz 1 inne_czynności. . .
Komunikacja międzyprocesowa Instrukcja TSL CNO 1: mov rej, Zamek 1 Zamknięty mov Zamek 1, 1 cmp rej, 0 jne CNO 1 Otwarty ret Otwarty Otworz 1: mov Zamek 1, 0 ret J. Nawrocki, Procesy współbieżne
Komunikacja międzyprocesowa Instrukcja TSL Zamek 1 = 0 CNO 1: mov rej, Zamek 1 mov Zamek 1, 1 cmp rej, 0 jne CNO 1 ret J. Nawrocki, Procesy współbieżne
Komunikacja międzyprocesowa Instrukcja TSL CNO 1: mov rej, 1 xchg rej, Zamek 1 cmp rej, 0 jne CNO 1 ret Otworz 1: mov Zamek 1, 0 ret J. Nawrocki, Procesy współbieżne
Semafory binarne down Sekcja krytyczna J. Nawrocki, Procesy współbieżne
Semafory binarne Sekcja krytyczna J. Nawrocki, Procesy współbieżne
Semafory binarne up Sekcja krytyczna J. Nawrocki, Procesy współbieżne
Semafory binarne Sekcja krytyczna J. Nawrocki, Procesy współbieżne
Producent-Konsument Producent Pobierz_elem Konsumuj_elem Produkuj_elem Wstaw_elem Magazyn J. Nawrocki, Procesy współbieżne
Producent-Konsument Semafory binarne i uogólnione Producent while (true) { produkuj_elem; Konsument while (true) { pobierz_elem; wstaw_elem; konsumuj_elm; } } J. Nawrocki, Procesy współbieżne
Producent-Konsument Semafory binarne i uogólnione Producent while (true) { produkuj_elem; down (empty); down (mutex); wstaw_elem; up (mutex); up (full); } J. Nawrocki, Procesy współbieżne Konsument while (true) { down (full); down (mutex); pobierz_elem; up (mutex); up (empty); konsumuj_elm; }
Carl Adam Petri Ur. 12 lipca 1926 w Lipsku Od 1988: Honorowy Prof. Uniwersytetu w Hamburgu Kommunikation mit Automaten. Petri, C. A. , Bonn: Institut für Instrumentelle Mathematik, Schriften des IIM Nr. 2, 1962. J. Nawrocki, Procesy współbieżne
Wprowadzenie Sieci Petri’ego: • Notacja graficzna • Dobra podstawa matematyczna Zastosowania: • Modelowanie systemów współbieżnych i rozproszonych • Protokoły komunikacyjne, sieci komputerowe, systemy produkcyjne, systemy transportu publicznego itp. J. Nawrocki, Procesy współbieżne
Terminologia Miejsce Łuk wej. Łuk wyj. Przejście Znacznik J. Nawrocki, Procesy współbieżne
Bardzo prosty przykład waiting strt_reading stop_reading J. Nawrocki, Procesy współbieżne Czytelnik w bibliotece: • czekanie, • czytanie.
Przejścia równoległe 2 J. Nawrocki, Procesy współbieżne
Przejścia konfliktowe J. Nawrocki, Procesy współbieżne
Inny przykład t 1 while (1) { while (. . t 4. . ) {. . . t 5; . . . } t 1; . . . t 2; t 5 t 4 t 2 . . . t 3; } t 3 J. Nawrocki, Procesy współbieżne
Podsumowanie • • Interferencja obliczeń Wreszcie! Ścisła zmiana Instrukcja TSL Semafory binarne i uogólnione • Problem producentkonsument • Programowanie współbieżne jest trudniejsze niż sekwencyjne J. Nawrocki, Procesy współbieżne • Sieci Petri’ego jako
- Slides: 30