Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 1Chương 3 Quản lý các quá trình đồng thời... Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 2• Áp dụng lý thuyết để thực hiện được một số bài tập liên qua
Trang 1Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 1
Chương 3
Quản lý các quá trình đồng thời
Trang 2Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 2
• Áp dụng lý thuyết để thực hiện được một
số bài tập liên quan
Trang 3Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 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
Trang 4Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 4
Khái niệm cơ bản
Trang 5Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 5
Bounded Buffer (t,t)
Trang 6Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 6
Race Condition
Trang 7Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 7
Ví dụ về Condition
Trang 8Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 8
Critical Section
Trang 9Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 9
Critical Section và Mutual Exclusion
Trang 10Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 10
Cấu trúc tổng quát
Trang 11Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 11
Ràng buộc của bài toán tranh chấp
Trang 12Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 12
Phân loại giải pháp
Trang 13Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 13
Giải pháp phần mềm
Trang 14Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 14
Giải thuật 1
Trang 15Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 15
Giải thuật 1(t.t)
Trang 16Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 16
Giải thuật 2
Trang 17Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 17
Giải thuật 3 (Peterson)
Trang 18Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 18
Giải thuật Peterson-2 process
Trang 19Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 19
Giải thuật 3: Tính đúng đắn
Trang 20Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 20
Giải thuật 3: Tính đúng đắn (t.t)
Trang 21Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 21
Trường hợp process bị “chết”
Trang 22Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 22
Giải thuật Bakery: N process
Trang 23Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 23
Giải thuật Bakery: N process(t.t)
Trang 24Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 24
Từ software đến hardware
Trang 25Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 25
Cấm ngắt
Trang 26Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 26
Dùng các lệnh đặc biệt
Trang 27Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 27
Lệnh test – and – set(TSL)
Trang 28Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 28
Lệnh test – and – set(t.t)
Trang 29Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 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”.
Trang 30Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 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).
Trang 31Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 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á
Trang 32Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 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ý
Trang 33Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 33
Hiện thực Semaphore
Trang 34Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 34
Hiện thực Semaphore (t.t)
Trang 35Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 35
Hiện thực Semaphore (t.t)
Trang 36Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 36
Hiện thực Mutex với Semephore
Trang 37Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 37
Đồng bộ process bằng Semaphore
Trang 38Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 38
Nhận xét
Trang 39Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 39
Nhận xét (t.t)
Trang 40Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 40
Deadlock và Starvation
Trang 41Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 41
Các loại semaphore
Trang 42Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 42
Hiện thực counting semaphore (S) bằng
C = initial value of semaphore S
Trang 43Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 43
Hiện thực counting semaphore (S) bằng
Trang 44Khoa Công Nghệ Thông Tin – ĐHCN TP HCM 44
Câu hỏi
• Thế nào là vùng tranh chấp
• Nêu 3 điều kiện thỏa mãn cho bài tóan vào vùng tranh chấp.
• Hiểu và giải thích được các giải thuật 1,2,3
• Hiểu và giải thích được các giải thuật berkery
• Nêu được các hạn chế các giải thuật giải quyết tranh chấp bằng phương pháp phần mềm
• Nắm được các giải thuật semaphore Cũng như giải thuật “sleep” và “wakeup”.