Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 419 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
419
Dung lượng
5,5 MB
Nội dung
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 2011 / 201 Chương 2: Quản lý tiến trình Chương Quản lý tiến trình / 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 / 201 Chương 2: Quản lý tiến trình Nội dung / 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 / 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 / 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 / 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 nguyên) 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 / 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 / 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 / 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) 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) 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) 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) 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 R2 2 Thực thuật toá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 ) 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ỏ 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 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 toá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, kết thúc Tài nguyên tiến trình chiếm giữ, cần để kết thúc 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 toá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, 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 hoàn chỉnh Tiến trình sử dụng máy in ⇒ Reset trạng thái máy in 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 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 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 toà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 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 toà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 Đói tài nguyên (Starvation) 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 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 toá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 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ý 201 / 201 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 [...]... } 29 / 20 1 Chương 2: Quản lý tiến trình 1 Tiến trình 1.4 Hợp tác tiến trình 1 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 trên tiến trình Hợp tác tiến trình Truyền thông liên tiến trình 30 / 20 1 Chương 2: Quản lý tiến trình 1 Tiến trình 1.4 Hợp tác tiến trình Phân loại tiến trình Các tiến trình tuần tự Điểm bắt đầu của tiến trình này nằm sau điểm kết thúc của tiến. .. gian) hoặc tiến trình đưa ra lời gọi hệ thống (thực hiện và ra) Lưu đồ của chuyển CPU giữa các t /trình( Silberschatz 20 02) 23 / 20 1 Chương 2: Quản lý tiến trình 1 Tiến trình 1.3 Thao tác trên tiến trình 1 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 trên tiến trình Hợp tác tiến trình Truyền thông liên tiến trình 24 / 20 1 Chương 2: Quản lý tiến trình 1 Tiến trình 1.3... Thao tác trên tiến trình Thao tác trên tiến trình Tạo tiến trình Kết thúc tiến trình 25 / 20 1 Chương 2: Quản lý tiến trình 1 Tiến trình 1.3 Thao tác trên tiến trình Tạo tiến trình Tiến trình có thể tạo nhiều tiến trình mới cùng hoạt động (CreateProcess(), fork()) Tiến trình tạo: tiến trình cha Tiến trình được tạo: tiến trình con Tiến trình con có thể tạo tiến trình con khác ⇒Cây tiến trình Vấn đề phân... nhiều tiến trình ở trạng thái chờ đợi hoặc sẵn sàng 11 / 20 1 Chương 2: Quản lý tiến trình 1 Tiến trình 1.1 Khái niệm tiến trình Trạng thái tiến trình II Lưu đồ thay đổi trạng thái tiến trình (Silberschatz 20 02) 12 / 20 1 Chương 2: Quản lý tiến trình 1 Tiến trình 1.1 Khái niệm tiến trình Khối điều khiển tiến trình (PCB: Process Control Block) Mỗi tiến trình được thể hiện trong hệ thống bởi một khối điều. .. 20 1 Chương 2: Quản lý tiến trình 1 Tiến trình 1 .2 Điều phối tiến trình Các hàng đợi tiến trình II Các tiến trình di chuyển giữa hàng đợi khác nhau Tiến trình mới tạo, được đặt trong hàng đợi sẵn sàng, và đợi cho tới khi được lựa chọn để thực hiện 18 / 20 1 Chương 2: Quản lý tiến trình 1 Tiến trình 1 .2 Điều phối tiến trình Các hàng đợi tiến trình III Tiến trình đã được chọn và đang thực hiên 1 2 3 Đưa ra... nguyên Tiến trình con lấy tài nguyên từ hệ điều hành Tiến trình con lấy tài nguyên từ tiến trình cha Tất cả các tài nguyên Một phần tài nguyên của tiến trình cha (ngăn ngừa việc tạo quá nhiều tiến trình con) Vấn đề thực hiện Tiến trình cha tiếp tục thực hiện đồng thời với tiến trình con Tiến trình cha đợi tiến trình con kết thúc 26 / 20 1 Chương 2: Quản lý tiến trình 1 Tiến trình 1.3 Thao tác trên tiến trình. .. Thao tác trên tiến trình Hợp tác tiến trình Truyền thông liên tiến trình 15 / 20 1 Chương 2: Quản lý tiến trình 1 Tiến trình 1 .2 Điều phối tiến trình Giới thiệu Mục đích Sử dụng tối đa thời gian của CPU ⇒ Cần có nhiều tiến trình trong hệ thống Vấn đề Luân chuyển CPU giữa các tiến trình ⇒ Phải có hàng đợi cho các tiến trình Hệ thống một processor ⇒ Một tiến trình thực hiện ⇒ Các tiến trình khác phải đợi... (hệ điều hành) Chương trình bắt đầu thực hiện tại "_start()" Hàm này gọi tới hàm main()(hàm của chương trình) ⇒ "Tiến trình" đang thực hiện, không còn đề cập đến "chương trình" nữa Khi hàm main() kết thúc, OS gọi tới hàm "_exit()" để hủy bỏ tiến trình và thu hồi tài nguyên 10 / 20 1 Chương 2: Quản lý tiến trình 1 Tiến trình 1.1 Khái niệm tiến trình Định nghĩa tiến trình Thực hiện một chương trình Hệ điều. .. con khi Tiến trình con sử dụng vượt quá mức tài nguyên được cấp Nhiệm vụ cung cấp cho tiến trình con không còn cần thiết nữa Tiến trình cha kết thúc và hệ điều hành không cho phép tiến trình con tồn tại khi tiến trình cha kết thúc ⇒Cascading termination VD, kết thúc hệ thống 27 / 20 1 Chương 2: Quản lý tiến trình 1 Tiến trình 1.3 Thao tác trên tiến trình Một số hàm với tiến trình trong WIN 32 API CreateProcess(... của chương trình) ⇒ "Tiến trình" đang thực hiện, không còn đề cập đến "chương trình" nữa Khi hàm main() kết thúc, OS gọi tới hàm "_exit()" để hủy bỏ tiến trình và thu hồi tài nguyên ✞ ☎ Tiến trình là chương trình đang thực thi ✝ 10 / 20 1 ✆ Chương 2: Quản lý tiến trình 1 Tiến trình 1.1 Khái niệm tiến trình Trạng thái tiến trình I Khi thực hiện, tiến trình thay đổi trạng thái Trạng thái của tiến trình ... (DLL) Quá trình dịch chương trình / 20 1 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 / 20 1 Chương 2: Quản lý tiến trình Tiến trình 1.1... bế tắc tiến trình / 20 1 Chương 2: Quản lý tiến trình Nội dung / 20 1 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. .. trình Thao tác tiến trình Tạo tiến trình Kết thúc tiến trình 25 / 20 1 Chương 2: Quản lý 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