Mô phỏng giải thuật định thời biểu CPU

31 860 4
Mô phỏng giải thuật định thời biểu 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

TRƯỜNG ĐẠI HỌC ĐỒNG THÁP KHOA SƯ PHẠM TOÁN – TIN NHÓM BÁO CÁO TỔNG KẾT NGHIÊN CỨU CHUYÊN ĐỀ: MÔ PHỎNG CÁC GIẢI THUẬT ĐỊNH THỜI CHO PROCESS NGÀNH: SƯ PHẠM LỚP: ĐHSTIN15L2 GIẢNG VIÊN HƯỚNG DẪN: Ths NGUYỄN THỊ THÙY LINH Đồng Tháp, tháng 02 năm 2016 Nhóm 4: Mô giải thuật định thời cho process DANH SÁNH SINH VIÊN NHÓM STT MSSV HỌ TÊN GHI CHÚ Nhóm trưởng ĐT:0982.355767 E-mail:lthenam91@gmail.com ĐT: 0986.980565 Tô Lâm Điền E-mail: suyakupro@gmail.com ĐT: 01696.390929 Huỳnh Bửu Tâm E-mail: tam_c2chaulangtt@angiang.edu.vn ĐT: 01666.435474 Chau Sa Rath E-mail: sarathngbk@gmail.com Lê Thế Nam Bảng phân công công việc: STT CÔNG VIỆC Viết thuật toán Trình bày báo cáo, in ấn, ghi đĩa CD Lớp ĐHSTIN15L2 GHI CHÚ Lê Thế Nam Huỳnh Bửu Tâm Tô Lâm Điền Chau Sa Rath Nhóm 4: Mô giải thuật định thời cho process MỤC LỤC Lớp ĐHSTIN15L2 Nhóm 4: Mô giải thuật định thời cho process MỞ ĐẦU Hệ điều hành môn học quan trọng cần thiết Giúp người học hiểu hệ điều hành máy tính, hiểu chế xử lý tiến trình đưa vào hệ điều hành máy tính điện tử Quá trình xử lý tiến trình CPU trình quan trọng, ảnh hưởng đến tốc độ, thời gian xử lý công việc thường ngày máy tính.Vì thế, tiến trình, quan hệ tiến trình cách điều phối tiến trình quan trọng Đặc biệt hiện nay, 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ý Hiện em nhận đề tài: mô giải thuật định thời cho process tiến trình chờ phân phối xử lý Trong chiến lược hàng đợi có nhiều thuật toán xử lý, nhóm chọn thuật toán FCFS, SJF, độ ưu tiên để tìm hiểu Sau tìm hiểu đề tài giúp em hiểu thêm vể chế điều phối tiến trình CPU,và chế xử lý tiến trình Lớp ĐHSTIN15L2 Nhóm 4: Mô giải thuật định thời cho process NỘI DUNG ĐỀ TÀI 2.1 Đặt vấn đề 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 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 môi hệ thống máy tính 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 hiện 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 hiện 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ộ điều 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: mô giải thuật định thời cho process 2.2 Phương pháp giải vấn đề - Tìm hiểu rỏ tiến trình:Tiến trình, loại tiến trình, mô hình tiến trình, cách thực hiện mô hình, quản lý tiến trình - Tìm hiểu chế chiến lược điều phối: First Come First Serve (FCFS), Short Job First (SJF), Độ ưu tiên - Xây dựng chương trình mô giải thuật tìm hiểu kết quả demo ngôn ngữ lập trình C++ 2.3 Giới thiệu tiến trình (process) 2.3.1 Tiến trình gì? Những hệ điều hành ban đầu cho phép chương trình thực thi thời điểm Chương trình có toàn quyền điều khiển hệ thống truy xuất tới tất cả tài nguyên hệ thống Những hệ điều hành hiện đại cho phép nhiều chương trình nạp vào nhớ thực thi đồng hành Sự phát triển yêu cầu điều khiển mạnh mẽ phân chia tài nguyên nhiều tiến trình cho cân hiệu quả Yêu cầu dẫn đến khái niệm tiến trình Process Lớp ĐHSTIN15L2 Nhóm 4: Mô giải thuật định thời cho process Hình 1: (a) đa chương với chương trình (b)Mô hình khái niệm với chương trình độc lập (c)Tại thời điểm có1 chương trình hoạt động Tiến trình chương trình xử lý, sở hữu trỏ lệnh, tập ghi biến Để hoàn thành công việc mình, tiến trình cần đến số tài nguyên CPU, nhớ chính, tập tin thiết bị nhập/xuất Hình 2: Tiến trình (Process) Cần phân biệt hai khái niệm chương trình tiến trình Một chương trình thực thể thụ động, chứa đựng thị điều khiển máy tính để tiến hành công việc đó; cho thực thị này, chương trình chuyển thành tiến trình thực thể hoạt động, với trỏ lệnh xác định thị thi hành, kèm theo tập tài nguyên phục vụ cho hoạt động tiến trình Về mặt ý niệm, xem tiến trình sở hữu xử lý ảo cho riêng nó, thực tế, có xử lý thật chuyển đổi qua lại tiến trình Sự chuyển đổi nhanh chóng gọi đa chương (multiprogramming) Hệ điều hành chịu trách nhiệm sử dụng thuật toán định thời CPU để định thời điểm cần dừng hoạt động tiến trình xử lý để phục vụ tiến trình khác, lựa chọn tiến trình phục vụ Bộ phận thực hiện chức hệ điều hành gọi định thời (scheduler) Lớp ĐHSTIN15L2 Nhóm 4: Mô giải thuật định thời cho process Một hệ điều hành phức tạp mong đợi nhiều việc thực hiện hành vi người dùng Mặc dù quan tâm chủ yếu hệ điều hành thực thi chương trình người dùng, quan tâm đến công việc khác bên nhân Do đó, hệ thống chứa tập hợp trình: trình hệ điều hành thực thi mã hệ thống, trình người dùng thực thi mã người dùng Tất cả trình có tiềm thực thi đồng hành, với CPU hay nhiều CPU đa hợp chúng Bằng cách chuyển đổi CPU trình, hệ điều hành làm cho máy tính hoạt động với suất cao 2.3.2 Phân loại tiến trình Các tiến trình hệ thống chia thành hai loại: -Tiến trình tiến trình mà điểm khởi tạo điểm kết thúc tiến trình trước - Tiến trình song song tiến trình mà điểm khởi tạo tiến trình mằn thân tiến trình khác, tức khởi tạo tiến trình tiến trình trƣớc chưa kết thúc Tiến trình song song chia thành nhiều loại: + Tiến trình song song độc lập: Các tiến trình hoạt động song song quan hệ thông tin với nhau, trường hợp hệ điều hành phải thiết lập chế bảo vệ liệu tiến trình, cấp phát tài nguyên cho tiến trình cách hợp lý Hình 3: Mô tiến trình song song độc lập - Tiến trình song song có quan hệ thông tin: Trong trình hoạt động tiến trình trao đổi thông tin với nhau.Hai tiến trình A B gọi có quan hệ thông tin với tiến trình có gửi thông báo cho tiến trình Tiến trình gửi thông báo không cần biết tiến trình nhận có tồn hay không? đâu? giai đoạn nào? Lớp ĐHSTIN15L2 Nhóm 4: Mô giải thuật định thời cho process Hình 4: Mô tiến trình song song có quan hệ thông tin - Tiến trình song song phân cấp: Trong qua trình hoạt động tiến trình khởi tạo tiến trình khác hoạt động song song với nó, tiến trình khởi tạo gọi tiến trình cha, tiến trình tạo gọi tiến trình Trong mô hình hệ điều hành phải giải vấn đề cấp phát tài nguyên cho tiến trình Tiến trình nhận tài nguyên đâu? từ tiến trình cha hay từ hệ thống Hình 5: Mô tiến trình song song phân cấp - Tiến trình song song đồng mức: Là tiến trình hoạt động song song sử dụng chung tài nguyên theo nguyên tắc lần lượt, tiến trình sau khoảng thời gian chiếm giữ tài nguyên phải tự động trả lại tài nguyên cho tiến trình Hình 6: Sự thực đồng thời tiến trình hệ thống đơn xử lý Lớp ĐHSTIN15L2 Nhóm 4: Mô giải thuật định thời cho process Hình 7: Sự thực đồng thời tiến trình hệ thống đa xử lý 2.3.3 Các trạng thái tiến trình Trạng thái tiến trình thời điểm xác định hoạt động hiện thời tiến trình thời điếm Trong trình sống tiến trình thay đổi trạng thái nhiều nguyên nhân như: phải chờ kiện xảy ra,hay đợi thao tá nhập xuất hoàn tất,buộc phải dừng hoạt động hết thời gian xử lý Mỗi trình trạng thái sau:  Mới (new): trình tạo  Đang chạy (running): thị thực thi  Chờ (waiting): trình chờ kiện xảy (như hoàn thành việc nhập/xuất hay nhận tín hiệu)  Sẵn sàng (ready): trình chờ gán tới xử lý  Kết thúc (terminated): trình hoàn thành việc thực thi Các tên trạng thái bất kỳ, chúng khác hệ điều hành khác Tuy nhiên, trạng thái mà chúng hiện diện tìm thấy tất cả hệ thống Các hệ điều hành xác định mô tả trạng thái trình Chỉ trình chạy tức xử lý nhiều trình trạng thái sẳn sàng chờ Hình 8: Lưu đồ trạng thái trình Lớp ĐHSTIN15L2 Nhóm 4: Mô giải thuật định thời cho process 2.3.4 Chế độ xử lý tiến trình Để đảm bảo hệ thống hoạt động đắn, hệ điều hành cần bảo vệ khỏi xâm phạm tiến trình Bản thâm tiến trình cần bảo vệ tránh khỏi ảnh hưởng qua lại tiến trình Một cách để phân biệt sử dụng chế độ xử lý cho tiến trình: chế độ xử lý đọc quyền chế độ xử lý không đọc quyền nhờ vào hổ trợ phần cứng 2.3.5 Các thao tác điều khiển tiến trình 2.3.5.1 Tạo lập tiến trình Trong trình xử lý tiến trình tạo lập tiến trình cách gọi lời gọi hệ thống tương ứng Tiến trình gọi lới gọi hệ thống để tạo tiến trình gọi tiến trình cha, tiến trình tạo tiến trình Mỗi tiến trình đến lượt tạo tiến trình mới… trình tiếp tục tạo tiến trình Hình : Một tiến trình UNIX Các công việc hệ điều hành cần thực tạo lập tiến trình: - Định danh cho tiến trinh phát sinh - Đưa tiến trình vào dánh sách quản lý hệ thống - Xác định độ ưu tiên cho tiến trình - Tạo PCB cho tiến trình - Cấp phát tài nguyên ban đầu cho tiến trình  Khi tiến trình tạo lập tiến trình con,tiến trình hệ điều hành trực tiếp cấp phát tài nguyên tiến trình cha cho thừa hưởng số tài nguyên ban đầu  Khi tiến trình tạo tiến trình ,tiến trình ban đầu xử lý theo hai khả sau: - Tiến trình cho tiếp tục xử lý đồng hành với tiến trình - Tiến trình cha chờ đến tiến trình tất cả tiến trình có kết thúc xử lý Lớp ĐHSTIN15L2 10 Nhóm 4: Mô giải thuật định thời cho process Nhận xét: Trong trường hợp thời gian chờ trung bình không đạt cực tiểu, có biến đổi đáng kể giá trị thời gian xử lý thứ tự khác tiến trình đến danh sách sẵn sàng Có thể xảy hiện tượng tích lũy thời gian chờ tiến trình P2, P3 yêu cầu thời gian xử lý ngắn phải chờ đợi tiến trình P1 yêu cầu thời gian xử lý dài kết thúc xử lý Giải thuật FCSF giải thuật định thời không trưng dụng CPU Một CPU cấp phát tới trình, trình giữ CPU giải phóng CPU cách kết thúc hay yêu cầu nhập/xuất Giải thuật FCFS đặc biệt không phù hợp hệ thống chia sẻ thời gian, người dùng nhận chia sẻ CPU với khoảng thời gian nhau.Giải thuật đặc biệt không phù hợp với hệ điều hành 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 2.4.7.2 Chiến lược định thời với độ ưu tiê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 CPU Ở hệ điều hành thường tổ chức gán độ ưu tiên cho tiến trình theo nguyên tắc kết hợp giữ gán tĩnh gán động Khi khởi tạo tiến trình gán độ ưu tiên tĩnh, sau phụ thuộc vào môi trường hoạt động tiến trình công tác điều phối tiến trình phận điều phối mà hệ điều hành thay đổi độ ưu tiên tiến trình Khi hệ thống phát sinh tiến trình ready mới, phận điều phối so sánh độ ưu tiên tiến trình phát sinh với độ ưu tiên tiến trình sở hữu CPU (tạm gọi tiến trình hiện tại) Nếu tiến trình có độ ưu tiên thấp tiến trình hiện phận điều phối chèn vào ready list vị trí thích hợp Nếu tiến trình có độ ưu tiên cao tiến trình hiện điều phối thu hồi CPU từ tiến trình hiện để cấp cho tiến trình yêu cầu, điều phối không độc quyền, chèn tiến trình vào ready list vị trí thích hợp, điều phối độc quyền Chiến lược phải sử dụng ready list, ready list xếp theo thứ tự giảm dần độ ưu tiên kể từ đầu danh sách Điều có nghĩa tiến trình chọn để cấp PCU tiến trình đầu ready list Xét tiến trình P1, P2, P3 đến theo thứ tự: Tiến trình P1 P2 P3 Lớp ĐHSTIN15L2 Thời điểm vào RL Độ ưu tiên Thời gian xử Lý 24 1 2 Bảng Ví dụ định thời biểu với độ ưu tiên 17 Nhóm 4: Mô giải thuật định thời cho process Sử dụng giải thuật ưu tiên độc quyền, thứ tự cấp phát CPU sau: P1 24 P2 27 P3 30 Bảng Giản đồ Gannt ví dụ định thời biểu với độ ưu tiên độc quyền Thời gian chờ trung bình (0+23+25)/3 = 16 ms Sử dụng giải thuật ưu tiên không độc quyền, thứ tự cấp phát CPU sau: P1 P2 P3 P1 30 Bảng Giản đồ Gannt ví dụ định thời biểu với độ ưu tiên không độc quyền Thời gian chờ trung bình (6+0+2)/3 = 2.66 ms Nhận xét: Một giải thuật không độc quyền tối ưu giải thuật độc quyền Tình trạng “đói CPU” starvation vấn đề yếu giải thuật sử dụng độ ưu tiên Các giải thuật để tiến trình có độ ưu tiên thấp chờ đợi CPU vô hạn! Để ngăn cản tiến trình có độ ưu tiên cao chiếm dụng CPU vô thời hạn, định thời biểu giảm dần số độ ưu tiên tiến trình chờ sau ngắt đồng hồ Nếu số độ ưu tiên tiến trình giảm xuống thấp tiến trình có số độ ưu tiên cao thứ nhì, xảy chuyển đổi quyền sử dụng CPU Quá trình gọi “lão hóa” (aging) tiến trình 2.4.7.3 Chiến lược công việc ngắn SJF Nguyên tắc: Đây trường hợp đặp biệt giải thuật điều phối với độ ưu tiên p gán cho tiến trình tiến trình nghịch đảo thời gian xử lí mà tiến trình yêu cầu: p=1/t Khi CPU tự cấp phát cho tiến trình yêu cầu thời gian để kết thúc tiến trình ngắn Giải thuật có khả độc quyền hay không độc quyền Sự lựa chọn xảy có tiến trình đưa vào danh sách sẵn sàng tiến trình khác xử lí Tiến trình sở hữu yêu cầu thời gian sử dụng CPU cho lần ngắn thời gian lại mà tiến trình hiện hành cần xử lí Giải thuật SJF không độc quyền dừng họat động tiến trình hiện hành, giải thuật độc quyền cho phép tiến trình hiện hành tiếp tục xử lí  SJF độc quyền: CPU đƣợc giao cho tiến trình, tiến trình chiếm dụng CPU hết thời gian xử lý  SJF hông độc quyền: tiến trình đến có thời gian sử dụng CPU ngắn thời gian thực hiện c n lại tiến trình xử lý giao CPU cho tiến trình đến Xét tiến trình đến theo thứ tự: Lớp ĐHSTIN15L2 18 Nhóm 4: Mô giải thuật định thời cho process Tiến trình P1 P2 P3 P4 Thời điểm vào RL Thời gian xử lý (ms) Bảng Ví dụ định thời biểu SJF Sử dụng giải thuật SJF độc quyền, thứ tự cấp phát CPU sau: P1 P4 P3 P2 12 20 Bảng Giản đồ Gannt ví dụ định thời biểu SJF độc quyền Thời gian chờ trung bình = (0+11+6+3)/4 = 5,0 ms Số lần chuyển đổi ngữ cảnh : Sử dụng giải thuật SJF không độc quyền, thứ tự cấp phát CPU sau: P1 P4 P1 P3 P2 18 20 Bảng Giản đồ Gannt ví dụ định thời biểu SJF không độc quyền Thời gian chờ trung bình = (2+11+6+0)/4 = 4,75 ms Số lần chuyển đổi ngữ cảnh : Nhận xét: Giải thụât cho phép đạt thời gian chờ trung bình cực tiểu Khó khăn thực giải thuật SJF biết thời gian xử lí lần thứ n, t n+1 giá trị dự đoán cho lần xử lí Với hy vọng gia trị đoán giống với giá trị trước đó, sử dụng công thức: Tn+1 = α tn+1(1-α)tn Trong tn+1 chứa đựng thông tin gần nhất, tn chứa đựng thông tin khứ tích luỹ, tham số ỏ kiểm soát trọng số hiện gần hay khứ ảnh hưởng đến công thức toán 2.5 Thiết kế cài đặt thuật toán 2.5.1 Phân tích yêu cầu Tìm hiểu định thời quản lý tiến trình Sử dụng chiến lược định thời biểu: FCFS, SJF độc quyền, ƯU TIÊN độc quyền Để làm rỏ giải thuật: - Nhập vào n tiến trình.P1,P2,……Pn với thông tin sau: + Thời gian tính toán process Lớp ĐHSTIN15L2 19 Nhóm 4: Mô giải thuật định thời cho process + Thời điểm process đưa vào hệ thống + Các thông tin khác cần cho giải thuật (nếu thấy cần thiết) - Sử dụng thuật toán FCFS, SJF độc quyền, ưu tiên độc quyền để xử lý tiến trinh Xuất thông tin trình xử lý: + Thời gian đợi (waiting time) process + Thời gian đợi trung bình + Thời gian quay vòng (turnaround time) + Thời gian quay vòng trung bình + Thông (throughput) 2.5.2 Mô tả toán Chúng ta xây dựng chương trình đơn giản C++ Mô kết quả xử lý tiến trình thông qua thuật toán FCFS, SJF độc quyền, độ ưu tiên độc quyền Đầu vào: Các tiến trình p0,p1,p2,p3,… + Thời gian tính toán tiến trình + Thời điểm tiến trình đưa vào hệ thống + Các thông tin khác cần cho giải thuật (độ ưu tiên) Đầu ra: Thời gian đợi (waiting time) process, thời gian đợi trung bình, thời gian quay vòng (turnaround time), thời gian quay vòng trung bình, thông (throughput) Lớp ĐHSTIN15L2 20 Nhóm 4: Mô giải thuật định thời cho process  Mô hình thuật toán: XỬ LÝ INPUT OUTPUT Thông tin tiến trình nhập vào Số lượng tiến trình Sắp xếp tiến trình theo thời gian vào/xử lý/ưu Giảntiên đồ Gantt Thời gian vào Tính toán thông số Bảng thông tin xử lý tiên trình Thời gian xử lý Xuất giản đồ Gantt thông số Thg đợi t.bình Độ ưu tiên Thg đợi lưu t.bình Hình 12: Mô hình thuật toán - Khởi tạo đối tượng tiến trình chứa thuộc tính: Tên đối tượng tt tg_vao tg_cpu tg_ra uu_tien tg_doi tg_luu Kiểu liệu Nguyên Nguyên Nguyên Nguyên Nguyên Thực Thực Diên giải Thứ tự tiến trình ( P1, P2…) Thời điểm vào tiến trình (ms) Thời gian sử dụng CPU tiến trình (ms) Thời gian tiến trình hoàn thành trả CPU (ms) Độ ưu tiên tiến trình (chiến lược ưu tiên) Thời gian tiến trình đợi CPU (ms) Thời gian tiến trình lưu hệ thống (ms) Bảng 10: thuộc tính tiến trình - Khởi tạo hàm thủ tục: Hàm thủ tục int nhap(int ch) void xuat(int n) void gantt(int n) void sap_xep(int n) void sap_xep_stt(int n) void sap_xep_sjf(int n) void tinh_toan(int n) void Do_uu_tien(int n) void fcfs(int n) void sjf(int n) Diễn giải Nhập số lượng tiến trình thông tin đầu vào Xuất thông tin vừa nhập.(INPUT) Xuất bảng thông xử lý tiến trình thời gian ra, thời gian đợi, thời gian lưu lại hệ thống (OUTPUT) Vẽ giản đồ Gantt cho chiến lược Sắp xếp tiến trình theo thứ tự tăng dần thời điểm vào tiến trình Sắp xếp tiến trình theo thứ tứ tên tiến trình Sắp xếp tiến trình theo thứ tự tăng dần thời gian sử dụng CPU Tính toán thông số thời gian đợi, thời gian lưu, thời gian ra, thời gian đợi trung bình, thời gian lưu trung bình Chiến lược độ ưu tiên độc quyền Chiến lước FCFS Chiến lược SJF độc quyền Bảng 11: Các thủ tục cài đặt thuật toán 2.5.3 Giới thiệu DEMO hướng dẫn sử dụng  Giao diện phần mềm Lớp ĐHSTIN15L2 21 Nhóm 4: Mô giải thuật định thời cho process Khi chương trình thực hiện yêu cầu người dùng chọn chiến lược mô để thực hiện Hình 13: Giao diện chạy chương trình  Hàm nhập liệu Hàm nhap() thực hiện, người dùng cung cấp thông tin (Input): + Số lượng tiến trình + Thời điểm vào Ready List tiến trình + Thời gian sử dụng CPU tiếng trình Hình 14: Người dùng nhập liệu tiến trtình  Hàm vẽ giản đồ Gantt Chương trình gọi thủ tục Gantt(n) để vẽ giản đồ cho chiến lược Lớp ĐHSTIN15L2 22 Nhóm 4: Mô giải thuật định thời cho process Hình 15: Giản đồ Gantt cho chiến lược  Các hàm FCFS(n), SJF(n), DO_UU_TIEN(n) Thực hiện tính toán thời gian tg_ra tiến trình lưu lại, sau gọi thủ tục Gantt(n) để vẽ giản đồ Gantt cho chiến lược  Hàm xuất kết Hàm xuat(n) thực thi trả kết quả gồm bảng thông tin xử lý tiến trình thời gian đợi trung binh, thời gian lưu lại trung binh Hình 16: Thông tin xử lý trả Lớp ĐHSTIN15L2 23 Nhóm 4: Mô giải thuật định thời cho process KẾT LUẬN 3.1 Kết đạt 3.1.1 Kết chiến lược FCFS Hình 17: Kết chiến lược FCFS 3.1.1 Kết chiến lược độ ưu tiên độc quyền Hình 17: Kết chiến lược độ ưu tiên độc quyền Lớp ĐHSTIN15L2 24 Nhóm 4: Mô giải thuật định thời cho process 3.1.1 Kết chiến lược SJF độc quyền Hình 18: Kết chiến lược SJF độc quyền 3.2 Hạn chế Trong thực hiện chương trình nghiên cứu chiến lược định thời biểu process thời gian kiến thức hàn chế nên nghiên cứu chiến lược chưa có điều kiện sâu nghiên cứu chi tiết vào chiến lược cụ thể 3.3 Hướng phát triển Trong thời gian tới có thời gian thêm kiến thức chúng em tiếp tục nghiên cứu chiến lược định thời biểu process lại phát triển chương trình kết hợp đồ họa để người dùng không nhàm chán với giao diện MS-DOS Lớp ĐHSTIN15L2 25 Nhóm 4: Mô giải thuật định thời cho process TÀI LIỆU THAM KHẢO [1] ThS.Nguyễn Thị Thùy Linh, Bài giảng hệ điều hành, Trường Đại học Đồng Tháp, tháng 11/2013 [2] Trần Hạnh Nhi, Giáo trình điện tử hệ điều hành nâng cao, Trường Đại học Khoa học Tự nhiên TP.HCM [3] First Come First Serve, Shortest Job First (Preemptive), Priority and Round-Robin (Preemptive) Scheduling Program With Output: By Umesh Toke, January 21, 2014, http://www.codingdevil.com/2014/01/scheduling.html Lớp ĐHSTIN15L2 26 Nhóm 4: Mô giải thuật định thời cho process PHỤ LỤC Giới thiệu #include #include #include #include #include #include using namespace std; typedef struct process { int stt,tg_vao,tg_cpu,st,tg_ra,uu_tien; float tg_doi,tg_luu; }process; process p[10],p1[10],temp; int nhap(int ch); void xuat(int n); void gantt(int n); void sap_xep(int n); void sap_xep_stt(int n); void sap_xep_sjf(int n); void Do_uu_tien(int n); void tinh_toan(int n); void fcfs(int n); void sjf(int n); int main() { int n,ch; { p[0].tg_luu=0; p[0].tg_doi=0; cout[...]... ĐHSTIN15L2 Thời điểm vào RL Độ ưu tiên Thời gian xử Lý 0 3 24 1 1 3 2 2 3 Bảng 4 Ví dụ về định thời biểu với độ ưu tiên 17 Nhóm 4: Mô phỏng các giải thuật định thời cho process Sử dụng giải thuật ưu tiên độc quyền, thứ tự cấp phát CPU như sau: P1 0 24 P2 27 P3 30 Bảng 5 Giản đồ Gannt ví dụ về định thời biểu với độ ưu tiên độc quyền Thời gian chờ trung bình là (0+23+25)/3 = 16 ms Sử dụng giải thuật ưu... đến có thời gian sử dụng CPU ngắn hơn thời gian thực hiện c n lại của tiến trình đang xử lý thì giao CPU cho tiến trình mới đến Xét các tiến trình đến theo thứ tự: Lớp ĐHSTIN15L2 18 Nhóm 4: Mô phỏng các giải thuật định thời cho process Tiến trình P1 P2 P3 P4 Thời điểm vào RL Thời gian xử lý (ms) 0 6 1 8 2 4 3 2 Bảng 7 Ví dụ về định thời biểu SJF Sử dụng giải thuật SJF độc quyền, thứ tự cấp phát CPU. .. Thiết kế và cài đặt thuật toán 2.5.1 Phân tích yêu cầu Tìm hiểu về bộ định thời trong quản lý tiến trình Sử dụng các chiến lược định thời biểu: FCFS, SJF độc quyền, ƯU TIÊN độc quyền Để làm rỏ các giải thuật: - Nhập vào n tiến trình.P1,P2,……Pn với các thông tin sau: + Thời gian tính toán của mỗi process Lớp ĐHSTIN15L2 19 Nhóm 4: Mô phỏng các giải thuật định thời cho process + Thời điểm process được... tiến trình Hình 3: Cấp độ định thời biểu trung gian 2.4.7 Các chiến lược định thời biểu Các chiến lược định thời biểu giải quyết vấn đề quyết định tiến trình nào trong hàng đợi sẵn sàng được cấp phát CPU 2.4.7.1 Chiến lược FCFS ( first-come, first-served-FCFS) Giải thuật đơn giản nhất là đến trước, được phục vụ trước Với cơ chế này, quá trình yêu cầu CPU trước được cấp phát CPU trước Việc cài đặt... đợi Khi CPU rảnh, nó được cấp phát tới một quá trình tại đầu hàng đợi Sau đó, quá trình đang chạy được lấy ra khỏi hàng đợi Mã của giải thuật FCFS đơn giản để viết và hiểu Tuy nhiên, thời gian chờ đợi trung bình dưới chính sách FCFS thường là dài Lớp ĐHSTIN15L2 15 Nhóm 4: Mô phỏng các giải thuật định thời cho process Hình 11: Định thời biểu FCFS Ví dụ: Xét tập hợp các quá trình sau đến tại thời điểm... trình P2, P3 yêu cầu thời gian xử lý ngắn phải chờ đợi một tiến trình P1 yêu cầu thời gian xử lý dài kết thúc xử lý Giải thuật FCSF là giải thuật định thời không trưng dụng CPU Một khi CPU được cấp phát tới một quá trình, quá trình đó giữ CPU cho tới khi nó giải phóng CPU bằng cách kết thúc hay yêu cầu nhập/xuất Giải thuật FCFS đặc biệt không phù hợp đối với hệ thống chia sẻ thời gian, ở đó mỗi... 4: Mô phỏng các giải thuật định thời cho process Tính hướng nhập xuất của tiến trình: khi một tiến trình nhận được CPU, chủ yếu nó chỉ sử dụng CPU cho đến khi phát sinh một yêu cầu nhập xuất Hoạt động của các tiến trình như thế thường bao gốm nhiều lượt sử dụng CPU, mỗi lượt trong một thời gian khá ngắn Tính hướng xử lý của tiến trình: khi một tiên trình nhận dược CPU, nó có khuynh hướng sử dụng CPU. .. vòng (turnaround time), thời gian quay vòng trung bình, thông năng (throughput) Lớp ĐHSTIN15L2 20 Nhóm 4: Mô phỏng các giải thuật định thời cho process  Mô hình thuật toán: XỬ LÝ INPUT OUTPUT Thông tin các tiến trình nhập vào Số lượng tiến trình Sắp xếp tiến trình theo thời gian vào/xử lý/ưu Giảntiên đồ Gantt Thời gian vào Tính toán thông số Bảng thông tin xử lý các tiên trình Thời gian xử lý Xuất giản... tiến trình nhận CPU nó vấn được sử dụng CPU cho đến khi hoàn tất hoặc tự nguyện giải phóng CPU, nhưng một tiến trình khác có độ ưu tiên cao hơn có thể dành quyền sử dụng CPU của tiến trình ban đầu Như vậy tiến trình có thể dừng hoạt động bắt cứ lúc nào Lớp ĐHSTIN15L2 12 Nhóm 4: Mô phỏng các giải thuật định thời cho process mà không được báo trước để tiến trình khác xử lý Các quyết định điều phối xảy... định thời biểu SJF độc quyền Thời gian chờ trung bình = (0+11+6+3)/4 = 5,0 ms Số lần chuyển đổi ngữ cảnh : 3 Sử dụng giải thuật SJF không độc quyền, thứ tự cấp phát CPU như sau: P1 0 P4 3 P1 5 P3 8 P2 18 20 Bảng 9 Giản đồ Gannt ví dụ về định thời biểu SJF không độc quyền Thời gian chờ trung bình = (2+11+6+0)/4 = 4,75 ms Số lần chuyển đổi ngữ cảnh : 4 Nhận xét: Giải thụât này cho phép đạt được thời

Ngày đăng: 20/06/2016, 14:31

Mục lục

  • 2.2. Phương pháp giải quyết vấn đề

  • 2.3. Giới thiệu tiến trình (process)

  • 2.4. Định thời biểu CPU

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

Tài liệu liên quan