Procesy współbieżne Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki Wykład 11
J.Nawrocki, Procesy współbieżne Wprowadzenie Program 1 System oper. Program 2 Program 3 WieloprogramowośćWielozadaniowość Cray
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 Proces Podstawowe pojęcia Proces = Program w trakcie wykonania Program Wartości rejestrów Licznik rozkazów Dane...
J.Nawrocki, Procesy współbieżne Procesy na 1 procesorze Podstawowe pojęcia A A B B C C D D
J.Nawrocki, Procesy współbieżne Procesy na 1 procesorze Podstawowe pojęcia A A B B C C D D
J.Nawrocki, Procesy współbieżne Procesy na 1 procesorze Podstawowe pojęcia A A B B C C D D
J.Nawrocki, Procesy współbieżne Procesy na 1 procesorze Podstawowe pojęcia A A B B C C D D
J.Nawrocki, Procesy współbieżne Procesy na 1 procesorze Podstawowe pojęcia A A B B C C D D
J.Nawrocki, Procesy współbieżne Procesy na 1 procesorze Podstawowe pojęcia A A B B C C D D
J.Nawrocki, Procesy współbieżne Stany procesu Podstawowe pojęcia Wykonywany Gotowy Zablokowany
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 Interferencja obliczeń Z = Zarobek studenta Z= Z + 100Z= Z Z: 7
J.Nawrocki, Procesy współbieżne Z: 7 Interferencja obliczeń X= Z; X= X + 100; Z= X; Z= Z + 100Z= Z Z = Zarobek studenta
J.Nawrocki, Procesy współbieżne Z: 107 Interferencja obliczeń X= Z; X= X + 100; Z= X; Z= Z + 100Z= Z Z = Zarobek studenta
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 Z = Zarobek studenta
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 Z = Zarobek studenta
J.Nawrocki, Procesy współbieżne Z: 7 Interferencja obliczeń X= Z; X= X Z= Z Z = Zarobek studenta Z= Z Z= X; X: 107
J.Nawrocki, Procesy współbieżne Z: 7 Interferencja obliczeń X= Z; X= X + 100; Y= Z; Y= Y + 300; Z= Z Z = Zarobek studenta Z= Z Z= Y; Z= X; X: 107 Y: 307
J.Nawrocki, Procesy współbieżne Z: 307 Interferencja obliczeń X= Z; X= X + 100; Y= Z; Y= Y + 300; Z= Y; Z= Z Z = Zarobek studenta Z= Z Z= X; X: 107 Y: 307
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 Z = Zarobek studenta Z= Z X: 107 Y: 307
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 Z = Zarobek studenta Z= Z X: 107 Y: 307
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 Metoda ścisłej wymiany
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany
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(); } while (true) { sekcja_krytyczna(); inne_czynności(); }
J.Nawrocki, Procesy współbieżne Metoda ścisłej wymiany while (true) { while (kolej != 0) ; sekcja_krytyczna(); kolej= 1; inne_czynności(); } while (true) { while (kolej != 1) ; sekcja_krytyczna(); kolej= 0; inne_czynności(); } 0 1
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... call CNO1 sekcja_krytyczna call Otworz1 inne_czynności... call CNO1 sekcja_krytyczna call Otworz1 inne_czynności... CzekajNaOtwarcie
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
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
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
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
J.Nawrocki, Procesy współbieżne Semafory binarne
J.Nawrocki, Procesy współbieżne Sekcja krytyczna Semafory binarne
J.Nawrocki, Procesy współbieżne Semafory binarne Sekcja krytyczna
J.Nawrocki, Procesy współbieżne Semafory binarne Sekcja krytyczna
J.Nawrocki, Procesy współbieżne Semafory binarne Sekcja krytyczna down
J.Nawrocki, Procesy współbieżne Semafory binarne Sekcja krytyczna
J.Nawrocki, Procesy współbieżne Semafory binarne Sekcja krytyczna up
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 Magazyn Producent Konsument Produkuj_elem Wstaw_elem
J.Nawrocki, Procesy współbieżne Producent-Konsument Magazyn Producent Konsument Produkuj_elem Wstaw_elem Pobierz_elem
J.Nawrocki, Procesy współbieżne Producent-Konsument Magazyn Producent Konsument Produkuj_elem Wstaw_elem Pobierz_elem Konsumuj_elem
J.Nawrocki, Procesy współbieżne Producent-Konsument Magazyn Producent Konsument Produkuj_elem Wstaw_elem Pobierz_elem Konsumuj_elem
J.Nawrocki, Procesy współbieżne while (true) { produkuj_elem; wstaw_elem; } Producent-Konsument Semafory binarne i uogólnione Producent while (true) { pobierz_elem; konsumuj_elm; } Konsument
J.Nawrocki, Procesy współbieżne while (true) { produkuj_elem; down (mutex); wstaw_elem; up (mutex); } Producent-Konsument Semafory binarne i uogólnione Producent while (true) { down (mutex); pobierz_elem; up (mutex); konsumuj_elm; } Konsument
J.Nawrocki, Procesy współbieżne while (true) { produkuj_elem; down (mutex); wstaw_elem; up (mutex); up (full); } Producent-Konsument Semafory binarne i uogólnione Producent while (true) { down (full); down (mutex); pobierz_elem; up (mutex); konsumuj_elm; } Konsument
J.Nawrocki, Procesy współbieżne while (true) { produkuj_elem; down (empty); down (mutex); wstaw_elem; up (mutex); up (full); } Producent-Konsument Semafory binarne i uogólnione Producent while (true) { down (full); down (mutex); pobierz_elem; up (mutex); up (empty); konsumuj_elm; } Konsument
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!
J.Nawrocki, Procesy współbieżne Literatura A. Tanenbaum, Operating Systems: Design and Implementation, Prentice- Hall, 1987.
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?