Bài giảng Nguyên lý hệ điều hành (handout): Chương 2 - Phạm Đăng Hải

74 17 0
Bài giảng Nguyên lý hệ điều hành (handout): Chương 2 - Phạm Đăng Hải

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Nguyên lý hệ điều hành (handout): Chương 2 trang bị cho người học những kiến thức về quản lý tiến trình trong hệ điều hành như: Tiến trình, luồng (thread), điều phối cpu, tài nguyên găng và điều độ tiến trình, bế tắc và xử lý bế tắc.

Hệ điều hành Notes NGUYÊN LÝ HỆ ĐIỀU HÀNH Phạm Đăng Hải haipd@soict.hust.edu.vn Bộ mơn Khoa học Máy tính Viện Công nghệ Thông tin & Truyền Thông Ngày 14 tháng năm 2020 c om / 220 an co Notes ng Chương 2: Quản lý tiến trình du on g th Chương Quản lý tiến trình cu u / 220 Chương 2: Quản lý tiến trình Notes Giới thiệu Khi chương trình thực Được cung cấp tài nguyên (CPU, nhớ, thiết bị vào/ra .) để hồn thành cơng việc Tài ngun cấp bắt đầu chương trình hay chương trình thực Gọi tiến trình (process) Hệ thống bao gồm tập tiến trình thực đồng thời Tiến trình hệ điều hành Thực mã lệnh hệ thống Tiến trình người dùng Thực mã lệnh người dùng Tiến trình chứa nhiều luồng điều khiển Trách nhiệm Hệ điều hành: Đảm bảo họat động tiến trình tiểu trình (luồng ) Tạo/xóa tiến trình (người dùng, hệ thống) Điều phối tiến trình Cung cấp chế đồng bộ, truyền thơng ngăn ngừa tình trạng bế tắc tiến trình / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Notes Nội dung Tiến trình Luồng (Thread) Điều phối CPU Tài nguyên găng điều độ tiến trình Bế tắc xử lý bế tắc Chương 2: Quản lý tiến trình Tiến trình Notes co Nội dung ng c om / 220 Tiến trình Luồng (Thread) Điều phối CPU Tài nguyên găng điều độ tiến trình Bế tắc xử lý bế tắc du on g th an cu u / 220 Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình Notes Tiến trình Khái niệm tiến trình Điều phối tiến trình (Process Scheduling) Thao tác tiến trình Hợp tác tiến trình Truyền thơng liên tiến trình / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình Notes Tiến trình Trạng thái hệ thống Vi xử lý: Giá trị ghi Bộ nhớ: Nội dung ô nhớ Thiết bị ngoại vi: Trạng thái thiết bị Thực chương trình ⇒Trạng thái hệ thống thay đổi Thay đổi rời rạc, theo câu lệnh thực q0 q1 q2 qn Tiến trình dãy thay đổi trạng thái hệ thống Chuyển từ trạng thái sang trạng thái khác thực theo yêu cầu nằm chương trình người sử dụng Xuất phát từ trạng thái ban đầu ✞ ☎ Tiến trình thực chương trình ✝ ✆ Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình Notes Tiến trình >< chương trình co Chương trình: thực thể thụ động (nội dung file đĩa) Mã chương trình: Lệnh máy (CD2190EA ) Dữ liệu: Biến lưu trữ sử dụng nhớ an Biến toàn cục Biến cung cấp động (malloc, new, ) Biến stack (tham số hàm, biến cục ) th Thư viện liên kết động (DLL) Khơng dịch & liên kết với chương trình ng c om / 220 Khi chương trình thực hiện, tài nguyên tối thiểu cần có g Bộ nhớ cho mã chương trình liệu Các ghi VXL phục vụ cho trình thực on Tiến trình: thực thể chủ động (bộ đếm lệnh, tập tài ngun) Một chương trình Chỉ phần trạng thái tiến trình Gọi tới nhiều tiến trình cu u / 220 du Một chương trình, nhiều tiến trình( liệu khác nhau) gcc hello.c gcc baitap.c Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình Notes Dịch thực hiên chương trình / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình Notes Thực chương trình Hệ điều hành tạo tiến trình phân phối vùng nhớ cho Bộ thực (loader/exec) Đọc dịch (interprets) file thực thi (header file) Thiết lập không gian địa cho tiến trình để chứa mã lệnh liệu từ file thực thi Đặt tham số dịng lệnh, biến mơi trường (argc, argv, envp) vào stack Thiết lập ghi VXL tới giá trị thích hợp gọi hàm "_start()" (hàm hệ điều hành) Chương trình bắt đầu thực "_start()" Hàm gọi tới hàm main()(hàm chương trình) ⇒"Tiến trình" thực hiện, khơng cịn đề cập đến "chương trình" Khi hàm main() kết thúc, OS gọi tới hàm "_exit()" để hủy bỏ tiến trình thu hồi tài nguyên Tiến trình chương trình thực Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình Notes co Trạng thái tiến trình ng c om 10 / 220 Khi thực hiện, tiến trình thay đổi trạng thái Sẵn sàng (Ready) Tiến trình đợi sử dụng processor vật lý th Thực (Running) Các câu lệnh tiến trình an Khởi tạo (New) Tiến trình khởi tạo thực xuất (sự hồn thành thao tác vào/ra) on Kết thúc (Terminated) Tiến trình thực xong g Chờ đợi (Waiting) Tiến trình chờ đợi kiện du Trạng thái tiến trình phần hoạt động tiến trình cu u 11 / 220 Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình Notes Lưu đồ thay đổi trạng thái tiến trình (Silberschatz 2002) Hệ thống có processor Có tiến trình trạng thái thực Có thể có nhiều tiến trình trạng thái chờ đợi sẵn sàng 12 / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình Notes Khối điều khiển tiến trình (PCB: Process Control Block) Mỗi tiến trình thể hệ thống khối điều khiển tiến trình PCB: cấu trúc thơng tin cho phép xác định tt Trạng thái tiến trình Bộ đếm lệnh Các ghi CPU Thơng tin dùng để điều phối tiến trình Thơng tin quản lý nhớ Thơng tin tài ngun sử dụng Thông tin thống kê Con trỏ tới PCB khác Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình Notes co Danh sách tiến trình ng c om 13 / 220 tail du on g th an head cu u 14 / 220 Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình Notes Tiến trình đơn luồng tiến trình đa luồng Tiến trình đơn luồng : Là chương trình thực luồng thực thi Có luồng câu lệnh thực thi ⇒ Cho phép thực nhiệm vụ thời điểm Tiến trình đa luồng : Là tiến trình có nhiều luồng thực thi ⇒ Cho phép thực nhiều nhiệm vụ thời điểm 15 / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Tiến trình 1.2 Điều phối tiến trình Notes Tiến trình Khái niệm tiến trình Điều phối tiến trình (Process Scheduling) Thao tác tiến trình Hợp tác tiến trình Truyền thơng liên tiến trình Chương 2: Quản lý tiến trình Tiến trình 1.2 Điều phối tiến trình Notes co Giới thiệu Mục đích Sử dụng tối đa thời gian CPU an ⇒ Cần có nhiều tiến trình hệ thống g Hệ thống processor th Vấn đề Ln chuyển CPU tiến trình ⇒ Phải có hàng đợi cho tiến trình ng c om 16 / 220 on ⇒ Một tiến trình thực du ⇒ Các tiến trình khác phải đợi tới CPU tự cu u 17 / 220 Chương 2: Quản lý tiến trình Tiến trình 1.2 Điều phối tiến trình Notes Các hàng đợi tiến trình I Hệ thống có nhiều hàng đợi dành cho tiến trình Job-queue Tập tiến trình hệ thống Ready-Queue Tập tiến trình tồn nhớ, sẵn sàng chờ đợi để thực Device queues Tập tiến trình chờ đợi thiết bị vào Phân biệt hàng đợi cho thiết bị 18 / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Tiến trình 1.2 Điều phối tiến trình Notes Các hàng đợi tiến trình II Các tiến trình di chuyển hàng đợi khác Tiến trình tạo, đặt hàng đợi sẵn sàng, đợi lựa chọn để thực Chương 2: Quản lý tiến trình Tiến trình 1.2 Điều phối tiến trình Notes co Các hàng đợi tiến trình III Đưa yêu cầu vào ra: đợi hàng đợi thiết bị Tạo tiến trình đợi tiến trình kết thúc Hết thời gian sử dụng CPU, phải quay lại hàng đợi sẵn sàng th Trường hợp (1&2) sau kiện chờ đợi hoàn thành, an Tiến trình chọn thực hiên ng c om 19 / 220 Tiến trình chuyển từ trạng thái đợi sang trạng thái sẵn sàng Tiến trình quay lại hàng đợi sẵn sàng du on Xóa khỏi tất hàng đợi PCB tài ngun cấp giải phóng g Tiến trình tiếp tục chu kỳ (sẵn sàng, thực hiện, chờ đợi) kết thúc cu u 20 / 220 Chương 2: Quản lý tiến trình Tiến trình 1.2 Điều phối tiến trình Notes Bộ điều phối (Scheduler) Lựa chọn tiến trình hàng đợi Điều phối cơng việc (Job scheduler; Long-term scheduler ) Điều phối CPU (CPU scheduler; Short-term scheduler ) 21 / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Tiến trình 1.2 Điều phối tiến trình Notes Điều phối cơng việc Chọn tiến trình từ hàng đợi tiến trình lưu vùng đệm (đĩa từ) đưa vào nhớ để thực Thực không thường xuyên (đơn vị giây/phút) Điều khiển mức độ đa chương trình (số t/trình nhớ ) Khi mức độ đa chương trình ổn định, điều phối công việc gọi có tiến trình rời khỏi hệ thống Vấn đề lựa chọn cơng việc Tiến trình thiên vào/ra: sử dụng thời gian CPU Tiến trình thiên tính tốn: sử dụng nhiều thời gian CPU Cần lựa chọn lẫn loại tiến tình ⇒ tt vào ra: hàng đợi sẵn sàng rỗng, lãng phí CPU ⇒ tt tính tốn: hàng đợi thiết bị rỗng, lãng phí thiết bị Chương 2: Quản lý tiến trình Tiến trình 1.2 Điều phối tiến trình Notes co Điều phối CPU Lựa chọn tiến trình từ hàng đợi tiến trình sẵn sàng thực phân phối CPU cho an Được thực thường xuyên (VD: 100ms/lần) ng c om 22 / 220 Tiến trình thực vài ms thực vào Lựa chọn tiến trình mới, sẵn sàng th Phải thực nhanh 10ms để định ⇒10/(110)=9% thời gian CPU lãng phí Vấn đề luân chuyển CPU từ tiến trình tới tiến trình khác on g Phải lưu trạng thái tiến trình cũ (PCB) khơi phục trạng thái cho tiến trình Thời gian ln chuyển lãng phí Có thể hỗ trợ phần cứng du Vấn đề lựa chọn tiến trình (điều phối CPU) cu u 23 / 220 Chương 2: Quản lý tiến trình Tiến trình 1.2 Điều phối tiến trình Notes Swapping tiến trình (Medium-term scheduler) Nhiệm vụ Đưa t/trình khỏi nhớ (làm giảm mức độ đa chương trình) Sau đưa tiến trình quay trở lại (có thể vị trí khác) tiếp tục thực Mục đích: Giải phóng vùng nhớ, tạo vùng nhớ tự rộng 24 / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Tiến trình 1.2 Điều phối tiến trình Notes Chuyển ngữ cảnh (context switch) Chuyển CPU từ tiến trình sang tiến trình khác (hốn đổi tiến trình thực hiện) Thực xuất tín hiệu ngắt (ngắt thời gian) tiến trình đưa lời gọi hệ thống (thực ra) Lưu đồ chuyển CPU t/trình(Silberschatz 2002) Chương 2: Quản lý tiến trình Tiến trình 1.3 Thao tác tiến trình co Notes ng c om 25 / 220 Tiến trình an Khái niệm tiến trình Điều phối tiến trình (Process Scheduling) th Thao tác tiến trình Hợp tác tiến trình du on g Truyền thơng liên tiến trình cu u 26 / 220 Chương 2: Quản lý tiến trình Tiến trình 1.3 Thao tác tiến trình Notes Thao tác tiến trình Tạo tiến trình Kết thúc tiến trình 27 / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Tiến trình 1.3 Thao tác tiến trình Notes Tạo tiến trình Tiến trình tạo nhiều tiến trình hoạt động (CreateProcess(), fork()) Tiến trình tạo: tiến trình cha Tiến trình tạo: tiến trình Tiến trình tạo tiến trình khác ⇒Cây tiến trình Vấn đề phân phối tài nguyên Tiến trình lấy tài nguyên từ hệ điều hành Tiến trình lấy tài nguyên từ tiến trình cha Tất tài nguyên Một phần tài nguyên tiến trình cha (ngăn ngừa việc tạo nhiều tiến trình con) Vấn đề thực Tiến trình cha tiếp tục thực đồng thời với tiến trình Tiến trình cha đợi tiến trình kết thúc Chương 2: Quản lý tiến trình Tiến trình 1.3 Thao tác tiến trình Notes co Kết thúc tiến trình ng c om 28 / 220 Gửi trả liệu tới tiến trình cha Các tài nguyên cung cấp trả lại hệ thống Tiến trình cha kết thúc thực tiến trình th Tiến trình cha phải biết định danh tiến trình ⇒ tiến trình phải gửi định danh cho tiến trình cha khởi tạo Sử dụng lời gọi hệ thống (abort) an Hoàn thành câu lệnh cuối u cầu HĐH xóa (exit) Tiến trình cha kết thúc tiến trình du on g Tiến trình sử dụng vượt mức tài nguyên cấp Nhiệm vụ cung cấp cho tiến trình khơng cịn cần thiết Tiến trình cha kết thúc hệ điều hành khơng cho phép tiến trình tồn tiến trình cha kết thúc ⇒Cascading termination VD, kết thúc hệ thống cu u 29 / 220 Chương 2: Quản lý tiến trình Tiến trình 1.3 Thao tác tiến trình Notes Một số hàm với tiến trình WIN32 API CreateProcess( .) LPCTSTR Tên chương trình thực LPTSTR Tham số dịng lệnh LPSECURITY_ATTRIBUTES Thuộc tính an ninh t/trình LPSECURITY_ATTRIBUTES Thuộc tính an ninh luồng BOOL Cho phép kế thừa thẻ thiết bị (TRUE/FALSE ) DWORD Cờ tạo tiến trình (VD CREATE_NEW_CONSOLE ) LPVOID Trỏ tới khối môi trường LPCTSTR Đường dẫn đầy đủ đến chương trình LPSTARTUPINFO Cấu trúc thơng tin cho tiến trình LPPROCESS_INFORMATION Thơng tin tiến trình TerminateProcess(HANDLE hProcess, UINT uExitCode) hProcess Thẻ tiến trình bị kết thúc đóng uExitCode Mã kết thúc tiến trình 30 / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.2 Điều kiện xảy bế tắc Notes Đồ thị cung cấp tài ngun (Resource Allocation Graph) Dùng để mơ hình hóa tình trạng bế tắc hệ thống Là độ thị định hướng gồm tập đỉnh V tập cung E Tập đỉnh V chia thành kiểu đỉnh P = {P1 , P2 , Pn } Tập chứa tất tiến trình hệ thống R = {R1 , R2 , Rm } Tập chứa tất kiểu tài nguyên hệ thống Tập cung E gồm loại Cung yêu cầu: từ tiến trình Pi tới tài nguyên Rj : Pi → Rj Cung sử dụng: Đi từ tài nguyên Rj tới tiến trình Pi : Rj → Pi Khi tiến trình Pi yêu cầu tài nguyên Rj Cung yêu cầu Pi → Rj chèn vào đồ thị Nếu yêu cầu thỏa mãn, cung yêu cầu chuyển thành cung sử dung Rj → Pi Khi tiến trình Pi giải phóng tài ngun Rj , cung sử dụng Rj → Pi bị xóa khỏi đồ thị Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.2 Điều kiện xảy bế tắc Notes Đỉnh kiểu tiến trình thể hình trịn co Đồ thị cung cấp tài nguyên : Biểu diễn đồ đồ thị th R P R du Cung sử dụng xuất phát từ dấu chấm bên đỉnh tài nguyên tới đỉnh tiến trình P on Cung yêu cầu từ đỉnh tiến trình tới đỉnh tài nguyên g R an P Đỉnh kiểu tài nguyên thể hình chữ nhật Mỗi đơn vị kiểu tài nguyên biểu thị dấu chấm hình chữ nhật ng c om 178 / 220 cu u 179 / 220 Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.2 Điều kiện xảy bế tắc Notes Đồ thị cung cấp tài nguyên : Ví dụ Trạng thái hệ thống R2 tiến trình P1 , P2 , P3 tài nguyên R1 , R2 , R3 , R4 R3 P3 yêu cầu tài nguyên R4 P1 P2 P3 Xuất cung yêu cầu P3 → R4 Cung yêu cầu P3 → R4 chuyển thành cung sử dụng R4 → P3 P3 Giải phóng tài nguyên R4 Cung sử dụng R4 → P3 bị xóa khỏi đồ thị P3 yêu cầu tài nguyên R1 R1 R4 Xuất cung yêu cầu P3 → R1 Trên đồ thị xuất chu trình Hệ thống bế tắc Chu trình đồ thị tình trạng bế tắc có liên quan? 180 / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.2 Điều kiện xảy bế tắc Notes Đồ thị cung cấp tài nguyên : Lập luận Đồ thị có chu trình hệ thống khơng bế tắc P3 R1 P1 P2 R2 Đồ thị không chứa chu trình, khơng bế tắc Nếu đồ thị chứa đựng chu trình Nếu tài ngun có đơn vị ⇒ Bế tắc Nếu tài nguyên có nhiều đơn vị: có khả bế tắc Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.3 Các phương pháp xử lý bế tắc co Notes du on g th an Bế tắc xử lý bế tắc Khái niệm bế tắc Điều kiện xảy bế tắc Các phương pháp xử lý bế tắc Phòng ngừa bế tắc Phòng tránh bế tắc Nhận biết khắc phục ng c om 181 / 220 cu u 182 / 220 Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.3 Các phương pháp xử lý bế tắc Notes Phương pháp Phòng ngừa Áp dụng biện pháp để đảm bảo hệ thống khơng rơi vào tình trạng bế tắc Tốn Áp dụng cho hệ thống hay xảy bế tắc tổn thất bế tắc gây lớn Phòng tránh Kiểm tra yêu cầu tài ngun tiến trình khơng chấp nhận u cầu việc cung cấp tài nguyên có khả dẫn đến tình trạng bế tắc Thường yêu cầu thơng tin phụ trợ Áp dụng cho hệ thống xảy bế tắc tổn hại lớn Nhận biết khắc phục 183 / 220 Cho phép hệ thống hoạt động bình thường ⇒có thể rơi vào tình trạng bế tắc Định kỳ kiểm tra xem bế tắc có xảy khơng Nếu bế tắc, áp dụng biện pháp loại bỏ bế tắc Áp dụng cho hệ thống xảy bế tắc thiệt hại không lớn CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.4 Phòng ngừa bế tắc Notes Bế tắc xử lý bế tắc Khái niệm bế tắc Điều kiện xảy bế tắc Các phương pháp xử lý bế tắc Phòng ngừa bế tắc Phòng tránh bế tắc Nhận biết khắc phục Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.4 Phòng ngừa bế tắc Notes co Nguyên tắc ng c om 184 / 220 an Tác động vào điều kiện cần bế tắc để khơng xảy th Tài nguyên găng du Chờ đợi vòng tròn on Trưng dụng tài nguyên găng g Chờ đợi trước vào đoạn găng cu u 185 / 220 Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.4 Phòng ngừa bế tắc Notes Điều kiện tài nguyên găng Giảm bớt mức độ găng hệ thống Tài nguyên phân chia (file đọc): Sử dụng đồng thời Tài nguyên không phân chia được: Sử dụng không đồng thời Kỹ thuật SPOOL(Simultaneous peripheral operation on-line) Không phân phối tài nguyên không thực cần thiết Chỉ số tiến trình có khả yêu cầu tài nguyên P1 P2 Chỉ printer daemon làm việc với máy in ⇒ Bế tắc cho tài nguyên máy in bị hủy bỏ Printer daemon Không phải tài nguyên dùng kỹ thuật SPOOL Virtual printer 186 / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.4 Phòng ngừa bế tắc Notes Điều kiện chờ đợi trước vào đoạn găng Nguyên tắc: Đảm bảo môt tiến trình xin tài ngun khơng sở hữu tài nguyên khác Cung cấp trước Tiến trình xin tồn tài ngun từ đầu thực có đầy đủ tài nguyên Hiệu sử dụng tài nguyên thấp Tiến trình sử dụng tài nguyên giai đoạn cuối? Tổng số tài nguyên đòi hỏi vượt khả hệ thống? Giải phóng tài ngun Tiến trình giải phóng tất tài nguyên trước xin (xin lại) tài nguyên Nhận xét Tốc độ thực tiến trình chậm Phải đảm bảo liệu giữ tài nguyên tạm giải phóng khơng bị Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.4 Phòng ngừa bế tắc Notes Giai đoạn an Giai đoạn Tiến trình gồm giai đoạn Sao chép liệu từ băng từ sang file đĩa từ Sắp xếp liệu file đưa máy in g Phương pháp cung cấp trước th Băng từ co Điều kiện chờ đợi trước vào đoạn găng: minh họa ng c om 187 / 220 Phương pháp giải phóng tài nguyên on Xin băng từ, file đĩa máy in Lãng phí máy in giai đoạn đầu, băng từ giai đoạn cuối du Xin băng từ file đĩa cho giai đoạn Giải phóng băng từ file đĩa Xin file đĩa máy in cho giai đoạn 2(Nếu không được?) cu u 188 / 220 Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.4 Phòng ngừa bế tắc Notes Điều kiện trưng dụng tài nguyên găng Nguyên tắc: cho phép trưng dụng tài nguyên cần thiết Tiến trình Pi xin tài nguyên Rj Rj sẵn có: Cung cấp Rj cho Pi Rj khơng sẵn: (Rj bị chiếm tiến trình Pk ) Pk đợi tài nguyên Trưng dụng Rj từ Pk cung cấp cho Pi theo yêu cầu Thêm Rj vào danh sách tài nguyên thiếu Pk Pk thực trở lại ♣ Có tài nguyên thiếu ♣ Đòi lại Rj Pk thực Pi phải đợi (khơng giải phóng tài nguyên) Cho phép trưng dụng tài nguyên cần thiết Chỉ áp dụng cho tài nguyên lưu trữ khơi phục trạng thái dễ dàng (CPU, khơng gian nhớ ) Khó áp dụng cho tài nguyên máy in Một tiến trình bị trưng dụng nhiều lần ? 189 / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.4 Phòng ngừa bế tắc Notes Điều kiện chờ đợi vòng tròn Đặt thứ tự toàn cục tất kiểu tài nguyên R = {R1 , R2 , Rn } Tập tất kiểu tài nguyên Xây dựng hàm trật tự f : R → N Hàm f xây dựng dựa trật tự sử dụng tài nguyên f(Băng từ) = f( Đĩa từ) = f(Máy in) = 12 Tiến trình yêu cầu tài nguyên theo trật tự tăng Tiến trình chiếm giữ tài nguyên kiểu Rk xin tài nguyên kiểu Rj thỏa mãn f (Rj ) > f (Rk ) Tiến trình yêu cầu tới tài nguyên Rk phải giải phóng tất tài nguyên Ri thỏa mãn điều kiện f (Ri ) ≥ f (Rk ) Chứng minh Giả thiết bế tắc xảy tiến trình {P1 , P2 , Pm } R1 → P1 → R2 → P2 ⇒ f (R1 ) < f (R2 ) R2 → P2 → R3 → P3 ⇒ f (R2 ) < f (R3 ) Rm → Pm → R1 → P1 ⇒ f (Rm ) < f (R1 ) f (R1 ) < f (R2 ) < < f (Rm ) < f (R1 ) ⇒Vô lý Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.5 Phòng tránh bế tắc co th an Bế tắc xử lý bế tắc Khái niệm bế tắc Điều kiện xảy bế tắc Các phương pháp xử lý bế tắc Phòng ngừa bế tắc Phòng tránh bế tắc Nhận biết khắc phục du on g Notes ng c om 190 / 220 cu u 191 / 220 Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.5 Phòng tránh bế tắc Notes P1 P(S2 ) SS11==−1 01 P(S1 ) sử dụng R1 sử yêudụng cầuRR2 sử yêudụngR cầuR22 yêu cầuR1 P2 P(S2 ) P(S1 ) SS22==−1 01 t Block(P2) Deadlock Ví dụ Nhận xét: Biết chuỗi yêu cầu/giải phóng tài nguyên tiến trình, hệ thống đưa chiến lược phân phối tài nguyên (chấp thuận hay phải đợi) cho yêu cầu để bế tắc không xảy 192 / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.5 Phòng tránh bế tắc Notes Nguyên tắc Phải biết trước thơng tin tiến trình tài ngun Tiến trình phải khai báo lượng tài nguyên lớn loại yêu cầu thực Quyết định dựa kết kiểm tra trạng thái cung cấp tài nguyên (Resource-Allocation State) -Trạng thái hệ thống Trạng thái cung cấp tài nguyên xác định thông số Số đơn vị tài nguyên có sẵn hệ thống Số đơn vị tài nguyên cấp cho tiến trình Số đơn vị tài nguyên lớn tiến trình u cầu Nếu hệ thống an tồn, đáp ứng cho yêu cầu Thực kiểm tra nhận yêu cầu tài nguyên Mục đích: Đảm bảo trạng thái hệ thống ln an tồn Thời điểm ban đầu (chưa c/cấp tài nguyên), hệ thống an toàn Hệ thống cung cấp tài nguyên đảm bảo an toàn ⇒Hệ thống chuyển từ trạng thái an toàn sang trạng thái an toàn khác Trạng thái an tồn hệ thống gì? Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.5 Phòng tránh bế tắc Notes co Trạng thái an toàn ng c om 193 / 220 g th Có thể cung cấp tài ngun cho tiến trình (đến yêu cầu lớn nhất) theo trật tự mà không xảy bế tắc an Trạng thái hệ thống an toàn cu u 194 / 220 du on Tồn chuỗi an toàn tất tiến trình Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.5 Phịng tránh bế tắc Notes Chuỗi an tồn Chuỗi tiến trình P={P1 , P2 , , Pn } an tồn Với tiến trình Pi , yêu cầu tài nguyên tương lai đáp ứng nhờ vào Lượng tài nguyên có hệ thống Tài nguyên chiếm giữ tất tiến trình Pj (j < i) Trong chuỗi an toàn, Pi yêu cầu tài nguyên Nếu đáp ứng lập tức, Pi đợi Pj kết thúc (j < i) Khi Pj kết thúc giải phóng tài nguyên, Pi nhận tài nguyên cần thiết, thực hiện, giải phóng tài nguyên cung cấp kết thúc Trong chuỗi an tồn Khi Pi kết thúc giải phóng tài nguyên ⇒ Pi+1 nhận tài nguyên cần thiêt kết thúc Tất tiến trình chuỗi an tồn kết thúc Lưu ý: P1 kết thúc tài nguyên hệ thống 195 / 220 có CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.5 Phòng tránh bế tắc Notes Ví dụ minh họa Xem xét hệ thống gồm tiến trình P1 , P2 , P3 tài ngun R có 12 đơn vị Các tiến trình (P1 , P2 , P3 ) yêu cầu tối đa tới (10, 4, 9) đơn vị tài nguyên R Tại thời điểm t0 , tiến trình (P1 , P2 , P3 ) cấp (5, 2, 2) đơn vị tài nguyên R Tại thời điểm (t0 ) hệ thống có an tồn? 196 / 220 c om Hệ thống cấp (5 + + 2) đơn vị, lại đơn vị Các tiến trình (P1 , P2 , P3 ) cịn yêu cầu (5, 2, 7) đơn vị Với đơn vị có, yêu cầu P2 đáp ứng ⇒ P2 chắn kết thúc giải phóng đơn vị R Với + đơn vị, P1 chắn kết thúc,sẽ giải phóng đơn vị Với + + đơn vị P3 chắn kết thúc Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.5 Phịng tránh bế tắc Khơng để hệ thống rơi vào tình trạng khơng an tồn Kiểm tra yêu cầu tài nguyên th Nhận xét: Tại thời điểm t1 tiến trình P3 phải đợi yêu Phương pháp cầu thêm đơn vị tài nguyên, bế tắc loại trừ an Với đơn vị có, yêu cầu P2 đáp ứng ⇒ P2 chắn kết thúc, giải phóng đơn vị R Nhận xét Khi P2 kết thúc số tài nguyên sẵn có hệ thống 4 đơn tài nguyên, P1 P3 đợi xin HệVới thống anvịtồn ⇒ Các tiến trình có thể phải kết thúc thêm đơn vị tài nguyên ⇒ không xảy bế tắc Vậy hệ thống khơng an tồn với dãy (P1 , P3 ) Hệ thống khơng an tồn ⇒ Có khả xảy bế tắc Notes co Tại thời điểm t1 , tiến trình P3 yêu cầu cấp đơn vị tài Phịngngun tránh R bế Hệ tắcthống có an tồn? ng Ở thời điểm t0 tiến trình P1 , P2 , P3 chắn kết thúc ⇒ hệ thống an toàn với dãy an toàn (P2 , P1 , P3 ) g Nếu hệ thống an toàn cung cấp ⇒ Cung cấp on Nếu hệ thống khơng an tồn cung cấp ⇒ Phải đợi Thuật toán Thuật toán dựa vào đồ thị cung cấp tài nguyên du Thuật toán người quản lý nhà băng cu u 197 / 220 Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.5 Phịng tránh bế tắc Notes Thuật tốn dựa vào đồ thị cung cấp tài nguyên Sử dụng kiểu tài nguyên có đơn vị Có chu trình, có bế tắc Thêm vào đồ thị loại cung mới: cung đòi hỏi Pi → Rj Cùng hướng với cung yêu cầu, thể đồ thị −− > Cho biết Pi yêu cầu Rj tương lai Tiến trình tham gia hệ thống, phải thêm tất cung đòi hỏi tương ứng vào đồ thị Khi Pi yêu cầu Rj , cung đòi hỏi Pi → Rj chuyển thành cung yêu cầu Pi → Rj Khi Pi giải phóng Rj , cung sử dụng Rj → Pi chuyển thành cung đòi hỏi Pi → Rj Thuật toán: Yêu cầu tài nguyên Rj tiến trình Pi thỏa mãn việc chuyển cung yêu cầu Pi → Rj thành cung sử dụng Rj → Pi khơng tạo chu trình đồ thị 198 / 220 Khơng chu trình: Hệ thống an tồn Có chu trình: Việc cung cấp tài ngun đẩy hệ thống vào tình trạng khơng an tồn CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.5 Phịng tránh bế tắc Notes Ví dụ Hệ thống: tiến trình P1 , P2 tài nguyên R1 , R2 , loại đơn vị P1 xin R1 , R2 tương lai P1 xin R1 , R2 tương lai R1 P1 yêu cầu tài nguyên R1 Cung đòi hỏi trở thành cung yêu cầu Yêu cầu P1 đáp ứng Cung yêu cầu thành cung sử dụng P1 P2 P2 yêu cầu tài nguyên R2 ⇒ cung đòi hỏi trở thành cung yêu cầu P2 → R2 Nếu đáp ứng ⇒Cung yêu cầu thành cung ⇒ Khi P1 yêu cầu R2 ⇒ P1 ⇒ Khi P2 yêu cầu R1 ⇒ P2 Hệ thống bế tắc Yêu cầu P2 không R2 đáp ứng Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.5 Phịng tránh bế tắc Notes Khơng vượt tổng số tài nguyên hệ thống th Khi tiến trình yêu cầu tài nguyên, hệ thống kiểm tra liệu đáp ứng cho yêu cầu hệ thống có cịn an tồn khơng an Thích hợp cho hệ thống gồm kiểu tài nguyên có nhiều đơn vị Một tiến trình xuất hệ thống cần khai báo số đơn vị lớn kiểu tài nguyên sử dụng co Thuật toán người quản lý nhà băng: Giới thiệu ng c om 199 / 220 sử dụng phải đợi phải đợi g Nếu hệ thống an toàn ⇒ Cung cấp tài nguyên cho u cầu Nếu hệ thống khơng an tồn ⇒ Tiến trình phải đợi on Thuật tốn cần du Các cấu trúc liệu biểu diễn trạng thái phân phối tài ngun Thuật tốn kiểm tra tình trạng an tồn hệ thơng Thuật tốn u cầu tài ngun cu u 200 / 220 Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.5 Phòng tránh bế tắc Notes Các cấu trúc liệu I Hệ thống n số tiến trình hệ thống m số kiểu tài nguyên hệ thống Các cấu trúc liệu Available Vector chiều dài m cho biết số đơn vị tài nguyên sẵn có hệ thống (Available[3] = ⇒?) Max Ma trận n ∗ m cho biết số lượng lớn kiểu tài nguyên tiến trình (Max[2,3] = ⇒?) Allocation Ma trận n ∗ m cho biết số lượng kiểu tài nguyên cấp cho tiến trình (Allocation[2,3] = ⇒?) Need Ma trận n ∗ m số lượng kiểu tài nguyên cần đến tiến trình Need[2,3] = ⇒?) Need[i][j] = Max[i][j] - Allocation[i][j] 201 / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.5 Phòng tránh bế tắc Notes Các cấu trúc liệu II Quy ước X, Y vector độ dài n X ≤ Y ⇔ X [i] ≤ Y [i] ∀i = 1, 2, , n Các dòng ma trận Max,Yêu cầu, Cung cấp xử lý vector Thuật tốn tính tốn vector Các cấu trúc cục Work vector độ dài m cho biết tài nguyên Finish vector độ dài n, kiểu logic cho biết tiến trình có chắn kết thúc khơng Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.5 Phòng tránh bế tắc Notes an th g du on BOOL Safe(Current Resource-Allocation State){ Work←Available for (i : → n) Finish[i]←false flag← true While(flag){ flag←false for (i : → n) if(Finish[i]=false AND Need[i] ≤Work){ Finish[i]← true Work ← Work+Allocation[i] flag← true }//endif }//endwhile for (i : → n) if (Finish[i]=false)return false return true; }//End function co Thuật tốn kiểm tra An tồn ng c om 202 / 220 cu u 203 / 220 Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.5 Phịng tránh bế tắc Notes Ví dụ minh họa Xét hệ thống gồm tiến trình P0 , P1 , P2 , P3 , P4 tài nguyên R0 , R1 , R2 Tài nguyên R0 có 10 đơn vị, R1 có đơn vị, R2 có đơn vị Yêu cầu tài nguyên lớn lượng tài nguyên tiến trình R0 R1 R2 R0 R1 P0 P0 P1 2 P1 P2 P2 P3 2 P3 P4 3 P4 0 Max Allocation Hệ thống có an tồn? Tiến trình P1 u cầu thêm đơn vị R0 đơn vị Tiến trình P4 yêu cầu thêm đơn vị R0 đơn vị Tiến trình P0 yêu cầu thêm đơn vị R1 Cung cấp? cấp R2 0 2 R2 ? R1 ? 204 / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.5 Phòng tránh bế tắc Notes Ví dụ minh họa : Kiểm tra tính an tồn Số tài ngun cịn sẵn hệ thống (R0 , R1 , R2 ) =(3, 3, 2) u cầu cịn lại tiến trình (Need = Max - Allocation) R0 R1 R2 R0 R1 R2 R0 R1 R2 P0 P0 P0 P1 2 P1 0 P1 2 P2 P2 P2 0 P3 2 P3 1 P3 1 P4 3 P4 0 P4 Max Allocation Need Thực thuật toán an tồn Tiến trình Finish Work P0 P1 P2 P3 P4 FFT F F FF T FF T (3, 3, 2) (5, 3, 2) (7, 4, 3) (7, 4, 5) (7, 5, 5) (10, 5, 7) Hệ thống an toàn (P1 , P3 , P4 , P0 , P2 ) Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.5 Phòng tránh bế tắc Notes Thuật toán yêu cầu tài nguyên co Request[i] Vector yêu cầu tài nguyên tiến trình Pi Request[3,2] = 2: Tiến trình P3 yêu cầu đơn vị tài nguyên R2 Phân phối tài nguyên dựa kết kiểm tra tính an tồn trạng thái phân phối tài nguyên if(Safe(New Resource Allocation State)) Phân phối cho Pi theo u cầu else Tiến trình Pi phải đợi Khơi phục lại trạng thái cũ (Available, Allocation,Need ) cu u 206 / 220 du on g Available = Available - Request[i] Allocation[i] = Allocation[i] + Request[i] Need[i] = Need[i] - Request[i] th if(Request[i]>Need[i]) Error(Yêu cầu vượt khai báo tài ngun) if(Request[i]>Available) Block(Khơng đủ tài ngun, tiến trình phải đợi) Thiết lập trạng thái phân phối tài nguyên cho hệ thống an Khi Pi yêu cầu tài nguyên, hệ thống thực ng c om 205 / 220 Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.5 Phòng tránh bế tắc Notes Ví dụ minh họa : P1 yêu cầu (1, 0, 2) Request[1]≤Available ((1, 0, 2) ≤ (3, 3, 2)) ⇒ Có thể cung cấp Nếu cung cấp : Available = ( , 3, 0) R0 R1 R2 R0 R1 R2 P0 P0 P1 P1 P2 P2 0 P3 1 P3 1 P4 0 P4 Allocation Need Thực thuật toán an tồn Tiến trình Finish Work P0 P1 P2 P3 P4 FFT F F FF T FF T (2, 3, 0) (5, 3, 2) (7, 4, 3) (7, 4, 5) (7, 5, 5) (10, 5, 7) Yêu cầu chấp nhận 207 / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.5 Phịng tránh bế tắc Notes Ví dụ minh họa (tiếp tục) Tiến trình P4 yêu cầu thêm đơn vị R0 đơn vị R2 Request[4] = (3, 0, 3) Available = (2, 3, 0) ⇒ Không đủ tài nguyên, P4 phải đợi Tiến trình P0 yêu cầu thêm đơn vị R1 Request[0]≤Available ((0, 2, 0) ≤ (2, 3, 0)) ⇒ Có thể cung cấp Nếu cung cấp : Available = (2 , 1, 0) Thực thuật tốn an tồn ⇒ Tất tiến trình khơng kết thúc ⇒ Nếu chấp nhận, hệ thống rơi vào trạng thái khơng an tồn ⇒ Đủ tài nguyên không cung cấp P0 phải đợi Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.6 Nhận biết khắc phục co th an Bế tắc xử lý bế tắc Khái niệm bế tắc Điều kiện xảy bế tắc Các phương pháp xử lý bế tắc Phòng ngừa bế tắc Phòng tránh bế tắc Nhận biết khắc phục du on g Notes ng c om 208 / 220 cu u 209 / 220 Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.6 Nhận biết khắc phục Notes Giới thiệu Nguyên tắc Khơng áp dụng biện pháp phịng ngừa phịng tránh, bế tắc xảy Định kỳ kiểm tra xem bế tắc có xảy khơng Nếu có tìm cách khắc phục Để thực hiện, hệ thống phải cung cấp Thuật toán xác định hệ thống bế tắc khơng Thuật tốn chữa bế tắc Nhận biết bế tắc Thuật toán dựa đồ thị cung cấp tài nguyên Thuật toán bế tắc tổng quát Khắc phục bế tắc Kết thúc tiến trình Trưng dụng tài nguyên 210 / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.6 Nhận biết khắc phục Notes Thuận toán dựa đồ thị cung cấp tài nguyên Áp dụng tài nguyên hệ thống có đơn vị Kiểm tra hệ thống có bế tắc cách kiểm tra chu trình đồ thị Nếu đồ thị có chu trình, hệ thống bế tắc Định kỳ gọi tới thuật tốn kiểm tra chu trình đồ thị Thuật tốn địi hỏi n2 thao tác (n: số đỉnh đồ thị) Sử dụng đồ thị chờ đợi - phiên thu gọn đồ thị cung cấp tài nguyên Chỉ có đỉnh dạng tiến trình Cung chờ đợi Pi → Pj : Tiến trình Pi đợi tiến trình Pj giải phóng tài ngun Pi cần Cung chờ đợi Pi → Pj tồn đồ thị đợi đồ thị phân phối tài nguyên tương ứng tồn đồng thời cung yêu cầu Pi → R cung sử dụngR → Pj Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.6 Nhận biết khắc phục Notes co Đồ thị chờ đợi: Ví dụ P4 R5 P4 th R4 an Đồ thị chờ đợi R3 ng c om 211 / 220 P5 P1 P2 P3 R2 P5 du R1 P3 g P2 on P1 cu u 212 / 220 Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.6 Nhận biết khắc phục Notes Thuật toán bế tắc tổng quát : Giới thiệu Sử dụng cho hệ thống có kiểu tài nguyên gồm nhiều đơn vị Thuật toán tương tự thuật toán người quản lý nhà băng Các cấu trúc liệu Available Vector độ dài m: Tài nguyên sẵn có hệ thống Allocation Ma trận n ∗ m: Tài nguyên cấp cho tiến trình Request Ma trận n ∗ m Tài nguyên tiến trình yêu cầu Các cấu trúc cục Work Vector độ dài m cho biết tài nguyên có Finish Vector độ dài n cho biết tiến trình kết thúc khơng Các qui ước Quan hệ ≤ Vector Xử lý dòng ma trận n ∗ m vector 213 / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.6 Nhận biết khắc phục Notes Thuật toán bế tắc tổng quát BOOL Deadlock(Current Resource-Allocation State){ Work←Available For (i : → n) if(Allocation[i]= 0) Finish[i]←false else Finish[i]=true;//Allocation= không nằm chu trình đợi flag← true While(flag){ flag←false for (i : → n) do//Giả thiết tối ưu, yêu cầu cuối if(Finish[i]=false AND Request[i] ≤Work){ Finish[i]← true Work ← Work+Allocation[i] flag← true }//endif }//endwhile for (i : → n) if (Finish[i]=false) return true; return false;//Finish[i] = false, tiến trình Pi bị bế tắc }//End function Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.6 Nhận biết khắc phục Notes Ví dụ minh họa co tiến trình P0 , P1 , P2 , P3 , P4 ; tài nguyên R0 , R1 , R2 Tài nguyên R0 có đơn vị, R1 có đơn vị, R2 có đơn vị Trạng thái cung cấp tài nguyên thời điểm t0 R2 0 P0 P1 P2 P3 P4 R0 R1 0 0 Request on P1 P2 P3 P4 F F T F F T F F T FF T (0, 1, 0) (3, 1, 3) (5, 2, 4) (7, 2, 4) (7, 2, 6) không bế tắc (P0 , P2 , P3 , P1 , P4 ) cu u 215 / 220 P0 F F T (0, 0, 0) Hệ thống du Tiến trình Finish Work g Tài nguyên có (R0 , R1 , R2 ) =(0, 0, 0) Thực thuật toán bế tắc R2 0 an R0 R1 0 Allocation th P0 P1 P2 P3 P4 ng c om 214 / 220 Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.6 Nhận biết khắc phục Notes Ví dụ minh họa (tiếp) P2 yêu cầu thêm đơn vị tài nguyên R2 Trạng thái cung cấp tài nguyên thời điểm t1 P0 P1 P2 P3 P4 R0 R1 0 Allocation R2 0 P0 P1 P2 P3 P4 R0 R1 0 0 Request R2 2 Thực thuật tốn bế tắc Tiến trình P0 P1 P2 P3 Finish F F T F F F F F F Work (0, 0, 0) (0, 1, 0) P0 kết thúc hệ thống bế tắc Các tiến trình chờ đợi lẫn (P1 , P2 , P3 , P4 ) P4 FF 216 / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.6 Nhận biết khắc phục Notes Khắc phục bế tắc: Phương pháp kết thúc tiến trình Nguyên tắc: Hủy bỏ tiến trình tình trạng bế tắc lấy lại tài nguyên cấp cho tiến trình bị hủy bỏ Hủy bỏ tất tiến trình Nhanh chóng hủy bỏ bế tắc Quá tốn Các tiến trình bị hủy bỏ gần kết thúc Hủy bỏ tiến trình bế tắc khơng xảy Sau hủy bỏ, phải kiểm tra xem bế tắc cịn tồn khơng Thuật tốn kiểm tra bế tắc có độ phức tạp m ∗ n2 Cần thứ tự tiến trình bị hủy bỏ để phá vỡ bế tắc Độ ưu tiên tiến trình Tiến trình tồn bao lâu, cịn kết thúc Tài nguyên tiến trình chiếm giữ, cần để kết thúc Vấn đề hủy bỏ tiến trình Tiến trình cập nhật file ⇒ File khơng hồn chỉnh Tiến trình sử dụng máy in ⇒ Reset trạng thái máy in Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 5.6 Nhận biết khắc phục Notes co Khắc phục bế tắc: Phương pháp trưng dụng tài nguyên Nguyên tắc: Trưng dụng liên tục vài tài nguyên từ số tiến trình bế tắc cho tiến trình khác đến bế tắc hủy bỏ an Các vấn đề cần quan tâm Lựa chọn nạn nhân (victim) th Tài nguyên tiến trình chọn? Trật tự trưng dụng để chi phí nhỏ nhất? Lượng tài nguyên nắm giữ, thời gian sử dụng Quay lui (Rollback) g ng c om 217 / 220 on Quay lui tới trạng thái an tồn trước bắt đầu lại u cầu lưu giữ thơng tin trạng thái t/trình thực Đói tài ngun (Starvation) du Một tiến trình bị trưng dụng nhiều lần ⇒chờ đợi vô hạn Giải pháp: ghi lại số lần bị trưng dụng cu u 218 / 220 Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc Notes Tổng kết Bế tắc tình trạng hay nhiều tiến trình chờ đợi độc lập kiện xảy hoạt động tiến trình đợi Bế tắc xảy hội đủ điều kiện Tồn tài nguyên găng Phải chờ đợi trước vào đoạn găng Không tồn hệ thống phân phối lại tài nguyên Tồn tượng chờ đợi vịng trịn Để xử lý bế tắc có lớp thuật tốn Phịng ngừa bế tắc Tác động vào điều kiện xảy bế tắc Dự báo phịng tránh Ngăn ngừa hệ thống rơi vào tình trạng dẫn đến bế tắc Nhận biết khắc phục Cho phép bế tắc xảy ra, bế tắc khắc phục sau 219 / 220 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Notes Kết luận Tiến trình Khái niệm tiến trình Điều phối tiến trình (Process Scheduling) Thao tác tiến trình Hợp tác tiến trình Truyền thơng liên tiến trình Luồng (Thread) Giới thiệu Mơ hình đa luồng Cài đặt luồng với Windows Vấn đề đa luồng Điều phối CPU Các khái niệm Tiêu chuẩn điều phối Các thuật toán điều phối CPU Điều phối đa xử lý Tài nguyên găng điều độ tiến trình Khái niệm tài nguyên găng Phương pháp khóa Phương pháp kiểm tra xác lập Kỹ thuật đèn báo Ví dụ đồng tiến trình Cơng cụ điều độ cấp cao Bế tắc xử lý bế tắc Khái niệm bế tắc Điều kiện xảy bế tắc Các phương pháp xử lý bế tắc Phòng ngừa bế tắc Phòng tránh bế tắc Nhận biết khắc phục cu u du on g th an co Notes ng c om 220 / 220 Notes CuuDuongThanCong.com https://fb.com/tailieudientucntt ... processor quan với hệ điều hành đa nhiệm du Luân chuyển CPU tiến trình → khai thác hệ thống hiệu Điều phối processor tảng thiết kế hệ điều hành cu u 83 / 22 0 Chương 2: Quản lý tiến trình Điều phối CPU... / 22 0 Chương 2: Quản lý tiến trình Điều phối CPU 3.3 Các thuật toán điều phối CPU Notes Điều phối CPU Các khái niệm Tiêu chuẩn điều phối Các thuật toán điều phối CPU Điều phối đa xử lý 90 / 22 0... (chat) cu u 80 / 22 0 Chương 2: Quản lý tiến trình Điều phối CPU Notes Nội dung Tiến trình Luồng (Thread) Điều phối CPU Tài nguyên găng điều độ tiến trình Bế tắc xử lý bế tắc 81 / 22 0 CuuDuongThanCong.com

Ngày đăng: 19/06/2021, 10:17

Mục lục

  • Tin trình

    • Khái nim tin trình

    • Ðiu phi tin trình (Process Scheduling)

    • Thao tác trên tin trình

    • Hp tác tin trình

    • Truyn thông liên tin trình

    • Lung (Thread)

      • Gii thiu

      • Mô hình a lung

      • Cài t lung vi Windows

      • Ðiu phi CPU

        • Các khái nim c ban

        • Tiêu chun iu phi

        • Các thut toán iu phi CPU

        • Ðiu phi a x lý

        • Tài nguyên gang và iu tin trình

          • Khái nim tài nguyên gang

          • Phng pháp khóa trong

          • Phng pháp kim tra và xác lp

          • Ky thut èn báo

          • Ví du v ng b tin trình

          • Công cu iu cp cao

          • B tc và x lý b tc

            • Khái nim b tc

            • Ðiu kin xay ra b tc

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

  • Đang cập nhật ...

Tài liệu liên quan