1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Hệ điều hành - Chương 2: CPU scheduling (Lương Minh Huấn)

59 84 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Bài giảng Hệ điều hành - Chương 2: CPU scheduling (Lương Minh Huấn) có nội dung trình bày về các khái niệm cơ bản, 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ý, điều phối processor, điều phối không trưng dụng, điều phối trưng dụng,... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!

TRƯỜNG ĐẠI HỌC SÀI GÒN CHƯƠNG 2: CPU SHEDULING GV: LƯƠNG MINH HUẤN NỘI DUNG I Các khái niệm II Tiêu chuẩn điều phối III Các thuật toán điều phối CPU IV.Điều phối đa xử lý I CÁC KHÁI NIỆM CƠ BẢN ➢Hệ thống có processor => Chỉ có tiến trình thực thời điểm ➢Tiến trình thực (chiếm dụng VXL) phải chờ đợi thao tác vào ▪ Hệ đơn chương: CPU không sử dụng => lãng phí ▪ Hệ đa chương: cố gắng sử dụng CPU (đang rảnh rỗi ) cho tiến trình khác (đang chờ đợi) • Cần nhiều tiến trình sẵn sàng nhớ thời điểm • Khi tiến trình phải chờ, hệ điều hành lấy lại processor để phân cho tiến trình khác I CÁC KHÁI NIỆM CƠ BẢN ➢Điều phối processor quan trọng với hệ điều hành đa nhiệm ▪ Luân chuyển CPU tiến trình => khai thác hệ thống hiệu ➢Điều phối processor tảng thiết kế hệ điều hành I CÁC KHÁI NIỆM CƠ BẢN ➢Chu kỳ CPU-I/O ▪ CPU burst ▪ I/O burst ➢CPU-bound : process có thời gian sử dụng CPU nhiều thời gian sử dụng I/O ➢I/O-bound : process dùng phần lớn thời gian để đợi I/O BỘ ĐIỀU PHỐI CPU ➢Lựa chọn số tiến trình sẵn sàng nhớ cung cấp CPU cho ➢Quyết định điều phối CPU xảy tiến trình: ▪ Chuyển từ trạng thái thực sang trạng thái chờ đợi (yêu cầu vào/ra) (Điều phối không trưng dụng - non-preemptive) ▪ Chuyển từ trạng thái thực sang trạng thái sẵn sàng (hết thời gian sử dụng CPU => ngắt thời gian) (Điều phối trưng dụng – preemptive) ▪ Chuyển từ trạng thái chờ đợi sang trạng thái sẵn sàng (hoàn thành vào/ra) (Điều phối trưng dụng – preemptive) ▪ Tiến trình kết thúc (Điều phối khơng trưng dụng - non-preemptive) BỘ ĐIỀU PHỐI CPU ➢Điều phối không trưng dụng ▪ Tiến trình chiếm CPU giải phóng bởi: • Kết thúc nhiệm vụ • Chuyển sang trạng thái chờ đợi ▪ Khơng địi hỏi phần cứng đặc biệt (đồng hồ ) ▪ Ví dụ: DOS, Win 3.1, Macintosh BỘ ĐIỀU PHỐI CPU ➢Điều phối trưng dụng ▪ Tiến trình phép thực khoảng thời gian ▪ Kết thúc khoảng thời gian định nghĩa trước, ngắt thời gian xuất hiện, điều vận (dispatcher ) kích hoạt để định hồi phục lại tiến trình hay lựa chọn tiến trình khác ▪ Bảo vệ CPU khỏi tiến trình “đói-CPU" ▪ Vấn đề liệu dùng chung: • Tiến trình cập nhật DL bị CPU • Tiến trình 2, giao CPU đọc DL cập nhật ▪ Ví dụ: Hệ điều hành đa nhiệm WinNT, UNIX PHÂN LOẠI CÁC HOẠT ĐỘNG ĐIỀU PHỐI PHÂN LOẠI CÁC HOẠT ĐỘNG ĐIỀU PHỐI ➢Điều phối dài hạn(long-term scheduling): xác định process (new) tiếp tục vào “sâu hơn” hệ thống ▪ Thường có batch system ➢Điều phối trung hạn(medium-term scheduling): xác định process đưa vào (swap in), đưa khỏi (swap out) nhớ ▪ Swap in/out tốn đến vài giây thời gian =>chu kỳ ĐIỀU PHỐI trung hạn vài phút ➢Điều phối ngắn hạn(short-term scheduling): xác định process thực thi ROUND ROBIN ➢Nếu có n process hàng đợi ready, quantum time q, process lấy 1/n thời gian CPU theo khối có kích thước lớn q ▪ Sẽ khơng có process chờ lâu (n -1)q đơn vị thời gian ➢RR sử dụng giả thiết ngầm tất process có tầm quan trọng ngang ▪ Không thể sử dụng RR muốn process khác có độ ưu tiên khác ROUND ROBIN ➢Nhược điểm: ➢Các process dạng CPU-bound “ưu tiên” ▪ Ví dụ: ▪ Một I/O-bound process sử dụng CPU thời gian ngắn quantum time bị blockedđể đợi I/O Và ▪ Một CPU-bound process chạy hết time slice liên tục quay trở hàng đợi ready queue, thường trước I/O bound process bị blocked MULTILEVEL QUEUE SCHEDULING ➢Điều phối hàng đợi đa mức (multilevel queue scheduling): ➢Trường hợp trình phân thành nhóm, ví dụ: interactive batch ➢Hàng đợi ready chia thành nhiều hàng đợi riêng rẽ Ví dụ: ▪ foreground(cho cơng việc cần giao tiếp) ▪ background(cho cơng việc dạng bó) ➢Mỗi hàng đợi có giải thuật điều phối riêng Ví dụ: ▪ foreground: dùng RR ▪ background: dùng FCFS MULTILEVEL QUEUE SCHEDULING ➢Điều phối cần phải thực hàng đợi với ▪ Theo cách cố định(fixed priority scheduling), ví dụ: phục vụ tất process foreground đến background • Có khả xảy trì hỗn vơ hạn định (starvation) ▪ Chia thời gian(time slice) –mỗi hàng đợi lấy khoảng sử dụng CPU định để điều phối cho process Ví dụ: • 80% cho foreground (dùng RR) • 20% cho background (dùng FCFS) MULTILEVEL QUEUE SCHEDULING ➢Độ ưu tiên cao ➢Độ ưu tiên thấp MULTILEVEL FEEDBACK QUEUE ➢Trong hệ thống Multilevel Feedback Queue, điều phối di chuyển process queue tùy theo đặc tính quan sát.Ví dụ: ▪ Nếu process sử dụng CPU lâu, bị di chuyển sang hàng đợi có độ ưu tiên thấp ▪ Nếu process chờ lâu hàng đợi có độ ưu tiên thấp, di chuyển lên hàng đợi có độ ưu tiên cao (aging, giúp tránh starvation) MULTILEVEL FEEDBACK QUEUE ➢ Ví dụ: Có hàng đợi ▪ Q0, dùng RR với quantum 8ms ▪ Q1, dùng RR với quantum 16ms ▪ Q2, dùng FCFS ➢ Giải thuật ▪ Công việc vào hàng đợi Q0 Khi đến lượt, công việc quantumlà milli giây Nếu không trả CPUtrong milli giây, công việc đưa xuống đuôi hàng đợi Q1 ▪ Tại Q1, công việc cho quantumlà 16 milli giây Nếu cơng việc khơngtrả CPU trước hết quantum thìsẽ bị chuyển xuống Q2 ▪ Công việc hàng đợi “cao” preempt công việc hàng đợi “thấp” MULTILEVEL FEEDBACK QUEUE ➢Multilevel Feedback Queue xác định thông số ▪ Có hàng đợi? ▪ Với queue sử dụng giải thuật điều phối nào? ▪ Khi thăng cấp process? ▪ Khi giáng cấp process? IV ĐIỀU PHỐI ĐA XỬ LÝ ➢Nếu có nhiều CPU thực việc chia tải ▪ Phức tạp so với điều phối processor ➢Làm để chia tải? ▪ Asymmetric multiprocessor • Một master processor thực điều phối cho tất processor lại IV ĐIỀU PHỐI ĐA XỬ LÝ ▪ Symmetric multiprocessor (SMP) • Hoặc processor có hàng đợi ready riêng điều phối riêng • Hoặc có hàng đợi ready chung cho tất processors – Một processor chọn làm scheduler cho processor khác – Hoặc processor có điều phối riêng tự chọn process từ hàng đợi chung để thực thi ➢Đa xử lý không đối xứng ▪ Chỉ có processor truy nhập, hàng đợi hủy bỏ vấn đề dung chung sở liệu ▪ Có thể tắc nghẽn processor PROCESSOR AFFINITY ➢Khi process chạy processor, có số liệu cache nhớ cache processor ➢Khi process di dời sang processor khác ▪ Cache processor phải repopulated ▪ Cache processor cũ phải invalidated ▪ =>vấn đề phí tổn CÂN BẰNG TẢI ➢Một processor có nhiều tải, xử lý khác lại rảnh ➢Cân tải sử dụng: ▪ Push migration: task đặc biệt định kỳ kiểm tra tải tất processors công việc đẩy đến processor rảnh ▪ Pull migration: processor rảnh lấy công việc từ processor bận ▪ Một số hệ thống (ví dụ Linux) thực hai ➢Cần phải có cân load balancing processor affinity PHƯƠNG PHÁP ĐÁNH GIÁ GIẢI THUẬT ĐIỀU PHỐI CPU ➢Deterministic modeling ▪ Định nghĩa trước tập tải (workload) khảo sát performance giải thuật tập tải ▪ Khơng tổng quát ➢Queuing model ▪ Sử dụng queuing theory để phân tích giải thuật ▪ Sử dụng nhiều giả thiết để phục vụ việc phân tích ▪ Khơng sát thực tế PHƯƠNG PHÁP ĐÁNH GIÁ GIẢI THUẬT ĐIỀU PHỐI CPU ➢Mô phỏng(simulation) ▪ Xây dựng mô chạy thử ▪ Với tập tải giả (thường sinh tự động) ▪ Hoặc tập tải ghi nhận từ thực tế ➢Hiện thực ▪ Viết mã giải thuật test hệ thống thực ... ? ?Điều phối processor tảng thiết kế hệ điều hành I CÁC KHÁI NIỆM CƠ BẢN ➢Chu kỳ CPU- I/O ▪ CPU burst ▪ I/O burst ? ?CPU- bound : process có thời gian sử dụng CPU nhiều thời gian sử dụng I/O ➢I/O-bound... chờ, hệ điều hành lấy lại processor để phân cho tiến trình khác I CÁC KHÁI NIỆM CƠ BẢN ? ?Điều phối processor quan trọng với hệ điều hành đa nhiệm ▪ Luân chuyển CPU tiến trình => khai thác hệ thống... (hoàn thành vào/ra) (Điều phối trưng dụng – preemptive) ▪ Tiến trình kết thúc (Điều phối không trưng dụng - non-preemptive) BỘ ĐIỀU PHỐI CPU ? ?Điều phối khơng trưng dụng ▪ Tiến trình chiếm CPU giải

Ngày đăng: 10/12/2021, 09:51

Xem thêm:

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN