Bài giảng Hệ điều hành - Chương 6.1: Deadlocks giúp người học hiểu được vấn đề bài toán deadlock và các tính chất của deadlock, hiểu được các phương pháp giải quyết deadlock. Mời các bạn cùng tham khảo.
HỆ ĐIỀU HÀNH Chương – Deadlocks 14/03/2017 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Câu hỏi ôn tập chương Phân biệt semaphore với monitor? Nêu ứng dụng giải pháp? Áp dụng semaphore vào tốn reader-writer, giải thích rõ hoạt động? 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Mục tiêu chương Hiểu vấn đề toán deadlock tính chất deadlock Hiển phương pháp giải deadlock Bảo vệ Tránh Kiểm tra Phục hồi 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Nội dung chương Vấn đề deadlock Mơ hình hệ thống Các tính chất deadlock Phương pháp giải deadlock 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Vấn đề deadlock Tình huống: Một tập tiến trình bị block, tiến trình giữ tài nguyên chờ tài nguyên mà tiến trình khác tập giữ Ví dụ 1: Hệ thống có file đĩa P1 P2 tiến trình mở file yêu cầu mở file Ví dụ 2: Bài toán triết gia ăn tối Mỗi người cầm đũa chờ lại 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Mơ hình hóa hệ thống Các loại tài ngun, kí hiệu R1, R2,…,Rm, bao gồm: CPU cycle, khơng gian nhớ, thiết bị I/O, file, semaphore, Mỗi loại tài nguyên Ri có Wi thực thể Giả sử tài nguyên tái sử dụng theo chu kỳ u cầu: tiến trình phải chờ u cầu khơng đáp ứng Sử dụng: tiến trình sử dụng tài ngun Hồn trả: tiến trình hồn trả tài nguyên Các tác vụ yêu cầu hoàn trả system call Ví dụ: Request/ release device Open / close file Allocate/ free memory Wail/ signal 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Định nghĩa Một tiến trình gọi deadlock đợi kiện mà khơng xảy Thơng thường, có nhiều tiến trình bị liên quan deadlock Một tiến trình gọi trì hỗn vơ hạn định bị trì hỗn khoảng thời gian dài lặp lặp lại hệ thống đáp ứng cho tiến trình khác Ví dụ: Một tiến trình sẵn sàng để xử lý khơng nhận CPU 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Điều kiện cần để xảy deadlock Loại trừ tương hỗ: tài nguyên giữ theo nonsharable mode Ví dụ: printer read-only files (sharable) Giữ chờ cấp thêm tài nguyên: Một tiến trình giữ tài ngun đợi thêm tài nguyên trình khác giữ 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Điều kiện cần để xảy deadlock (tt) Không trưng dụng: tài ngun khơng thể bị lấy lại mà trả lại từ tiến trình giữ tài ngun muốn Chu trình đợi: tồn tập (P0,…,Pn} trình đợi cho P0 đợi tài nguyên mà P1 giữ P1 đợi tài nguyên mà P2 giữ … Pn đợi tài nguyên mà P0 giữ 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Đồ thị cấp phát tài nguyên - RAG Là đồ thị có hướng, với tập đỉnh V tập cạnh E Tập đỉnh V gồm loại: P = {P1, P2,…,Pn} (All process) R = {R1, R2,…,Rn} (All resource) Tập cạnh E gồm loại: Cạnh yêu cầu: Pi -> Rj Cạnh cấp phát: Rj-> Pi 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 10 Đồ thị chứa chu trình khơng deadlock 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 14 RAG deadlock RAG không chứa chu trình -> khơng có deadlock RAG chứa (hay nhiều) chu trình Nếu loại tài nguyên có thực thể -> deadlock Nếu loại tài nguyên có nhiều thực thể -> xảy deadlock 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 15 Các phương pháp giải deadlock Bảo đảm hệ thống khơng rơi vào tình trạng deadlock cách ngăn tránh deadlock Khác biệt Ngăn deadlock: khơng cho phép (ít nhất) điều kiện cần cho deadlock Tránh deadlock: trình cần cung cấp thơng tin tài ngun cần để hệ thống cấp phát tài nguyên cách thích hợp 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 16 Các phương pháp giải deadlock (tt) Cho phép hệ thống vào trạng thái deadlock, sau phát deadlock phục hồi hệ thống Bỏ qua vấn đề, xem deadlock không xảy hệ thống Khá nhiều hệ điều hành sử dụng phương pháp Deadlock không phát hiện, dẫn đến việc giảm hiệu suất hệ thống Cuối cùng, hệ thống ngưng hoạt động phải khởi động lại 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 17 Ngăn deadlock Ngăn deadlock cách ngăn điều kiện cần deadlock Ngăn mutual exclusion Đối với tài nguyên không chia sẻ (printer): không làm Đối với tài nguyên chia sẻ (read-only file): không cần thiết Hold and wait Cách 1: Mỗi tiến trình u cầu tồn tài nguyên cần thiết lần Nếu có đủ tài ngun hệ thống cấp phát, khơng đủ tài nguyên tiến trình phải bị block Cách 2: Khi u cầu tài ngun, tiến trình khơng giữ tài ngun Nếu có phải trả lại trước yêu cầu 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 18 Ngăn deadlock (tt) Ngăn no preemption: tiến trình A có giữ tài ngun yêu cầu tài nguyên khác tài nguyên chưa cấp phát thì: Cách 1: Hệ thống lấy lại tài nguyên mà A giữ A bắt đầu lại có tài nguyên bị lấy lại với tài nguyên yêu cầu Cách 2: Hệ thống xem tài nguyên mà A yêu cầu Nếu tài nguyên giữ tiến trình khác đợi thêm tài nguyên, tài nguyên hệ thống lấy lại cấp phát cho A Nếu tài nguyên giữ tiến trình khơng đợi tài ngun, A phải đợi tài nguyên A bị lấy lại Tuy nhiên hệ thống lấy lại tài nguyên mà tiến trình khác yêu cầu 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 19 Ngăn deadlock (tt) Ngăn Circular wait: gán thứ tự cho tất tài nguyên hệ thống Tập hợp tài nguyên: R = {R1, R2,…,Rn} Hàm ánh xạ: F: R -> N Ví dụ: F(tap drive) = 1, F (disk) = 5, F (printer) = 12 F hàm định nghĩa thứ tự tập loại tài nguyên 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 20 Ngăn deadlock (tt) Ngăn Circular wait (tt): Mỗi tiến trình u cầu thực thể loại tài nguyên theo thứ tự tăng dần (định nghĩa hàm F) loại tài nguyên Ví dụ: Chuỗi yêu cầu thực thể hợp lệ: tap driver -> disk -> printer 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 21 Ngăn deadlock (tt) Ngăn Circular wait (tt): Khi tiến trình yêu cầu thực thể loại tài ngun Rj phải trả lại tài nguyên Ri với F(Ri)>F(Rj) Chứng minh giả sử tồn chu trình deadlock F(R4) < F(R1) F(R1) < F(R2) F(R2) < F(R3) F(R3) < F(R4) Vậy F(R4) < F(R4), mâu thuẫn 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 22 Tránh deadlock Ngăn deadlock sử dụng tài nguyên không hiệu Tránh deadlock đảm bảo hiệu suất sử dụng tài nguyên tối đa đến mức Yêu cầu tiến trình khai báo số lượng tài nguyên tối đa cần để thực công việc Giải thuật tránh deadlock kiểm tra trạng thái cấp phát tài nguyên để đảm bảo hệ thống không rơi vào deadlock Trạng thái cấp phát tài nguyên định nghĩa dựa số tài nguyên lại, số tài nguyên cấp phát yêu cầu tối đa tiến trình 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 23 Trạng thái safe unsafe Một trạng thái hệ thống gọi an toàn (safe) tồn chuỗi thứ tự an tồn Một chuỗi q trình chuỗi an toàn Với i = 1,…,n yêu cầu tối đa tài nguyên Pi thỏa Tài nguyên mà hệ thống có sẵn sàng Cùng với tài nguyên mà tất Pj (j hệ thống an toàn 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 25 Trạng thái safe unsafe (tt) Giả sử thời điểm t1, P2 yêu cầu cấp phát tap drive Còn tap drive sẵn sàng Cần tối đa Đang giữ P0 10 P1 P2 Hệ thống cịn an tồn khơng? 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 26 Trạng thái safe/unsafe deadlock Nếu hệ thống trạng thái safe -> không deadlock Nếu hệ thống trạng thái unsafe -> dẫn đến deadlock Tránh deadlock cách bảo đảm hệ thống không đến trạng thái unsafe deadlock unsafe safe 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 27 Tóm tắt lại nội dung buổi học Khái niệm deadlock Các tính chất deadlock Đồ thị cấp phát tài nguyên Các phương pháp giải deadlock Ngăn deadlock Tránh deadlock 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 28 ... giải deadlock (tt) Cho phép hệ thống vào trạng thái deadlock, sau phát deadlock phục hồi hệ thống Bỏ qua vấn đề, xem deadlock không xảy hệ thống Khá nhiều hệ điều hành sử dụng phương pháp... 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 26 Trạng thái safe/unsafe deadlock Nếu hệ thống trạng thái safe -> không deadlock Nếu hệ thống trạng thái unsafe -> dẫn đến deadlock Tránh... giảm hiệu suất hệ thống Cuối cùng, hệ thống ngưng hoạt động phải khởi động lại 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 17 Ngăn deadlock Ngăn deadlock cách ngăn điều kiện cần deadlock