Tải bản đầy đủ (.docx) (15 trang)

Giải thuật định thời Round Robin (có demo)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (123.85 KB, 15 trang )

KHOA CÔNG NGHỆ THÔNG TIN
----------

TIỂU LUẬN HỌC PHẦN:
HỆ ĐIỀU HÀNH

TÊN ĐỀ TÀI:

TÌM HIỂU GIẢI THUẬT ĐỊNH THỜI ROUND ROBIN
VÀ VIẾT CHƯƠNG TRÌNH MINH HỌA

Thành phố Hồ Chí Minh, tháng năm


KHOA CÔNG NGHỆ THÔNG TIN
----------

TIỂU LUẬN HỌC PHẦN:
HỆ ĐIỀU HÀNH

TÊN ĐỀ TÀI:

TÌM HIỂU GIẢI THUẬT ĐỊNH THỜI ROUND ROBIN
VÀ VIẾT CHƯƠNG TRÌNH MINH HỌA

Thành phố Hồ Chí Minh, tháng năm


LỜI CAM ĐOAN
Chúng em xin cam đoan đề tài tiểu luận: “Tìm hiểu giải thuật định thời Round
Robin và viết chương trình minh họa” do nhóm nghiên cứu và thực hiện.


Kết quả bài làm của đề tài “Tìm hiểu giải thuật định thời Round Robin và viết
chương trình minh họa” là trung thực và không sao chép từ bất kỳ bài tập của nhóm
khác.
Các tài liệu được sử dụng trong tiểu luận có nguồn gốc, xuất xứ rõ ràng.


MỤC LỤC
LỜI MỞ ĐẦU................................................................................................................1
NỘI DUNG.....................................................................................................................2
1. GIỚI THIỆU..............................................................................................................2
1.1. Mục tiêu lập lịch.....................................................................................................2
1.2. Giải thuật Round Robin là gì?..............................................................................2
1.2.1. Ưu điểm của giải thuật Round Robin.........................................................3
1.2.2. Nhược điểm của giải thuật Round Robin...................................................3
2. GIẢI THUẬT ROUND ROBIN...............................................................................3
2.1. Lưu trình...............................................................................................................4
2.2. Ví dụ.....................................................................................................................5
KẾT LUẬN..................................................................................................................10
TÀI LIỆU THAM KHẢO...........................................................................................11


LỜI MỞ ĐẦU
Quá trình quản lý và xử lý các tiến trình trong CPU hay chúng ta có thể gọi là
định thời CPU. Đây là quá trình mà ta phải sử dụng các giải thuật định thời khác nhau
để máy tính có thể làm việc tốt và giúp CPU hoạt động hiệu quả. Trong đó, ta sẽ bắt
các giải thuật định thời như FCFS, SJF, Round robin, Priority,... và tùy vào mỗi giải
thuật mà sẽ có ưu và nhược điểm khác nhau.
Dựa trên những thơng tin tìm được và thảo luận giữa các thành viên, nhóm
chúng em đã đưa ra quyết định sẽ chọn giải thuật Round Robin là giải thuật để nghiên
cứu trong bài báo cáo lần này. Vì giải thuật này là một giải thuật ưu tiên, nằm trong

danh mục giải thuật mở đầu. Round Robin được đánh giá là một trong những giải thuật
đơn giản nhất, tồn tại lâu đời nhất và tiêu thức tính tốn cơng bằng nhất. Trong giải
thuật Round Robin, khoảng thời gian phải đặt ở mức tối thiểu gán cho một tác vụ cụ
thể cần được xử lý. Tuy nhiên có thể khác nhau về các hệ điều hành.
Giải thuật được phát triển theo mơ hình Hybrid và điều khiển bằng đồng hồ
trong tự nhiên. Round Robin cần sử dụng thời gian thực, các khoản hồi sẽ được giới
hạn trong một khoản thời gian cụ thể. Hầu hết các hệ điều hành truyền thống điều sử
dụng phương pháp lập lịch này.

