Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 40 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
40
Dung lượng
654,73 KB
Nội dung
CPU scheduling algorithms - Write a C program that demonstrate CPU scheduling algorithms SJF TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT - HÀN KHOA KHOA HỌC MÁY TÍNH B ÁO CÁO LẬP TRÌNH HỆ THỐNG TÊN ĐỀ TÀI : CPU scheduling algorithms - Write a C program that demonstrate CPU scheduling algorithms SJF Sinh viên thực : Vũ Đình Tấn Phạm Văn Tuấn Đinh Xuân Thìn Nguyễn Xuân Phúc Lớp : 20SE4 Giảng viên hướng dẫn : Th.S Phạm Hồ Trọng Nguyên Đà Nẵng, tháng 11 năm 2022 CPU scheduling algorithms - Write a C program that demonstrate CPU scheduling algorithms SJF TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT – HÀN KHOA KHOA HỌC MÁY TÍNH BÁO CÁO LẬP TRÌNH HỆ THỐNG TÊN ĐỀ TÀI : CPU scheduling algorithms - Write a C program that demonstrate CPU scheduling algorithms SJF CPU scheduling algorithms - Write a C program that demonstrate CPU scheduling algorithms SJF Đà Nẵng, tháng … năm 2022 LỜI CẢM ƠN Để hồn thành báo Lập trình hệ thống trước tiên em xin gửi lời cảm ơn chân thành đến thầy cô giảng viên khoa Khoa học Máy tinh Trường Đại học Công Nghệ Thông Tin Truyền thông Việt - Hàn Đặc biệt, em xin gửi đến thầy Phạm Hồ Trọng Nguyên, người tận tinh hướng dẫn, giúp đỡ việc nâng cao kiến thức chuyên môn, phát huy cho chúng em tinh tự học, tự tim hiểu, từ hình thành phương pháp nghiên cứu, tim tòi, tiếp cận với khoa học công nghệ Đồng thời trau dồi kỹ học tập động sáng tạo Vì kiến thức cịn hạn chế, trình tim hiểu đề tài em khơng thể tránh sai sót Em mong nhận nhận xét, đánh giá, đóng góp ý kiến từ thầy cô để rút kinh nghiệm từ báo cáo học phần chuẩn bị tốt cho báo cáo học phần sau Em xin chân thành cảm ơn! CPU scheduling algorithms - Write a C program that demonstrate CPU scheduling algorithms SJF NHẬN XÉT (Của giảng viên hướng dẫn) CPU scheduling algorithms - Write a C program that demonstrate CPU scheduling algorithms SJF MỤC LỤC LỜI CẢM ƠN CHƯƠNG 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH UNIX 1.1 Hệ Điều hành 1.2 Lịch sử phát triển 1.3 Các đặc điểm 1.4 10 Lệnh tiện ích 1.4.1 10 Các lệnh khởi tạo 1.4.2 10 Các lệnh hiển thị 1.4.3 10 Định hướng vào 1.4.4 11 Desktop 1.4.5 11 Các lệnh thao tác với thư mục file 1.4.6 12 Quản lý tiến trình 1.4.7 12 Kiểm soát quyền hạn bảo mật 1.4.8 12 Các thao tác mạng CHƯƠNG 2: LẬP LỊCH CPU 2.1 13 13 Cơ sở lý thuyết 2.1.1 13 Mục tiêu lập lịch 2.1.2 14 Các đặc điểm tiến trình 2.1.3 15 Điều phối khơng độc quyền điều phối độc quyền CPU scheduling algorithms - Write a C program that demonstrate CPU scheduling algorithms SJF 2.1.4 Khái niệm CPU 16 2.1.5 Khái niệm trạng thái tiến trình: 16 2.1.6 Khái niệm lập lịch cho CPU 17 2.2 18 Mô giải thuật Shortest-job-first 2.2.1 18 Ví dụ trường hợp Preemptive 2.2.2 19 Ví dụ trường hợp Non - Preemptive 2.3 19 Các phần mềm công nghệ sử dụng 2.3.1 19 Máy ảo Oracle VM VirtualBox 2.3.2 22 NetBSD CHƯƠNG 3: CHƯƠNG TRÌNH C TRÌNH BÀY THUẬT TỐN SJF 3.1 Lập lịch Non-Preemptive 3.2 Lập lịch Preemptive Tài liệu tham khảo 24 24 28 31 CHƯƠNG 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH UNIX 1.1 Hệ Điều hành UNIX hệ điều hành phổ biến, trước chúng sử dụng minicomputer workstation công sở nghiên cứu khoa học Ngày UNIX trở thành hệ điều hành dùng cho máy tinh cá nhân phục vụ công việc kinh doanh nhờ khả mở UNIX giống hệ điều hành khác lớp nằm phần cứng ứng dụng Nó có chức quản lý phần cứng quản lý ứng dụng thực thi Điều khác UNIX hệ điều hành khác thực thi bên giao diện Hệ điều hành UNIX thực hệ điều hành Nó bao gồm thành phần trước (Phần vốn có hệ điều hành CPU scheduling algorithms - Write a C program that demonstrate CPU scheduling algorithms SJF Unix) thành phần bổ sung, lớp nằm phần cứng ứng dụng Cấu trúc hệ điều hành Unix sau: Hình ảnh: CPU scheduling algorithms - Write a C program that demonstrate CPU scheduling algorithms SJF Kernel: Phần quản lý phần cứng ứng dụng thực thi gọi kernel Trong quản lý thiết bị phần cứng UNIX xem thiết bị file (được gọi device file) Điều cho phép việc truy nhập thiết bị giống việc đọc ghi file Việc quản lý quyền truy nhập thiết bị thơng qua hệ thống kiểm sốt bảo mật quyền hạn Các process thực thi UNIX phân chia tài nguyên bao gồm CPU truy nhập tới phần cứng Khi khởi động máy tinh chương trình unix nạp vào nhớ chính, hoạt động shutdown tắt máy Chương trình gọi kernel, thực chức mức thấp chức mức hệ thống Kernel chịu trách nhiệm thông dịch gửi thị tới vi xử lý máy tinh Kernel chịu trách nhiệm tiến trình cung cấp đầu vào cho tiến trình Kernel trái tim hệ điều hành UNIX Khi kernel nạp vào nhớ lúc sẵn sàng nhận yêu cầu từ người sử dụng Đầu tiên người sử dụng phải login đưa yêu cầu Việc login để kernel biết vào hệ thống cách truyền thông với chúng Để làm điều kernel gọi chạy hai chương trình đặc biệt getty login Đầu tiên kernel gọi chạy getty Getty hiển thị dấu nhắc CPU scheduling algorithms - Write a C program that demonstrate CPU scheduling algorithms SJF yêu cầu người sử dụng nhập vào Khi nhận thông tin đầu vào getty gọi chương trình login Chương trình login thiết lập định danh cho user xác định quyền user login Chương trình login kiểm tra mật file mật Nếu mật không cổng vào không thiết lập bị trả lại điều khiển cho getty Nếu user nhập mật chương trình login gửi điều khiển tới chương trình mà có tên nằm password file Thơng thường chương trình shell Shell: Việc thao tác trực tiếp tới kernel phức tạp đòi hỏi kỹ thuật cao Để tránh phức tạp cho người sử dụng để bảo vệ kernel từ sai sót người sử dụng shell xây dựng thành lớp bao quanh kernel Người sử dụng gửi yêu cầu tới shell, shell biên dịch chúng sau gửi tới kernel Chức shell: ● Thơng dịch lệnh ● Khởi tạo chương trình ● Định hướng vào ● Kết nối đường ống ● Thao tác file ● Duy trì biến ● Điều khiển mơi trường ● Lập trình shell Hiện hệ điều hành Unix người ta sử dụng chủ yếu ba loại shell sau: Shell Path Câu lệnh mặc định (non-root user) Câu lệnh mặc định (Root user) CPU scheduling algorithms - Write a C program that demonstrate CPU scheduling algorithms SJF Bourn e Shell (sh) /bin/sh and /sbin/sh $ # C Shell (csh) /bin/csh % # Korn /bin/ksh $ # Shell (ksh) 1.2 Lịch sử phát triển Giữa năm 1969 - 1970, Kenneth Thompson, Dennis Ritchie người khác phịng thí nghiệm AT&T Bell Labs bắt đầu phát triển hệ điều hành nhỏ dựa PDP-7 Hệ điều hành sớm mang tên Unix, chơi chữ từ dự án hệ điều hành có từ trước mang tên MULTICS Vào khoảng 1972 - 1973, hệ thống viết lại ngôn ngữ C thông qua định này, Unix trở thành hệ điều hành sử dụng rộng rãi chuyển đổi khơng cần phần cứng ban đầu cho Các cải tiến khác thêm vào Unix phần thoả thuận AT&T Bell Labs cộng đồng trường đại học học viện Vào năm 1979, phiên thứ Unix phát hành, hệ điều hành gốc cho tất hệ thống Unix có Sau thời điểm đó, lịch sử Unix bắt đầu trở nên phức tạp Cộng đồng trường đại học học viện, đứng đầu Berkeley, phát triển nhánh khác gọi Berkeley Software Distribution (BSD), AT&T tiếp tục phát triển Unix tên gọi “Hệ thống III” sau “Hệ thống V” Vào năm cuối thập kỷ 1980 năm đầu thập kỷ 1990, “cuộc chiến tranh” hai hệ thống diễn căng thẳng Sau nhiều năm, hệ thống theo đặc điểm khác Trong thị trường thương mại, “Hệ thống V” giành thắng lợi (có hầu hết giao chuẩn thông dụng) nhiều nhà cung cấp phần ... TRÌNH HỆ THỐNG TÊN ĐỀ TÀI : CPU scheduling algorithms - Write a C program that demonstrate CPU scheduling algorithms SJF CPU scheduling algorithms - Write a C program that demonstrate CPU scheduling. .. algorithms - Write a C program that demonstrate CPU scheduling algorithms SJF NHẬN XÉT (C? ? ?a giảng viên hướng dẫn) CPU scheduling algorithms - Write a C program that demonstrate CPU scheduling algorithms. .. program that demonstrate CPU scheduling algorithms SJF tiến CPU scheduling algorithms - Write a C program that demonstrate CPU scheduling algorithms SJF trình c? ??n thời gian để kết th? ?c xử lý CPU