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