1


NỘI DUNG
1. GIỚI THIỆU
1.1. Mục tiêu lập lịch
Bộ điều phối không cung cấp cơ chế, mà đưa ra các quyết định. Các hệ điều
hành xây dựng nhiều chiến lượt khác nhau để thực hiện việc điều phối, nhưng tựa
chung cần đạt được các mục tiêu sau:
- Sự công bằng: các tiến trình chia sẻ CPU một cách cơng bằng khơng có
tiến trình nào phải đợi vơ hạn để được cấp phát CPU
- Tính hiệu quả: Hệ thống phải tận dụng được CPU 100% thời gian
- Thời gian đáp ứng hợp lý: cực tiểu hóa thời gian hồi đáp cho các tương
tác của người sử dụng
- Thời gian lưu lại trong hệ thống: cực tiểu hóa thời gian hồn tất các tác
vụ xử lý theo lô
-

Thông lượng tối đa: cực đại hóa số cơng việc được xử lý trong một đơn

vị thời gian.

Tuy nhiên thường không thể thỏa mãn tất cả các mục tiêu kể trên vì bản thân
chúng có sự mâu thuẫn với nhau mà chỉ có thể dung hịa chúng ở mức độ nào đó.
1.2. Giải thuật Round Robin là gì?
Round Robin là một giải thuật định thời CPU. Trong một chu kỳ, mỗi tiến trình
được gán một thời gian giữ CPU nhất định, thời gian đó được gọi là thời gian xoay
vòng (quantum). Round Robin xuất phát từ nguyên tắc vòng tròn, lần lượt mỗi người
sẽ nhận được một phần bằng nhau của một thứ gì đó.
Các điều kiện quan trọng được sử dụng trong giải thuật Round Robin:
-

Thời gian hoàn thành: là thời gian mà bất kỳ q trình nào cũng cần hồn
thành cơng việc thực hiện.

2


-

Thời gian quay vòng: dùng để phân biệt giữa thời gian hồn thành và thời
gian đến. Sử dụng cơng thức: [ Thời gian quay vịng = Thời gian hồn
thành – Thời gian đến].

-

Thời gian chờ: dùng để phân biệt giữa thời gian quay vòng và thời gian liên
tục. Sử dụng công thức : [Thời gian chờ = Thời gian quay vịng – Thời gian
xử lý].

Giải thuật Round Robin có một số đặc điểm sau:
-


Là giải thuật chạy theo cơ chế khơng độc quyền vì mỗi tiến trình đều có
một thời gian xoay vòng như nhau.

-

Đơn giản, dễ thực thi, và tất cả các tiến trình tránh được tình trạng “đói
CPU”

1.2.1. Ưu điểm của giải thuật Round Robin
-

Với sự hỗ trợ của Round Robin giúp các công việc phân bổ cho CPU được
phân bổ hợp lý.

-

Tất cả các quy trình đều được xử lý mà khơng có bất kỳ ưu tiên nào.

-

Giải thuật mang lại hiệu suất tốt cho thời gian phản hồi trung bình.

-

Trong giải thuật khơng bắt gặp các vấn đề thiếu hụt hay hiệu ứng bảo vệ.

-

Khi thực hiện, một lượng tử thời gian cụ thể được phân bổ cho các công

việc khác nhau.

1.2.2. Nhược điểm của giải thuật Round Robin
-

Nếu thời gian ngắt của hệ điều hành thấp, đầu ra của bộ xử lý sẽ bị giảm.

-

Hiệu suất bị phụ thuộc vào thời gian.

-

Không đạt được mức độ ưu tiên.

-

Mất nhiều thời gian cho việc chuyển đổi ngữ cảnh.

2. GIẢI THUẬT ROUND ROBIN

3


2.1. Lưu trình
Round Robin là giải thuật chạy theo cơ chế khơng độc quyền, vì thế khi mỗi
tiến trình trước khi bắt đầu được đưa vào CPU xử lý thì chúng sẽ được cấp phát cho
một đơn vị thời gian chiếm dụng CPU nhất định.
Đơn vị đó là một hàng số có tên là quantum.


Như chúng ta thấy được, khi một tiến trình chạy hết thời gian quantum mà nó
được cấp phát thì phần dư cịn lại của tiến trình sẽ được chuyển về phía sau hàng đợi.
Sau đó, căn cứ vào danh sách Ready list đã nạp trước đó, CPU sẽ lấy tiếp tiến
trình kế cận để đưa vào xử lý, với mức quantum là như nhau cho tất cả các tiến trình.
Nếu gọi n là số tiến trình có trong Ready list, thời gian quantum là q, như vậy
mỗi tiến trình sẽ có một khoảng thời gian là

4

để sử dụng CPU.


2.2. Ví dụ
Ví dụ 1 :
Tiến trình

Thời gian đến Ready List

Thời gian xử lý (thực thi)

(RL)
P1

0

24

P2

1


3

P3

2

3

 
Thời gian quantum = 4
Biểu đồ Gantt trong trường hợp này là:

5


P1
0

P2
4

7

P3
10

P1

P1


14

18

P1
22

P1
26

P1
30

Tính thời gian chờ và thời gian hồn tất của mỗi tiến trình.
Thời gian chờ (waiting time) của mỗi tiến trình:
P1 = 0 + (10 – 4)  = 6
P2 = 4  – 1 = 3
P3 = 7 – 2 = 5
Thời gian hồn tất (turnaround time) của mỗi tiến trình
P1 = 30
P2 = 7 –  1 = 6
P3 = 10 –  2 = 8
* Phân tích q trình nhận/trả CPU của các tiến trình.
Quá trình nhận CPU của các tiến trình được diễn tả như sau:
Tại 0t: P1 vào RL nhận CPU, chạy hết thời gian quantum cho phép là 4t, sau đó
quay về hàng đợi RL. Trong đó đã có P2, P3 đang đợi trong RL. Do đó, thứ tự nhận
CPU tiếp theo sẽ là: P2,P3,P1
→ P2 kết thúc quá trình chạy ở bước tiếp theo
Tại 4t: P2 nhận CPU và chạy 3t thì kết thúc và trả CPU lại. Thứ tự nhận CPU

là: P3,P1
→ P3 kết thúc quá trình chạy ở bước tiếp theo
Tại 7t: P3 nhận CPU và chạy 3t thì kết thúc và trả CPU lại. Lúc này trong RL
chỉ cịn có P1 với thời gian xử lý còn lại là 20t. P1 nhận CPU nhưng vẫn thực hiện
nhận và trả CPU xoay vòng theo khoảng thời gian là 4t cho đến khi chạy xong.
Ví dụ 2:

6


Tiến trình

Thời gian đến Ready

Thời gian xử lý (thực

List (RL)

thi)

P1

0

8

P2

5


2

P3

1

7

P4

6

3

P5

8

5

Thời gian quantum=3
Biểu đồ Gantt trong trường hợp này là:
P1
0

P3
3

P1
6


P2
9

P3
11

P4
14

P5
17

P1
20

Tính thời gian chờ và thời gian hoàn tất của mỗi tiến trình.
Thời gian chờ (waiting time) của mỗi tiến trình:
P1 = 0 + (6 - 3) + (20 - 9) = 15
P2 = 9 - 5 = 4
P3 = (3 - 1) + (11 - 6) + (22 - 14) = 15
P4 = 14 – 6 = 8
P5 = (17 - 8) + (23 - 20) = 12
Thời gian hoàn tất (turnaround time) của mỗi tiến trình
P1 = 22
P2 = 11 - 5 = 6

7

P3

22

P5
23

25


P3 = 23 - 1 = 22
P4 = 17 - 6 = 11
P5 = 25 - 8 = 17
* Phân tích q trình nhận/trả CPU của các tiến trình.
Q trình nhận CPU của các tiến trình được diễn tả như sau:
Tại 0t: P1 vào RL nhận CPU, chạy hết thời gian quantum cho phép là 3t, sau đó
quay về hàng đợi RL. Trong đó đã có P3 đang đợi trong RL. Do đó, thứ tự nhận CPU
tiếp theo sẽ là: P3,P1
Tại 3t: P3 nhận CPU và chạy 3t, sau đó quay về hàng đợi RL. Khi đó P2 đang
đợi trong hàng đợi RL. Vì đúng ngay thời điểm mà P4 vào RL (2 tiến trình cùng đến
RL tại một thời điểm), hệ điều hành sẽ chọn tiến trình cũ (là P3) xếp vào RL trước tiến
trình mới (là P4) . Do đó, thứ tự nhận CPU tiếp theo sẽ là: P1,P2,P3,P4
Tại 6t: P1 nhận CPU và chạy 3t, sau đó quay về hàng đợi RL, đứng cuối cùng
trong danh sách các tiến trình đang đợi trong RL. Tại thời điểm 8t, khi mà P1 đang
chạy thì P5 vào RL và đang đợi cùng với các tiến trình khác theo thứ tự P2,P3,P4,P5.
Thứ tự nhận CPU là: P2,P3,P4,P5,P1
→ P2 kết thúc quá trình chạy ở bước tiếp theo
Tại 9t: P2 nhận CPU và chạy 2t thì kết thúc và trả CPU lại. Thứ tự nhận CPU
là: P3,P4,P5,P1
Tại 11t: P3 nhận CPU và chạy 3t, sau đó quay về hàng đợi RL, đứng cuối cùng
trong danh sách các tiến trình đang đợi trong RL. Do đó, thứ tự nhận CPU tiếp theo sẽ
là: P4,P5,P1,P3

→ P4 kết thúc quá trình chạy ở bước tiếp theo
Tại 14t: P4 nhận CPU và chạy 3t thì kết thúc và trả CPU lại. Thứ tự nhận CPU
là: P5,P1,P3

8


Tại 17t: P5 nhận CPU và chạy 3t, sau đó quay về hàng đợi RL, đứng cuối cùng
trong danh sách các tiến trình đang đợi trong RL. Do đó, thứ tự nhận CPU tiếp theo sẽ
là: P1,P3,P5
→ P1 kết thúc quá trình chạy ở bước tiếp theo
Tại 20t: P1 nhận CPU, chạy 2t thì kết thúc và trả lại CPU. Thứ tự nhận CPU
tiếp theo là: P3,P5
→ P3 kết thúc quá trình chạy ở bước tiếp theo
Tại 22t: P3 nhận CPU, chạy 1t thì kết thúc và trả lại CPU. Lúc này trong RL
chỉ cịn có P5 với thời gian xử lý cịn lại là 2t. Sau đó P5 nhận CPU, chạy 2t rồi kết
thúc và trả CPU lại.

9


KẾT LUẬN
Round Robin được đánh giá là một giải thuật cơ bản, sử dụng khá đơn giản,
được chứng minh về mặt toán học. Đây là một cách tiếp cận phù hợp.
Giải thuật là một trong những giải thuật được sử dụng phổ biến trong các hệ
điều hành để điều phối hoạt động tiến trình.
Round Robin nổi trội ở điểm là tạo ra sự cơng bằng cho các tiến trình khi chạy.
Nhưng cũng có mặt hạn chế vì phụ thuộc thời gian xoay vịng của các tiến trình. Nếu
nghiên cứu và có sự hiểu biết sâu về Round Robin, các nhà phát triển sẽ biết cách cải
tiến và phát triển nó ngày càng trở nên hữu ích.


10


TÀI LIỆU THAM KHẢO
[1]. Tìm hiểu về Round Robin. Truy cập ngày 02/11/2021, />[2]. Giải thuật điều phối Round Robin. Truy cập ngày 02/11/021,
/>
11

.



×