1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(TIỂU LUẬN) báo cáo môn hệ điều HÀNH đề tài lập trình giải thuật FCFS của hệ điều hành ( matlab)

19 16 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

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 143,86 KB

Nội dung

TRƯỜNG ĐẠI HỌC GIAO THƠNG VẬN TẢI TP HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO MÔN HỆ ĐIỀU HÀNH Đề tài: Lập trình giải thuật FCFS Hệ điều hành ( Matlab) Nhóm 13: Thành viên: - Nguyễn Duy Hoàn-2051120235 ( Leader) - Lê Khánh Duy- 2051120218 - Linh Văn Đạt-2051120221 - Trần Ngọc Đức-2051120226 Giảng viên hướng dẫn: Ths Phan Thị Hồng Nhung Thành phố Hồ Chí Minh - 2022 MỤC LỤC Đề mục Trang MỞ ĐẦU CHƯƠNG 1: CƠ SỞ LÍ THUYẾT 1.1 GIỚI THIỆU 1.1.1 Mục tiêu lập lịch 1.1.2 Các đặc điểm tiến trình .2 1.2 CÁC KHÁI NIỆM CƠ BẢN .3 1.2.1 Khái niệm CPU 1.2.2 Các trạng thái tiến trình liên quan đến CPU 1.2.3 Khái niệm lập lịch cho CPU 1.3 CÁC THUẬT TOÁN LẬP LỊCH 1.3.1 First Come First Served(SCFS) 1.3.2 Round robin (RR) 1.3.3 Shortest Job First (SJF) .8 1.3.4 Shortest Remain Time (SRT) CHƯƠNG 2: CÀI ĐẶT THUẬT TOÁN 2.1 MƠ HÌNH CÀI ĐẶT THUẬT TỐN 2.1.1 Cấu trúc liệu 2.1.2 Thuật toán xử lý chung 11 2.2 THUẬT TOÁN FIRST COME FIRST SERVED (SCFS) 13 CHƯƠNG 3: XÂY DỰNG GIAO DIỆN (GUI) 15 3.1 Giao diện 15 3.2 Đánh giá nhận xét 15 TÀI LIỆU THAM KHẢO 15 1.MỞ ĐẦU Hệ điều hành 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 Với chức quản lý phân phối tài nguyên cách hợp lý, đồng thời giả lập máy tính mở rộng tạo giao diện tiện lợi với người sử dụng, hệ điều hành thành phần then chốt thiếu hệ thống máy tính điện tử Một chức quan trọng hệ điều hành quản lý CPU Trong môi trường xử lý đa chương, xảy tình nhiều tiến trình đồng thời sẵn sàng để xử lý Mục tiêu hệ phân chia thời gian(time-sharing) chuyển đổi CPU qua lại tiến trình cách thường xuyên để nhiều người sử dụng tương tác lúc với chương trình trình xử lý Để thực mục tiêu này, hệ điều hành phải lựa chọn tiến trình xử lý Bộ điều phối sử dụng giải thuật điều phối thích hợp để thực nhiệm vụ Một thành phần khác hệ điều hành tiểm ẩn công tác điều phối điều phối(dispatcher) Bộ phân phối chịu trách nhiệm chuyển đổi ngữ cảnh trao CPU cho tiến trình chọn điều phối để xử lý Vì lợi ích lơn lao mà giải thuật điều phối CPU đem lại để tìm hiểu kĩ nguyên tắc hoạt động chúng, chúng em định chọn đề tài: Xây dựng chương trình mơ giải thuật định thời cho CPU MỤC TIÊU: Tìm hiểu giải thuật: First In First Out(FIFO), Round Robin(RR), Shortest Job First(SJF), Shortest Remain Time(SRT) Chỉ ưu nhược điểm giải thuật lập lịch CPU Xây dựng chương trình mơ giải thuật tìm hiểu kết demo CHƯƠNG 1: CƠ SỞ LÍ THUYẾT 1.1 GIỚI THIỆU 1.1.1 Mục tiêu lập lịch Bộ điều phối không cung cấp chế, mà đưa định Các hệ điều hành xây dựng nhiều chiến lượt khác để thực việc điều phối, tựu chung cần đạt mục tiêu sau: Sự cơng bằng: tiến trình chia sẻ CPU cách cơng khơng có tiến trình phải đợi vơ hạn để cấp phát CPU Tính hiệu quả: Hệ thống phải tận dụng CPU 100% thời gian Thời gian đáp ứng hợp lý: cực tiểu hóa 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: cực tiểu hóa thời gian hồn tất tác vụ xử lý theo lơ Thơng lượng tối đa: 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à thể dung hịa chúng mức độ 1.1.2 Các đặc điểm 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 giải phải xem xét nhiều yếu tố khác để đạt mục tiêu đề Một số đặc tính tiến trình cần quan tâm tiêu chuẩn điều phối: Tính hướng xuất/ nhập tiến trình: Khi tiến trình nhận CPU, chủ yếu sử dụng CPU đến phát sinh yêu cầu nhập xuất? Hoạt động tiến trình thường bao gồm nhiều lượt sử dụng CPU, lượt thời gian ngắn Tính hướng xử lý tiến trình: Khi tiến trình nhận CPU, có khuynh hướng sử dụng CPU đến hết thời gian dành cho nó? Hoạt động tiến trình thường bao gồm số lượt sử dụng CPU, lượt thời gian đủ dài Tiến trình tương tác hay xử lý theo lô: Người sử dụng theo kiểu tương tác thường yêu cầu hồi đáp tức thời yêu cầu họ, tiến trình tác vụ xử lý theo lơ nói chung trì hỗn thời gian chấp nhận Độ ư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 hơn(có độ ưu tiên cao hơn) 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 thowig gian để hoàn tất rời khỏi hệ thống Tuy nhiên có quan ddierm 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 Tuy nhiên đáng tiếc biết tiến trình cần thời gian để kết thúc xử lý 1.2 CÁC KHÁI NIỆM CƠ BẢN 1.2.1 Khái niệm CPU CPU loại tài nguyên quan trọng máy tính Mọi tiến trình muốn hoạt động phải có phục vụ CPU(để xử lý, tính tốn…) Thời gian mà CPU phục vụ cho tiến trình hoạt động gọi CPU Tại thời điểm nhất, có tiến trình phân phối CPU để hoạt động(thực lệnh mình) 1.2.2 Các trạng thái tiến trình liên quan đến CPU Trong chế độ đa chương trình, có ba trạng thái tiến trình liên quan mật thiết đến CPU bao gồm: Ready Running Waiting Sẵn sàng(ready): trạng thái mà tiến trình phân phối đầy đủ tài nguyên cần thiết chờ CPU Thực hiện(running): trạng thái mà tiến trình phân phối đầy đủ tài nguyên cần thiết CPU Đợi(waiting): trạng thái tiến trình khơng thực thiếu vài điều kiện đó(đợi liệu vào/ra, đợi tài nguyên bổ sung…) Khi kiện mà chờ đợi xuất hiện, tiến trình quay lại trạng thái sẵn sàng Như vậy, suốt thời gian tồn mình, tiến trình tuân thủ theo sơ đồ thực sau: Sử dụng CPU Bắt đầu Sử dụng CPU ……… Sử dụng CPU ……… Đợi I/O Kết thúc đợi I/O Một tiến trình trạng thái thực hiện, rời khỏi trạng thái ba lý do: Tiến trình hồn thành cơng việc, trải lại CPU chuyển sang chờ xử lý kết thúc Tiến trình tự ngắt: Khi tiến trình chờ đợi kiện đó, tiến trình chuyển sang trạng thá thực có xuất kiện chờ Tiến trình sử dụng hết CPU dành cho nó, chuyển sang trạng thái sẵn sàng Việc chuyển tiến trình sang trạng thái sẵn sàng chất thực vệc phân phối lại CPU 1.2.3 Khái niệm lập lịch cho CPU Để điều khiển tiến trình nhiều trạng thái khác nhau, hệ thống thường tổ chức từ trạng thái(thực chất khối điều khiển tiến trình) để ghi nhận tình trạng sử dụng tài nguyên trạng thái tiến trình Các từ trạng thái tổ chức theo kiểu hàng đợi sau: Read Queue CPU I/O Queue I/O I/O Queue I/O …… I/O Queue …… I/O Như lập lịch cho CPU có nghĩa tổ chức hàng đợi tiến trình sẵn sàng để phân phối CPU cho chúng dựa độ ưu tiên tiến trình; cho hiệu suất sử dụng CPU tối ưu Mỗi tiến trình trạng thái sẵn sàng gắn với thứ tự ưu tiên Thứ tự ưu tiên xác định dựa vào yếu tố như: thời điểm hình thành tiến trình, thời gian thực tiến trình, thời gian kết thúc tiến trình… 1.3 CÁC THUẬT TOÁN LẬP LỊCH 1.3.1 First Come First Served(SCFS) Trong thuật tốn này, độ ưu tiên phục vụ tiến trình vào thời điểm hình thành tiến trình Hàng đợi tiến trình tổ chức theo kiểu FIFO Mọi tiến trình phục vụ theo trình tự xuất kết thúc bị ngắt Ready list A B C CPU Hình 2.3.1-1 Điều phối FIFO Ưu điểm thuật tốn CPU khơng bị phân phối lại(không bị ngắt) chi phsi thực thấp nhất(vì khơng phải thay đổi thứ tự ưu tiên phục vụ, thứ tự ưu tiên thứ tự tiến trình hàng đợi) Nhược điểm thuật tốn thời gian trung bình chờ phục vụ tiến trình nhau(khơng kể tiến trình ngắn hay dài), dẫn tới ba điểm sau: Thời gian chờ trung bình tăng vơ hạn hệ thống tiếp cận tới hạn khả phục vụ Nếu độ phát tán thời gian thực tiến trình tăng thời gian chờ đợi trung bình tăng theo Khi có tiến trình dài, bị ngắt tiến trình khác phải chờ đợi lâu 1.3.2 Round robin (RR) Giải thuật định thời luân phiên (round-robin scheduling algorithm-RR) thiết kế đặc biệt cho hệ thống chia sẻ thời gian Tương tự định thời FIFO trưng dụng CPU thêm vào để chuyển CPU trình Đơn vị thời gian nhỏ gọi định mức thời gian (time quantum) hay phần thời gian (time slice) định nghĩa Định mức thời gian thường từ 10 đến 100 mili giây Hàng đợi sẳn sàng xem hàng đợi vòng Bộ định thời CPU di chuyển vòng quanh hàng đợi sẳn sàng, cấp phát CPU tới trình có khoảng thời gian tối đa định mức thời gian Để cài đặt định thời RR, quản lý hàng đợi sẳn sàng hàng đợi FIFO trình Các trình thêm vào đuôi hàng đợi Bộ định thời CPU chọn trình từ hàng đợi sẳn sàng, đặt đếm thời gian để ngắt sau định mức thời gian gởi tới q trình Sau đó, hai trường hợp xảy Quá trình có chu kỳ CPU định mức thời gian Trong trường hợp này, trình tự giải phóng Sau đó, định thời biểu xử lý trình hàng đợi sẳn sàng Ngược lại, chu kỳ CPU trình chạy dài định mức thời gian độ đếm thời gian báo gây ngắt tới hệ điều hành Chuyển đổi ngữ cảnh thực thi trình đặt trở lại hàng đợi sẳn sàng Sau đó, định thời biểu CPU chọn trình hàng đợi sẳn sàng Ready List B A C A Hình 2.3.2-1 Round Robin CPU Ưu điểm : - Các trình luân phiên cho CPU xữ lý nên thời gian chờ đợi - Đối với trình liên quan đến nhập xuất,IO,người dùng hiệu - Việc cài đặt khơng phức tạp Nhược điểm : - Thời gian chờ đợi trung bình sách RR thường q dài - Nếu thời gian định mức cho việc xữ lý lớn RR thành FIFO - Nếu thời gian ngắn so với thời gian xữ lý tiến trình danh sách hàng đợi việc chờ đợi xữ lý luân phiên nhiều - Qui tắc định mức thời gian nên dài 80% chu kỳ CPU 1.3.3 Shortest Job First (SJF) Một tiếp cận khác việc định thời CPU giải thuật định thời công việc ngắn trước (shortest-job-first-SJF) Giải thuật gán tớ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 ngắn Nếu hai q 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 tồn chiều dài 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 Ư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ặc dù SJF tối ưu khơng thể cài đặt cấp định thời CPU ngắn khơng có cách để biết chiều dài chu kỳ CPU - Giải thuậ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 1.3.4 Shortest Remain Time (SRT) Tương tự SJF thuật toán này, độ ưu tiên thực tiến trình dựa vào thời gian cần thiết để thực nốt tiến trình(bằng tổng thời gian trừ thời gian thực hiện) Như vậy, thuật toán cần phải thường xuyên cập nhật thông tin giời gian thực tiến trình Đồng thời, chế độ phân bổ lại CPU phải áp dụng khơng làm tình ưu việc thuật toán Ưu điểm : - Thời gian chờ đợi,tồn hệ thống tiến trình ngắn - Thuật toán tối ưu Nhược điểm : - Việc cài đặt thuật toán phức tạp - Cần quản lý chặt chẽ việc điều phối tiến trình - Quản lý thời gian đến tiến trình CHƯƠNG 2: CÀI ĐẶT THUẬT TỐN 2.1 MƠ HÌNH CÀI ĐẶT THUẬT TỐN 2.1.1 Cấu trúc liệu Tiến trình Cấu trúc liệu đề xuất cho việc lý tiến trình xây dựng thành lớp nhằm tạo điều kiện cho việc quản lý tiến trình dễ dàng Code class TIENTRINH { private: int stt; int t_den; int t_xuly; int t_cho; int finish; public: TIENTRINH(); TIENTRINH(int stt,int t_den,int t_xuly); void insert(int stt,int t_den,int t_xuly); int getT_DEN(); void setT_DEN(int a); int getT_XULY(); void setT_XULY(int a); int getT_CHO(); void setT_CHO(int a); int getFINISH(); void setFINISH(int a); int getSTT(); }; Stt : số thứ tự tiến trình t_den : thời gian đến tiến trình t_xuly : thời gian xữ lý tiến trình t_cho : thời gian chờ tiến trình finish : thời gian hồn thành tiến trình hàng thiết lập lấy thông tin Ready List Ready list tổ chức theo danh sách liên kết chứa số thứ tự tiến trình.Và 10 việc tổ chức tiến trình vào ready list tuân theo giải thuật dùng danh sách liên kết Code struct DS { int id; DS *next; }; typedef DS* list; Id: chứa số thứ tự tiến trình Ready List Input Input tổ chức theo danh sách liên kết đơn nhằm lưu giữ giá trị nhập tiến trình liệu để phục hồi lại tiến trình nhằm để tránh trường hợp sai lệnh liệu xử lý Code struct Input { int den,xuly; Input *next; }; typedef Input* IN; den: thời gian đến tiến trình nhập liệu xử lý: thời gian xử lý tiến trình nhập liệu 2.1.2 Thuật toán xử lý chung Việc cài đặt thuật tốn mơ phịng theo cách làm việc CPU tất thuật tốn theo mơ hình thuật tốn 11 Tiến trình đầu danh sách ưu tiên xữ lý trước chiếm dụng CPU thời điểm Việc kèm thèo xem xét thời gian xữ lý tiến trình hết chưa Nếu hết nghĩa hồn thành việc xữ lý, ngược lại tiếp tục xữ lý theo thuật toán Xong chu kỳ CPU ( quantum ) cập nhật lại danh sách để loại bỏ tiến trình hồn thành hay xếp hay thêm tiến trình vào Begin Xữ lý tiến trình đầu danh sách Đúng Kiểm tra danh sách rỗng Sai Xữ lý theo thuật toán Cập nhật lại danh sách End Hình 3.1.2-1 Sơ đồ thuật toán đề xuất chung cho giải thuật 12 2.2 THUẬT TOÁN FIRST COME FIRST SERVED (SCFS) Sai Đúng Sai Đúng Tg đến readyList Sai Hình-3.2.1-1.Thuật tốn FIFO 13 Code void FIFO() { int time=0,ok=1,i,j=0,ID; while(ok) { ID=-1; PrintRL(ready,time); listBox2->Items->Add(" "); for(i=0;iAdd("Time = "+time.ToString()+" : Nap tien trinh : "+(tt[j-1].getSTT()).ToString()); } // nen ton tai tt readylist thi lam,ko thi thoat quantum if(ready) { ID=(*ready).id; listBox2->Items->Add("Time = "+time.ToString()+" : xu ly tien trinh : "+(tt[ID].getSTT()).ToString()); if(tt[ID].getT_XULY()>0) { // tang thoi gian cho cua cac tt ready tangT_CHO(ready,ID); tt[ID].setT_XULY(tt[ID].getT_XULY() - 1); if(tt[ID].getT_XULY()==0) } time++; if(tt[ID].getT_XULY()==0) 14 xoa(); { tt[ID].setFINISH(time); listBox2->Items->Add("Time = "+time.ToString()+" : hoan tien trinh : "+(tt[ID].getSTT()).ToString()); break; } } else { tangT_CHO(ready,-1); time++; break; } } listBox2->Items->Add(" -Hoan chu ky -"); listBox2->Items->Add(" "); if(checkFinish()) ok=0; } TIME=time } CHƯƠNG 3: XÂY DỰNG GIAO DIỆN (GUI) 3.1 Giao diện 3.2 Đánh giá nhận xét 15 ... hành phải lựa chọn tiến trình xử lý Bộ điều phối sử dụng giải thuật điều phối thích hợp để thực nhiệm vụ Một thành phần khác hệ điều hành tiểm ẩn công tác điều phối điều phối(dispatcher) Bộ phân... Tìm hiểu giải thuật: First In First Out(FIFO), Round Robin(RR), Shortest Job First(SJF), Shortest Remain Time(SRT) Chỉ ưu nhược điểm giải thuật lập lịch CPU Xây dựng chương trình mơ giải thuật tìm... 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 giải phải xem xét nhiều yếu tố khác để đạt mục tiêu đề Một số đặc tính tiến trình cần quan tâm tiêu chuẩn điều

Ngày đăng: 02/12/2022, 08:42

HÌNH ẢNH LIÊN QUAN

Hình 2.3.2-1. Round Robin - (TIỂU LUẬN) báo cáo môn hệ điều HÀNH đề tài lập trình giải thuật FCFS của hệ điều hành ( matlab)
Hình 2.3.2 1. Round Robin (Trang 10)
Hình 3.1.2-1. Sơ đồ thuật tốn đề xuất chung cho các giải thuật - (TIỂU LUẬN) báo cáo môn hệ điều HÀNH đề tài lập trình giải thuật FCFS của hệ điều hành ( matlab)
Hình 3.1.2 1. Sơ đồ thuật tốn đề xuất chung cho các giải thuật (Trang 15)
Hình-3.2.1-1.Thuật tốn FIFO - (TIỂU LUẬN) báo cáo môn hệ điều HÀNH đề tài lập trình giải thuật FCFS của hệ điều hành ( matlab)
nh 3.2.1-1.Thuật tốn FIFO (Trang 16)

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

TÀI LIỆU LIÊN QUAN

w