1 / 44

Chương 3

Chương 3. Quản lý các quá trình đồng thời. Mục đích và yêu cầu. Mục đích: Hiểu được các quá trình thực thi đồng thời và “Critical-Section” Hiểu được các nguyên lý cơ bản trong giải quyết tranh chấp bằng phần mềm, phần cứng và Semaphore. Yêu cầu:

layne
Download Presentation

Chương 3

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chương 3 Quản lý các quá trình đồng thời Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  2. Mục đích và yêu cầu Mục đích: • Hiểu được các quá trình thực thi đồng thời và “Critical-Section” • Hiểu được các nguyên lý cơ bản trong giải quyết tranh chấp bằng phần mềm, phần cứng và Semaphore. Yêu cầu: • Áp dụng lý thuyết để thực hiện được một số bài tập liên quan Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  3. Nội dung • Khái niệm cơ bản • Bài toán “ Critical-Section” • Các giải pháp phần mềm • Đồng bộ bằng phần cứng • Semaphore Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  4. Khái niệm cơ bản Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  5. Bounded Buffer (t,t) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  6. Race Condition Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  7. Ví dụ về Condition Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  8. Critical Section Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  9. Critical Section và Mutual Exclusion Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  10. Cấu trúc tổng quát Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  11. Ràng buộc của bài toán tranh chấp Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  12. Phân loại giải pháp Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  13. Giải pháp phần mềm Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  14. Giải thuật 1 Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  15. Giải thuật 1(t.t) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  16. Giải thuật 2 Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  17. Giải thuật 3 (Peterson) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  18. Giải thuật Peterson-2 process Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  19. Giải thuật 3: Tính đúng đắn Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  20. Giải thuật 3: Tính đúng đắn (t.t) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  21. Trường hợp process bị “chết” Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  22. Giải thuật Bakery: N process Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  23. Giải thuật Bakery: N process(t.t) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  24. Từ software đến hardware Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  25. Cấm ngắt Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  26. Dùng các lệnh đặc biệt Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  27. Lệnh test – and – set(TSL) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  28. Lệnh test – and – set(t.t) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  29. Thảo luận lệnh test-and-set • Cũng giống như các giải pháp phần cứng khác. TSL giảm nhẹ công việc lập trình để giải quyết vấn đề, nhưng lại không dễ dàng để cài đặt TLS sao cho được xử lý một cách không thể phân chia, nhất là trên máy với cấu hình nhiều bộ xử lý. • Các giải pháp buộc quá trình phải liên tục kiểm tra điều kiện để phát hiện thời điểm thích hợp được vào CS như thế được gọi các giải pháp “ busy waiting”. Việc kiểm tra tốn nhiều thời gian sử dụng CPU do vậy quá trình đang chờ vẫn chiếm dụng CPU. Xu hướng giải quyết vấn đề đồng bộ hoá nên tránh các giải pháp “ busy waiting”. Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  30. Giải pháp “SLEEP and WAKEUP” Để loại bỏ các bất tiện của “busy waiting”. Chúng ta có thể tiếp cận theo hướng cho một quá trình chưa đủ cond vào CS chuyển sang trạng thái blocked, từ bỏ quyền sử dụng CPU. Để phục vụ điều này cần hai thủ tục do Os cung cấp là SLEEP and WAKEUP • SLEEP : tạm dừng hoạt của quá trình (Blocked) gọi nó và chờ đến khi được một quá trình khác “đánh thức”. • WAKEUP: nhận một tham số duy nhất: quá trình sẽ được tái kích hoạt (đặt về trạng thái ready). Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  31. Cấu trúc chương trình trong SLEEP and WAKEUP Int busy // 1 nếu CS bị chiếm Int blocked // số lượng quá trình đang bị khoá While {true} { if (busy) { blocked = blocked +1; sleep(); } else busy =1; critical-section(); busy =0; if (blocked) { wakeup(process); blocked = blocked -1; } Non critical- section(); } Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  32. Semaphore • Được Dijkstra đề xuất vào năm 1965. một semaphore s là một biến cố có các thuộc tính sau: • Một giá trị nguyên dương e(s) • Một hàng đợi f(s) lưu danh sách các quá trình đang bị khoá (chờ) trên semaphore s • chỉ có hai thao tác được định nghĩa trên semaphore • Down(s): giảm giá trị của semaphore đi 1 nếu semaphore có giá trị e(s)>0, và tiếp tục xử lý. Ngược lại, nếu e(s)<=0 quá trình đến khi e(s)>0 • Up(s): tăng giá trị của semaphore s lên 1 nếu có 1 hoặc nhiều quá trình đang chờ trên semaphore s, bi khoá bởi thao tác down. Thì hệ thống sẽ chọn một trong các quá trình này để kết thúc thao tác Down và cho tiếp tục xử lý Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  33. Hiện thực Semaphore Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  34. Hiện thực Semaphore (t.t) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  35. Hiện thực Semaphore (t.t) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  36. Hiện thực Mutex với Semephore Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  37. Đồng bộ process bằng Semaphore Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  38. Nhận xét Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  39. Nhận xét (t.t) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  40. Deadlock và Starvation Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  41. Các loại semaphore Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  42. Hiện thực counting semaphore (S) bằng Binary Semaphore • Cấu trúc dữ liệu binary-semaphore S1, S2; Int C; • Khởi tạo: S1 = 1 S2 = 0 C = initial value of semaphore S Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  43. Tác vụ wait(S) Wait(S1); C--; If (C<0) { Signal(S1); Wait(S2); } Signal(S1); Tác vụ signal(S) Wait(S1); C++ If (C<=0) Signal(S2): Else Signal(S1); Hiện thực counting semaphore (S) bằng Binary Semaphore (t.t) Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

  44. Câu hỏi • Nắm được các giải thuật và semaphore Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh

More Related