Báo cáo bài tập lớn hệ điều hành đề tài tìm hiểu và mô phỏng các thuật toán lập lịch

14 23 0
Báo cáo bài tập lớn hệ điều hành đề tài tìm hiểu và mô phỏng các thuật toán lập lịch

Đ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

ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG ĐIỆN – ĐIỆN TỬ BÁO CÁO BÀI TẬP LỚN HỆ ĐIỀU HÀNH ĐỀ TÀI: Tìm hiểu mơ thuật tốn lập lịch Giáo viên hướng dẫn: Nguyễn Thanh Bình Lớp: 145603 Sinh viên thực hiện: Vũ Xuân Thịnh – 20203596 Đoàn Tiến Đạt - 20192746 Đồn Tín Nhật - 20203525 Hà Nội, LỜI NĨI ĐẦU NỢI DUNG Lời nói đầu Chương LÝ THUYẾT .4 CÁC KHÁI NIỆM CƠ BẢN CÁC TIÊU CHUẨN CỦA CPU SCHEDULING TỔNG QUAN VỀ LẬP LỊCH CPU CHO HỆ THỐNG SINGLE-PROCESSOR 3.1 First-Come, First-Served Scheduling (FCFS) 3.2 Shortest-Job-First Scheduling 3.3 Round-Robin Scheduling 3.4 Priority Scheduling .6 3.5 Multilevel Queue Scheduling .7 Chương MÔ PHỎNG MỤC TIÊU MÔ PHỎNG XÂY DỰNG CÁC THUẬT TOÁN LẬP LỊCH .8 2.1 Xây dựng process ảo 2.2 Xây dựng thuật toán lập lịch 2.2.1 First-come First-Serve (FCFS) .9 2.2.2 Shorteset-Job-First 11 2.2.3 Round-Robin 13 2.2.4 Priority scheduling 14 2.2.5 Multilevel queue scheduling 14 THIẾT KẾ GIAO DIỆN MÔ PHỎNG 15 3.1 Mục tiêu thiết kế .15 3.2 Ý tưởng bước thực 15 CHƯƠNG LÝ THUYẾT CÁC KHÁI NIỆM CƠ BẢN CPU – I/O Burst Cycle (chu kỳ sử dụng CPU- I/O) : mô tả trình hoạt động tiến trình hệ thống đa nhiệm (việc thực thi tiến trình bao gồm chu thi CPU chờ I/O) Preemptive (trưng dụng) and Nonpreemptive (Không trưng dụng) Scheduling:   Non-preemptive: tiến trình giữ CPU tự giải phóng CPU cách hồn thành cơng việc chuyển sang trạng thái chờ đợi Các trường hợp bắt buộc chuyển đổi tiến trình xảy tiến trình hồn thành kết thúc Preemptive: hệ điều hành có khả ngắt tiến trình thực thi để cấp CPU cho tiến trình khác Việc chuyển đổi tiến trình xảy nhiều trường hợp, bao gồm tiến trình hồn thành I/O tiến trình bị ngắt kiện hội tụ từ bên ngồi (interrupt) Dispatcher (trình điều vận): Dispatcher thành phần hệ điều hành có nhiệm vụ quản lý việc chuyển đổi quyền điều khiển CPU từ tiến trình thực thi sang tiến trình khác mà CPU Scheduler chọn Các nhiệm vụ dispatcher:    Chuyển đổi ngữ cảnh Chuyển đổi sang chế độ người dùng Nhảy tới vị trí hợp lý chương trình người dùng để khởi động lại trình CÁC TIÊU CHUẨN CỦA CPU SCHEDULING CPU utilization (max): mục đích làm CPU bận rộn Việc sử dụng CPU từ đến 100% Trong hệ thống thực, nên nằm khoảng từ 40% (cho hệ thống nạp tải nhẹ) tới 90% (cho hệ thống nạp tải nặng) Throughput (max): số lượng q trình hồn thành đơn vị thời gian Đối với trình dài, tỉ lệ tiến trình/1 giờ; q trình ngắn, throughput 10 tiến trình/1 giây Turnaround time (min): Khoảng thời gian từ thời điểm gửi đến hệ thống tới tiến trình hồn thành Thời gian hồn thành tổng thời gian chờ đưa trình vào nhớ, chờ hàng đợi sẳn sàng, thực thi CPU thực I/O Waiting time (min): tổng thời gian chờ hàng đợi sẵn sàng Response time (min): thời gian hệ thống để bắt đầu đáp ứng yêu cầu sau gửi Bao gồm thời gian mà hệ thống tiêu tốn để đưa yêu cầu vào hàng đợi, chọn tiến trình để thực thi, thực thi công việc sơ để chuẩn bị đáp ứng TỔNG QUAN VỀ LẬP LỊCH CPU CHO HỆ THỐNG SINGLE-PROCESSOR Single-processor có nghĩa chỉ có lõi xử lý Do có CPU với lõi xử lý nhất, hệ thống có khả chạy tiến trình thời điểm Thuật toán phổ biến cho single-processors: 3.1 FIRST-COME, FIRST-SERVED SCHEDULING (FCFS) Định nghĩa: Process yêu cầu CPU trước cấp phát CPU trước Cách làm việc: Việc triển khai FCFS sử dụng hàng đợi FIFO sau:    Tiến trình thêm vào hàng đợi sẵn sàng, PCB (Process Control Block) liên kết vào cuối hàng đợi Khi CPU rảnh, lúc CPU cấp phát cho tiến trình đầu hàng đợi Tiến trình chạy sau bị xóa khỏi hàng đợi Nhược điểm:    Thời gian chờ trung bình dài Giảm mức sử dụng CPU thiết bị không ưu tiên cho trình sử dụng CPU thời gian ngắn Non-preemptive Ưu điểm:  Dễ thực 3.2 SHORTEST-JOB-FIRST SCHEDULING Định nghĩa: Quy trình có CPU-burst ngắn có mức độ ưu tiên cao Cách làm việc:    Thuật toán liên kết với tiến trình theo độ dài CPU Burst time tiến trình Khi CPU khả dụng, gán cho tiến trình có CPU Burst nhỏ Nếu CPU Burst hai tiến trình giống nhau, thuật tốn FCFS sử dụng Ưu điểm:   Thời gian chờ trung bình tối thiểu cho tập hợp tiến trình cho Có thể preemptive nonpreemptive Nhược điểm:   Khó thực cấp độ lập lịch CPU, khơng có cách để biết độ dài xác CPU Burst CPU Burst thường dự đốn trung bình theo cấp số nhân độ dài đo đợt CPU trước đó, thuật tốn phức tạp 3.3 ROUND-ROBIN SCHEDULING Định nghĩa: Tương tự FCFS, quyền ưu tiên thêm vào phép hệ thống chuyển đổi tiến trình, tiến trình có lượng quantum time thực thi Cách làm việc:      Time quantum thường nằm khoảng từ 10 đến 100 mili giây hàng đợi xem hàng đợi vịng Tiến trình thêm vào cuối hàng đợi Bộ lập lịch CPU chọn tiến trình từ hàng đợi sẵn sàng, đặt hẹn để ngắt sau time quantum execute tiến trình Nếu tiến trình có chu kỳ CPU burst time quantum hồn thành execution tự giải phóng CPU => Bộ lập lịch chuyển sang tiến trình hàng đợi Nếu chu kỳ CPU burst tiến trình chạy dài time quantum, đếm thời gian tắt ngắt tiến trình chạy => Thơng tin thực thi tiến trình lưu lại tiến trình đưa vào cuối hàng đợi => Bộ lập lịch CPU chọn tiến trình hàng đợi Ưu điểm:     Đơn giản, dễ triển khai khơng có tình trạng tiến trình đói (starvation) tất tiến trình chia sẻ CPU cách công Preemptive Trong trình thực lập lịch round-robin, time quantum cấp khác cho job khác Mỗi tiến trình có hội lập lịch lại sau khoảng time quantum cụ thể Nhược điểm:    Thời gian chờ đợi thời gian phản hồi lớn Mất thời gian cho trình chuyển đổi tiến trình Lập kế hoạch tốn thời gian quantum nhỏ 3.4 PRIORITY SCHEDULING Định nghĩa: Mức độ ưu tiên (priority) liên kết với tiến trình CPU phân bổ cho tiến trình có mức ưu tiên cao Ví dụ: FCFS loại lập lịch ưu tiên với tiến trình có mức độ ưu tiên nhau, SJF loại lập lịch ưu tiên với tiến trình có chu kỳ CPU dài có mức ưu tiên thấp Cách làm việc: Vấn đề làm để xác định mức độ ưu tiên:   Internally: sử dụng số đại lượng đo lường để tính tốn mức độ ưu tiên quy trình Ví dụ: giới hạn thời gian, u cầu nhớ, số lượng tệp mở tỷ lệ số lượng I/O trung bình số lượng CPU trung bình Externally: tiêu chí bên ngồi hệ điều hành, chẳng hạn tầm quan trọng quy trình, loại số tiền trả cho việc sử dụng máy tính, phận tài trợ cho cơng việc yếu tố khác, thường trị Ưu điểm: Có thể Preemptive Nonpreemptive Nhược điểm: Indefinite blocking or starvation: khiến số tiến trình có mức độ ưu tiên thấp phải chờ vơ thời hạn đói lâu Một số giải pháp cho nhược điểm:   Tăng dần mức độ ưu tiên tiến trình chờ hệ thống thời gian dài Kết hợp lập lịch round-robin priority theo cách mà hệ thống thực thi quy trình có mức ưu tiên cao chạy quy trình có mức độ ưu tiên cách sử dụng lập lịch roundrobin 3.5 MULTILEVEL QUEUE SCHEDULING Định nghĩa: Với lập lịch truyền thống: lập lịch priority round-robin lưu trữ tất quy trình hàng đợi lập lịch sau chọn quy trình cách tìm kiếm O(n) để xác định quy trình có mức ưu tiên cao  Dễ dàng hơn: tách hàng đợi cho mức độ ưu tiên riêng biệt lập kế hoạch ưu tiên đơn giản lên lịch cho quy trình hàng đợi có mức độ ưu tiên cao Cách làm việc:       Khi tiến trình đến, phân loại dựa đặc điểm thêm vào hàng đợi Nếu có nhiều tiến trình hàng đợi có mức ưu tiên cao nhất, chúng thực thi theo thứ tự round-robin Trong dạng tổng quát phương pháp này, ưu tiên gán tĩnh cho tiến trình tiến trình hàng đợi suốt thời gian chạy Mỗi hàng đợi có thuật tốn lập lịch riêng Sẽ có lập lịch hàng đợi, thường thực dạng lập lịch ưu tiên cố định Có thể áp dụng phân chia thời gian hàng đợi: hàng đợi nhận phần thời gian CPU định, sau lập lịch tiến trình khác Ưu điểm: Tính linh hoạt việc lập kế hoạch cho nhiều loại quy trình Nhược điểm:   Sự phức tạp việc kiểm soát tất mức độ ưu tiên hàng đợi quy trình Khơng cho phép tiến trình thay đổi hàng đợi CHƯƠNG MƠ PHỎNG MỤC TIÊU MƠ PHỎNG Mơ tất thuật toán lập lịch cho CPU đề cập phần lý thuyết:      First Come First Serve scheduling (FCFS) Shortest-Job-First scheduling (SJF) Round-Robin scheduling (RR) Priority scheduling Multilevel Queue scheduling Đầu vào:  N processes ảo chứa đầy đủ thơng tin để thuật tốn lập lịch quản lý process  Process thêm vào thời gian thực chương trình mô chạy Đầu ra:  Hiển thị giao diện trình process ready queue thực thi CPU  Hiển thị giao diện Gant Chart tiến trình thực thi thời gian thực  Waiting time, Response time, Turn-around time process trung bình cho CPU utilization Đánh giá: So sánh thuật toán test case dựa vào thông số tiểu chuẩn CPU Scheduler XÂY DỰNG CÁC THUẬT TỐN LẬP LỊCH Ngơn ngữ lập trình: Python Mơi trường: Visual Studio Code 2.1 XÂY DỰNG PROCESS ẢO Để phục vụ cho thuật toán lập lịch đánh giá kết thuật tốn, process ảo cần có thành phần sau: class Process():     def init (self, id:str, arrive_time:float, burst:float, priority:int) -> None:         self.id = id  # ID process sequence với chiều dài ID_LEN         self.arrive_time = arrive_time #Thời gian tiến trình đến Queue         self.waiting_time =  # Thời gian tiến trình wait queue         self.return_time =   # Return time tiến trình         self.turnaround_time = # Turnaround time tiến trình         self.response_time =   # Response time tiến trình         self.burst = burst # Burst CPU time tiến trình         self.priority = priority # Độ ưu tiên tiến trình         self.completed = False # Trạng thái hồn thành tiến trình 2.2 XÂY DỰNG CÁC THUẬT TOÁN LẬP LỊCH Test case sau sử dụng để kiểm thử việc lập trình thuật tốn: PID Arrive Time Burst Time Priority P_1 P_2 P_3 Time quantum: (Đối với thuật toán cần time quantum) 2.2.1 First-come First-Serve (FCFS) a) Mơ hình thuật tốn P0: Arrive at a P1: Arrive at Sort process Execute by processe b P2: Arrive at c arrival time s b) Thực thuật toán - Khối “Sort process by arrival time”: Sử dụng thuật toán merge sort để xếp thứ tự process thực thi - Khối “Execute process” tính tốn waiting time, response time, return time … tiến trình tổng tiến trình, có pseudocode sau: // Khởi tạo biến để lưu tổng waiting time, turn around time, response time, return time: total_waiting_time

Ngày đăng: 29/11/2023, 05:59

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan