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

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)

18 8 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 18
Dung lượng 105,27 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.1 1.1.2 1.2.1 1.2.2 1.2.3 1.3.1 1.3.2 1.3.3 1.3.4 1.1 GIỚI THIỆU Mục tiêu lập lịch Các đặc điểm tiến trình .2 1.2 CÁC KHÁI NIỆM CƠ BẢN Khái niệm CPU Các trạng thái tiến trình liên quan đến CPU Khái niệm lập lịch cho CPU 1.3 CÁC THUẬT TOÁN LẬP LỊCH First Come First Served(SCFS) Round robin (RR) Shortest Job First (SJF) .8 Shortest Remain Time (SRT) CHƯƠNG 2: CÀI ĐẶT THUẬT TOÁN 2.1.1 2.1.2 2.1 MƠ HÌNH CÀI ĐẶT THUẬT TOÁN Cấu trúc liệu .9 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 an 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 ngun 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: Running Ready - Waiting Sẵn sàng(ready): trạng thàrmưTiếntrì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: Kết thúc Bắt đầu Đợi I/O đợ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 Sử dụng CPU Sử dụng CPU Sử dụng CPU 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: 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 TỐN LẬP LỊCH 1.3.1 First Come First Served(SCFS) Trong thuật toá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 Hình 2.3.1-1 Điều phối FIFO Ưu điếm thuật toá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 q 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 hàng đợi Bộ định thời CPU chọn q 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 Q trình có chu kỳ CPU định mức thời gian Trong trường hợp này, q 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 q 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 Hình 2.3.2-1 Round Robin • Ư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 q trình liên quan đến nhập xuất,IO,người dùng hiệu - Việc cài đặt khơng q phức tạp • Nhược điểm : - Thời gian chờ đợi trung bình sách RR thường 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 110'11 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 q trình sau Khi CPU sẵn dùng, gán tới q 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 hon 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 q trình hon 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 tốn • Ưu điểm : - Thời gian chờ đợi,tồn hệ thống tiến trình ngắn - Thuật tố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 den; t int xuly; t int cho; t int finish; public: TIENTRINH(); TIENTRINH(int stt,int t den,int t xuly); voi d int insert(int stt,int t den,int t xuly); getT_DEN(); voi d setT DEN(int a); int voi d getT_XULY(); setT_XULY(int a); int voi d getT_CHO(); setT CHO(int a); int voi d getEINISH(); setEINISH(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à 1 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 toá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 - 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 Hình 3.1.2-1 Sơ đồ thuật tốn đề xuất chung cho giải thuật 2.2 THUẬT TOÁN FIRST COME FIRST SERVED (SCFS) Hình-3.2.1-1.Thuật tốn FIFO 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()> ) { // 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()== ) xoa(); } time++; if(tt[ID].getT XULY()== ) { tt [ID].setFINISH(time); listBox2->Items->Add("Time = "+time.ToString()+" : hoan tien trinh : "+(tt[ID].getSTT()).ToString()); break; } } else { tangT CHO(ready,- ); 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 ... 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 an công tác điều phối điều phối(dispatcher)... 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. .. 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: 18/03/2022, 16:17

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

TÀI LIỆU LIÊN QUAN

w