Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
408,71 KB
Nội dung
Bài : QUẢN LÝ TIẾN TRÌNH Phân chia CPU cho 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 tiến trình ? Bảo vệ tiến trình ? Trao đổi thông tin tiến trình ? CuuDuongThanCong.com https://fb.com/tailieudientucntt Phaân chia CPU ? CPU vật lý : làm để tạo ảo giác tiến trình sở hữu CPU riêng ? Dispatcher luân chuyển CPU tiến trình: Ngữ cảnh xử lý riêng biệt cho tiến trình (PCB) Dispatching loop : CuuDuongThanCong.com CPU while(1) { interrupt Pcur save state Pcur Scheduler gets Pnext load state Pnext jump to it } https://fb.com/tailieudientucntt Trạng thái tiến trình ? ready Rs CPU Nhaän R CuuDuongThanCong.com Nhaän CPU running Trả CPU Rs CPU blocked Chờ R Rs CPU https://fb.com/tailieudientucntt Khối quản lý tiến trình mô hình multiprocesses Process control Block PCB pid State (State, details) Context (IP, Mem, Files…) Relatives ( Dad, children) Scheduling statistic CuuDuongThanCong.com https://fb.com/tailieudientucntt PCB vaø TCB mô hình multithreads PCB pid Threads list Thread Control Block TCB Context tid (Mem, global ressources…) State (State, details) Relatives Context ( Dad, children) (IP, local stack…) Scheduling statistic CuuDuongThanCong.com https://fb.com/tailieudientucntt Các thao tác 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 ? Hoạt động cha độc lập Kết thúc tiến trình : Thu hồi tài nguyên ? p buộc kết thúc ? Thay đổi trạng thái tiến trình : Assign(), Block(), Awake(), Resume(), Suspend() CuuDuongThanCong.com https://fb.com/tailieudientucntt Trạng thái tiến trình ? Có nhu cầu Suspend &Resume : Hệ thống tải Kiểm soát hoạt động tiến trình CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 tiến trình xâm phạm tài nguyên, can thiệp vàoxử lý => KGĐC riêng biệt, mode xử lý Bảo đảm quyền tiến triển xử lý cho tiến trình => công 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 Giải pháp ? CuuDuongThanCong.com https://fb.com/tailieudientucntt Các danh sách tiến trình Ready List P1 Waiting Lists P4 R1 P2 P7 R1 P3 P10 R1 CuuDuongThanCong.com P5 P6 https://fb.com/tailieudientucntt Điều phối tiến trình Mục tiêu ? Các cấp độ điều phối Thời điểm đị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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 10 Điều phối tiến trình SCHEDULER chọn tiến trình nhận cpu DISPATCH ER chuyển đổi ngữ cảnh CuuDuongThanCong.com https://fb.com/tailieudientucntt 11 Chuyển đổi ngữ cảnh (context switching) Kịch : Chi tiết cụ thể phụ thuộc vào phần cứng Lưu ngữ cảnh tiến trình hành Nạp ngữ cảnh tiến trình chọn general-purpose & floating point registers, coprocessor state… Chi phí chuyển đổi ngữ cảnh : Giữa tiến trình ? Giữa tiểu trình ? CuuDuongThanCong.com https://fb.com/tailieudientucntt 12 Chuyển đổi ngữ cảnh tiến trình P1 P2 User mode System call Dispatcher Kernel mode Chuyển đổi mode xử lý Chuyển đổi IP ghi khác CPU Chuyển đổi không gian địa CuuDuongThanCong.com https://fb.com/tailieudientucntt 13 Tiểu trình hạt nhaân (Kernel thread) T1 T2 User mode System call Dispatcher Kernel mode Khái niệm tiểu trình xây dựng bên hạt nhân Distpatcher làm việc với đơn vị tiểu trình CuuDuongThanCong.com https://fb.com/tailieudientucntt 14 Tiểu trình người dùng (User thread) Khái niệm tiểu trình hỗ trợ thư viện hoạt động user mode Distpatcher hạt nhân làm việc với đơn vị tiến trình ThreadDistpatcher làm việc với đơn vị tiểu trình User mode T1 T2 T3 LWP2 LWP1 P -– LWP - T Không cần chuyển đổi chế độ xử lý chuyển đổi tiểu trình thuộc tiến trình P2 P1 Kernel Kernel CuuDuongThanCong.com https://fb.com/tailieudientucntt 15 Lựa chọn tiến trình ? Tác vụ Scheduler Mục tiêu ? Tiêu chuẩn lựa chọn ? Sử dụng CPU hiệu Đảm bảo tất tiến trình tiến triển xử lý Tất tiến trình ? Đề xuất độ ưu tiên cho tiến trình ? Thời điểm lựa chọn ? (Thời điểm kích hoạt Scheduler()) CuuDuongThanCong.com https://fb.com/tailieudientucntt 16 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 = 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 Công ( Fairness) : Tất tiến trình có hội nhận CPU CuuDuongThanCong.com https://fb.com/tailieudientucntt 17 Các cấp độ điều phối Longterm scheduling : chọn tiến trình khởi động (mang vao nhớ nhận trạng thái ready) Mediumterm scheduling : định chuyển tiến trình running sang trạng thái blocked Shorterm scheduling : chọn tiến trình trạng thái ready để chuyển sang trạng thái running Không có phân biệt rõ CuuDuongThanCong.com https://fb.com/tailieudientucntt 18 Thời điểm định điều phối Điều phối độc quyền (non-preemptive scheduling): tiến trình chọn độc chiếm CPU Điều phối không độc quyền (preemptive scheduling): tiến trình chọn bị « cướp » CPU tiến trình có độ ưu tiên cao CuuDuongThanCong.com https://fb.com/tailieudientucntt 19 Các chiến lược điều phối FIFO RR SJF MULTILEVELFEEDBACK LOTTERY CuuDuongThanCong.com https://fb.com/tailieudientucntt 20 FIFO – RR -SJF FIFO RR SJF run add add run CuuDuongThanCong.com https://fb.com/tailieudientucntt 21 Multilevel Feedback priority CuuDuongThanCong.com https://fb.com/tailieudientucntt 22 Lottery 1 1 P1 P2 P3 P4 1 P1 P2 P3 P4 P2 coù 25 % hội P2 có 70 % hội CuuDuongThanCong.com https://fb.com/tailieudientucntt 23 ... tiến trình ThreadDistpatcher làm việc với đơn vị tiểu trình User mode T1 T2 T3 LWP2 LWP1 P -? ?? LWP - T Không cần chuyển đổi chế độ xử lý chuyển đổi tiểu trình thuộc tiến trình P2 P1 Kernel Kernel... thuộc vào phần cứng Lưu ngữ cảnh tiến trình hành Nạp ngữ cảnh tiến trình chọn keá tieáp general-purpose & floating point registers, coprocessor state… Chi phí chuyển đổi ngữ cảnh : Giữa tiế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