Bài giảng Nguyên lý hệ điều hành - Chương 2: Quản lý tiến trình. Những nội dung chính trong chương này gồm có: 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. Mời các bạn cùng tham khảo.
ng c o Hệ điều hành co HỆ ĐIỀU HÀNH th an Phạm Đăng Hải haipd@soict.hust.edu.vn u du o ng Bộ mơn Khoa học Máy tính Viện Cơng nghệ Thơng tin & Truyền Thông CuuDuongThanCong.com / 220 Ngày 29 tháng năm 2018 https://fb.com/tailieudientucntt an co ng c o Chương 2: Quản lý tiến trình u du o ng th Chương Quản lý tiến trình CuuDuongThanCong.com / 220 https://fb.com/tailieudientucntt .c o Chương 2: Quản lý tiến trình Khi chương trình thực ng Giới thiệu co Được cung cấp tài nguyên (CPU, nhớ, thiết bị vào/ra .) để hồn thành cơng việc an Tài nguyên cấp bắt đầu chương trình hay chương trình thực Gọi tiến trình (process) u du o ng th 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 ) CuuDuongThanCong.com / 220 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 https://fb.com/tailieudientucntt .c o Chương 2: Quản lý tiến trình co ng 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 u du o ng th an CuuDuongThanCong.com / 220 https://fb.com/tailieudientucntt .c o Chương 2: Quản lý tiến trình Tiến trình co ng 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 u du o ng th an CuuDuongThanCong.com / 220 https://fb.com/tailieudientucntt ng Tiến trình co c o Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình Khái niệm tiến trình an Đ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 u du o ng Truyền thơng liên tiến trình CuuDuongThanCong.com / 220 https://fb.com/tailieudientucntt .c o Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình ng Tiến trình Trạng thái hệ thống u du o ng th an co 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ị CuuDuongThanCong.com / 220 https://fb.com/tailieudientucntt .c o Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình ng Tiến trình Trạng thái hệ thống co 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ị an Thực chương trình ⇒Trạng thái hệ thống thay đổi q1 q2 u du o ng q0 th Thay đổi rời rạc, theo câu lệnh thực CuuDuongThanCong.com / 220 https://fb.com/tailieudientucntt qn c o Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình ng Tiến trình Trạng thái hệ thống co 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ị an Thực chương trình ⇒Trạng thái hệ thống thay đổi q1 q2 ng q0 th Thay đổi rời rạc, theo câu lệnh thực qn u du o 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 CuuDuongThanCong.com / 220 https://fb.com/tailieudientucntt .c o Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình ng Tiến trình Trạng thái hệ thống co 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ị an Thực chương trình ⇒Trạng thái hệ thống thay đổi q1 q2 qn ng q0 th Thay đổi rời rạc, theo câu lệnh thực du o 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 u ✞ CuuDuongThanCong.com / 220 ☎ Tiến trình thực chương trình ✝ https://fb.com/tailieudientucntt ✆ .c o 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 ng Ví dụ minh họa (tiếp) an R2 0 th R0 R1 0 Allocation ng P0 P1 P2 P3 P4 co 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 0 Request u du o Thực thuật tốn bế tắc Tiến trình P0 P1 P2 P3 Finish T F F F Work (0, 1, 0) CuuDuongThanCong.com 216 / 220 https://fb.com/tailieudientucntt R2 2 P4 F .c o 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 ng Ví dụ minh họa (tiếp) an R2 0 th R0 R1 0 Allocation ng P0 P1 P2 P3 P4 co 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 0 Request u du o Thực thuật toán bế tắc Tiến trình P0 P1 P2 P3 Finish T F F F Work (0, 1, 0) CuuDuongThanCong.com 216 / 220 https://fb.com/tailieudientucntt R2 2 P4 F .c o 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 ng Ví dụ minh họa (tiếp) an R2 0 th R0 R1 0 Allocation ng P0 P1 P2 P3 P4 co 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 0 Request u du o Thực thuật toán bế tắc Tiến trình P0 P1 P2 P3 Finish T F F F Work (0, 1, 0) CuuDuongThanCong.com 216 / 220 https://fb.com/tailieudientucntt R2 2 P4 F .c o 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 ng Ví dụ minh họa (tiếp) an R2 0 th R0 R1 0 Allocation ng P0 P1 P2 P3 P4 co 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 0 Request u du o Thực thuật tốn bế tắc Tiến trình P0 P1 P2 P3 Finish T F F F Work (0, 1, 0) CuuDuongThanCong.com 216 / 220 https://fb.com/tailieudientucntt R2 2 P4 F .c o 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 ng Ví dụ minh họa (tiếp) an R2 0 th R0 R1 0 Allocation ng P0 P1 P2 P3 P4 co 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 0 Request R2 2 u du o Thực thuật tốn bế tắc Tiến trình P0 P1 P2 P3 P4 Finish T F F F F Work (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 ) CuuDuongThanCong.com 216 / 220 https://fb.com/tailieudientucntt .c o 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 ng Khắc phục bế tắc: Phương pháp kết thúc tiến trình u du o ng th an co 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ỏ CuuDuongThanCong.com 217 / 220 https://fb.com/tailieudientucntt .c o 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 ng Khắc phục bế tắc: Phương pháp kết thúc tiến trình Hủy bỏ tất tiến trình co 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ỏ an Nhanh chóng hủy bỏ bế tắc Quá tốn u du o ng th Các tiến trình bị hủy bỏ gần kết thúc CuuDuongThanCong.com 217 / 220 https://fb.com/tailieudientucntt .c o 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 ng Khắc phục bế tắc: Phương pháp kết thúc tiến trình Hủy bỏ tất tiến trình co 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ỏ an 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 th 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 tồn khơng 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 du o Độ ư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 CuuDuongThanCong.com 217 / 220 https://fb.com/tailieudientucntt .c o 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 ng Khắc phục bế tắc: Phương pháp kết thúc tiến trình Hủy bỏ tất tiến trình co 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ỏ an 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 th 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 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 du o Độ ưu tiên tiến trình Tiến trình tồn bao lâu, cịn kết thúc Tài ngun tiến trình chiếm giữ, cịn cần để kết thúc u Vấn đề hủy bỏ tiến trình CuuDuongThanCong.com 217 / 220 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 https://fb.com/tailieudientucntt .c o 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 ng Khắc phục bế tắc: Phương pháp trưng dụng tài nguyên u du o ng th an Các vấn đề cần quan tâm co 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ỏ CuuDuongThanCong.com 218 / 220 https://fb.com/tailieudientucntt .c o 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 ng Khắc phục bế tắc: Phương pháp trưng dụng tài nguyên an Các vấn đề cần quan tâm Lựa chọn nạn nhân (victim) co 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ỏ u du o ng 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 CuuDuongThanCong.com 218 / 220 https://fb.com/tailieudientucntt .c o 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 ng Khắc phục bế tắc: Phương pháp trưng dụng tài nguyên an Các vấn đề cần quan tâm Lựa chọn nạn nhân (victim) co 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ỏ ng 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) u du o Quay lui tới trạng thái an tồn trước bắt đầu lại Yêu cầu lưu giữ thông tin trạng thái t/trình thực CuuDuongThanCong.com 218 / 220 https://fb.com/tailieudientucntt .c o 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 ng Khắc phục bế tắc: Phương pháp trưng dụng tài nguyên an Các vấn đề cần quan tâm Lựa chọn nạn nhân (victim) co 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ỏ ng 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) Đói tài nguyên (Starvation) u du o Quay lui tới trạng thái an toà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 CuuDuongThanCong.com 218 / 220 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 https://fb.com/tailieudientucntt .c o Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc ng Tổng kết an co 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 th 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 ng Để xử lý bế tắc có lớp thuật tốn Phịng ngừa bế tắc du o 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 u Nhận biết khắc phục CuuDuongThanCong.com 219 / 220 Cho phép bế tắc xảy ra, bế tắc khắc phục sau https://fb.com/tailieudientucntt .c o Chương 2: Quản lý tiến trình 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 u du o ng th an co 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ý CuuDuongThanCong.com 220 / 220 ng Kết luận https://fb.com/tailieudientucntt ...an co ng c o Chương 2: Quản lý tiến trình u du o ng th Chương Quản lý tiến trình CuuDuongThanCong.com / 22 0 https://fb.com/tailieudientucntt .c o Chương 2: Quản lý tiến trình Khi chương trình... "_start()" (hàm hệ điều hành) CuuDuongThanCong.com 10 / 22 0 https://fb.com/tailieudientucntt .c o Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình ng Thực chương trình Hệ điều hành... PCB tài nguyên cấp giải phóng CuuDuongThanCong.com 20 / 22 0 https://fb.com/tailieudientucntt .c o Chương 2: Quản lý tiến trình Tiến trình 1 .2 Điều phối tiến trình du o ng th an co ng Bộ điều phối