Tắc nghẽn (deadlock)

9 719 0
Tắc nghẽn (deadlock)

Đang tải... (xem toàn văn)

Thông tin tài liệu

Tắc nghẽn (Deadlock) Tắc nghẽn (Deadlock) Bởi: Giảng viên Trần Hạnh Nhi Định nghĩa: Một tập hợp tiến trình định nghĩa tình trạng tắc nghẽn tiến trình tập hợp chờ đợi kiện mà có tiến trình khác tập hợp phát sinh Nói cách khác, tiến trình tập hợp chờ cấp phát tài nguyên bị tiến trình khác trạng thái blocked chiếm giữ Như tiến trình tiếp tục xử lý , giải phóng tài nguyên cho tiến trình khác sử dụng, tất tiến trình tập hợp bị khóa vĩnh viễn ! Vấn đề Bữa ăn tối triết gia : nhà triết học ngồi ăn tối với spaghetti tiếng Mỗi nhà triết học cần dùng nĩa để ăn spaghetti Nhưng bàn có tổng cộng nĩa để xen kẽ với đĩa Mỗi nhà triết học suy ngẫm triết lý đến cảm thấy đói dự định cầm nĩa bên trái nĩa bên phải để ăn Nếu nhà triết học cầm nĩa bên trái lúc, có nĩa bên phải để bắt đầu thưởng thức spaghetti Đây tình trạng tắc nghẽn 1/9 Tắc nghẽn (Deadlock) Hình 3.18 Bữa ăn tối triết gia Điều kiện xuất tắc nghẽn Coffman, Elphick Shoshani đưa điều kiện cần làm xuất tắc nghẽn: Có sử dụng tài nguyên chia sẻ (Mutual exclusion): Mỗi thời điểm, tài nguyên chia sẻ hệ thống cấp phát cho tiến trình , tiến trình sử dụng xong tài nguyên này, hệ thống thu hồi cấp phát tài nguyên cho tiến trình khác Sự chiếm giữ yêu cầu thêm tài nguyên (Wait for): Các tiến trình tiếp tục chiếm giữ tài nguyên cấp phát cho chờ cấp phát thêm số tài nguyên Không thu hồi tài nguyên từ tiến trình giữ chúng (No preemption): Tài nguyên thu hồi từ tiến trình chiếm giữ chúng trước tiến trình sủ dụng chúng xong Tồn chu kỳ đồ thị cấp phát tài nguyên ( Circular wait): có hai tiến trình chờ đợi lẫn : tiến trình chờ cấp phát tài nguyên bị tiến trình chiếm giữ ngược lại Khi có đủ điều kiện này, tắc nghẽn xảy Nếu thiếu điều kiện tắc nghẽn Đồ thị cấp phát tài nguyên Có thể sử dụng đồ thị để mô hình hóa việc cấp phát tài nguyên Đồ thị có loại nút : tiến trình biễu diễn hình tròn, tài nguyên hiển thị hình vuông 2/9 Tắc nghẽn (Deadlock) Hình 3.19 Đồ thị cấp phát tài nguyên Các phương pháp xử lý tắc nghẽn Chủ yếu có ba hương tiếp cận để xử lý tắc nghẽn : Sử dụng nghi thức (protocol) để bảo đảm hệ thống không xảy tắc nghẽn Cho phép xảy tắc nghẽn tìm cách sữa chữa tắc nghẽn Hoàn toàn bỏ qua việc xử lý tắc nghẽn, xem hệ thống không xảy tắc nghẽn Ngăn chặn tắc nghẽn Để tắc nghẽn không xảy ra, cần bảo đảm tối thiểu điều kiện cần không xảy ra: Tài nguyên chia sẻ : nhìn chung gần tránh điều kiện chất tài nguyên gần cố định Tuy nhiên số tài nguyên kết xuất, người ta dùng chế spooling để biến đổi thành tài nguyên chia sẻ Sự chiếm giữ yêu cầu thêm tài nguyên: phải bảo đảm tiến trình yêu cầu thêm tài nguyên không chiếm giữ tài nguyên khác Có thể áp đặt hai chế truy xuất sau : Tiến trình phải yêu cầu tất tài nguyên cần thiết trước bắt đầu xử lý 3/9 Tắc nghẽn (Deadlock) => phương pháp có khó khăn tiến trình khó ước lượng xác tài nguyên cần sử dụng nhu cầu phụ thuộc vào trình xử lý Ngoài tiến trình chiếm giữ sẵn tài nguyên chưa cần sử dụng việc sử dụng tài nguyên hiệu Khi tiến trình yêu cầu tài nguyên bị từ chối, phải giải phóng tài nguyên chiếm giữ , sau lại cấp phát trở lại lần với tài nguyên => phương pháp làm phát sinh khó khăn việc bảo vệ tính toàn vẹn liệu hệ thống Không thu hồi tài nguyên: cho phép hệ thống thu hồi tài nguyên từ tiến trình bị khoá cấp phát trở lại cho tiến trình thoát khỏi tình trạng bị khóa Tuy nhiên với số loại tài nguyên, việc thu hồi khó khăn vi phạm toàn vẹn liệu Tồn chu kỳ: tránh tạo chu kỳ đồ thị cách cấp phát tài nguyên theo phân cấp sau : gọi R = {R1, R2, ,Rm} tập loại tài nguyên Các loại tài nguyên phân cấp từ 1-N Ví dụ : F(đĩa) = 2, F(máy in) = 12 Các tiến trình yêu cầu tài nguyên phải tuân thủ quy định : tiến trình chiếm giữ tài nguyên Ri yêu cầu tài nguyên Rj F(Rj) > F(Ri) Tránh tắc nghẽn Ngăn cản tắc nghẽn mối bận tâm lớn sử dụng tài nguyên Tránh tắc nghẽn loại bỏ tất hội dẫn đến tắc nghẽn tương lai Cần phải sử dụng chế phức tạp để thực ý định Một số khái niệm sở Trạng thái an toàn : trạng thái A an toàn hệ thống thỏa mãn nhu cầu tài nguyên (cho đến tối đa) tiến trình theo thứ tự mà ngăn chặn tắc nghẽn Một chuỗi cấp phát an toàn: thứ tự tiến trình an toàn tình trạng cấp phát hành với tiến trình Pi nhu cầu tài nguyên Pi thỏa mãn với tài nguyên tự hệ thống, cộng với tài nguyên bị chiếm giữ tiến trình Pj khác, với j ... thống không xảy tắc nghẽn Cho phép xảy tắc nghẽn tìm cách sữa chữa tắc nghẽn Hoàn toàn bỏ qua việc xử lý tắc nghẽn, xem hệ thống không xảy tắc nghẽn Ngăn chặn tắc nghẽn Để tắc nghẽn không xảy... bước 8/9 Tắc nghẽn (Deadlock) Nếu Finish[i] == true với i, hệ thống tắc nghẽn Nếu Finish[i] == false với số giá trị i, tiến trình mà Finish[i] == false tình trạng tắc nghẽn Hiệu chỉnh tắc nghẽn. .. yêu cầu tài nguyên Rj F(Rj) > F(Ri) Tránh tắc nghẽn Ngăn cản tắc nghẽn mối bận tâm lớn sử dụng tài nguyên Tránh tắc nghẽn loại bỏ tất hội dẫn đến tắc nghẽn tương lai Cần phải sử dụng chế phức

Ngày đăng: 14/01/2016, 15:11

Từ khóa liên quan

Mục lục

  • Tắc nghẽn (Deadlock)

  • Định nghĩa:

  • Điều kiện xuất hiện tắc nghẽn

  • Đồ thị cấp phát tài nguyên

  • Các phương pháp xử lý tắc nghẽn

  • Ngăn chặn tắc nghẽn

  • Tránh tắc nghẽn

  • Phát hiện tắc nghẽn

  • Hiệu chỉnh tắc nghẽn

Tài liệu cùng người dùng

Tài liệu liên quan