Wstp do informatyki Wykad 13 Procesy wspbiene Jerzy
Wstęp do informatyki Wykład 13 Procesy współbieżne Jerzy. Nawrocki@put. poznan. pl http: //www. cs. put. poznan. pl/jnawrocki/wsb-wdi/ J. Nawrocki, Procesy współbieżne Copyright, 2005 © 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 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
Plan wykładu • Podstawowe pojęcia • Interferencja obliczeń • • Metoda ścisłej wymiany Instrukcja TSL Semafory binarne Problem producent-konsument J. Nawrocki, Procesy współbieżne
Interferencja obliczeń Z = Zarobek studenta Z= Z + 100 X= Z; X= X + 100; Z= X; Z= Z + 300 Z: 7 J. Nawrocki, Procesy współbieżne
Interferencja obliczeń Z = Zarobek studenta Z= Z + 100 X= Z; X= X + 100; Z= X; Z= Z + 300 Z: 107 J. Nawrocki, Procesy współbieżne
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: 407 J. Nawrocki, Procesy współbieżne
Interferencja obliczeń Z = Zarobek studenta Z= Z + 100 Z= Z + 300 X= Z; X= X + 100; Y= Z; Y= Y + 300; Z: 7 Z= X; X: 107 J. Nawrocki, Procesy współbieżne Z= Y; Y: 307
Plan wykładu • Podstawowe pojęcia • Interferencja obliczeń • Metoda ścisłej wymiany • Instrukcja TSL • Semafory binarne • Problem producent-konsument 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 while (true) { sekcja_krytyczna(); inne_czynności(); } } 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 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
Plan wykładu • • Podstawowe pojęcia Interferencja obliczeń Metoda ścisłej wymiany Instrukcja TSL • Semafory binarne • Problem producent-konsument 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
Plan wykładu • • • Podstawowe pojęcia Interferencja obliczeń Metoda ścisłej wymiany Instrukcja TSL Semafory binarne • Problem producent-konsument J. Nawrocki, Procesy współbieżne
Producent-Konsument Producent Produkuj_elem Wstaw_elem Magazyn 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; }
Podsumowanie Wreszcie! • • Interferencja obliczeń Ścisła zmiana Instrukcja TSL Semafory binarne i uogólnione • Problem producentkonsument • Programowanie współbieżne jest trudniejsze J. Nawrocki, Procesy współbieżne
- Slides: 30