Bài giảng Hệ điều hành: Chương 5 - Phan Xuân Huy
lượt xem 14
download
Bài giảng "Hệ điều hành - Chương 5: Đồng bộ hóa tiến trình" trình bày các nội dung: Xử lý đồng hành các vấn đề, bài toán đồng bộ hóa, các giải pháp đồng bộ hóa, các bài toán đồng bộ hóa kinh điển. Hi vọng đây sẽ là một tài liệu hữu ích dành cho các bạn sinh viên ngành Công nghệ thông tin dùng làm tài liệu học tập và nghiên cứu.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Hệ điều hành: Chương 5 - Phan Xuân Huy
- Chöông 5 Ñoàng boä hoaù tieán trình 11/10/2007 Trần Hạnh Nhi 1
- Noäi dung baøi giaûng Xöû lyù ñoàng haønh vaø caùc vaán ñeà: Vaán ñeà tranh ñoaït ñieàu khieån (Race Condition) Vaán ñeà phoái hôïp xöû lyù Baøi toaùn ñoàng boä hoùa Yeâu caàu ñoäc quyeàn truy xuaát (Mutual Exclusion) Yeâu caàu phoái hôïp xöû lyù (Synchronization) Caùc giaûi phaùp ñoàng boä hoaù Busy waiting Sleep & Wakeup Caùc baøi toaùn ñoàng boä hoaù kinh ñieån Producer – Consumer Readers – Writers Dinning Philosophers 11/10/2007 Trần Hạnh Nhi 2
- Nhieàu tieán trình “chung soáng hoaø bình” trong heä thoáng ? ÑÖØNG HY VOÏNG An toaøn khi caùc tieán trình hoaøn toaøn ñoäc laäp Laøm sao coù ñöôïc ?? Thöïc teá Caùc tieán trình chia seû taøi nguyeân chung ( file system, CPU...) Concurrent access => bugs. Ví duï : Deâ con qua caàu Xöû lyù ñoàng haønh = ...nhöùc ñaàu 11/10/2007 Trần Hạnh Nhi 3
- Caùc vaán ñeà Tranh chaáp Nhieàu tieán trình truy xuaát ñoàng thôøi moät taøi nguyeân mang baûn chaát khoâng chia seû ñöôïc Xaûy ra vaán ñeà tranh ñoaït ñieàu khieån (Race Condition) Keát quaû ? Khoù bieát , thöôøng laø ...sai Luoân luoân nguy hieåm ? ...Khoâng, nhöng ñuû ñeå caân nhaéc kyõ caøng Phoái hôïp Caùc tieán trình khoâng bieát töông quan xöû lyù cuûa nhau ñeå ñieàu chænh hoaït ñoäng nhòp nhaøng Caàn phoái hôïp xöû lyù (Rendez-vous) Keát quaû : khoù bieát, khoâng baûo ñaûm aên khôùp 11/10/2007 Trần Hạnh Nhi 4
- Noäi dung baøi giaûng Xöû lyù ñoàng haønh vaø caùc vaán ñeà: Vaán ñeà tranh ñoaït ñieàu khieån (Race Condition) Vaán ñeà phoái hôïp xöû lyù Baøi toaùn ñoàng boä hoùa Yeâu caàu ñoäc quyeàn truy xuaát (Mutual Exclusion) Yeâu caàu phoái hôïp xöû lyù (Synchronization) Caùc giaûi phaùp ñoàng boä hoaù Busy waiting Sleep & Wakeup Caùc baøi toaùn ñoàng boä hoaù kinh ñieån Producer – Consumer Readers – Writers Dinning Philosophers 11/10/2007 Trần Hạnh Nhi 5
- Tranh ñoaït ñieàu khieån (Race condition) - Ví duï Ñeám soá ngöôøi vaøo Altavista : duøng 2 threads caäp nhaät bieán ñeám hits=> P1 vaø P2 chia seû bieán hits hits = 0 P1 P2 hits = hits +1; hits = hits + 1; Keát quaû cuoái cuøng laø bao nhieâu ? 11/10/2007 Trần Hạnh Nhi 6
- Tranh ñoaït ñieàu khieån (Race condition) - Ví duï hits = 0 P1 P2 time (1) read hits (0) (2)read hits (0) (3) hits = 0 + 1 (4)hits = 0 + 1 hits = 1 11/10/2007 Trần Hạnh Nhi 7
- Tranh ñoaït ñieàu khieån (Race condition) - Ví duï hits = 0 P1 P2 time (1) read hits (0) (2) hits = 0 + 1 (3) read hits (1) hits = 2 (4) hits = 1 + 1 11/10/2007 Trần Hạnh Nhi 8
- Tranh ñoaït ñieàu khieån (Race condition) - Ví duï (tt) i=0; Thread a: Thread b: while(i < 10) while(i > -10) i = i +1; i = i - 1; print “A won!”; print “B won!”; Ai thaéng ? Coù baûo ñaûm raèng seõ coù ngöôøi thaéng ? Neáu moãi tieán trình xöû lyù treân 1 CPU thì sao ? 11/10/2007 Trần Hạnh Nhi 9
- Tranh ñoaït ñieàu khieån (Race condition)-Nhaän xeùt Keát quaû thöïc hieän tieán trình phuï thuoäc vaøo keát quaû ñieàu phoái Cuøng input, khoâng chaéc cuøng output Khoù debug loãi sai trong xöû lyù ñoàng haønh Xöû lyù Laøm lô Deã , nhöng coù phaûi laø giaûi phaùp Khoâng chia seû taøi nguyeân chung : duøng 2 bieán hits1,hits2; xaây caàu 2 lane... Neân duøng khi coù theå, nhöng khoâng bao giôø coù theå ñaûm baûo ñuû taøi nguyeân, vaø cuõng khoâng laø giaûi phaùp ñuùng cho moïi tröôøng hôïp Giaûi phaùp toång quaùt : coù hay khoâng ? Lyù do xaûy ra Race condition ? Bad interleavings : moät tieán trình “xen vaøo” quaù trình truy xuaát taøi nguyeân cuûa moät tieán trình khaùc Giaûi phaùp : baûo ñaûm tính atomicity cho pheùp tieán trình hoaøn taát troïn veïn quaù trình truy xuaát taøi nguyeân chung tröôùc khi coù tieán trình khaùc can thieäp 11/10/2007 Trần Hạnh Nhi 10
- Atomicity : loaïi boû Race Condition hits = 0 P1 P2 time read hits (0) hits = 0 + 1 read hits(1) hits = 1 + 1 hits = 2 11/10/2007 Trần Hạnh Nhi 11
- Mieàn gaêng (Critical Section) & Khaû naêng ñoäc quyeàn (Mutual Exclusion) Mieàn gaêng (CS) laø ñoaïn chöông trình coù khaû naêng gaây ra hieän töôïng race condition P1 P2 printf(“Welcome”); printf(“Welcome”); CS hits = hits + 1 hits = hits + 1 CS printf(“Bye”); printf(“Bye”); (Hoã trôï Atomicity : Caàn baûo ñaûm tính “ñoäc quyeàn truy xuaát” (Mutual Exclusion) cho mieàn gaêng (CS) 11/10/2007 Trần Hạnh Nhi 12
- Noäi dung baøi giaûng Xöû lyù ñoàng haønh vaø caùc vaán ñeà: Vaán ñeà tranh ñoaït ñieàu khieån (Race Condition) Vaán ñeà phoái hôïp xöû lyù Baøi toaùn ñoàng boä hoùa Yeâu caàu ñoäc quyeàn truy xuaát (Mutual Exclusion) Yeâu caàu phoái hôïp xöû lyù (Synchronization) Caùc giaûi phaùp ñoàng boä hoaù Busy waiting Sleep & Wakeup Caùc baøi toaùn ñoàng boä hoaù kinh ñieån Producer – Consumer Readers – Writers Dinning Philosophers 11/10/2007 Trần Hạnh Nhi 13
- Phoái hôïp hoaït ñoäng P2 P1 (2) Send(“yeâu”); (1) Send(“Anh”); P3 P4 (3) Send(“em”); (4) Send(“Khoâng”); 11/10/2007 Trần Hạnh Nhi 14
- Chuyeän gì ñaõ xaûy ra ? P1 P3 (1) Send(“Anh”); (3) Send(“em”); P2 P4 (2) Send(“yeâu”); (4) Send(“Khoâng”); P3 P2 (3) printf(“em”); (2) Send(“yeâu”); P4 P1 (4) Send(“Khoâng”); (1)Send(“Anh”);
- Phoái hôïp xöû lyù P1 P2 Job1; Job2; Laøm theá naøo baûo ñaûm trình töï thöïc hieän Job1 - Job2 ? P1 vaø P2 thöïc hieän “heïn hoø” (Rendez-vous) vôùi nhau Hoã trôï Rendez-vous : Baûo ñaûm caùc tieán trình phoái hôïp vôùi nhau theo 1 trình töï xöû lyù ñònh tröôùc. 11/10/2007 Trần Hạnh Nhi 16
- Noäi dung baøi giaûng Xöû lyù ñoàng haønh vaø caùc vaán ñeà: Vaán ñeà tranh ñoaït ñieàu khieån (Race Condition) Vaán ñeà phoái hôïp xöû lyù Baøi toaùn ñoàng boä hoùa Yeâu caàu ñoäc quyeàn truy xuaát (Mutual Exclusion) Yeâu caàu phoái hôïp xöû lyù (Synchronization) Caùc giaûi phaùp ñoàng boä hoaù Busy waiting Sleep & Wakeup Caùc baøi toaùn ñoàng boä hoaù kinh ñieån Producer – Consumer Readers – Writers Dinning Philosophers 11/10/2007 Trần Hạnh Nhi 17
- Baøi toaùn ñoàng boä hoaù (Synchronization) Nhieàu tieán trình chia seû taøi nguyeân chung ñoàng thôøi : Tranh chaáp Race Condition Nhu caàu “ñoäc quyeàn truy xuaát” (Mutual Exclusion) Caùc tieán trình phoái hôïp hoaït ñoäng : Töông quan dieãn tieán xöû lyù ? Nhu caàu “hoø heïn” (Rendez-vous) Thöïc hieän ñoàng boä hoaù : Laäp trình vieân ñeà xuaát chieán löôïc Caùc tieán trình lieân quan trong baøi toaùn phaûi toân troïng caùc luaätñoàng boä Giaûi phaùp söû duïng caùc cô cheá ñoàng boä : Do laäp trình vieân /phaàn cöùng / HÑH / NNLT cung caáp 11/10/2007 Trần Hạnh Nhi 18
- Moâ hình ñaûm baûo Mutual Exclusion Nhieäm vuï cuûa laäp trình vieân: Theâm caùc ñoaïn code ñoàng boä hoùa vaøo chöông trình goác Theâm theá naøo : xem moâ hình sau ... Kieåm tra vaø daønh quyeàn vaøo CS CS; Töø boû quyeàn söû duïng CS 11/10/2007 Trần Hạnh Nhi 19
- Moâ hình toå chöùc phoái hôïp giöõa hai tieán trình Nhieäm vuï cuûa laäp trình vieân: Theâm caùc ñoaïn code ñoàng boä hoùa vaøo 2 chöông trình goác Theâm theá naøo : xem moâ hình sau ... P1 P2 Job1; Chôø ; Baùo hieäu ; Job2; Nhieàu tieán trình hôn thì sao ? Khoâng coù moâ hình toång quaùt Tuøy thuoäc baïn muoán heïn hoø ra sao ☺ 11/10/2007 Trần Hạnh Nhi 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Hệ điều hành: Chương 1 - ThS. Hà Lê Hoài Thương
39 p | 182 | 33
-
Bài giảng Hệ điều hành - Chương 1: Giới thiệu hệ điều hành
32 p | 167 | 16
-
Bài giảng Hệ điều hành: Chương 9 - ĐH Bách khoa TP HCM
56 p | 116 | 13
-
Bài giảng Hệ điều hành: Chương 2 - Trần Công Án (ĐH Cần Thơ)
39 p | 136 | 11
-
Bài giảng Hệ điều hành - Chương 5: Quản lý vào ra
30 p | 165 | 10
-
Bài giảng Hệ điều hành: Chương 1 - Phan Xuân Huy
25 p | 143 | 9
-
Bài giảng Hệ điều hành: Chương 1C - Cấu trúc hệ điều hành
22 p | 133 | 9
-
Bài giảng Hệ điều hành: Chương 2 - Hà Duy An (ĐH Cần Thơ)
45 p | 106 | 9
-
Bài giảng Hệ điều hành: Chương 1 - Nguyễn Phan Trung
43 p | 122 | 9
-
Bài giảng Hệ điều hành: Chương 2 - ThS. Hà Lê Hoài Trung
20 p | 123 | 9
-
Bài giảng Hệ điều hành: Chương 2 - ThS. Phan Đình Duy
36 p | 79 | 7
-
Bài giảng Hệ điều hành: Chương 1 - TS. Ngô Hữu Dũng
60 p | 122 | 7
-
Bài giảng Hệ điều hành: Chương 1 - Đặng Minh Quân
23 p | 75 | 6
-
Bài giảng Hệ điều hành: Chương 1 - ThS. Huỳnh Triệu Vỹ
156 p | 78 | 5
-
Bài giảng Hệ điều hành - Chương 1: Tổng quan hệ điều hành (Lương Minh Huấn)
109 p | 46 | 5
-
Bài giảng Hệ điều hành: Chương 1 - ĐH Bách khoa TP Hồ Chí Minh
26 p | 118 | 5
-
Bài giảng Hệ điều hành: Chương 2 - ĐH Công nghệ thông tin
36 p | 67 | 3
-
Bài giảng Hệ điều hành - Chương 1: Mở đầu
13 p | 86 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn