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.. Thuật toán này sắp xếp các
Trang 1
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
Danh mục các bảng L0 002 2111220111 2212111 00111201115 011 1110111110111 11k g1 xk khu 9
Chương 1 Mở đầu 5+ 21 1 E1 2211212112 121211 1 12 1 t2 g Hà nen He 11
LL Ly do chom 46 taiec.cecccccccccccsccscescssesscssesvssessesssusevssessssessessssessvssesevecsveevevsvsveeees 11
1.2 Mục tiêu và nhiệm vụ nghiên CỨU c1 2222122111211 112 115111111151 1811 18111 ke 12 1.6 Nội dung văn bản c1 212221212112 111111 152115 1111151115011 111115011 kh cu 15
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
xuất hiện
=> Phương thức FCFS trong máy tính là co ché FIFO Queue (First In First Out)
Ready Queue
1.1.2 Ưu và nhược điểm của nguyên tắc FCFS
1.1.2.1 Ưu điểm
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ụ:
Proces | Arrival Time | Burst Time
S
Trang 8FƑ— 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 9Ready Queue
1.2.2 Ưu và nhược điểm của nguyên tắc SJE
1.2.2.1 Ưu điểm
Hiệu suất tối ưu cho các yêu cầu ngắn: Thường dẫn đến thời gian chờ và thời gian đáp ứng trung bình thấp nhất[4]
Tối ưu hóa thời gian chờ: Ưu tiên xử lý các tiến trình ngắn nhất, giảm thời
gian chờ tông thé[4]
Phù hợp cho các hệ thống thời gian thực: Trong các hệ thông thời gian thực, việc đáp ứng deadline cho các tiến trình là rat quan trong SJF dam bao rang
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
1.2.2.2 Nhược điểm
Khó dự đoán thời gian thực thị: Khó khăn trong việc ước tính thời gian thực thi của các tiến trình|4]
Không công bằng cho các tiến trình dài: Các tiến trình dài có thé phải đợi rất lâu nếu liên tục có các tiên trình ngắn đến[4]
Không xem xét thời hạn: Không phù hợp cho các hệ thông yêu câu thời hạn
cu thé
Gây ra tình trạng chết đói: Nếu liên tục có các tiên trình mới với thời gian thực hiện ngắn hơn được đưa vào hệ thống, các tiễn trình có thời gian thực hiện lâu
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ụ:
Proces | Arrival Time | Burst Time
s
¢ 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 12Ready Queue
1.3.2 Ưu và nhược điểm của nguyên tắc SRTE
1.3.2.1 Ưu điểm
Tối ưu hóa thời gian chờ đợi: Giống như SJF, nhưng thêm tính năng
ưu tiên các tiễn trình có thời gian thực thi còn lại ngắn nhất, giúp tối ưu hóa thời gian chờ đợi
Thờ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
1.3.2.3 Ví dụ:
5
P
Ð;
P3
1.4 Round Robin (RR)
Proces Arrival Time | Burst Time
0
2
3
Thời gian đáp ứng: P, = 0, P, = 9, P; =4, Py = 6
Thời gian dap ứng trung binh: (0 + 9 + 4 + 6)/4 =4.75 Thời gian chờ: P; = 0, P2 =7, P3=1, Ps =0
Thoi gian cho trung binh: (0 + 7+ 1+ 0)/4 =2 Thời gian hoàn thành: Pị = 4, P; = 15, P; =6, P¿= 9 Thời gian hoàn thành trung bình: (4 + 15 + 6 + 93⁄4=8.5 1.4.1 Nguyên tắc hoạt động của RR
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 14Ready Queue
mm e6
Ready Queue
E35
Ready Queue
BE
1.4.2 Ưu và nhược điểm của nguyên tắc RR
1.4.2.1 Ưu điểm
Tính công bằng cao: Mỗi tiến trình được cấp phát một khoảng thời gian (quantum) đề thực thi, dam bao rang tat ca các tiên trình đều có cơ hội
chạy
Thời gian đáp ứng tốt: Thích hợp cho hệ thống thời gian chia sẻ vì nó cung cấp thời gian đáp ứng tốt cho các tiến trình
Khả 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]
1.4.2.3 Ví dụ
Proces | Arrival Time | Burst Time
S
Trang 15
mim i
Với q=3
Sơ đồ Gantt
© Thời gian đáp ứng trung bình: (0 + 3 +6 + 93⁄4 =4.5
e Thời gian chờ: Pị=5, P;=7, Pạ =3, Pạ= 3
© Thời gian chờ trung bình: (Š +7 +3 +3)⁄4=4.5
® Thời gian hoàn thành: Pị =9, P; = 15, P; =8, P¿ = 12
¢ _ Thời gian hoàn thành trung bình: (9 + 15 + 8+ 12)/⁄4 = II 1.5 Đánh giá các thuật toán
0
Waiting Time and Avg Waiting Time
@FCFS SSJF
@RR
PS
Hì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ó