TP HỒ CHÍ MINH
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRUONG DAI HOC SU PHAM TP HO CHi MINH
Thuộc nhóm ngành khoa học: Công nghệ thông tin
TP Hồ Chí Minh, 4/2024
Trang 2
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRUONG DAI HOC SU PHAM TP HO CHi MINH
Thuộc nhóm ngành khoa học: Công nghệ thông tin Người hướng dẫn: ThS
SV thực hiện:
Nguyễn Đức Tâm - 48.01.104.128
Nguyễn Đức Duy — 48.01.104.034
Lê Ngọc Minh — 48.01.104.088 —48.01.104
Ngành học: Công nghệ théng tin
TP Hồ Chí Minh, 4/2024
Trang 3
Mục Lục
2.1 Tổng quan tình hình nghiên cứu thuộc Tinh Vu cecececcseesceceseseeessvssesesveveeeseees 16
2.2 Một số thách thức - ¿22t 222 2211112211112211112111212111212111 11.11.111 1 re 19
2.3 Sơ lược về các tập dữ liệu - - 5c 5c TỰ 212 1212121221 tt 1n re 19
Trang 4MỞ ĐẦU
1 Giới thiệu
Trong lĩnh vực hệ điều hành, quản lý và tôi ưu hóa tài nguyên là một trong những
nhiệm vụ quan trọng nhằm đảm bảo hệ thống hoạt động hiệu quả và én định Hai trong số
những vấn đề nồi bật và cần được quan tâm là lập lịch sử dụng CPU va quan ly deadlock Lập lịch CPU là kỹ thuật quan trọng giúp hệ điều hành xác định thứ tự thực thi các
tiễn trình đề tối ưu hóa hiệu suất hệ thông Các thuật toán lập lịch đóng vai trò quyết định
trong việc cải thiện thời gian đáp ứng, giảm thời gian chờ đợi và đảm bảo tính công bằng giữa các tiến trình Bài báo cáo này sẽ di sâu vào tìm hiểu, phân tích và đánh giá các thuật toán lập lịch pho biến như First-Come, First-Served (FCFS), Shortest Job First (SJF), Shortest Remaining Time First (SRTF), Round Robin (RR) Muc tiêu là hiểu rõ ưu, nhược điểm của từng thuật toán và áp dụng chúng trong các tình huống cụ thé dé dat duoc
hiệu quả tôi ưu
Deadlock là tình trạng mà một tập hợp các tiến trình bị kẹt và không thê tiếp tục
thực hiện do mỗi tiến trình trong tập hợp đang chờ tài nguyên mà tiến trình khác đang nam giữ Giải thuật Banker là một trong những phương pháp hiệu quả đề phát hiện và ngăn chặn deadlock bằng cách kiểm tra tính an toàn của trạng thái hệ thống trước khi cấp phát tài nguyên Bài báo cáo này cũng sẽ tập trung vào xây dựng chương trình minh họa giải thuật Banker, nhằm cung cấp cái nhìn trực quan về cách thức hoạt động của giải thuật trong việc phát hiện và giải quyết deadlock Chương trình sẽ giúp người dùng hiểu rõ hơn về quá trình kiểm tra an toàn và cách thức áp dụng giải thuật trong thực tế
2 Mục tiêu chung
[Ề Nâng cao kiến thức chuyên sâu: Giúp người học nắm vững các nguyên lý và kỹ thuật quan trọng trong quản lý tài nguyên hệ điều hành, đặc biệt là lập lịch CPU và xử ly deadlock.
Trang 5[Ê Phát triển kỹ năng phân tích và đánh giá: Cung cấp khả năng phân tích, so sánh và đánh giá hiệu quả của các thuật toán lập lịch CPU, cũng như áp dụng giải thuật Banker trong việc phát hiện và giải quyết deadlock
B Ứng dụng thực tiễn: Xây dựng các chương trình minh họa cụ thê, giúp người học thấy rõ cách áp dụng lý thuyết vào thực tế, từ đó nâng cao khả năng lập trình và giải quyết vấn đề trong môi trường hệ điều hành
[Ề Xúc tác và đóng góp cho cộng đồng học thuật: Tạo ra những tải liệu và công cụ học tập hữu ích, giúp ích cho việc nghiên cứu và giảng dạy về hệ điều hành trong tương lai.
Trang 6CHUONG 1: TIM HIẾU, PHÂN TÍCH VÀ ĐÁNH GIÁ CÁC THUẬT TOÁN LẬP LỊCH SỬ DỤNG CPU
1.1 First Come — First Served Scheduling (FCFS) 1.1.1 Nguyên tắc hoạt động của FCES
First Come — Firse Served là thuật toán định thời gian CPU đơn giản nhất Thuật
toán hoạt động dựa trên nguyên tắc “Đến trước thực hiện trước”, tức là công việc nào đến
trước thì thực hiện trước
Giải thuật này ứng dụng chế đồ nonpreemptive — tức là tiến trình sẽ chiếm giữ CPU cho đến khi nào nó trả CPU, thông qua phương thức ngắt hay yêu cầu nhập/xuất
Tính đơn giản: FCFS rất dễ thực hiện và hiệu Nó chỉ yêu cầu một hàng đợi
đơn gián đề lưu trữ các tiến trình theo thứ tự đến.
Trang 7Tính công bằng: FCFS xử lý các tiến trình theo thứ tự chúng đến, đám bảo
rằng không có tiến trình nào bị bỏ qua
Chi phí thấp: Không yêu cầu tính toán phức tạp hoặc thông tin bồ sung, làm
cho việc triển khai dễ dàng|4]
Không bị đói: FCFS đảm bảo rằng không có yêu cầu nào bị bỏ đói, vì nó xử
lý các yêu cầu theo thứ tự chúng đến trong hàng đợi Điều này đảm bảo rằng ngay cả những yêu cầu có mức độ ưu tiên thấp cuối cùng cũng được xử lý|4]
1.1.2.2 Nhược điểm
Hiệu suất kém cho các yêu cầu dài: Các tiên trình dài có thê làm cho các
tiễn trình ngắn phải chờ đợi lâu[4]
Không hiệu quả về đĩa: Không tối ưu hóa vị trí của dữ liệu trên đĩa, dẫn đến thời gian truy cập đĩa cao
Hiệu ứng đoàn xe: Một tiễn trình dài có thể khiến các tiền trình khác phải
chờ, dẫn đến tích tụ các tiến trình trong hàng đợi
Thời gian chờ đợi trung bình cao: Dẫn đến thời gian chờ đợi trung bình cao nếu có nhiều tiến trình trong hàng đợi[4]
Không xem xét thời hạn và ưu tiên: Không hỗ trợ các yêu cầu về thời hạn
hoặc ưu tiên
1.1.2.3 Ví dụ:
Trang 8
FƑ— 0 4 10 12
© _ Thời gian đáp ứng trung bình: (0 + 4 + I0 + 12)/4 =6.5 ® Thời gian chờ: PI =0, P2 =4, P3 = 10, P4 = 12 ¢ _ Thời gian chờ trung bình: (0 +4 + I0 + 12)/4 =6.5 ® Thời gian hoàn thành: PI =4, P2 = 10, P3 = 12, P4 = 1§ ® Thời gian hoản thành trung bình: (4 + 10 + 12 + 15)/4 = 10.25 1.2 Shortest Job First (SJF)
1.2.1 Nguyên tắc hoạt động của SJF
Shortest Job First là thuật toán lập lịch CPU trong hệ thống máy tính Thuật toán
này sắp xếp các quá trình theo một thời gian thực hiện (execution time) từ thấp đến cao và
lựa chọn qua trinh co thời gian thực hiện ngắn nhất đề thực thi trước
Với SJF, các quá trình mới được đưa vào hàng đợi sẽ được so sánh với các quá
trình đang thực thi, và nếu thời gian thực hiện ngắn hơn thì quá trình mới sẽ được thực thi trước Tuy nhiên, SJF không hoàn toàn công bằng, vì nó có thể dẫn đến tình trạng starvation (quá trình bị đói tài nguyên) Nếu một quá trình có thời gian thực hiện lớn hơn các quá trình khác, nó có thể không được thực thi cho đến khi các quá trình khác đã hoàn thành
> SJF hoạt động tốt trên các hệ thống có nhiều tiễn trình thực hiện ngắn.
Trang 10các tiền trình quan trọng có thời gian thực hiện ngắn sẽ được thực thi trước, giúp tăng khả năng đáp ứng deadline cho hệ thống
hơn có thê bị bỏ đói và không bao giờ được thực thi Điều này có thể dẫn đến việc
một số tiễn trình không thê hoàn thành, ảnh hưởng đến hiệu quả hoạt động của hệ
thong[4]
1.2.2.3 Ví dụ:
¢ Thời gian đáp tng trung binh: (0 + 9 + 4 + 6)/4 =4.75
Trang 11® Thời gian chờ: P,=0,P;= 7, P; = I,P¿=0
e© Thời gian chờ trung bình: (0+ 7+1 +03⁄4=2 ® - Thời gian hoàn thành: Pị = 4, P; = I5, P; =6, P,=9 e _ Thời gian hoàn thành trung bình: (4 + 15 +6 + 9)/4 =8.5 1.3 Shortest Remaining Time First (SRTF)
1.3.1 Nguyên tắc hoạt động của SRTF
Shortest Remaining Time First la phién ban ưu tiên của SJF
SRTF là một thuật toán lập lịch CPU được coi là phiên ban ngắt quãng
(preemptive) của thuật toan Shortest Job First (SJF) Giống như SJF, SRTF ưu tiên
thực thi tiễn trình có thời gian còn lại ngắn nhất đề giảm thiểu thời gian chờ đợi
trung bình
Tuy nhiên, điểm khác biệt chính của SRTF là nó cho phép ngắt quãng (preempt) tién trinh dang chay néu có tiễn trình mới xuất hiện với thời gian còn lại ngắn hơn
Ready Queue
Trang 12Thời gian đáp ứng tốt hơn: Thường có thời gian đáp ứng tốt hơn SJF vì nó xem xét thời gian thực thi con lai
1.3.2.2 Nhược điểm
Trang 13Khó dự đoán thời gian thực thị: Tương tự như SJF, khó khăn trong
việc ước tính thời gian thực thi còn lại
Chi phí chuyền đổi ngữ cảnh cao: Có thê gây ra nhiều chuyên đối ngữ cảnh, làm giảm hiệu suât hệ thông
_ Khong cong bằng cho các tiền trình dài: Các tiến trình dài có thể phải chờ rât lâu, tương tự như SJF
5
P
Ð; P3
RoundRobm là một thuật toán lập lịch CPU đơn giản và được sử dụng pho
biến trong các hệ thống chia sẻ thời gian Nó hoạt động dựa trên nguyên tắc vòng tròn (round robin), tức là lần lượt cấp cho mỗi tiến trình một khoảng thời gian nhất
định (time slice) đề thực thi Sau khi hét time slice, tién trinh đó bị tạm dừng và
nhường CPU cho tiến trình tiếp theo trong hàng đợi Nếu tiền trình chưa hoàn
thành thì nó sẽ được thêm lại vào cuối hàng đợi đề chờ đợi lượt thực thi tiếp theo.
Trang 14Khả năng thích ứng cao: Có thê dễ dàng điều chỉnh khoảng thời gian
quantum đề phù hợp với khối lượng công việc khác nhau
1.4.2.2 Nhược điểm
Hiệu suất phụ thuộc vào quantum: Hiệu suất hệ thông phụ thuộc vào việc chọn khoảng thời gian quantum Nếu quantum quá lớn, RR gần giống FCES: nếu quá nhỏ, có thê dẫn đến quá nhiều chuyên đôi ngữ cảnh[4]
Chi phí chuyên đối ngữ cảnh: Chi phí chuyên đối ngữ cảnh có thê cao néu quantum quá nhỏ, làm giảm hiệu suất hệ thông|[4]
Trang 15Hình I: So sánh Thời gian chờ của các thuật toán lập lich[4].
Trang 16Time
25 20
@FCFS
15
aSJF
10 =RR 2ì =PS o4
Process ID
Hình 2: So sanh thoi gian quay vòng của thuật toán lập lich co ban[4]
Nhìn vào có thê thấy được thuật toán SJF cho thời gian chờ và thời gian quay vòng
tốt hơn
FCEFS là thuật toán đơn giản nhất, thuật toán này chỉ phù hợp với các hệ thông có
thời gian chờ lớn[3]
Với RR, phù hợp với các hệ thống có nhiều tiền trình, các tiến trình ngắn
Với SIF và SRTF có thê xuất hiện hiện tượng đói CPU khi có liên tục có các tiến
trình ngắn nạp vào dẫn đến các tiến trình dài không được xử lí gây ra hiện tượng déi CPU(starvation)
Nếu thời gian sử dụng của các tiễn trinh nhu nhau thi SRTF =FCFS
Nếu thời gian sử dụng của các tiễn trình là biến động lớn thì SRTF, RR giúp cho các tiền trình có thời gian ngắn không chờ quá lâu
Với RR nếu như tiến trình có thời gian sử dụng CPU gần nhau thì không hiệu quả Còn nếu như tiến trình có thời gian q quá lớn thì sẽ giống như FCFS, còn nếu quá nhỏ thì gây ra thời gian Overhead lớn dẫn đến không hiệu quả
FCFS sẽ phù hợp với các hệ thống có tiến trình mà có thời gian lớn SJF và SRTF
sẽ phù hợp với các tiễn trình có biến động lớn RR phù hợp với các hệ thông có
Trang 17nhiều tiến trình ngắn, hoặc các tiễn trình đó có biến động lớn về thời gian hoàn thành.