Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 34 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
34
Dung lượng
816,83 KB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG BÁO CÁO BÀI TẬP LỚN HỆ ĐIỀU HÀNH Đề tài: TRIỂN KHAI THUẬT TOÁN LẬP LỊCH HÀNG ĐỢI PHẢN HỒI ĐA CẤP TRÊN HỆ ĐIỀU HÀNH XV6 Giảng viên hướng dẫn: TS Nguyễn Thanh Bình Sinh viên thực hiện: Nguyễn Văn Nam 20182697 Bùi Duy Tiến 20182817 Nguyễn Đình Tuấn 20182862 Nguyễn Thị Hồ 20182532 Lê Đức Lâm Vũ 20182894 Hà Nội, 10-2021 LỜI MỞ ĐẦU Với chức phân phối quản lý tài nguyên hợp lý, đồng thời tạo giao diện thân thiện với người dùng, hệ điều hành phần then chốt thiếu hệ thống máy tính điện tử Trong mơi trường xử lý đa nhiệm, xảy tình nhiều tiến trình đồng thời sẵn sàng để xử lý Điều yêu cầu hệ điều hành phải lựa chọn xử lý tiến trình hàng đợi cách hợp lý hiệu Do đó, chức quan trọng thiếu hệ điều hành lập lịch cho CPU Để cho tiến trình xử lý hiệu nhất, hệ điều hành phải sử dụng giải thuật điều phối thích hợp để chọn tiến trình hàng đợi Giải thuật phải tối ưu suất CPU giảm thời gian chờ đợi trung bình, giúp tiến trình thực thi nhanh chóng Chính tính đặc biệt mà giải thuật lập lịch cho CPU đem lại để tìm hiểu kĩ nguyên tắc hoạt động chúng, nhóm chúng em tìm hiểu nghiên cứu đề tài: “Triển khai thuật toán lập lịch hàng đợi phản hồi đa cấp hệ điều hành XV6” Nhóm chúng em xin gửi lời cảm ơn chân thành đến TS Nguyễn Thanh Bình hướng dẫn, đưa quy trình tìm hiểu đề tài cụ thể để nhóm chúng em hồn thành mục tiêu đề tài Trong trình thực đề tài, chúng em không tránh khỏi thiếu sót, mong nhận dẫn góp ý thầy để đề tài ngày hoàn thiện MỤC LỤC DANH MỤC HÌNH VẼ i DANH MỤC KÍ HIỆU VÀ TỪ VIẾT TẮT .ii PHÂN CÔNG CÔNG VIỆC iii CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu chung .1 1.1.1 Khái niệm tiến trình 1.1.2 Các trạng thái tiến trình 1.1.3 Điều phối tiến trình 1.1.4 Điều phối cưỡng chế (Preemptive) điều phối không cưỡng chế (Nonpreemptive) 1.1.5 Khái niệm lập lịch cho CPU 1.1.6 Mục tiêu lập lịch cho CPU? 1.1.7 Tiêu chí đánh giá lập lịch 1.2 Các thuật toán lập lịch 1.2.1 First Come, First Served (FCFS) scheduling .4 1.2.2 Shortest – Job – First (SJF) 1.2.3 Shortest Remaining Time First (SRTF) 12 1.2.4 Round Robin (RR) 14 1.2.4 Multilevel queue (MLQ) 18 1.2.5 Multilevel feedback queue (hàng đợi phản hồi đa cấp) 19 CHƯƠNG 2: GIỚI THIỆU CHUNG VỀ HỆ ĐIỀU HÀNH XV6 VÀ PHẦN MỀM QEMU 22 2.1 Hệ điều hành XV6 22 2.2 Phần mềm Qemu .23 2.3 Lập lịch Xv6 25 TÀI LIỆU THAM KHẢO .27 DANH MỤC HÌNH VẼ Hình 1: Sơ đồ trạng thái tiến trình Hình 2: Thuật tốn FCFS .4 Hình 3: Thuật toán Shortest Job First Hình 4: Thuật tốn Round Robin .15 Hình 5: Mức độ ưu tiên Multilevel Queue .18 Hình 6: Ví dụ hàng đợi phản hồi đa cấp 20 Hình 7: Các lệnh gọi hệ thống xv6 23 Hình 8: Cài đặt phần mềm Qemu ubuntu 25 Hình 9: Mơ tả quan hệ chuyển đổi tiến trình CPU 26 i DANH MỤC KÍ HIỆU VÀ TỪ VIẾT TẮT Từ viết tắt Định nghĩa giải thích CPU Central Processing Unit – Bộ xử lý trung tâm I/O Input/Output FCFS First Come Fist Serve SJF Shortest Job First RR Round Robin MLFQ Multilevel Feedback Queue Scheduling MLQ Multilevel Queue Scheduling ii PHÂN CƠNG CƠNG VIỆC Ngày 28/10/202 09/11/2021 Cơng việc Người thực Tìm hiểu chung Lê Đức Lâm Vũ Tìm hiểu thuật tốn FCFS Nguyễn Thị Hịa SJF Bùi Duy Tiến SRTF Nguyễn Đình Tuấn RR Nguyễn Văn Nam Soạn thảo báo cáo Nguyễn Văn Nam & Bùi Duy Tiến Tìm hiểu Multilevel Queue Nguyễn Văn Nam Tìm hiểu Multilevel Feedback Queue Nguyễn Thị Hịa Tìm hiểu HĐH XV6 Nguyễn Đình Tuấn Tìm hiểu QEMU Bùi Duy Tiến Tìm hiểu lập lịch XV6 Soạn thảo báo cáo 18/11/2021 Soạn thảo báo cáo Mức độ hoàn thiện 30% 50% Lê Đức Lâm Vũ Nguyễn Văn Nam, Bùi Duy Tiến Bùi Duy Tiến, Nguyễn Văn Nam 60% iii CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu chung 1.1.1 Khái niệm tiến trình Tiến trình chương trình xử lý, sử dụng trỏ lệnh, tập ghi biến Để hoàn thành nhiệm vụ mình, tiến trình cịn yêu cầu số tài nguyên hệ thống như: CPU, nhớ thiết bị Hệ điều hành sử dụng điều phối (scheduler) để định thời điểm cần dừng hoạt động tiến trình xử lý lựa chọn tiến trình cần thực 1.1.2 Các trạng thái tiến trình Tại thời điểm, tiến trình nhận trạng thái sau đây: - New: tiến trình vừa tạo Ready: tiến trình chờ cấp phát CPU để xử lí Running: tiến trình xử lí Waiting: tiến trình dừng để chờ cấp phát tài nguyên, chờ thao tác nhập xuất hoàn tất chờ kiện End: tiến trình hồn tất xử lí Hình 1: Sơ đồ trạng thái tiến trình Hình mơ tả cách chuyển trạng thái tiến trình: - Đầu tiên vừa khởi tạo, tiến trình trạng thái NEW lưu nhớ tạm Sau tiến trình tạo, chuyển sang trạng thái READY, tiến trình tải lên nhớ Tiến trình sẵn sàng để chạy cấp phát CPU chuyển qua trạng thái RUNNING - - Bất có yêu cầu nhập xuất yêu cầu đầu vào từ phía người dùng tiến trình chuyển sang trạng thái WAITING Tiến trình tiếp tục chờ đợi nhớ sau thao tác nhập xuất hay yêu cầu người dùng xử lí xong tiến trình chuyển qua trạng thái READY Sau tiến trình thực thi xong, gặp lệnh kết thúc, tiến trình từ trạng thái RUNNING chuyển sang trạng thái END 1.1.3 Điều phối tiến trình Điều phối hoạt động tiến trình vấn đề phức tạp, đòi hỏi hệ điều hành phải xem xét nhiều yếu tố khác để đạt mục đích đề Một số tiêu chuẩn điều phối tiến trình cần quan tâm như: - - - - - - Tính hướng nhập/xuất tiến trình (I/O – boundedness): Hoạt động tiến trình đa số thao tác nhập xuất Thời gian thực nhập xuất nhiều so với thời gian xử lý Tính hướng xử lý tiến trình (CPU - boundedness): Hoạt động tiến trình đa số thao tác tính tốn, xử lý Thời gian xử lý tiến trình nhiều thời gian thực nhập xuất Tiến trình tương tác hay xử lý theo lơ: Khi có hai tiến trình tương tác xử lý theo lơ, tiến trình xử lý theo lơ tạm dừng ưu tiên cho tiến trình tương tác phản hồi Độ ưu tiên tiến trình: Các tiến trình phân cấp theo số tiêu chuẩn đánh giá đó, cách hợp lý, tiến trình quan trọng cần ưu tiên cao Thời gian sử dụng CPU tiến trình: số quan điểm ưu tiên chọn tiến trình sử dụng CPU nhiều thời gian hy vọng chúng cần thời gian để hoàn tất rời khỏi hệ thống Tuy nhiên có quan điểm cho tiến trình nhận CPU thời gian tiến trình phải chờ lâu nhất, ưu tiên chọn chúng Thời gian cịn lại tiến trình cần để hồn tất: Có thể giảm thiều thời gian chờ trung bình tiến trình cách cho tiến trình cần thời gian để hồn tất thực trước 1.1.4 Điều phối cưỡng chế (Preemptive) điều phối khơng cưỡng chế (Nonpreemptive) Thuật tốn điều phối cần xem xét định thời điểm chuyển đổi CPU tiến trình Hệ điều hành thực chế điều phối theo nguyên lý độc quyền không độc quyền: Điều phối cưỡng chế (Preemptive): Được sử dụng tiến trình chuyển từ trạng thái running state đến ready state từ trạng thái waiting state đến ready state Preemptive cho phép tạm dừng hoạt động tiến trình xử lý CPU Khi có tiến trình khác với độ ưu tiên cao hơn, tiến trình xử lý CPU không tiếp tục đến hồn thành, thay vào có ngắt can thiệp tiến trình dành quyền sử dụng CPU, tiến trình cũ đưa hàng đợi để chờ xử lý tiếp Điều phối không cưỡng chế (Non-preemptive): Được thực hủy tiến trình hay tiến trình chuyển từ trạng thái running state to waiting state Phương pháp cho phép tiến trình vào CPU độc chiếm CPU hoàn tất xử lý tự nguyện giải phóng CPU Khơng có tiến trình quyền ngắt trình xử lý Sau hoàn thành xử lý tự động chuyển sang tiến trình Trong hệ thống sử dụng non-preemptive xảy tình trạng tiến trình cần thời gian xử lý ngắn phải chờ tiến trình cần thời gian xử lý dài hồn tất Nguyên lý non-preemptive thường thích hợp với hệ thống xử lý theo lô Đối với hệ thống tương tác (time sharing), hệ thống thời gian thực (real time), cần phải sử dụng nguyên lý preemptive scheduling để tiến trình quan trọng có hội kịp thời đáp ứng Tuy nhiên thực theo nguyên lý đòi hỏi chế phức tạp việc phân định độ ưu tiên phát sinh thêm chi phí hệ thống chuyển đổi CPU qua lại tiến trình 1.1.5 Khái niệm lập lịch cho CPU Trong hệ thống multitasking (đa nhiệm), thời điểm nhớ có nhiều process (tiến trình) có tiến trình thực thi cần phải giải vấn đề phân chia, định thời để phân phối thời gian sử dụng CPU cho tiến trình người sử dụng hệ thống Lập lịch cho CPU chế để chọn tiến trình phải thực phân bổ CPU cho tiến trình 1.1.6 Mục tiêu lập lịch cho CPU? Việc phân phối thời gian sử dụng CPU nhằm đáp ứng số mục tiêu sau: - Đảm bảo cơng việc phục vụ tiến trình, tránh tình trạng rơi vào trạng thái chờ vơ hạn - Tối đa hóa số lượng tiến trình phục vụ đơn vị thời gian - Thời gian phản ứng chấp nhận với tất tiến trình tối thiểu chi phí, tài ngun hệ thống - Cân đối việc sử dụng tài nguyên, nâng cao hiệu suất sử dụng tài nguyên, nên ưu tiên tiến trình sử dụng tài ngun, tránh tình trạng tiến trình có mức ưu tiên thấp chiếm tài nguyên mà tiến trình mức ưu tiên cao cần Nếu tài nguyên khơng chia sẻ hệ điều hành cần tạo điều kiện để tiến trình giải phóng tài ngun nhanh Thời gian chờ trung bình = 24/6 Biểu đồ Gantt lập theo thời gian đến thực đưa bảng Bởi thời điểm 0, tiến trình khả dụng P1 với thời gian thực CPU 8. Đây tiến trình có sẵn danh sách, diễn theo kế hoạch Tiến trình đến đơn vị thời gian 1. Vì thuật tốn sử dụng SRTF preemptive, tiến trình thực thi bị dừng lập lịch kiểm tra tiến trình với thời gian thực nhỏ nhất. Cho đến nay, có hai tiến trình có sẵn hàng đợi sẵn sàng Hệ điều hành thực thi đơn vị P1; thời gian thực lại P1 đơn vị. Thời gian thực tiến trình P2 đơn vị. Do đó, tiến trình P2 lập lịch CPU theo thuật tốn Tiến trình P3 với thời gian đến đơn vị. Tại thời điểm này, việc thực tiến trình P3 bị dừng lại tiến trình có thời gian thực cịn lại nhỏ tìm kiếm. Vì tiến trình P3 có thời gian thực đơn vị, ưu tiên tiến tình khác Tiến trình P4 với thời gian đến đơn vị. Khi tiến trình đến, lập lịch dừng việc thực thi P4 kiểm tra tiến trình có thời gian thực số tiến trình có sẵn (P1, P2, P3 P4). Thời gian thực lại P1 P2 đơn vị đơn vị. Thời gian thực lại P3 P4 loại có đơn vị. Vì hai giống nên việc lên lịch thực dựa thời gian đến chúng. P3 đến sớm P4 nên lên lịch lại Tiến trình P5 đến đơn vị thời gian. Cho đến thời điểm này, tiến trình P3 hồn thành thực khơng có danh sách. Bộ lập lịch so sánh thời gian thực lại tất tiến trình có sẵn. Vì thời gian thực tiến trình P4 1, thời gian nhất, tiến trình lên lịch Tiến trình P6 đến đơn vị thời gian, thời điểm này, tiến trình P4 hồn thành việc thực thi. Chúng ta có tiến trình có sẵn, P1 (7), P2 (3), P5 (3) P6 (2). Thời gian thực P6 nên P6 lên lịch. Bởi tất tiến trình có sẵn, thuật tốn hoạt động giống SJF. P6 thực hoàn thành, sau tiến trình với thời gian ngắn cịn lại lên lịch • Ưu điểm: Thời gian chờ đợi, tồn hệ thống tiến trình ngắn Tránh tác vụ lớn độc chiếm CPU • Nhược điểm: Việc cài đặt thuật tốn phức tạp Khó ước lượng khoảng thời gian thực cịn lại tiến trình Cần quản lý chặt chẽ việc điều phối tiến trình 13 1.2.4 Round Robin (RR) Tên thuật tốn xuất phát từ ngun tắc vịng trịn, người nhận phần thứ Đây thuật tốn lập lịch biểu lâu đời nhất, đơn giản nhất, hầu hết sử dụng cho đa nhiệm Đối với giải thuật RR, tiến trình trước bắt đầu đưa vào CPU xử lý, cấp phát cho đơn vị thời gian chiếm dụng CPU định Ta gọi chung giá trị số với tên quantum (khe thời gian) Điểm khác biệt RR với FCFS đó là RR tuân thủ theo chế Điều phối cưỡng chế (preemtive) A chiếm CPU q ms B giao quyền sử dụng CPU q ms C giao quyền sử dụng CPU q ms Hình 4: Thuật tốn Round Robin Process Arrival Time Burst Time P1 P2 P3 Với bảng liệu trên, ta biết thêm quantum time = Như vậy, để tính tốn thuận tiện, ta tiếp tục sử dụng giản đồ Gantt: 14 Bước Quá trình bắt đầu với tiến trình P1, có Burst time = Ở đây, tiến trình thực giây P2 P3 hàng đợi Bước Tại thời điểm = 2, P1 thêm vào cuối Hàng đợi P2 bắt đầu thực thi Bước Tại thời điểm = 4, P2 ưu tiên thêm vào cuối hàng đợi P3 bắt đầu thực thi Bước Tại thời điểm = 6, P3 đặt trước thêm vào cuối hàng đợi P1 bắt đầu thực thi 15 Bước Tại thời điểm = 8, P1 có Burst time = = 2+2 Nó hồn tất q trình thực thi P2 bắt đầu thực Bước Tiến trình P2 có Burst time = Nó thực thi khoảng thời gian Tại thời điểm = 9, P2 hoàn thành việc thực thi Sau đó, P3 bắt đầu thực thi hoàn thành Với giản đồ Gantt bước trên, ta tính được: – Thời gian xử lý: P1=4, P2=3 P3= – Thời gian đợi tính theo cơng thức: Wait Time: Service Time - Arrival Time + P1 đợi + (6-2) =4 (ms) 16 + P2 đợi 8-4=4 (ms) + P3 đợi 9-6=3 (ms) – Thời gian hồn tất tiến trình: + P1: (ms) + P2: (ms) + P3: 12 (ms) – Thời gian đợi trung bình: AvgWT = (4+4+3)/3 = 3.67 Ưu điểm RR Nhược điểm RR - Không phải đối mặt với vấn đề tắc nghẽn - Công việc phân bổ CPU hợp lý - Giải tất q trình mà khơng có ưu tiên - Khơng phụ thuộc vào Burst time dễ dàng thực hệ thống - Cho phép hệ điều hành sử dụng phương pháp Context switching để lưu trạng thái quy trình ưu tiên trước - Mang lại hiệu suất tốt thời gian phản hồi trung bình - Nếu thời gian cắt hệ điều hành thấp, đầu xử lý bị giảm - Phương pháp dành nhiều thời gian cho việc chuyển đổi ngữ cảnh - Hiệu suất phụ thuộc nhiều vào khe thời gian (quantum time) - Không thể đặt mức độ ưu tiên cho quy trình - Lập lịch RR không ưu tiên đặc biệt cho nhiệm vụ quan trọng - Khe thời gian thấp dẫn đến chi phí chuyển đổi ngữ cảnh hệ thống cao - Tìm khe thời gian xác nhiệm vụ khó khăn hệ thống Kết luận: Về mặt thời gian với RR, thời gian hồn tất trung bình cao SJF, tính đáp ứng tốt 1.2.4 Multilevel queue (MLQ) Multilevel queue thuật toán chia Ready queue thành nhiều queue riêng biệt Các tiến trình gán với hàng đợi thường dựa tiêu chí: Kích thước nhớ tiến trình, mức độ ưu tiên tiến trình, loại tiến trình… 17 Hình 5: Mức độ ưu tiên Multilevel Queue Hình ví dụ thuật toán Multilevel queue với hàng đợi (queue) xếp theo thứ tự ưu tiên Systems Processes: hệ điều hành có quy trình riêng để chạy Interactive Processes: trình phải có loại tương tác Batch Processes: kỹ thuật Hệ điều hành thu thập chương trình liệu với dạng batch trước trình xử lý bắt đầu Student Processes: Systems Processes ưu tiên cao Student Processes ưu tiên thấp Với trợ giúp Multilevel queue, áp dụng nhiều loại lập lịch khác cho loại quy trình khác nhau: System Processes: First Come First Serve (FCFS) Scheduling Interactive Processes: Shortest Job First (SJF) Scheduling Batch Processes: Round Robin (RR) Scheduling Student Processes: Priority Scheduling 1.2.5 Multilevel feedback queue (hàng đợi phản hồi đa cấp) Trong thuật toán lập lịch hàng đợi đa cấp (MLQ), tiến trình gán vĩnh viễn cho hàng đợi vào hệ thống. Các tiến trình khơng di chuyển hàng đợi. Thiết lập có ưu điểm chi phí lập lịch trình thấp, nhược điểm không linh hoạt 18 Tuy nhiên, lập lịch hàng đợi phản hồi đa cấp (MLFQ) cho phép tiến trình di chuyển hàng đợi. Ý tưởng tách riêng tiến trình với đặc điểm chu kỳ CPU khác Nếu tiến trình dùng nhiều thời gian CPU di chuyển tới hàng đợi có độ ưu tiên thấp Một tiến trình chờ q lâu hàng đợi có độ ưu tiên thấp di chuyển tới hàng đợi có độ ưu tiên cao Nói chung, lập lịch hàng đợi phản hồi đa cấp xác định tham số sau: Số lượng hàng đợi Thuật toán lập lịch cho hàng đợi Phương pháp sử dụng để xác định thời điểm nâng cấp quy trình lên hàng đợi có mức độ ưu tiên cao Phương pháp sử dụng để xác định thời điểm hạ cấp quy trình xuống hàng đợi có mức độ ưu tiên thấp Phương pháp sử dụng để xác định hàng đợi mà quy trình vào quy trình cần dịch vụ Định nghĩa lập lịch hàng đợi phản hồi đa cấp làm cho trở thành thuật tốn lập lịch CPU chung nhất. Nó cấu hình để phù hợp với hệ thống cụ thể thiết kế. Tuy nhiên, yêu cầu số phương tiện chọn giá trị cho tất tham số để xác định lập lịch tốt nhất. Mặc dù hàng đợi phản hồi đa cấp là sơ đồ chung nhất, là sơ đồ phức tạp Hình 6: Ví dụ hàng đợi phản hồi đa cấp 19 Trước hết, giả sử hàng đợi theo vòng tròn với khe thời gian (quantum) 16 tương ứng hàng đợi theo FCFS. Một cách triển khai lập lịch hàng đợi phản hồi đa cấp sau: Nếu trình bắt đầu thực thi trước hết vào hàng đợi Trong hàng đợi 1, quy trình thực với quantum = hồn thành cung cấp CPU hoạt động I/O khoảng thời gian mức độ ưu tiên q trình khơng thay đổi Nếu quy trình hàng đợi khơng hồn thành đơn vị mức độ ưu tiên bị giảm chuyển sang hàng đợi Nếu hàng đợi trống hàng đợi bắt đầu thực với quantum = 16. Nói chung, q trình khơng hồn thành khe thời gian định chuyển sang hàng đợi ưu tiên thấp Sau hàng đợi cuối cùng, tất trình lên lịch theo cách thức FCFS Điều quan trọng cần lưu ý tiến trình nằm hàng đợi có mức ưu tiên thấp thực thi hàng đợi có mức ưu tiên cao trống Bất kỳ q trình chạy hàng đợi có mức độ ưu tiên thấp bị gián đoạn q trình đến hàng đợi có mức độ ưu tiên cao Sự cần thiết phải lập lịch hàng đợi phản hồi đa cấp (MLFQ) Lập lịch linh hoạt lập lịch hàng đợi Đa cấp Thuật toán giúp giảm thời gian phản hồi Để tối ưu hóa thời gian hồn thành, thuật toán SJF cần thiết, thuật toán yêu cầu thời gian chạy quy trình để lên lịch cho chúng. Như biết thời gian chạy tiến trình khơng biết trước. Ngồi ra, việc lập lịch trình chủ yếu chạy trình khe thời gian sau đó, thay đổi mức độ ưu tiên q trình q trình kéo dài. Do đó, thuật toán lập lịch chủ yếu học từ hành vi khứ quy trình sau dự đốn hành vi tương lai quy trình. Bằng cách này, trước tiên, MLFQ cố gắng chạy quy trình ngắn hơn, điều đổi lại dẫn đến việc tối ưu hóa thời gian hoàn thành Ưu điểm MFQS: Đây thuật toán lập lịch linh hoạt Thuật toán lập lịch cho phép quy trình khác di chuyển hàng đợi khác 20 Trong thuật tốn này, q trình chờ đợi q lâu hàng đợi có mức độ ưu tiên thấp chuyển sang hàng đợi có mức độ ưu tiên cao hơn, giúp ngăn chặn tình trạng tiến trình phải chờ lâu (starvation) Nhược điểm MFQS Thuật toán phức tạp Khi quy trình di chuyển xung quanh hàng đợi khác nhau, dẫn đến việc tạo nhiều CPU Để chọn lập lịch tốt nhất, thuật toán yêu cầu số phương tiện khác để chọn giá trị 21 CHƯƠNG 2: GIỚI THIỆU CHUNG VỀ HỆ ĐIỀU HÀNH XV6 VÀ PHẦN MỀM QEMU 2.1 Hệ điều hành XV6 Xv6 phiên đại Unix Sixth Edition ANSI C dành cho hệ thống đa xử lý x86 RISC-V Nó tạo cho mục đích sư phạm khóa học Kỹ thuật Hệ điều hành MIT (Massachusetts Institute of Technology) Lịch sử bối cảnh Trong nhiều năm, MIT khơng có khóa học hệ điều hành. Vào mùa thu năm 2002, chương trình tạo để dạy kỹ thuật hệ điều hành Các khóa học giảng dạy Sixth Edition Unix (hay cịn gọi V6) sử dụng bình luận tiếng John Lions V6 cho thấy thách thức sư phạm từ đầu Vào mùa hè năm 2006, họ định thay V6 hệ điều hành Xv6, dựa V6 viết ANSI C chạy máy Intel x86 đa xử lý. Việc sử dụng x86 Xv6 làm cho phù hợp với trải nghiệm sinh viên so với V6 trước thống khóa học xung quanh kiến trúc nhất. Việc thêm hỗ trợ đa xử lý yêu cầu xử lý đồng thời trực tiếp với khóa luồng (thay sử dụng giải pháp trường hợp đặc biệt cho đơn xử lý bật / tắt ngắt) giúp phù hợp. Cuối cùng, việc viết hệ thống cho phép viết phiên rõ ràng phần thô V6, lập lịch hệ thống tệp. 22 Hình 7: Các lệnh gọi hệ thống xv6 Cách thức hoạt động lập lịch mô tả sau: • • • Mỗi CPU xử lý lập lịch Sau trình khởi tạo thực hàm mpmain, CPU biên dịch lập lịch Bộ lập lịch không trả giá trị mà thực vịng lặp với cơng việc sau: 1− 2− 3− Chọn tiến trình để chạy Chuyển sang tiến trình chọn để bắt đầu chạy Trả quyền kiểm soát lại cho lập lịch 2.2 Phần mềm Qemu Phần mềm Qemu QEMU giả lập mã nguồn mở cung cấp mơi trường máy ảo với tính hỗ trợ nhiều thiết bị phần cứng, bao gồm máy tính cấu trúc 32-bit 64-bit Phần mềm cho phép người dùng chạy nhiều hệ điều hành khác máy dựa trình biên dịch nhị phân động QEMU hỗ trợ nhiều thiết bị phần cứng, bao gồm PC cấu trúc 32-bit 64-bit, xử lý PowerPC ((PREP, G3 Beige PowerMac), xử lý Sparc, Malta boards, MIPS 23 Magnum, tích phân ARM baseboard, xử lý PXA270, máy tính bảng N800 N810, vv QEMU cho phép người dùng gửi nhiều lệnh phức tạp vào chương trình, hỗ trợ nhiều định dạng ảnh đĩa, đồng thời có khả truy cập trực tiếp vào thiết bị máy chủ Những tính phần mềm QEMU: - Tạo máy ảo dựa trình biên dịch nhị phân động Hỗ trợ nhiều thiết bị phần cứng Có khả xử lý nhiều lệnh phức tạp từ người dùng Hỗ trợ nhiều định dạng ảnh đĩa Truy cập trực tiếp vào thiết bị máy chủ Hệ điều hành xv6 build hệ điều hành ubuntu Để build hệ điều hành, người dùng cần cài đặt qemu command line sau: sudo apt-get install qemu-kvm qemu/virt-manager virt-viewer libvirt -bin 24 Hình 8: Cài đặt phần mềm Qemu ubuntu 2.3 Lập lịch Xv6 Mỗi CPU xử lý lập lịch 25 Hình 9: Mơ tả quan hệ chuyển đổi tiến trình CPU Hình mơ tả q trình chuyển đổi tiến trình Để chuyển đổi tiến trình, Xv6 thực từ luồng kernel tiến trình đến luồng trình lập lịch CPU từ luồng lập lịch sang luồng kernel tiến trình Quá trình thực hai hàm: hàm Sched chuyển tiến trình yêu cầu vào trình lập lịch, hàm Schduler chuyển tiến trình từ lập lịch sang tiến trình xử lý Bộ lập lịch xv6 thực sách lập lịch đơn giản, sách chạy tiến trình sau lại quay tiến trình Chính sách gọi quy đổi vịng trịn Trong đó, quy trình lập lịch một thời gian hẹn (về ~ 10ms) 26 TÀI LIỆU THAM KHẢO [1] Operating System Concepts, 10th Edition, Abraham Silberschatz, Peter Baer Galvin, Greg Gagne [2] https://en.wikipedia.org/wiki/Xv6 [3] https://www.geeksforgeeks.org/multilevel-feedback-queue-scheduling-mlfqcpu-scheduling/ [4] https://www.geeksforgeeks.org/multilevel-feedback-queue-scheduling-mlfqcpu-scheduling/ [5] https://www.cse.iitb.ac.in/~mythili/os/ [6] https://www.youtube.com/watch?v=1KLuC0knvs8 27 ... phản hồi đa cấp) 19 CHƯƠNG 2: GIỚI THIỆU CHUNG VỀ HỆ ĐIỀU HÀNH XV6 VÀ PHẦN MỀM QEMU 22 2.1 Hệ điều hành XV6 22 2.2 Phần mềm Qemu .23 2.3 Lập lịch Xv6 ... 21 CHƯƠNG 2: GIỚI THIỆU CHUNG VỀ HỆ ĐIỀU HÀNH XV6 VÀ PHẦN MỀM QEMU 2.1 Hệ điều hành XV6 Xv6 phiên đại Unix Sixth Edition ANSI C dành cho hệ thống đa xử lý x86 RISC-V Nó tạo cho mục đích sư phạm... hoạt động chúng, nhóm chúng em tìm hiểu nghiên cứu đề tài: “Triển khai thuật toán lập lịch hàng đợi phản hồi đa cấp hệ điều hành XV6? ?? Nhóm chúng em xin gửi lời cảm ơn chân thành đến TS Nguyễn Thanh