Bài giảng Hệ điều hành nâng cao - Bài 3: Quản lý tiến trình
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành nâng cao - Bài 3: Quản lý tiến trình", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_he_dieu_hanh_nang_cao_bai_3_quan_ly_tien_trinh.ppt
Nội dung text: Bài giảng Hệ điều hành nâng cao - Bài 3: Quản lý tiến trình
- Bài 3 : QUẢN LÝ TIẾN TRÌNH n Phân chia CPU cho các tiến trình ? n Tiếp cận n Mục tiêu ? n Tổ chức ? n Chiến lược ? n Trạng thái tiến trình ? n Lưu trữ thông tin tiến trình ? n Các thao tác trên tiến trình ? n Bảo vệ tiến trình ? n Trao đổi thông tin giữa các tiến trình ? 1
- Phân chia CPU ? n 1 CPU vật lý : làm thế nào để tạo ảo giác mỗi tiến trình sở hữu CPU riêng của mình ? CPU while(1) n Dispatcher luân { chuyển CPU giữa các interrupt Pcur save state P tiến trình: cur Scheduler gets Pnext n Ngữ cảnh xử lý riêng load state Pnext biệt cho mỗi tiến trình jump to it (PCB) } n Dispatching loop : 2
- Trạng thái tiến trình ? Nhận CPU ready running R R s s Trả CPU CPU CPU blocked Chờ R Nhận R Rs CPU 3
- Khối quản lý tiến trình trong mô hình multiprocesses Process control Block pid PCB State (State, details) Context (IP, Mem, Files ) Relatives ( Dad, children) Scheduling statistic 4
- PCB và TCB trong mô hình multithreads PCB pid Thread Control Block TCB Threads list Context tid (Mem, global State ressources ) (State, details) Relatives Context ( Dad, children) (IP, local stack ) Scheduling statistic 5
- Các thao tác trên tiến trình n Tạo lập tiến trình : n Cấp phát tài nguyên cho tiến trình con ? n Hoạt động của cha và con độc lập n Kết thúc tiến trình : n Thu hồi tài nguyên ? n Eùp buộc kết thúc ? n Thay đổi trạng thái tiến trình : Assign(), Block(), Awake(), Resume(), Suspend () 6
- Trạng thái tiến trình ? n Có nhu cầu Suspend &Resume : n Hệ thống quá tải n Kiểm soát hoạt động của tiến trình con 7
- An ninh trật tự cho môi trường đa tiến trình ! n Bảo vệ tiến trình : n Ngăn cản các tiến trình xâm phạm tài nguyên, can thiệp vàoxử lý của nhau => KGĐC riêng biệt, 2 mode xử lý n Bảo đảm quyền tiến triển xử lý cho mỗi tiến trình => công bằng trong các chiến lược phân phối tài nguyên. n Trao đổi thông tin , phối hợp hoạt động ? n Nhu cầu ? n Vấn đề ? => Chương kế tiếp n Giải pháp ? 8
- Các danh sách tiến trình Ready List P1 P4 P5 Waiting Lists R1 P2 P7 R1 P3 P10 R1 P6 9
- Điều phối tiến trình n Mục tiêu ? n Các cấp độ điều phối n Thời điểm ra quyết định điều phối ? n Đánh giá chiến lược điều phối ? n Một số chiến lược điều phối 10
- Điều phối tiến trình SCHEDULER chọn một tiến trình nhận cpu DISPATCHE R chuyển đổi ngữ cảnh 11
- Chuyển đổi ngữ cảnh (context switching) n Kịch bản : n Lưu ngữ cảnh tiến trình hiện hành n Nạp ngữ cảnh tiến trình được chọn kế tiếp n Chi tiết cụ thể phụ thuộc vào phần cứng n general-purpose & floating point registers, co- processor state n Chi phí chuyển đổi ngữ cảnh : n Giữa các tiến trình ? n Giữa các tiểu trình ? 12
- Chuyển đổi ngữ cảnh giữa các tiến trình P1 P2 User mode System call Kernel mode Dispatcher n Chuyển đổi mode xử lý n Chuyển đổi IP và các thanh ghi khác của CPU n Chuyển đổi không gian địa chỉ 13
- Tiểu trình hạt nhân (Kernel thread) T1 T2 User mode System call Kernel mode Dispatcher n Khái niệm tiểu trình được xây dựng bên trong hạt nhân n Distpatcher làm việc với đơn vị là tiểu trình 14
- Tiểu trình người dùng (User thread) n Khái niệm tiểu trình được hỗ User trợ bởi một thư viện hoạt động mode trong user mode T1 T2 T3 n Distpatcher của hạt nhân làm việc với đơn vị là tiến trình n ThreadDistpatcher làm việc với LWP1 LWP2 đơn vị là tiểu trình n P -– LWP - T n Không cần chuyển đổi chế độ xử lý khi chuyển đổi các tiểu P1 P2 trình cùng thuộc 1 tiến trình. Kernel Kernel mode 15
- Lựa chọn tiến trình ? n Tác vụ của Scheduler n Mục tiêu ? n Sử dụng CPU hiệu quả n Đảm bảo tất cả các tiến trình đều tiến triển xử lý n Tiêu chuẩn lựa chọn ? n Tất cả các tiến trình đều như nhau ? n Đề xuất một độ ưu tiên cho mỗi tiến trình ? n Thời điểm lựa chọn ? (Thời điểm kích hoạt Scheduler()) 16
- Mục tiêu điều phối n Hiệu qủa (Efficiency) Thời gian Đáùp ứng (Response time) Hoàn tất(Turnaround Time = Tquit -Tarrive): Chờ (Waiting Time = T in Ready ) : Thông lượng (Throughput = # jobs/s ) Hiệu suất Tài nguyên Chi phí chuyển đổi n Công bằng ( Fairness) : Tất cả các tiến trình đều có cơ hội nhận CPU 17
- Các cấp độ điều phối n Longterm scheduling : chọn tiến trình kế tiếp được khởi động (mang vao bộ nhớ và nhận trạng thái ready) n Mediumterm scheduling : quyết định chuyển tiến trình đang running sang trạng thái blocked. n Shorterm scheduling : chọn 1 tiến trình ở trạng thái ready để chuyển sang trạng thái running. n Không có sự phân biệt rõ ràng hoàn toàn giữa 3 cấp 18 độ
- Thời điểm ra quyết định điều phối n Điều phối độc quyền (non-preemptive scheduling): tiến trình được chọn độc chiếm CPU n Điều phối không độc quyền (preemptive scheduling): tiến trình được chọn có thể bị « cướp » CPU bởi tiến trình có độ ưu tiên cao hơn 19
- Các chiến lược điều phối § FIFO § RR § SJF § MULTILEVELFEEDBACK § LOTTERY 20
- FIFO – RR -SJF n FIFO run add n RR n SJF add run 21
- Multilevel Feedback priority 22
- Lottery 1 1 1 1 P1 P2 P3 P4 P2 có 25 % cơ hội 1 7 1 1 P1 P2 P3 P4 P2 có 70 % cơ hội 23