Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 280 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
280
Dung lượng
10,03 MB
Nội dung
Hệ Điều Hành (Nguyên lý hệ điều hành) Đỗ Quốc Huy huydq@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 Chương Quản lý tiến trình ① Định nghĩa tiến trình Chương Quản lý tiến trình Tiến trình (nhắc lại) lKhi chương trình thực l Được cung cấp tài nguyên (CPU, nhớ, thiết bị vào/ra .) để hoàn thành công việc l Tài nguyên cấp khi: l Bắt đầu chương trình l Trong chương trình thực lGọi tiến trình (process) lHệ thống bao gồm tập tiến trình thực đồng thời l Tiến trình hệ điều hành Thực mã lệnh hệ thống l Tiến trình người dùng Thực mã lệnh người dùng lTiến trình chứa nhiều tiểu trình lTrách nhiệm Hệ điều hành: l Đảm bảo họat động tiến trình tiểu trình (luồng) l Tạo/xóa tiến trình (người dùng, hệ thống) l Điều phối tiến trình l 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 Chương Quản lí tiến trình ① 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 Quản lí tiến trình Tiến trình 1.1 Khái niệm tiến trình l Khái niệm tiến trình l Điều phối tiến trình (Process Scheduling) l Thao tác tiến trình l Hợp tác tiến trình l Truyền thơng liên tiến trình Chương Quản lí tiến trình Tiến trình 1.1 Khái niệm tiến trình * Trạng thái hệ thống l Vi xử lý: Giá trị ghi l Bộ nhớ: Nội dung ô nhớ l Thiết bị ngoại vi: Trạng thái thiết bị l Thực chương trình ⇒Trạng thái hệ thống thay đổi l Thay đổi rời rạc, theo câu lệnh thực l Tiến trình dãy thay đổi trạng thái hệ thống l Xuất phát từ trạng thái ban đầu l 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 Tiến trình thực chương trình Chương 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 >< chương trình l Chương trình: thực thể thụ động (nội dung file đĩa) l Mã chương trình: Lệnh máy (CD2190EA ) l Dữ liệu: l Biến lưu trữ sử dụng nhớ l Biến toàn cục l Biến cung cấp động (malloc, new, ) l Biến stack (tham số hàm, biến cục bộ) l Thư viện liên kết động (DLL) l Không dịch & liên kết với chương trình Khi chương trình thực hiện, tài nguyên tối thiểu cần có l Bộ nhớ cho mã chương trình liệu l Các ghi VXL phục vụ cho trình thực l Tiến trình: thực thể chủ động (bộ đếm lệnh, tập tài ngun) Một chương trình l Chỉ phần trạng thái tiến trình l Một chương trình, nhiều tiến trình( liệu khác nhau) VD: gcc hello.c || gcc baitap.c l Gọi tới nhiều tiến trình Chương Quản lí tiến trình Tiến trình 1.1 Khái niệm tiến trình Dịch thực hiên chương trình Chương Quản lí tiến trình Tiến trình 1.1 Khái niệm tiến trình Dịch thực hiên chương trình l Hệ điều hành tạo tiến trình phân phối vùng nhớ cho l Bộ thực (loader/exec) l Đọc dịch (interprets) file thực thi (header file) l 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 l Đặt tham số dòng lệnh, biến môi trường (argc, argv, envp) vào stack l 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) l 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ập đến "chương trình" l 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 ngun Chương Quản lí tiến trình Tiến trình 1.1 Khái niệm tiến trình Trạng thái tiến trình Khi thực hiện, tiến trình thay đổi trạng thái l Khởi tạo (New) Tiến trình khởi tạo l Sẵn sàng (Ready) Tiến trình đợi sử dụng processor vật lý l Thực (Running) Các câu lệnh tiến trình thực l Chờ đợi (Waiting) Tiến trình chờ đợi kiện xuất (sự hồn thành thao tác vào/ra) l Kết thúc (Terminated) Tiến trình thực xong Trạng thái tiến trình phần hoạt động tiến trình Chương Quản lí tiến trình 5.Bế tắc xử lí bế tắc 5.6 Nhận biết khắc phục Ví dụ minh họa R0 R1 R2 P0 0 0 P1 2 P2 0 1 P3 0 0 P4 R0 R1 R2 P0 P1 P2 P3 P4 Request Allocation l Tài nguyên có (R0, R1, R2) =(0, 0, 0) Tiến trình Finish Work P0 T P1 P2 FF F (0,1,0) P3 P4 F F Chương Quản lí tiến trình 5.Bế tắc xử lí bế tắc 5.6 Nhận biết khắc phục Ví dụ minh họa R0 R1 R2 P0 0 0 P1 2 P2 0 1 P3 0 0 P4 R0 R1 R2 P0 P1 P2 P3 P4 Request Allocation l Tài nguyên có (R0, R1, R2) =(0, 0, 0) Tiến trình Finish Work P0 T P1 P2 F T (3,1,3) P3 F P4 F Chương Quản lí tiến trình 5.Bế tắc xử lí bế tắc 5.6 Nhận biết khắc phục Ví dụ minh họa R0 R1 R2 P0 0 0 P1 2 P2 0 1 P3 0 0 P4 R0 R1 R2 P0 P1 P2 P3 P4 Request Allocation l Tài nguyên có (R0, R1, R2) =(0, 0, 0) Tiến trình Finish Work P0 T P1 P2 F T (5,2,4) P3 T P4 FF Chương Quản lí tiến trình 5.Bế tắc xử lí bế tắc 5.6 Nhận biết khắc phục Ví dụ minh họa R0 R1 R2 P0 0 0 P1 2 P2 0 1 P3 0 0 P4 R0 R1 R2 P0 P1 P2 P3 P4 Request Allocation l Tài nguyên có (R0, R1, R2) =(0, 0, 0) Tiến trình Finish Work P0 T P1 P2 FF T (5,2,4) P3 T P4 F Chương Quản lí tiến trình 5.Bế tắc xử lí bế tắc 5.6 Nhận biết khắc phục Ví dụ minh họa R0 R1 R2 P0 0 0 P1 2 P2 0 1 P3 0 0 P4 R0 R1 R2 P0 P1 P2 P3 P4 Request Allocation l Tài nguyên có (R0, R1, R2) =(0, 0, 0) Tiến trình Finish Work P0 T P1 P2 T T (7,2,4) P3 T P4 F Chương Quản lí tiến trình 5.Bế tắc xử lí bế tắc 5.6 Nhận biết khắc phục Ví dụ minh họa R0 R1 R2 P0 0 0 P1 2 P2 0 1 P3 0 0 P4 R0 R1 R2 P0 P1 P2 P3 P4 Request Allocation l Tài nguyên có (R0, R1, R2) =(0, 0, 0) Tiến trình Finish Work P0 T P1 P2 T T (7,2,6) P3 T P4 T Hệ thống không bế tắc (P0, P2, P3, P1, P4) Chương Quản lí tiến trình 5.Bế tắc xử lí bế tắc 5.6 Nhận biết khắc phục Ví dụ minh họa l thời điểm t1: P2 yêu cầu thêm đơn vị tài nguyên R2 l Trạng thái cung cấp tài nguyên R0 R1 R2 R0 R1 R2 P0 P0 0 P1 0 P1 2 P2 3 P2 0 P3 1 P3 0 P4 0 P4 Allocation l Request Tài nguyên có (R0, R1, R2) =(0, 0, 0) Chương Quản lí tiến trình 5.Bế tắc xử lí bế tắc 5.6 Nhận biết khắc phục Ví dụ minh họa R0 R1 R2 P0 0 0 P1 2 P2 0 1 P3 0 0 P4 R0 R1 R2 P0 P1 P2 P3 P4 Request Allocation Tiến trình Finish Work P0 F P1 P2 F F (0,0,0) P3 P4 F F Chương Quản lí tiến trình 5.Bế tắc xử lí bế tắc 5.6 Nhận biết khắc phục Ví dụ minh họa R0 R1 R2 P0 0 0 P1 2 P2 0 1 P3 0 0 P4 R0 R1 R2 P0 P1 P2 P3 P4 Request Allocation Tiến trình Finish Work P0 T P1 P2 FF F (0,1,0) P3 FF P4 FF Chương Quản lí tiến trình 5.Bế tắc xử lí bế tắc 5.6 Nhận biết khắc phục Ví dụ minh họa R0 R1 R2 P0 0 0 P1 2 P2 0 1 P3 0 0 P4 R0 R1 R2 P0 P1 P2 P3 P4 Request Allocation Tiến trình Finish Work P0 T P1 P2 FF F P3 FF P4 FF (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) Chương Quản lí tiến trình 5.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ỏ l Hủy bỏ tất tiến trình l Nhanh chóng hủy bỏ bế tắc l Quá tốn l Các tiến trình bị hủy bỏ gần kết thúc l Hủy bỏ tiến trình bế tắc không xảy l Sau hủy bỏ, phải kiểm tra xem bế tắc tồn khơng l Thuật tốn kiểm tra bế tắc có độ phức tạp m ∗ n2 l Cần thứ tự tiến trình bị hủy bỏ để phá vỡ bế tắc l Độ ưu tiên tiến trình l Tiến trình tồn bao lâu, kết thúc l Tài ngun tiến trình chiếm giữ, cần để kết thúc l l Vấn đề hủy bỏ tiến trình l Tiến trình cập nhật file ⇒ File khơng hồn chỉnh l Tiến trình sử dụng máy in ⇒ Reset trạng thái máy in Chương Quản lí tiến trình 5.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 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 l l l chọn nạn nhân (victim) Tài nguyên tiến trình chọn? Trật tự trưng dụng để chi phí nhỏ Lượng tài nguyên nắm giữ, thời gian sử dụng ② Quay lui (Rollback) l Quay lui tới trạng thái an tồn trước bắt đầu lại l u cầu lưu giữ thơng tin trạng thái t/trình thực ③ Đói tài ngun (Starvation) l Một tiến trình bị trưng dụng nhiều lần ⇒chờ đợi vô hạn l Giải pháp: ghi lại số lần bị trưng dụng Chương Quản lí tiến trình 5.Bế tắc xử lí bế tắc 5.6 Nhận biết khắc phục Cách xử lý bế tắc khác ? Chương Quản lí tiến trình 5.Bế tắc xử lí bế tắc Tổng kết l 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 l Bế tắc xảy hội đủ điều kiện l Tồn tài nguyên găng l Phải chờ đợi trước vào đoạn găng l Không tồn hệ thống phân phối lại tài nguyên l Tồn tượng chờ đợi vòng tròn l Để xử lý bế tắc có lớp thuật tốn l Phòng ngừa bế tắc l Tác động vào điều kiện xảy bế tắc l Dự báo phòng tránh l Ngăn ngừa hệ thống rơi vào tình trạng dẫn đến bế tắc l Nhận biết khắc phục l Cho phép bế tắc xảy ra, bế tắc khắc phục sau Chương Quản lí tiến trình 5.Bế tắc xử lí bế tắc 5.6 Nhận biết khắc phục Ví dụ minh họa l tiến trình P0, P1, P2, P3, P4; tài nguyên R0, R1, R2 l Tài nguyên R0 có đơn vị, R1 có đơn vị, R2 có đơn vị l Trạng thái cung cấp tài nguyên thời điểm t0 R0 R1 R2 P0 1 P1 P2 P3 P4 R0 R1 R2 P0 0 0 P1 2 P2 0 2 1 P3 0 2 P4 Allocation Request ... lHệ thống bao gồm tập tiến trình thực đồng thời l Tiến trình hệ điều hành Thực mã lệnh hệ thống l Tiến trình người dùng Thực mã lệnh người dùng lTiến trình chứa nhiều tiểu trình lTrách nhiệm Hệ. .. lí tiến trình Tiến trình 1 .2 Điều phối tiến trình Bộ điều phối (Scheduler) Lựa chọn tiến trình hàng đợi l Điều phối cơng việc (Job scheduler; Long-term scheduler) l Điều phối CPU (CPU scheduler;... 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 CPU ⇒ Cần có nhiều tiến trình hệ thống Vấn đề Luân chuyển CPU tiến trình ⇒ Phải có hàng đợi cho tiến trình Hệ thống