Xây dựng chương trình mô phỏng các giải thuật định thời cho CPU

46 4K 24
Xây dựng chương trình mô phỏng các giải thuật định thời cho CPU

Đ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

LỜI NÓI ĐẦU Hệ điều hành thành phần quan trọngkhông thể thiếu hệ thống máy tính điện tử Nó phần gắn bó trực tiếp với phần cứng môi trường chương trình ứng dụng khác chạy Việc tìm hiểu hệ điều hành sinh viên ngành công nghệ thông tin quan trọng Thông qua môn học “Nguyên Lý Hệ Điều Hành” em học kiến thức Để hiểu rõ thức làm việc, chức quản lý phân phối tài nguyên ứng dụng kiến thức học hệ điều hành vào thực tế em chọn đề tài :” Xây Dựng Chương Trình Mô Phỏng Các Giả Thuật Định Thời Cho CPU” Trong trình làm không tránh khỏi thiếu sót, em mong nhận lời nhận xét giúp đỡ thầy cô giáo để chúng em hoàn thiện Đồng thời em xin gửi lời cảm ơn chân thành đến cô “ Trần Hồ Thuỷ Tiên” nhiệt tình giúp đỡ em hoàn thành đề tài Mô giải thuật lập lịch cho CPU MỤC LỤC I GIỚI THIỆU ĐỀ TÀI Đề Tài Xây dựng chương trình mô giải thuật định thời cho CPU Mục Tiêu Hiểu khái niệm định thời cho CPU, mục tiêu định thời thuật toán định thời: • Tìm hiểu thuật toán FIFO, SJF, SRT, RR - Các ưu điểm giải thuật định thờiCPU - Các nhược điểm giải thuật định thời CPU - Các nguyên tắc hoạt động khác giải thuật • Xây dựng mô sử dụng thuật toán ngôn ngữ lập trình (ở em chọn ngôn ngữ C++ môi trường Dev-C++,có cài đặt thêm gói winBGIm hỗ trợ đồ họa để xây dựng mô phỏng) - Viết chương trình mô giải thuật tìm hiểu GVHD: Trần Hồ Thuỷ Tiên Page Mô giải thuật lập lịch cho CPU GVHD: Trần Hồ Thuỷ Tiên Page Mô giải thuật lập lịch cho CPU II CƠ SỞ LÝ THUYẾT Các khái niệm a Định thời cho CPU gì? Định thời cho CPU cách chuyển đổi CPU trình, để hệ điều hành làm cho máy tính hoạt động nhiều Nó sở hệ điều hành đa chương Trong môi trường hệ điều hành đa nhiệm, phận điều phối tiến trình có nhiệm vụ xem xét định dừng tiến trình để thu hồi processsor chuyển processor cho tiến trình khác Và có processor chọn tiến trình trạng thái ready để cấp processor cho b Vì phải định thời cho CPU? Trong hệ thống multitasking(đa nhiệm) thời điểm nhớ có nhiều process(tiến trình) thời điểm có process thực thi cần phải giải vấn đề phân chia,do cần đị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 c Các mục tiêu định thời • Sự công bằng( Fairness): Các tiến trình chia sẻ CPU cách công bằng, tiến trình phải chờ đợi vô hạn để cấp phát CPU • Tính hiệu qủa (Efficiency): Khoảng thời gian CPU bận, từ 0% đến 100%.Cần giữ cho CPU bận tốt • Thời gian đáp ứng hợp lý (Response time): Cực tiểu hoá thời gian hồi đáp cho tương tác người sử dụng • Thời gian lưu lại hệ thống (Turnaround Time): Cực tiểu hóa thời gian hoàn tất tác vụ xử lý theo lô • Thông lượng tối đa(Throughput ): Cực đại hóa số công việc xử lý đơn vị thời gian Tuy nhiên thường thỏa mãn tất mục tiêu kể thân chúng có mâu thuẫn với mà dung hòa chúng mức độ Các danh sách sử dụng trình điều phối Hệ điều hành sử dụng hai loại danh sách để thực điều phối tiến trình danh sách sẵn sàng (ready list) danh sách chờ đợi(waiting list) Khi tiến trình bắt đầu vào hệ thống, chèn vào danh sách tác vụ (job list).Danh sách bao gồm tất tiến trình hệ thống Nhưng tiến trình thường trú nhớ trạng thái sẵn sàng tiếp nhận CPU để hoạt động đưa vào danh sách sẵn sàng GVHD: Trần Hồ Thuỷ Tiên Page Mô giải thuật lập lịch cho CPU Bộ điều phối chọn tiến trình danh sách sẵn sàng cấp CPU cho tiến trình Tiến trình cấp CPU thực xử lý, chuyển sang trạng thái chờ xảy kiện đợi thao tác nhập/xuất hoàn tất, yêu cầu tài nguyên chưa thỏa mãn, yêu cầu tạm dừng Khi tiến trình chuyển sang danh sách chờ đợi Hình 2.1: Các danh sách sử dụng trình điều phối Các danh sách điều phối Hệ điều hành sử dụng danh sách sẵn sàng cho toàn hệ thống, tài nguyên ( thiết bị ngoại vi ) có danh sách chờ đợi riêng bao gồm tiến trình chờ cấp phát tài nguyên Quá trình xử lý tiến trình trải qua chu kỳ chuyển đổi qua lại danh sách sẵn sàng danh sách chờ đợi Sơ đồ mô tả điều phối tiến trình dựa danh sách hệ thống Thoạt đầu tiến trình đặt danh sách tiến trình sẵn sàng (ready list), đợi danh sách chọn để cấp phát CPU bắt đầu xử lý Sau xảy tình sau : Tiến trình phát sinh yêu cầu tài nguyên mà hệ thống chưa thể đáp ứng, tiến trình chuyển sang danh sách tiến trình chờ tài nguyên tương ứng Tiến trình bị bắt buộc tạm dừng xử lý ngắt xảy ra, tiến trình đưa trở lại vào danh sách sẵn sàng để chờ cấp CPU cho lượt GVHD: Trần Hồ Thuỷ Tiên Page Mô giải thuật lập lịch cho CPU Hình 2.2: Tiến trình bị bắt buộc tạm ngừng xử lý ngắt xảy Sơ đồ chuyển đổi danh sách điều phối Trong trường hợp đầu tiên, tiến trình cuối chuyển từ trạng thái blocked sang trạng thái ready lại đưa trở vào danh sách sẵn sàng Tiến trình lặp lại chu kỳ hoàn tất tác vụ hệ thống hủy bỏ khỏi danh sách điều phối GVHD: Trần Hồ Thuỷ Tiên Page Mô giải thuật lập lịch cho CPU III CÁC GIẢI THUẬT ĐỊNH THỜI CHO CPU a Chiến lược FIFO( First Comes First Served) Hình 3.1: Chiến lược FIFO  Nguyên tắc • Đây thuật toán điều phối theo nguyên tắc độc quyền • Processor cấp phát cho tiến trình danh sách sẵn sàng có yêu cầu, tiến trình đưa vào hệ thống sớm • FIFO sử dụng điều phối độc quyền nên tiến trình cấp processor sở hữu processor kết thúc xử lý hay phải đợi thao tác vào/ra hoàn thành, tiến trình chủ động trả lại processor cho hệ thống • Ví dụ: Nếu hệ điều hành cần cấp processor cho tiến trình P1, P2, P3, với thời điểm vào ready list khoảng thời gian tiến trình cần processor mô tả bảng sau: Tiến trình P1 P2 P3 Thời điểm vào Thời gian xử lý 24 3 Thì thứ tự cấp processor cho tiến trình diễn sau: Tiến trình: Thời điểm: P1 P2 24 Giản đồ Gantt cho việc định thời là: Hình 3.2: Giản đồ Gantt cho việc định thời Vậy thời gian chờ tiến trình P1 0, P2 23 (24 -1), P3 là: 25= 24+3- GVHD: Trần Hồ Thuỷ Tiên Page P3 27 Mô giải thuật lập lịch cho CPU Và thời gian chờ đợi trung bình tiến trình là: (0 + 23 + 25)/3 = 16  Các ưu điểm giả thuật FIFO: • Ưu điểm thuật toán CPU không bị phân phối lại(không bị ngắt) chi phí thực thấp nhất(vì thay đổi thứ tự ưu tiên phục vụ, thứ tự ưu tiên làthứ tự tiến trình hàng đợi)  Cáchạn chế giải thuật FIFO: • Thứ nhất, có thời gian chờ đợi trung bình lớn nên không phù hợp với hệ thống chia sẻ thời gian • Thứ hai, khả tương tác áp dụng hệ thống uniprocessor • Thứ ba, tiến trình đầu ready list cần nhiều thời gian processor tiến trình cuối ready list phải chờ lâu cấp processor  ứng dụng giải thuật FIFO: • FCFS thường sử dụng hệ thống bó (batch system) • Giải thuật đặc biệt không phù hợp với hệ phân chia thời gian, hệ này, cần cho phép tiến trình cấp phát CPU đặn khoảng thời gian b Chiến lược điều phối theo độ ưu tiên(Priority-Scheduling PS)  Nguyên tắc • Giải thuật điều phối với độ ưu tiên theo nguyên tắc độc quyền hay không độc quyền • Mỗi tiến trình gán cho độ ưu tiên tương ứng, tiến trình có độ ưu tiên cao chọn để cấp phát processor • Độ ưu tiên định nghĩa nội hay nhờ vào yếu tố bên • Khi tiến trình đưa vào danh sách tiến trình sẵn sàng, độ ưu tiên so sánh với độ ưu tiên tiến trình hành xử lý Giải thuật điều phối với độ ưu tiên không độc quyền thu hồi CPU từ tiến trình hành để cấp phát cho tiến trình độ ưu tiên tiến trình cao tiến trình hành Một giải thuật độc quyền đơn giản chèn tiến trình vào danh sách sẵn sàng, tiến trình hành tiếp tục xử lý hết thời gian dành cho • Ví dụ: Nếu hệ điều hành cần cấp processor cho tiến trình P1, P2, P3 với độ ưu tiên khoảng thời gian tiến trình cần processor mô tả bảng sau: Tiến trình P1 P2 P3 Độ ưu tiên Thời gian xử lý 24 3 Thì thứ tự cấp processor (theo nguyên tắc độc quyền) cho tiến trình là: Tiến trình P2 P3 P1 Thời điểm GVHD: Trần Hồ Thuỷ Tiên Page Mô giải thuật lập lịch cho CPU Trong phần xây dựng ứng dụng mô thực chiến lược điều phối với độ ưu tiên thời gian lưu lại ngắn SRT(Shortest Remaining Time) Shortest Remaining Time (SRT) Nguyên tắc Nếu tiến trình đến mà có thời gian dùng nhỏ thời gian cần CPU lại tiến trình thực thi, thực tiến trình đến Cách làm gọi Shortest-Remaining-Time (SRTF) Nó phiên điều phối không độc quyền SJF Ví dụ: Process Thời điểm đến Burst time P1 0.0 P2 2.0 P3 4.0 P4 5.0 (ms) - Giản đồ Gantt định thời theo SRTF - Thời gian đợi trung bình = (9 + + + 2)/4 = +Tốt giải thuật SJF Ưu điểm -Tránh trường hợp process có thời gian thực thi dài độc chiếm CPU - Có thời gian quay vòng tốt SJF - Process có thời gian thực thi ngắn có độ ưu tiên cao Nhược điểm -Cần phải quản lý thời gian thực thi lại process - làm phát sinh trường hợp “đói CPU” có thời gian sử dụng CPU tương đối lâu - ví dụ trường hợp tiến trình có thời gian ngắn liên tục đưa vào -> tiến trình dài không phép sử dụng CPU c Chiến lược công việc ngắn trước (Shortest-job-first) Nguyên tắc :Giải thuật gán tớimỗi trình chiều dài chu kỳ CPU cho trình sau Khi CPU sẵn dùng, gán tới trình có chu kỳ CPU kế GVHD: Trần Hồ Thuỷ Tiên Page Mô giải thuật lập lịch cho CPU tiếp ngắn Nếu hai trình có chiều dài chu kỳ CPU kế tiếp, định thời FIFO dùng Chú ý thuật ngữ phù hợp chu kỳ CPU ngắn (shortest next CPU burst) định thời thực cách xem xét chiều dài chu kỳ CPU trình toàn chiều dài nó.Chúng ta dùng thuật ngữ SJF hầu hết người sách tham khảo tới nguyên lý loại định thời biểu SJF Ví dụ : Tiến Thời điểm vào RL trình P1 P2 P3 P4 Thời gian xử lý 2 Sử dụng thuật giải SJF độc quyền, thứ tự cấp phát CPU sau: P1 P4 P3 P2 12 20 Sử dụng thuật giải SJF không độc quyền, thứ tự cấp phát CPU sau: P1 P4 P1 P3 P2 12 20  Ưu điểm : - Giải thuật xem tối ưu, thời gian chờ đợi trung bình giảm - Tận dụng hết lực CPU  Nhược điểm : - Cài đặt thuật toán phức tạp,tốn nhiều xữ lý cho trình quản lý - Mặcdù SJF tối ưu cài đặt cấp định thời CPU ngắn cách để biết chiều dài chu kỳ CPU - Giảithuật SJF trưng dụng không trưng dụng CPU, dẫn tới giải thuật có nhiều dị khác tối ưu hay không tối ưu phụ thuộc vào trưng dụng CPU d Chiến lược phân phối xoay vòng (Round Robin) Nguyên tắc : Danh sách sẵn sàng xử lý danh sách vòng, điều phối cấp phát cho tiến trình danh sách khoảng thời gian tối đa sử dụng CPU cho trước gọi quantum Tiến trình đến trước cấp phát CPU trước Đây giải thuật điều phối không độc quyền : tiến trình sử dụng CPU đến hết thời gian quantum dành cho nó, hệ điều hành thu hồi CPU cấp cho tiến trình danh sách Nếu tiến trình bị khóa hay kết thúc trước sử dụng hết thời gian GVHD: Trần Hồ Thuỷ Tiên Page 10 Mô giải thuật lập lịch cho CPU VIII PHỤ LỤC Code file LAPLICH.cpp project LapLichCPU.dev (loại Project WinBGIm ) #include #include #include #include #include #include #include #include using namespace std; void clrscr(void) // ham xoa man hinh { CONSOLE_SCREEN_BUFFER_INFO csbiInfo; HANDLE hConsoleOut; COORD Home = {0,0}; DWORD dummy; hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE); GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo); FillConsoleOutputCharacter(hConsoleOut,' ',csbiInfo.dwSize.X * csbiInfo.dwSize.Y,Home,&dummy); csbiInfo.dwCursorPosition.X = 0; csbiInfo.dwCursorPosition.Y = 0; SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPo sition); } void gotoxy(short x,short y) // ham goto xy { HANDLE hConsoleOutput; COORD Cursor_an_Pos = { x,y}; hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hConsoleOutput , Cursor_an_Pos); } struct sodo // cau truc du lieu bieu dien o cua so Gantt { int *ten; // ten cua so trung voi ten cua tien trinh int *moc; // moc thoi gian cap cpu cho tien trinh int sl; // tong so luong cac o so Gantt }; struct process // cau truc du lieu cua tien trinh { int id; // ma cua trinh ta ko dung ten tien GVHD: Trần Hồ Thuỷ Tiên Page 32 Mô giải thuật lập lịch cho CPU t int timexh; int timeth; // thoi gian den cua tien trinh // thoi gian xu ly cua tien trinh }; process* input(int &n) { int i,j; process *a,tg; a=new process[n]; // cap phat bo nho cho danh sach don gom n tien trinh gotoxy(8,1);cout[...]... Mô phỏng các giải thuật lập lịch cho CPU V CHẠY THỬ CHƯƠNG TRÌNH a Giao diện ban đầu Hình 5.1: Giao diện ban đầu d Thuật toán FCFS Hình 5.2: Chạy thuật toán FCFS GVHD: Trần Hồ Thuỷ Tiên Page 27 Mô phỏng các giải thuật lập lịch cho CPU e Thuật toán SJF Hình 5.3: Chạy thuật toán SJF f Thuật toán SRT (thời gian chờ trung bình thấp nhất) Hình 5.4: Chạy thuật toán SRT GVHD: Trần Hồ Thuỷ Tiên Page 28 Mô phỏng. .. Mô phỏng các giải thuật lập lịch cho CPU g Thuật toán Round Robin (thời gian chờ trung bình cao nhất) Hình 5.5: Chạy thuật toán RR GVHD: Trần Hồ Thuỷ Tiên Page 29 Mô phỏng các giải thuật lập lịch cho CPU VI KẾT LUẬN Trong thời gian thực hiện đề tài em đã hiểu hơn về cơ chế và cách thức làm việc của hệ điều hành đồng thời có thêm về kinh nghiệm lập trình cấu trúc và đồ họa trong C++ Trong quá trình thực.. .Mô phỏng các giải thuật lập lịch cho CPU quantum, hệ điều hành cũng lập tức cấp phát CPU cho tiến trình khác Khi tiến trình tiêu thụ hết thời gian CPU dành cho nó mà chưa hoàn tất, tiến trình được đưa trở lại vào cuối danh sách sẵn sàng để đợi được cấp CPU trong lượt kế tiếp Ví dụ : Hình 3.3: Chiến lược RR Hình 2.10 Điều phối Round Robin Tiến trình P1 P2 P3 Thời điểm vào RL 0 1 2 Thời gian... thoi gian cho doi trung binh cua thuat toan cout .. .Mô giải thuật lập lịch cho CPU MỤC LỤC I GIỚI THIỆU ĐỀ TÀI Đề Tài Xây dựng chương trình mô giải thuật định thời cho CPU Mục Tiêu Hiểu khái niệm định thời cho CPU, mục tiêu định thời thuật. .. Page Mô giải thuật lập lịch cho CPU GVHD: Trần Hồ Thuỷ Tiên Page Mô giải thuật lập lịch cho CPU II CƠ SỞ LÝ THUYẾT Các khái niệm a Định thời cho CPU gì? Định thời cho CPU cách chuyển đổi CPU trình, ... toán định thời: • Tìm hiểu thuật toán FIFO, SJF, SRT, RR - Các ưu điểm giải thuật định thờiCPU - Các nhược điểm giải thuật định thời CPU - Các nguyên tắc hoạt động khác giải thuật • Xây dựng mô

Ngày đăng: 05/11/2015, 23:46

Từ khóa liên quan

Mục lục

  • LỜI NÓI ĐẦU

  • I. GIỚI THIỆU ĐỀ TÀI

  • 1. Đề Tài

  • 2. Mục Tiêu

    • II. CƠ SỞ LÝ THUYẾT

    • 1. Các khái niệm.

    • 2. Các danh sách sử dụng trong quá trình điều phối.

    • III. CÁC GIẢI THUẬT ĐỊNH THỜI CHO CPU

      • IV. THIẾT KẾ HỆ THỐNG

      • 1. Cấu trúc dữ liệu

      • 2. Thuật toán

        • V. CHẠY THỬ CHƯƠNG TRÌNH

        • VI. KẾT LUẬN

        • VII.TÀI LIỆU

        • VIII. PHỤ LỤC

Trích đoạn

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

Tài liệu liên quan