1. Trang chủ
  2. » Tất cả

Báo cáo thuyết trình lập trình giải thuật của hệ điều hành (sjf) ngôn ngữ lập trình c++

29 75 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 29
Dung lượng 643,58 KB

Nội dung

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP HỒ CHÍ MINH VIỆN ĐÀO TẠO CHẤT LƯỢNG CAO BÁO CÁO THUYẾT TRÌNH LẬP TRÌNH GIẢI THUẬT CỦA HỆ ĐIỀU HÀNH (SJF) Ngôn ngữ lập trình C++ Tên học phần HỆ ĐIỀU HÀNH Giảng viê[.]

TRƯỜNG ĐẠI HỌC GIAO THƠNG VẬN TẢI TP HỒ CHÍ MINH VIỆN ĐÀO TẠO CHẤT LƯỢNG CAO BÁO CÁO THUYẾT TRÌNH LẬP TRÌNH GIẢI THUẬT CỦA HỆ ĐIỀU HÀNH (SJF) Ngơn ngữ lập trình: C++ Tên học phần: HỆ ĐIỀU HÀNH Giảng viên hướng dẫn: Phan Thị Hồng Nhung Thành viên nhóm: Nguyễn Đức Thiệp MSSV: 21H1120054 Hồ Chí Nhân MSSV: 21H1120013 Đỗ Kim Lâm MSSV: 21H1120042 Võ Thái Sơn MSSV: 21H1120019 Thành phố Hồ Chí Minh, ngày 06 tháng 03 năm 2023 MỤC LỤC MỤC LỤC i DANH MỤC CÁC TỪ VIẾT TẮT ii LỜI MỞ ĐẦU CHƯƠNG 1: CƠ SỞ LÝ THUYẾT Tổng quan hệ điều hành (Operating System) 1.1 Hệ điều hành gì? 1.2 Mục tiêu hệ điều hành 1.3 Cấu trúc hệ thống máy tính 1.3.1 Phần cứng 1.3.2 Hệ điều hành 1.3.3 Các chương trình ứng dụng 1.3.4 Người dùng 1.4 Các thành phần hệ điều hành 1.4.1 Kernel 1.4.2 Giao diện người dùng 1.4.3 Giao diện lập trình ứng dụng Tổng quan CPU 2.1 CPU gì? 2.2 Thành phần CPU 2.3 Chức CPU Lập lịch CPU 3.1 Khái niệm lập lịch CPU 3.2 Một giải thuật lập lịch phổ biến 3.2.1 First come, first served (FCFS) 3.2.2 Shortest job first (SJF) 3.2.3 Round robin (RR) 10 CHƯƠNG 2: THUẬT TOÁN LẬP LỊCH CPU THEO NGUYÊN TẮC SJF 12 Tổng quan giải thuật lập lịch SJF 12 1.1 SJF gì? 12 1.2 Đặc điểm giải thuật SJF 12 1.3 Cách hoạt động giải thuật SJF 13 1.4 Phân loại giải thuật SJF 13 1.4.1 Non - preemptive (độc quyền - không ưu tiên) 13 1.4.2 Preemptive (SRTF - không độc quyền - ưu tiên) 13 1.5 Ưu, nhược điểm giải thuật SJF 13 1.5.1 Ưu điểm 13 1.5.2 Nhược điểm 14 Mô tả thuật tốn ngơn ngữ C++ 14 2.1 Khai báo cấu trúc tiến trình 15 2.2 Các chức 15 2.2.1 So sánh thời gian đến tiến trình 15 2.2.2 Tính tốn thời gian hồn thành trung bình tiến trình 15 2.2.3 Tính thời gian xoay vịng trung bình 15 2.2.4 Tính thời gian chờ trung bình 15 2.2.5 Tìm tiến trình có thời gian thực ngắn 16 2.2.6 Khởi động lại hệ thống 16 2.2.6 Nhập/xuất tiến trình 17 2.2.6 Trường hợp ưu tiên (preemptive) 17 2.2.6 Trường hợp không ưu tiên (non - preemptive) 18 2.2.6 Vẽ sơ đồ Gantt cho tiến trình 19 2.2.11 Menu lựa chọn 20 2.3 Chạy chương trình 21 KẾT LUẬN 22 DANH MỤC TÀI LIỆU THAM KHẢO 23 PHỤ LỤC 24 DANH MỤC CÁC TỪ VIẾT TẮT CPU: central processing unit FCFS: first come, first served FIFO: first in, first out GUI: graphical user interface I/O: input/output OS: operating system PC: personal computer RR: round robin SJF: shortest job first SRTF: shortest remaining time first LỜI MỞ ĐẦU Hệ điều hành phần khơng thể thiếu máy tính đại, với chức quản lý tài nguyên hệ thống, đồng thời cung cấp giao diện để người dùng tương tác với máy tính Trong phần đầu báo cáo, nhóm giới thiệu tổng quan hệ điều hành, xử lý trung tâm khái niệm giải thuật lập lịch tầm quan trọng chúng hệ thống hệ điều hành Sau đó, nhóm vào chi tiết giải thuật SJF, trình bày cách thức hoạt động nó, ưu điểm nhược điểm, biến thể giải thuật SJF SJF có ưu tiên SJF ngắt Xuyên suốt báo cáo, nhóm trình bày giải thuật SJF (shortest job first) - giải thuật lập lịch sử dụng phổ biến hệ điều hành Với mục đích tìm hiểu sâu cách hoạt động giải thuật SJF, nhóm đề cập đến nguyên lý chế hoạt động nó, ứng dụng thực tế giải thuật hệ thống hệ điều hành Đồng thời, nhóm trình bày ứng dụng thực tế giải thuật SJF hệ thống hệ điều hành đại, với ví dụ minh họa thảo luận hiệu suất độ tin cậy giải thuật SJF tình khác Hy vọng báo cáo cung cấp cho quý giảng viên bạn sinh viên kiến thức bổ ích giải thuật SJF hệ điều hành giúp cho q vị có nhìn tổng quan giải thuật lập lịch hệ thống hệ điều hành đại Nhóm cố gắng thực thật tốt cho đề tài mình, nhiên khơng thể tránh khỏi sai sót, mong bạn góp ý, sửa chữa để sau nhóm hồn thiện tốt Xin chân thành cảm ơn! CHƯƠNG 1: CƠ SỞ LÝ THUYẾT Tổng quan hệ điều hành (Operating System) 1.1 Hệ điều hành gì? Hệ điều hành (gọi tắt OS (Operating System)) chương trình hoạt động đóng vai trị trung gian, cung cấp mơi trường làm việc người dùng phần cứng máy tính 1.2 Mục tiêu hệ điều hành Thực thi chương trình người dùng giúp giải vấn đề người dùng dễ dàng Làm cho hệ thống máy tính thuận tiện để sử dụng Sử dụng phần cứng máy tính cách hiệu 1.3 Cấu trúc hệ thống máy tính: chia thành thành phần: 1.3.1 Phần cứng: cung cấp tài nguyên máy tính bản, bao gồm: CPU, nhớ, thiết bị I/O, 1.3.2 Hệ điều hành: kiểm soát điều phối việc sử dụng phần cứng ứng dụng người dùng khác 1.3.3 Các chương trình ứng dụng: xác định cách sử dụng tài nguyên hệ thống để giải vấn đề máy tính người dùng, bao gồm: trình xử lý văn bản, trình biên dịch, trình duyệt web, hệ thống sở liệu, trò chơi điện tử, 1.3.4 Người dùng: bao gồm người, máy móc, máy tính khác, 1.4 Các thành phần hệ điều hành 1.4.1 Kernel: cung cấp điều khiển mức tất thiết bị phần cứng máy tính Các vai trị bao gồm: đọc liệu từ nhớ ghi liệu vào nhớ, xử lý lệnh thực hiện, xác định cách liệu nhận gửi thiết bị hình, bàn phím, chuột xác định cách diễn giải liệu nhận từ mạng, 1.4.2 Giao diện người dùng: cho phép việc tương tác với người dùng thông qua graphical icons desktop thông qua command line 1.4.3 Giao diện lập trình ứng dụng: Application Programming Interfaces cho phép application developers viết modular code Tổng quan xử lý trung tâm (Central Processing Unit) 2.1 CPU gì? CPU thành phần quan trọng máy tính, sử dụng để thực tác vụ tính tốn điều khiển thành phần khác hệ thống CPU đóng vai trị não laptop, thơng tin, thao tác, liệu tính tốn kỹ lưỡng đưa lệnh điều khiển hoạt động laptop 2.2 Thành phần CPU Khối tính tốn (ALU): phần CPU sử dụng để thực phép tính tốn số học (như phép cộng, trừ, nhân, chia) phép tính logic (như AND, OR, NOT) Khối điều khiển (CU): phần CPU sử dụng để điều khiển hoạt động CPU cách đọc lệnh lưu trữ nhớ CU phân tích lệnh điều khiển ALU phần khác CPU để thực tác vụ yêu cầu Các ghi (Registers): ô nhớ tạm CPU, sử dụng để lưu trữ giá trị số địa nhớ mà CPU làm việc Bộ nhớ cache: nhớ tạm tích hợp trực tiếp CPU, nhanh nhớ RAM Cache sử dụng để lưu trữ liệu lệnh mà CPU sử dụng thường xuyên để tăng tốc độ thực tác vụ • Tối ưu: tiến trình có thời gian thực thi khác nhau, SJF đảm bảo thời gian chờ đợi trung bình tiến trình nhỏ nhất, giải vấn đề "lãng phí" tài nguyên CPU cho tiến trình có thời gian thực thi dài cách hiệu • Tính minh bạch: thuật tốn SJF minh bạch dựa thời gian thực thi tiến trình Tuy nhiên, SJF có số nhược điểm • Khó thực hiện: để đạt kết tối ưu, SJF yêu cầu ta biết trước thời gian thực thi tiến trình Tuy nhiên, thực tế, việc ước tính thời gian thực thi tiến trình khó gây sai lệch dự đốn • Thời gian chờ đợi dài: có tiến trình có thời gian thực thi dài hơn, chịu thiệt thịi phải đợi đến tiến trình khác hồn thành Điều dẫn đến thời gian chờ đợi dài cho tiến trình có thời gian thực thi lớn Do đó, SJF thường sử dụng hệ thống đòi hỏi hiệu CPU cao, với tiến trình có thời gian thực thi tương đối ngắn dự đoán thời gian thực thi tiến trình Nếu khơng, thuật tốn khác Round Robin sử dụng để đảm bảo công tiến trình 3.2.3 Round robin (RR) RR giải thuật lập lịch đơn giản phổ biến hệ thống máy tính Giải thuật RR dựa ý tưởng chia thời gian xử lý cho công việc cách công liên tục Cách thức hoạt động giải thuật RR xử lý công việc theo thời gian lượng tử (quantum time) định trước Khi công việc đến lượt xử lý, thực khoảng thời gian định, sau giải thuật chuyển sang xử lý công việc tiếp tục tất công việc hồn thành 10 Nếu cơng việc chưa hoàn thành lượng tử thời gian xác định, chuyển đến cuối hàng đợi công việc khác xử lý trước Công việc xử lý lại đến lượt Q trình tiếp diễn tất cơng việc hồn thành Các ưu điểm thuật tốn Round Robin: • Tính cơng bằng: tất tiến trình đối xử cơng bằng, tiến trình chạy time slice • Tính đáp ứng tốt: có tiến trình có thời gian thực thi lớn, chúng khơng bị treo tiến trình khác thực thi • Tính ổn định: Nếu tiến trình chạy lâu, chuyển đến hàng đợi để tiến trình khác thực thi, đảm bảo hệ thống ổn định Tuy nhiên, thuật toán Round Robin có nhược điểm, là: • Thời gian chờ đợi dài: có nhiều tiến trình đợi hàng đợi, thời gian chờ đợi chúng dài dẫn đến độ trễ tiến trình • Chi phí chuyển đổi trạng thái cao: Việc lưu khơi phục trạng thái tiến trình chuyển đổi tiến trình tốn nhiều thời gian Do đó, Round Robin thường sử dụng hệ thống có tính đáp ứng nhanh thời gian chờ đợi tiến trình khơng q lớn Nếu tiến trình có thời gian thực thi khác q nhiều, thuật tốn khác sử dụng để đảm bảo hiệu hệ thống 11 CHƯƠNG 2: THUẬT TOÁN LẬP LỊCH CPU THEO NGUYÊN TẮC SJF Trong hệ thống máy tính, việc lên lịch tiến trình vấn đề quan trọng để tối ưu hóa hiệu suất hệ thống Giải thuật SJF (Shortest Job First) giải thuật lập lịch phổ biến sử dụng để lên lịch tiến trình hệ thống dựa thời gian thực dự kiến chúng Trong báo cáo này, sâu vào giải thuật SJF, bao gồm định nghĩa, cách thức hoạt động, ưu điểm nhược điểm, ứng dụng Tổng quan giải thuật lập lịch SJF 1.1 SJF gì? SJF (Shortest Job First) giải thuật lập lịch hệ điều hành sử dụng để lên lịch tiến trình hệ thống dựa thời gian thực dự kiến chúng Theo giải thuật SJF, tiến trình có thời gian xử lý ngắn thực trước đầu tiên, tránh tình trạng tiến trình dài hạn ảnh hưởng đến hiệu suất hệ thống SJF thuật tốn q trình có thời gian thực nhỏ chọn cho lần thực Phương pháp lập kế hoạch ưu tiên khơng ưu tiên Nó làm giảm đáng kể thời gian chờ đợi trung bình cho quy trình khác chờ thực nên dùng trường hợp mà ta mong muốn thời gian đợi đạt cực tiểu (khác với FCFS, tùy vị tiến trình đến trước 1.2 Đặc điểm giải thuật SJF Sắp xếp tiến trình theo thứ tự thời gian xử lý tăng dần Tiến trình có thời gian xử lý ngắn xử lý trước Nếu có hai tiến trình có thời gian xử lý, giải thuật SJF ưu tiên tiến trình yêu cầu trước 12 Giải thuật SJF coi giải thuật không định thời, có nghĩa khơng có thời gian chờ tối đa quy định cho tiến trình 1.3 Cách hoạt động giải thuật SJF Khi tiến trình tạo ra, giải thuật SJF xếp vào hàng đợi Giải thuật SJF so sánh thời gian xử lý tiến trình hàng đợi với tiến trình khác chọn tiến trình có thời gian xử lý ngắn để xử lý Nếu có nhiều tiến trình có thời gian xử lý ngắn nhất, giải thuật SJF chọn tiến trình yêu cầu trước Khi tiến trình xử lý xong, giải thuật SJF chọn tiến trình có thời gian xử lý ngắn để xử lý Quá trình tiếp tục tất tiến trình xử lý xong 1.4 Phân loại giải thuật SJF Giải thuật SJF chia thành hai loại: non-preemptive SJF preemptive SJF 1.4.1 Non - preemptive (độc quyền - không ưu tiên) Trong loại này, một tiến trình bắt đầu thực hiện, khơng bị ngắt chừng chuyển sang thực tiến trình khác, trừ hồn thành Điều dẫn đến tình trạng độ ưu tiên cao số tiến trình, gây độ trễ cho tiến trình khác 1.4.2 Preemptive (SRTF - không độc quyền - ưu tiên) Loại cho phép tiến trình bị ngắt chừng tiến trình có thời gian xử lý ngắn xuất Điều đảm bảo tiến trình có thời gian xử lý ngắn ưu tiên thực trước 1.5 Ưu, nhược điểm giải thuật SJF 1.5.1 Ưu điểm 13 Giải thuật SJF giúp tối ưu hóa thời gian xử lý tiến trình, giảm độ trễ tăng hiệu suất hệ thống Giải thuật SJF tối ưu hóa thời gian chờ đợi tiến trình, giúp tăng độ ổn định tính đồng hệ thống Giải thuật SJF giúp xử lý tiến trình có thời gian xử lý ngắn trước, giảm thiểu chậm trễ hệ thống cải thiện trải nghiệm người dùng Giải thuật SJF đáp ứng yêu cầu ứng dụng thời gian thực, tiến trình phải xử lý để đáp ứng nhu cầu người dùng Giải thuật SJF không bị ảnh hưởng tượng thiếu nguồn tài nguyên giải thuật lập lịch khác, đảm bảo tiến trình ngắn xử lý trước 1.5.2 Nhược điểm Giải thuật SJF sử dụng hệ thống đa nhiệm, u cầu phải biết trước thời gian xử lý tiến trình Giải thuật SJF dẫn đến tình trạng "trì hỗn lâu dài" (long-term delay), tiến trình có thời gian xử lý dài phải chờ đợi lâu để xử lý Giải thuật SJF dẫn đến tình trạng "ưu tiên cao" (priority inversion), tiến trình có ưu tiên thấp phải chờ đợi tiến trình có ưu tiên cao để hồn thành việc sử dụng tài ngun Mơ tả thuật tốn ngơn ngữ C++ 2.1 Khai báo cấu trúc tiến trình: gồm thuộc tính sau: struct Process { int pid; //mã tiến trình int burstTime; //thời gian thực thi tiến trình int arrivalTime; //thời điểm đưa tiến trình vào hệ thống int remainingTime; //thời gian lại để tiến trình hồn thành 14 int finishTime; //thời điểm kết thúc tiến trình int turnaroundTime; //finishTime – arrivalTime int waitingTime; //turnaroundTime – burstTime }; 2.2 Các chức năng: 2.2.1 So sánh thời gian đến tiến trình: so sánh thời gian đến hai tiến trình A B để xếp chúng theo thứ tự tăng dần thời gian đến bool compareArrival(Process a, Process b) { //so sánh thời gian đến return a.arrivalTime < b.arrivalTime; } 2.2.2 Tính tốn thời gian hồn thành trung bình tiến trình double avgFinishTime(vector processes) { int sum = 0; for (int i = 0; i < processes.size(); i++) { sum += processes[i].finishTime; } //avgFinishTime = sumFinishTime / numberOfFinishTime return sum * 1.0 / processes.size(); } 2.2.3 Tính thời gian xoay vịng trung bình double avgTurnaroundTime(vector processes) { int sum = 0; for (int i = 0; i < processes.size(); i++) { sum += processes[i].turnaroundTime; } //avgTurTime = sumTurTime / numberOfTurTime return sum * 1.0 / processes.size(); } 2.2.4 Tính thời gian chờ trung bình 15

Ngày đăng: 04/04/2023, 20:37

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w