Bài giảng Hệ điều hành - Chương 2: Quản lý tiến trình cung cấp cho người học các kiến thức: Tiến trình, luồng, đ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.
Hệ điều hành HỆ ĐIỀU HÀNH Phạm Đăng Hải haipd-fit@mail.hut.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 19 tháng năm https://fb.com/tailieudientucntt ng.com / 201 2011 Chương 2: Quản lý tiến trình Chương Quản lý tiến trình ng.com https://fb.com/tailieudientucntt / 201 Chương 2: Quản lý tiến trình Giới thiệu Chương trình thực Được cung cấp tài nguyên (CPU, nhớ, thiết bị vào/ra .) để hoàn thành công việc Tài nguyên cấp khởi tạo tiến trình hay tiến trình thực Gọi tiến trình (process) Hệ thống 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 https://fb.com/tailieudientucntt ng.com / 201 Chương 2: Quản lý tiến trình Nội dung ng.com https://fb.com/tailieudientucntt / 201 Chương 2: Quản lý tiến trình Tiến trình 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 ng.com https://fb.com/tailieudientucntt / 201 Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình 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 ng.com https://fb.com/tailieudientucntt / 201 Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình Định nghĩa tiến trình Là 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 ng.com https://fb.com/tailieudientucntt / 201 Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình Định nghĩa tiến trình Là 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 Là chương trình thực Tài nguyên tối thiểu cần có Bộ nhớ cho mã chương trình liệu Các ghi processor phục vụ cho trình thực chương trình Tiến trình >< chương trình Chương trình: thực thể thụ động (nội dung file đĩa) Tiến trình: thực thể chủ động (bộ đếm lệnh, tập tài ngun) Một chương trình ⇒Được thực tiến trình khác nhau,với liệu khác (một chương trình, nhiều tiến trình) ⇒Gọi tới nhiều tiến trình ng.com https://fb.com/tailieudientucntt / 201 Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình Định nghĩa tiến trình Chương trình gồm Mã chương trình: Lệnh máy (CD2190EA ) Dữ liệu: Biến lưu trữ sử dụng nhớ 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ư viện liên kết động: không dịch & liên kết với chương trình (DLL) Quá trình dịch chương trình ng.com https://fb.com/tailieudientucntt / 201 Chương 2: Quản lý tiến trình Tiến trình 1.1 Khái niệm tiến trình Định nghĩa tiến trình Thực chương trình ng.com https://fb.com/tailieudientucntt / 201 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 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 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) ng.com https://fb.com/tailieudientucntt 197 / 201 R2 2 P4 F 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 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 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) ng.com https://fb.com/tailieudientucntt 197 / 201 R2 2 P4 F 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 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 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) ng.com https://fb.com/tailieudientucntt 197 / 201 R2 2 P4 F 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 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 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) ng.com https://fb.com/tailieudientucntt 197 / 201 R2 2 P4 F 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.com 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 P4 Finish T F F F F Work (0, 1, 0) P0 kết thúc hệ thống bế tắc https://fb.com/tailieudientucntt Các tiến trình chờ đợi lẫn (P1 , P2 , P3 , P4 ) 197 / 201 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 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ỏ ng.com https://fb.com/tailieudientucntt 198 / 201 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 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 ng.com https://fb.com/tailieudientucntt 198 / 201 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 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 ng.com https://fb.com/tailieudientucntt 198 / 201 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 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 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 ngun tiến trình chiếm giữ, cịn 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ìnhhttps://fb.com/tailieudientucntt sử dụng máy in ⇒ Reset trạng thái máy in ng.com 198 / 201 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 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ỏ Các vấn đề cần quan tâm ng.com https://fb.com/tailieudientucntt 199 / 201 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 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ỏ Các vấn đề cần quan tâm Lựa chọn nạn nhân (victime) 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 ng.com https://fb.com/tailieudientucntt 199 / 201 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 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ỏ Các vấn đề cần quan tâm Lựa chọn nạn nhân (victime) 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) 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 ng.com https://fb.com/tailieudientucntt 199 / 201 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 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ỏ Các vấn đề cần quan tâm Lựa chọn nạn nhân (victime) 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) 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 nguyên (Starvation) Một tiến trình bị trưng dụng q nhiều lần ⇒chờ đợi vơ hạn Giải pháp: ghi lại số lần bị trưng dụng ng.com https://fb.com/tailieudientucntt 199 / 201 Chương 2: Quản lý tiến trình Bế tắc xử lý bế tắc 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 https://fb.com/tailieudientucntt ng.com 200 / 201 Chương 2: Quản lý tiến trình 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 Đ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ý ng.com Tài nguyên găng điều độ tiến trình Khái niệm tài ngun 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 https://fb.com/tailieudientucntt 201 / 201 ... 201 Chương 2: Quản lý tiến trình Tiến trình 1.3 Thao tác tiến trình Thao tác tiến trình Tạo tiến trình Kết thúc tiến trình ng.com https://fb.com/tailieudientucntt 25 / 201 Chương 2: Quản lý tiến. .. tiến trình Tiến trình 1.3 Thao tác tiến trình 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. .. https://fb.com/tailieudientucntt Chương 2: Quản lý tiến trình Tiến trình 1.4 Hợp tác tiến trình 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