Đ ị n h t h ờ i C P U l à h o ạ t đ ộ n g q u a n t r ọ n g c ủ a t h à n h p h ầ n q u ả n l ý t i ế n t r ì n h v à c ó ả n h h ư ở n g r ấ t l ớ n đ ế n h i ệ u s u ấ t m á y t í n h c ũ n g n h ư t r ả i n g h i ệ m c ủ a n g ư ờ i d ù n g . Tr o n g c h ư ơ n g n à y, n g ư ờ i h ọ c đ ư ợ c t r ì n h b à y v ề m ụ c đ í c h v à c á c t i ê u c h u ẩ n đ ị n h t h ờ i , c ũ n g n h ư c á c c h i ế n l ư ợ c đ ị n h t h ờ i C P U c ơ b ả n .

Trình bày: ... Trình bày: ...

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

1

MỤC TIÊU

1. Biết được các khái niệm cơ bản về định thời

2. Biết được các tiêu chuẩn định thời CPU

3. Hiểu được các giải thuật định thời

4. Vận dụng các giải thuật định thời để làm bài tập

và mô phỏng

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

2

NỘI DUNG

1. Các khái niệm cơ bản về định thời

2. Các loại định thời

3. Các tiêu chuẩn định thời CPU

4. Các giải thuật định thời

• First-Come, First-Served (FCFS) • Shortest Job First (SJF) • Shortest Remaining Time First (SRTF) • Priority Scheduling

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

3

CÁC KHÁI NIỆM CƠ BẢN VỀ ĐỊNH THỜI

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

4

• Trong các hệ thống đa nhiệm (multitasking), đơn vị xử lý

• Cho phép thực thi đồng thời nhiều chương trình để làm tăng hiệu suất hệ

thống (Cho phép nhiều chương trình được nạp vào bộ nhớ).

• Tại mỗi thời điểm, chỉ có một tiến trình được thực thi.

• Cần phải giải quyết vấn đề phân chia, lựa chọn tiến trình thực thi để đạt được

hiệu quả cao nhất.

• Cần có những phương pháp chọn lựa phù hợp.

Định thời là chiến lược lựa chọn tiến trình phù hợp để được thực thi sao cho đạt được hiệu quả cao nhất.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

5

Chu kỳ CPU-I/O

• Service time là thời gian một

tiến trình cần CPU trong một chu kỳ

CPU - I/O (hay còn gọi là

).

• Tiến trình có service time

lớn được gọi là các

(CPU-bound process).

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

6

Tiến trình hướng CPU (CPU-bound)

#include

int main() {

• Tiến trình yêu cầu thời gian thực thi trên

long long start = 1, end = 1000000,

CPU nhiều.

total = 0;

• Thời gian hoàn thành chương trình phụ

for (long long i = start; i <= end; i++){

thuộc vào tốc độ thực thi của CPU.

total += i;

}

printf("Sum of numbers from %lld to %lld is %lld\n", start, end, total);

return 0;

}

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

7

#include

int main(){

Tiến trình hướng I/O (I/O-bound)

FILE *fp;

char filename[] = "example.txt";

int total = 0, ch;

• Tiến trình yêu cầu thời gian trên ngoại vi nhiều

thực thi

fp = fopen(filename, "r"); if (fp == NULL){

hơn.

printf("Failed to open file %s\n", filename); return 1;

• Thời gian hoàn thành chương trình phụ thuộc chu kỳ đợi cho

} while ((ch = fgetc(fp)) != EOF){

các thao tác nhập/xuất.

total++;

} fclose(fp); printf("Total number of characters in file %s is %d\n", filename, total); return 0;

}

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

8

CÁC LOẠI ĐỊNH THỜI

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

9

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

10

CÁC LOẠI ĐỊNH THỜI

2.1. Định thời dài (Long-term scheduling)

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

11

▪ Xác định chương trình nào

được chấp nhận nạp vào hệ

thống

để

thực

thi.

 Điều khiển mức độ đa

chương của hệ thống.

▪ Định thời dài thường cố gắng

duy trì xen lẫn giữa tiến trình

hướng

CPU

(CPU-bound

process) và tiến trình hướng I/O

(I/O-bound process).

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

12

CÁC LOẠI ĐỊNH THỜI

2.2. Định thời vừa (Medium-term scheduling)

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

13

▪ Định thời vừa quyết định tiến trình

nào được đưa vào (swap in) và

đưa ra khỏi

(swap out) bộ nhớ

chính trong quá trình thực thi của

hệ thống.

▪ Được thực hiện bởi

thành phần

quản lý bộ nhớ (và sẽ được thảo

luận ở chương về quản lý bộ nhớ).

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

14

CÁC LOẠI ĐỊNH THỜI

2.3. Định thời ngắn (Short-term scheduling)

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

15

▪ Còn được gọi

).

(

▪ Xác định tiến trình nào trong

(

) sẽ

được chiếm CPU để thực thi kế

tiếp.

▪ Đối với hệ thống hỗ trợ nhân đa

luồng (multithreaded kernel), việc

định thời CPU là do OS chọn

kernel thread được chiếm CPU.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

16

• Bộ định thời ngắn được gọi

khi có một

trong các sự

kiện/interrupt sau xảy ra:

• Ngắt thời gian (clock interrupt)

• Ngắt ngoại vi (I/O interrupt)

• Lời gọi hệ thống (operating system

call)

• Tín hiệu đồng bộ hóa (Sẽ trao đổi

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

17

sau ở Chương 5)

Bộ định thời ngắn (Short-term scheduler

• Bộ định thời sẽ chuyển quyền điều khiển CPU về cho tiến trình được chọn.

• Quá trình chuyển đổi bao gồm:

• Chuyển ngữ cảnh (sử dụng thông tin ngữ cảnh trong PCB).

• Chuyển chế độ người dùng.

• Nhảy đến vị trí thích hợp trong chương trình ứng dụng để khởi động lại chương trình (sử dụng

thông tin địa chỉ tại program counter trong PCB).

• Công việc này gây ra phí tổn

: thời gian mà bộ định thời dừng một tiến trình và khởi động một tiến trình

khác.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

18

CÁC TIÊU CHUẨN ĐỊNH THỜI CPU

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

19

Hướng người dùng (user-oriented)

(

): khoảng thời gian từ lúc tiến trình gửi

yêu cầu thực thi đến khi yêu cầu được đáp ứng lần đầu tiên (trong các hệ

thống time-sharing, interactive system) →

(

): khoảng thời gian từ lúc một tiến

trình được nạp vào hệ thống đến khi tiến trình đó kết thúc →

(

): tổng thời gian một tiến trình đợi trong ready

queue →

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

20

Cách xác định các thông số định thời

F

R

P

P

P

0

t

Giả sử :

• Quá trình thực thi một tiến trình P gồm nhiều

Gọi 𝑅, 𝐹, và 𝑊 lần lượt là thời gian đáp ứng, thời gian hoàn thành và thời gian đợi của tiến trình P. Khi đó:

phần.

• 𝑟 là thời điểm xuất hiện của P trong hệ thống

(Arrival Time/Release Time).

𝑹 = 𝒕𝟎 − 𝒓 𝑭 = 𝒇 − 𝒓

𝑾 = 𝒇 − 𝒓 − 𝑬

𝑡(cid:2868) là thời điểm P được thực thi lần đầu tiên. • 𝑓 là thời điểm tiến trình P hoàn thành việc thực

thi (Finishing Time).

Trong đó 𝑬 là thời gian yêu cầu của P để thực thi trên CPU (hay CPU Burst)

𝑬 = 𝑬𝟏 + 𝑬𝟐 + 𝑬𝟑

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

21

Hướng hệ thống (System oriented)

(

): định thời sao cho CPU

càng bận càng tốt →

(

): tất cả tiến trình phải được

(

): số tiến trình hoàn tất công việc trong một đơn

vị thời gian →

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

22

CÁC GIẢI THUẬT ĐỊNH THỜI

4.1. Giải thuật định thời

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

23

Một giải thuật định thời thông thường bao gồm hai yếu tố:

(

): mô tả cách thức (căn cứ)

để chọn tiến trình nào trong ready queue được thực thi (Các

hàm chọn lựa thường được xây dựng dựa trên độ ưu tiên, yêu

cầu về tài nguyên, đặc điểm thực thi của tiến trình,…).

(

): quyết định thời điểm thực

hiện hàm chọn lựa để định thời.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

24

Các chế độ quyết định

Có hai chế độ quyết định thường được áp dụng:

• Khi ở trạng thái running, tiến trình sẽ thực thi cho đến khi kết thúc hoặc bị ngắt

(blocked) do yêu cầu I/O.

• Tiến trình đang thực thi (ở trạng thái running) có thể bị ngắt giữa chừng và chuyển

về trạng thái ready.

• Chi phí cao hơn chế độ không trưng dụng nhưng đánh đổi lại bằng thời gian đáp

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

25

ứng tốt hơn vì không có trường hợp một tiến trình độc chiếm CPU quá lâu.

Thời điểm thực thi hàm chọn lựa

 (1) và (4) không cần lựa chọn loại định • Hàm chọn lựa được thực thi vào các thời

thời, (2) và (3) cần. điểm sau:

• Việc thực thi hàm chọn lựa trong trường (1) Có tiến trình chuyển từ trạng thái

hợp (1) và (4) không phụ thuộc vào loại running sang waiting.

giải thuật định thời và thường áp dụng (2) Có tiến trình chuyển từ trạng thái

chế độ không trưng dụng. running sang ready.

• Ngược lại, trường hợp (2) và (3) phụ (3) Có tiến trình chuyển từ trạng thái

thuộc vào loại giải thuật định thời và waiting, new sang ready.

thường áp dụng chế độ trưng dụng. (4) Kết thúc thực thi của một tiến trình.

 Thực hiện theo cơ chế nào khó hơn?

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

26

Tại sao?

Các giải thuật định thời

• First-Come, First-Served (FCFS)

• Shortest Job First (SJF)

• Shortest Remaining Time First (SRTF)

• Round-Robin (RR)

• Priority Scheduling

• Highest Response Ratio Next (HRRN)

• Multilevel Queue

• Multilevel Feedback Queue

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

27

CÁC GIẢI THUẬT ĐỊNH THỜI

4.2. First-Come, First-Served (FCFS)

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

28

• Hàm lựa chọn:

• Tiến trình nào yêu cầu CPU trước sẽ được cấp phát CPU trước.

• Chế độ quyết định: không trưng dụng (non-preemptive).

• Hiện thực: sử dụng hàng đợi FIFO (FIFO queues)

• Tiến trình sẽ thực thi đến khi kết thúc hoặc bị blocked do I/O.

• Tiến trình mới xuất hiện được thêm vào cuối hàng đợi.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

29

• Tiến trình được lựa chọn để xử lý được lấy từ đầu của hạng đợi.

Process Arrival Time Burst Time

P1 0 12

P2 2 7

P3 5 8

P4 9 3

Giản đồ Gantt

P1

P2

P3

P4

P5

P5 12 6

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

30

0 12 19 27 30 36

• Thời gian đáp ứng:

Process Arrival Time Burst Time

• P1 = 0, P2 = 10, P3 = 14,

P1 0 12

P2 2 7

P4 = 18, P5 = 18

P3 5 8

• Thời gian đáp ứng trung bình:

P4 9 3

(0 + 10 + 14 + 18 + 18)/5 = 12

Giản đồ Gantt

P5 12 6

P1 P2 P3 P4 P5

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

31

0 12 19 27 30 36

• Thời gian chờ:

Process Arrival Time Burst Time

• P1 = 0, P2 = 10, P3 = 14,

P1 0 12

P2 2 7

P4 = 18, P5 = 18

P3 5 8

• Thời gian chờ trung bình:

P4 9 3

(0 + 10 + 14 + 18 + 18)/5 = 12

Giản đồ Gantt

P5 12 6

P1 P2 P3 P4 P5

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

32

0 12 19 27 30 36

• Thời gian hoàn thành:

Process Arrival Time Burst Time

• P1 = 12, P2 = 17, P3 = 22,

P1 0 12

P2 2 7

P4 = 21, P5 = 24

P3 5 8

• Thời gian hoàn thành trung bình:

P4 9 3

(12 + 17 + 22 + 21 + 24)/5 = 19.2

Giản đồ Gantt

P5 12 6

P1 P2 P3 P4 P5

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

33

0 12 19 27 30 36

CÁC GIẢI THUẬT ĐỊNH THỜI

4.3. Shortest-Job-First (SJF)

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

34

• Hàm chọn lựa: tiến trình có thời gian yêu cầu thực thi (CPU

burst) ngắn nhất sẽ được chọn.

▪ Khi CPU trống, HĐH sẽ chọn tiến trình có CPU Burst ngắn nhất để

được thực thi tiếp theo.

▪ Giải thuật này sử dụng chiều dài thời gian thực thi của tiến trình làm

căn cứ để chọn lựa.

• SJF có thể được hiện thực với cả hai chiến lược: trưng dụng

và không trưng dụng.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

35

• SJF ở chế độ không trưng dụng:

• Hàm chọn lựa được thực thi khi CPU trống.

• Khi tiến trình được cấp CPU thì sẽ thực thi cho đến khi kết thúc.

• Khi một tiến trình kết thúc, một tiến trình khác có thời gian thực thi ngắn

nhất sẽ được chọn.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

36

Process Arrival Time Burst Time

• Thời gian đáp ứng:

P1 0 12

• P1 = 0, P2 = 19, P3 = 23, P4 = 3,

P2 2 7

P5 = 3

P3 5 8

• Thời gian đáp ứng trung bình:

P4 9 3

(0 + 19 + 23 + 3 + 3)/5 = 9.6

Giản đồ Gantt

P5 12 6

P1 P4 P5 P2 P3

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

37

0 12 15 21 28 36

Process Arrival Time Burst Time

• Thời gian chờ:

P1 0 12

• P1 = 0, P2 = 19, P3 = 23, P4 = 3,

P2 2 7

P5 = 3

P3 5 8

• Thời

gian

chờ trung

bình:

P4 9 3

(0 + 19 + 23 + 3 + 3)/5 = 9.6

Giản đồ Gantt

P5 12 6

P1 P4 P5 P2 P3

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

38

0 12 15 21 28 36

• Thời gian hoàn thành:

Process Arrival Time Burst Time

• P1 = 12, P2 = 26, P3 = 31, P4 =

P1 0 12

P2 2 7

6, P5 = 9

P3 5 8

• Thời gian hoàn thành trung bình:

P4 9 3

(12 + 26 + 31 + 6 + 9)/5 = 16.8

Giản đồ Gantt

P5 12 6

P1 P4 P5 P2 P3

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

39

0 12 15 21 28 36

• Hàm chọn lựa được thực thi khi có tiến trình mới xuất hiện hoặc có tiến trình kết thúc.

• Khi có tiến trình mới xuất hiện với CPU-burst nhỏ hơn thời gian yêu cầu còn lại

(remaining time) của tiến trình đang thực thi, tiến trình mới sẽ được chọn và tiến

trình đang thực thi sẽ bị dừng lại.

• Khi một tiến trình kết thúc, một tiến trình khác có CPU-burst (hoặc thời gian yêu cầu

còn lại) nhỏ nhất sẽ được chọn tiếp theo.

• SJF ở chế độ trưng dụng còn được gọi là

SJF là tối ưu về thời gian đợi: có thời gian chờ đợi trung bình ngắn nhất với một tập tiến trình cho trước.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

40

.

SJF trưng dụng

• Thời gian đáp ứng:

Process Arrival Time Burst Time

• P1 = 0, P2 = 0, P3 = 13, P4 = 0,

P1 0 12

P2 2 7

P5 = 0

P3 5 8

• Thời gian đáp ứng trung bình:

P4 9 3

(0 + 0 + 13 + 0 + 0)/5 = 2.6

Giản đồ Gantt

P5 12 6

P1 P2 P4 P5 P3 P1

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

41

0 2 9 12 18 26 36

SJF trưng dụng

• Thời gian chờ:

Process Arrival Time Burst Time

• P1 = 24, P2 = 0, P3 = 13, P4 = 0,

P1 0 12

P2 2 7

P5 = 0

P3 5 8

• Thời

gian

chờ trung

bình:

P4 9 3

(24 + 0 + 13 + 0 + 0)/5 = 7.4

Giản đồ Gantt

P5 12 6

P1 P2 P4 P5 P3 P1

0 2 18 9 26 36

42

12 Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

SJF trưng dụng

• Thời gian hoàn thành:

Process Arrival Time Burst Time

• P1 = 36, P2 = 7, P3 = 21, P4 = 3,

P1 0 12

P2 2 7

P5 = 6

P3 5 8

• Thời gian hoàn thành trung bình:

P4 9 3

(36 + 7 + 21 + 3 + 6)/5 = 14.6

Giản đồ Gantt

P5 12 6

P1 P2 P4 P5 P3 P1

0 2 18 9 26 36

43

12 Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

Nhận xét về giải thuật SJF

• Có thể xảy ra tình trạng “đói” tài nguyên ( ) đối với các tiến trình có CPU-burst

lớn nếu có nhiều tiến trình với CPU-burst nhỏ (liên tục) xuất hiện trong hệ thống.

• Cơ chế không trưng dụng không phù hợp cho hệ thống time sharing (interactive).

• Giải thuật SJF ngầm định rằng độ ưu tiên được xác định dựa theo độ dài CPU-burst.

 Các tiến trình hướng CPU (CPU-bound) có độ ưu tiên thấp hơn so với tiến trình hướng

I/O (I/O-bound).

 Tuy nhiên, khi một tiến trình hướng CPU được thực thi thì nó độc chiếm CPU cho đến khi

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

44

kết thúc.

Nhận xét về giải thuật SJF

• Ưu điểm: SJF tối ưu trong việc giảm thời gian đợi trung bình.

• Hạn chế: Cần phải ước lượng thời gian cần CPU tiếp theo của tiến trình.

 Giải pháp cho vấn đề này?

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

45

Nhận xét về giải thuật SJF

• Thời gian sử dụng CPU chính là độ dài của CPU burst:

• Trung bình tất cả các CPU Burst đo được trong quá khứ.

• Nhưng thông thường những CPU Burst càng mới càng phản ánh đúng hành trình của tiến trình

trong tương lai.

• Một kỹ thuật thường dùng là sử dụng trung bình hàm mũ (exponential averaging):

𝜏(cid:3041)(cid:2878)(cid:2869) = 𝛼𝑡(cid:3041) + 1 − 𝛼 𝜏(cid:3041), 0 ≤ 𝛼 ≤ 1

𝜏(cid:3041)(cid:2878)(cid:2869) = 𝛼𝑡(cid:3041) + 1 − 𝛼 𝛼𝑡(cid:3041)(cid:2879)(cid:2869) + ⋯ + 1 − 𝛼 (cid:3037)𝛼𝑡(cid:3041)(cid:2879)(cid:3037) + ⋯ + 1 − 𝛼 (cid:3041)(cid:2878)(cid:2869)𝜏(cid:2868), 0 ≤ 𝛼 ≤ 1

Nếu chọn 𝛼 = ½ thì có nghĩa là trị đo được 𝑡(cid:3041) và trị dự đoán 𝜏(cid:3041) được xem quan trọng

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

46

như nhau.

Dự đoán thời gian sử dụng CPU

Độ dài CPU burst đo được

Độ dài CPU Burst dự đoán với

và (cid:2868) = 10

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

47

CÁC GIẢI THUẬT ĐỊNH THỜI

4.4. Định thời theo độ ưu tiên - Priority Scheduling

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

48

• Mỗi tiến trình sẽ được gán một độ ưu tiên (thường biểu diễn bởi một con

số).

• CPU sẽ được cấp cho tiến trình có độ ưu tiên cao nhất theo các giá trị số

được gán (có thể theo thứ tự tăng dần hay giảm dần).

• Định thời sử dụng độ ưu tiên có thể:

• Preemptive

• Non-preemptive

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

49

Cách gán độ ưu tiên cho tiến trình

• SJF là một giải thuật định thời sử dụng độ ưu tiên được xác định dựa vào

thời gian sử dụng CPU (giá trị được ước lượng).

• Ngoài ra, việc gán độ ưu tiên còn có thể dựa vào:

• Yêu cầu về bộ nhớ.

• Số lượng file được mở.

• Tỉ lệ thời gian dùng cho I/O trên thời gian sử dụng CPU.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

50

• Các yêu cầu bên ngoài ví dụ như: số tiền người dùng trả khi thực thi công việc.

Hạn chế của định thời theo độ ưu tiên

• Vấn đề trì hoãn vô hạn định: tiến trình có độ ưu tiên thấp có thể không

bao giờ được thực thi (do có những tiến trình độ ưu tiên cao hơn liên tục

xuất hiện).

• Giải pháp: làm mới (aging) – độ ưu tiên của tiến trình sẽ tăng theo thời

gian.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

51

• Thời gian chờ?

Process Priority

Arrival Time Burst Time

• Thời gian đáp ứng?

P1 0 12 2

• Thời gian hoàn thành?

P2 2 7 1

P3 5 8 5

P4 9 3 4

Giản đồ Gantt (Non-preemptive)

P5 12 6 3

P1 P2 P5 P4 P3

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

52

0 12 19 25 28 36

• Các khái niệm cơ bản về định thời

• Các bộ định thời

• Các tiêu chuẩn định thời CPU

• Các giải thuật định thời

• First-Come, First-Served (FCFS)

• Shortest Job First (SJF)

• Shortest Remaining Time First (SRTF)

• Priority Scheduling

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

53

• Sử dụng các giải thuật FCFS, SJF, SRTF, Priority để tính các

giá trị thời gian đợi, thời gian đáp ứng và thời gian hoàn thành

trung bình

Process

Arrival Time

Burst Time

Priority

P1

0

4

3

P2

5

1

2

P3

3

8

1

P4

10

2

4

P5

8

7

3

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

54

• Sử dụng các giải thuật FCFS, SJF, SRTF, Priority để tính các

giá trị thời gian đợi, thời gian đáp ứng và thời gian hoàn thành

trung bình

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

55

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

56

Đ ị n h t h ờ i C P U l à h o ạ t đ ộ n g q u a n t r ọ n g c ủ a t h à n h p h ầ n q u ả n l ý t i ế n t r ì n h v à c ó ả n h h ư ở n g r ấ t l ớ n đ ế n h i ệ u s u ấ t m á y t í n h c ũ n g n h ư t r ả i n g h i ệ m c ủ a n g ư ờ i d ù n g . Tr o n g c h ư ơ n g n à y, n g ư ờ i h ọ c đ ư ợ c t r ì n h b à y v ề m ụ c đ í c h v à c á c t i ê u c h u ẩ n đ ị n h t h ờ i , c ũ n g n h ư c á c c h i ế n l ư ợ c đ ị n h t h ờ i C P U c ơ b ả n .

Trình bày: ... Trình bày: ...

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

1

NỘI DUNG

4. Các giải thuật định thời

• Round Robin

• Highest Response Ratio Next (HRRN)

• Multilevel Queue

• Multilevel Feedback Queue

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

2

CÁC GIẢI THUẬT ĐỊNH THỜI

4.5. Round Robin (RR)

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

3

• Mỗi tiến trình nhận được một đơn vị thời gian CPU (

,

) để thực thi. Thông thường khoảng thời gian này nhỏ, từ 10-100

ms.

• Sau khoảng thời gian đó, tiến trình bị đoạt quyền và trở về cuối ready

queue.

• Gọi

là số lượng tiến trình trong ready queue và

là khoảng thời gian

đơn vị mà CPU được cấp phát cho tiến trình (quantum time), khi đó,

không có tiến trình nào phải chờ đợi quá

đơn vị thời gian.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

4

Process Burst Time

• Thời gian đáp ứng:

Arrival Time

• P1 = 0, P2 = 2, P3 = 7, P4 = 10,

P1 0 12

P5 = 10

P2 2 7

P3 5 8

• Thời gian đáp ứng trung bình: 5.8

P4 9 3

Giản đồ Gantt (q = 4)

P5 12 6

P1 P2 P1 P3 P2 P4 P5 P1 P3 P5

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

5

0 4 8 12 16 19 22 26 30 34 36

Process Burst Time

• Thời gian chờ:

Arrival Time

• P1 = 4 + 14, P2 = 2 + 8, P3 = 7 +

P1 0 12

14, P4 = 10, P5 = 10 + 8

P2 2 7

P3 5 8

• Thời gian chờ trung bình: 15.4

P4 9 3

Giản đồ Gantt (q = 4)

P5 12 6

P1 P2 P1 P3 P2 P4 P5 P1 P3 P5

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

6

0 4 8 12 16 19 22 26 30 34 36

Process Burst Time

• Thời gian hoàn thành:

Arrival Time

• P1 = 40, P2 = 17, P3 = 29, P4 =

P1 0 12

13, P5 = 24

P2 2 7

P3 5 8

• Thời gian hoàn thành trung bình:

P4 9 3

22.6

Giản đồ Gantt (q = 4)

P5 12 6

P1 P2 P1 P3 P2 P4 P5 P1 P3 P5

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

7

0 4 8 12 16 19 22 26 30 34 36

Nhận xét về giải thuật Round Robin

• Nếu q lớn: RR => FCFS. • Nếu q nhỏ: phải tốn chi phí chuyển ngữ cảnh giữa các tiến trình => q không nên

quá nhỏ.

• Ưu tiên tiến trình hướng CPU (CPU-bound process). • RR sử dụng một giả thiết ngầm là tất cả các tiến trình đều có tầm quan

trọng ngang nhau.

• Ưu điểm: Thời gian đáp ứng nhỏ. • Hạn chế: Thời gian chờ đợi trung bình và thời gian hoàn thành trung bình của

giải thuật RR thường khá lớn.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

8

Quantum time và chuyển ngữ cảnh trong RR

Context switch

Process time = 10

Quantum

0

12

10

6

1

10

6

1

9

1

2

3

4

5

6

7

8

9

10

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

9

Quantum time và Thời gian hoàn thành

• Thời gian hoàn thành trung

bình không chắc sẽ được

cải thiện khi quantum lớn

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

10

Quantum time và Thời gian đáp ứng

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

11

Quantum time và hiệu suất hệ thống

• Hiệu suất hệ thống: tùy thuộc vào kích

• Khi

thực hiện chuyển ngữ

thước của

cảnh,

sẽ sử

dụng CPU, không phải

• Nếu quantum time ngắn: thời gian đáp ứng

.

nhanh, nhưng phí tổn hệ thống lớn do số lần

• Phí

tổn hệ

thống

(OS

chuyển ngữ cảnh tang.

Overhead): thời gian OS sử

• Nếu quantum time dài: hiệu quả sử dụng

dụng CPU để thực hiện

CPU tốt hơn, nhưng thời gian đáp ứng cũng

chuyển ngữ cảnh.

lớn.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

12

.

Cách chọn quantum time

• Quantum time và thời gian cho chuyển ngữ cảnh:

▪ Nếu quantum time là 20 ms và thời gian chuyển ngữ cảnh là 5 ms, như vậy

OS overhead chiếm 5/25 = 20%.

▪ Nếu quantum là 500 ms, thì phí tổn chỉ còn 1%. Nhưng nếu có nhiều người

sử dụng trên hệ thống và thuộc loại interactive thì sẽ thấy đáp ứng rất chậm.

▪ Tùy thuộc vào tập công việc mà lựa chọn quantum time.

▪ Quantum time nên lớn trong tương quan so sánh với thời gian cho chuyển

ngữ cảnh.

• Ví dụ với 4.3 BSD UNIX, quantum time là 1s.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

13

CÁC GIẢI THUẬT ĐỊNH THỜI

4.6. Highest Response Ratio Next (HRRN)

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

14

• Chọn tiến trình kế tiếp có giá trị

lớn nhất.

• Các tiến trình ngắn được ưu tiên hơn (vì

nhỏ).

• Câu hỏi thảo luận:

• So sánh với cơ chế Aging?

• Ưu điểm và hạn chế của hướng tiếp cận này?

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

15

CÁC GIẢI THUẬT ĐỊNH THỜI

4.7. Multilevel Queue

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

16

• Ready queue được chia thành nhiều hàng đợi riêng biệt theo

một số tiêu chuẩn sau:

▪ Đặc điểm và yêu cầu định thời của tiến trình

▪ Phân loại tiến trình: Foreground (interactive) và background,…

• Tiến trình được gán cố định vào một hàng đợi, mỗi hàng đợi sử

dụng giải thuật định thời riêng.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

17

Việc định thời giữa các hạng đợi

• Hệ điều hành cần phải định thời cho các hàng đợi:

: phục vụ từ hàng đợi có độ ưu tiên cao đến

thâp  Có thể phát sinh vấn đề đói tài nguyên (

).

: mỗi hàng đợi được nhận một khoảng thời gian chiếm CPU

và phân phối cho các tiến trình trong hàng đợi khoảng thời gian đó. Ví

dụ: 80% cho hàng đợi foreground định thời bằng RR và 20% cho hàng

đợi background định thời bằng giải thuật FCFS.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

18

Ví dụ phân chia hạng đợi và tiến trình

Độ ưu tiên cao nhất

System Processes

Interactive Processes

Batch Processes

Student Processes

Độ ưu tiên thấp nhất

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

19

Hệ chế của Multilevel Queue

• Tiến trình không thể chuyển từ hàng đợi này sang hàng đợi

khác

 Có thể làm giảm hiệu suất hệ thống trong trường hợp một hàng đợi có

nhiều tiến trình trong khi các hàng đợi khác lại trống.

 Khắc phục bằng cơ chế feedback: cho phép tiến trình di chuyển một

cách thích hợp giữa các hàng đợi khác nhau.

 Giải thuật: Multilevel Feedback Queue

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

20

CÁC GIẢI THUẬT ĐỊNH THỜI

4.8. Multilevel Feedback Queue

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

21

▪ Phân loại tiến trình dựa trên các đặc tính về

.

▪ Sử dụng chế độ

(preemptive).

▪ Sau một khoảng thời gian nào đó, các tiến trình hướng I/O và tiến trình

interactive sẽ ở các hàng đợi có độ ưu tiên cao hơn còn các tiến trình

hướng CPU sẽ ở các hàng đợi có độ ưu tiên thấp hơn.

▪ Một tiến trình đã chờ quá lâu ở một hàng đợi có độ ưu tiên thấp có thể

được chuyển đến hàng đợi có độ ưu tiên cao hơn (cơ chế aging).

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

22

Ví dụ về Multilevel Feedback Queue

• Ví dụ: Có 3 hàng đợi

▪ Q0, dùng RR với quantum 8 ms

▪ Q1, dùng RR với quantum 16 ms

▪ Q2, dùng FCFS

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

23

Các vấn đề với Multilevel Feedback Queue

• Định thời dùng multilevel

feedback queue đòi hỏi phải giải

quyết các vấn đề sau:

▪ Số lượng hàng đợi bao nhiêu là thích hợp?

▪ Dùng giải thuật định thời nào ở mỗi hàng đợi?

▪ Làm sao để xác định thời điểm cần chuyển một tiến trình đến hàng đợi

cao hơn hoặc thấp hơn?

▪ Khi tiến trình yêu cầu được xử lý thì đưa vào hàng đợi nào là hợp lý

nhất?

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

24

CÁC GIẢI THUẬT ĐỊNH THỜI

4.9. So sánh các giải thuật

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

25

• Giải thuật định thời nào là tốt nhất?

• Câu trả lời phụ thuộc các yếu tố sau:

▪ Tần suất tải việc (System workload)

▪ Sự hỗ trợ của phần cứng đối với dispatcher

▪ Sự tương quan về trọng số của các tiêu chuẩn định thời như response

time, hiệu suất CPU, throughput,…

▪ Phương pháp định lượng so sánh

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

26

• Tại sao phải định thời? Nêu các bộ định thời và mô tả về

chúng?

• Các tiêu chuẩn định thời CPU?

• Có bao nhiêu giải thuật định thời? Kể tên?

• Mô tả và nêu ưu điểm, nhược điểm của từng giải thuật định

thời? FCFS, SJF, SRTF, RR, Priority Scheduling, HRRN, MQ,

MFQ.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

27

Sử dụng các giải thuật FCFS, SJF, SRTF, Priority -Pre, RR (10) để tính các giá trị

thời gian đợi, thời gian đáp ứng và thời gian hoàn thành trung bình và vẽ giản đồ

Gantt.

Với RR, điều gì sẽ xảy ra khi P5 vào tại thời điểm P1 vừa hết quantum time?

Process

Arrival

Burst

Priority

P1

0

20

20

P2

25

25

30

P3

20

25

15

P4

35

15

35

P5

10

35

5

P6

15

50

10

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

28

Cho 5 tiến trình với thời gian vào và thời gian cần CPU tương ứng như bảng sau:

Process

Arrival

Burst

P1

0

10

P2

2

29

P3

4

3

P4

5

7

P5

7

12

Vẽ giản đồ Gantt và tính thời gian đợi trung bình, thời gian đáp ứng trung bình và

thời gian hoàn thành trung bình cho các giải thuật sau:

a. FCFS

b. SJF preemptive

c. RR với quantum time = 10 Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

29

Xét tập các tiến trình sau (với thời gian vào hệ thống, thời gian yêu cầu CPU và độ

ưu tiên kèm theo) :

Process

Arrival 0

Burst 10

Priority 3

P1

1

3

2

P2

2

2

1

P3

3

1

2

P4

4

5

4

P5

Vẽ giản đồ Gantt và tính thời gian đợi trung bình, thời gian đáp ứng trung bình và

thời gian hoàn thành trung bình cho các giải thuật sau:

a. SJF Preemptive

b. RR với quantum time = 2

c. Điều phối theo độ ưu tiên độc quyền (độ ưu tiên 1 > 2 > ...) Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

30

Vẽ giản đồ Gantt và tính thời gian đợi trung bình, thời gian đáp ứng trung bình và

thời gian hoàn thành trung bình cho các giải thuật sau:

a. FCFS, SJF

b. RR với quantum time = 10

Process

Burst Time

Arrival Time

P1

10

5

P2

29

2

P3

3

0

P4

7

1

P5

12

7

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

31

Cho 4 tiến trình với thời gian vào hệ thống (arrival time) và burst time tương ứng

như sau:

Process

Arrival Time

CPU Burst Time

P1

0

12

P2

2

7

P3

3

5

P4

5

9

Vẽ giản đồ Gantt và tính thời gian đợi trung bình, thời gian đáp ứng trung bình và

thời gian hoàn thành trung bình cho các giải thuật sau:

a. Shortest Remaining Time First (SRTF)

b. Round Robin (RR) với quantum = 4

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

32

Cho 5 tiến trình P1, P2, P3, P4, P5 với thời gian vào Ready List và thời gian cần

CPU tương tứng như bảng sau:

Process

Arrival Time

CPU Burst Time

P1

0

8

P2

2

19

P3

4

3

P4

5

6

P5

7

12

Vẽ giản đồ Gantt và tính thời gian đợi trung bình, thời gian đáp ứng trung bình và

thời gian hoàn thành trung bình cho các giải thuật sau:

a. FCFS

b. SJF preemptive

c. RR với quantum time = 6

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

33

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

34

Đ ịn h t hời C P U l à h oạt đ ộn g q u a n t rọn g của t h à n h p hần q uản lý t iến t r ì n h v à c ó ản h hư ởn g rất lớn đ ến h iệu s uất m á y t í n h cũn g n hư t rải n g h iệm của n gư ời d ù n g . Tr o n g c hư ơn g n à y, n gư ời học đ ư ợc t r ì n h b à y về mục đí c h v à c á c t i ê u c h uẩn đ ịn h t hời , cũn g n hư c á c c h iến lư ợc đ ịn h t hời C P U cơ bản .

Trình bày: ... Trình bày: ...

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

1

NỘI DUNG

5. Định thời tiểu trình (Thread scheduling)

6. Định thời đa bộ xử lý (Multiple-processor scheduling)

7. Định thời theo thời gian thực (Real-time CPU scheduling)

8. Định thời trên một số hệ điều hành

• Linux • Windows • Solaris

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

2

ĐỊNH THỜI TIỂU TRÌNH

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

05.

3

• Trên các hệ điều hành hiện đại có hỗ trợ tiểu trình,

,

không phải tiến trình.

• Có sự phân biệt giữa tiểu trình người dùng và tiểu trình hạt nhân khi định thời:

được định thời thông qua

các thư viện quản lý tiểu trình:

• Phạm vi định thời là bên trong tiến trình

được định thời trên tất cả các CPU khả dụng. Phạm vi định thời là toàn hệ thống (system- contention scope - SCS).

(process-contention scope - PCS).

• Thường được thực hiện bằng cách

thiết

lập độ ưu tiên (bởi người

lập

trình).

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

4

ĐỊNH THỜI ĐA BỘ XỬ LÝ

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

06.

5

• Định thời CPU trở nên phức tạp hơn khi hệ thống có nhiều bộ xử lý.

• Khái niệm đa bộ xử lý có thể là một trong các dạng sau:

• CPU có nhiều lõi vật lý (Multicore CPUs)

• CPU có nhiều luồng xử lý trên một lõi (Multithreaded cores)

• Hệ thống NUMA (non-uniform memory access)

• Đa xử lý không đồng nhất (Heterogeneous multiprocessing)

• Có hai cách tiếp cận phổ biến:

(asymmetric

multiprocessing) và

(symmetric multiprocessing - SMP).

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

6

ĐỊNH THỜI ĐA BỘ XỬ LÝ

6.1. Đa xử lý bất đối xứng

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

06.

7

• Tất cả các thao tác lập lịch, xử lý I/O được thực hiện bởi một

bộ xử lý – master server.

• Các bộ xử lý còn lại chỉ thực thi user code.

• Ưu điểm: đơn giản, chỉ một bộ xử lý truy xuất dữ liệu hệ thống,

không cần chia sẻ dữ liệu.

• Nhược điểm: master server có thể bị nghẽn cổ chai

(bottleneck), làm giảm hiệu năng của hệ thống.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

8

ĐỊNH THỜI ĐA BỘ XỬ LÝ

6.2. Đa xử lý đối xứng

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

06.

9

• Mỗi bộ xử lý tự định thời cho chính nó.

• Hai hướng tiếp cận để tổ chức các tiểu trình cần định thời:

▪ Tất cả tiểu trình nằm trong cùng một ready queue (a)

▪ Mỗi bộ xử lý tự tổ chức hàng đợi của riêng nó (b)

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

10

• Tất cả tiểu trình nằm trong cùng một ready queue:

• Tiểu trình có thể không được bộ xử lý nào chọn ?

• Xuất hiện vùng tranh chấp: Nhiều bộ xử lý có thể chọn định thời cùng

một tiểu trình => Cần có cơ chế kiểm tra và khóa (lock) việc truy xuất

tiểu trình => Hiệu năng hệ thống có thể giảm do nghẽn cổ chai.

• Mỗi bộ xử lý tự tổ chức hàng đợi của riêng nó:

• Hiệu năng không bị ảnh hưởng do các vấn đề khi dùng chung một

hàng đợi => Hướng tiếp cận phổ biến trên các hệ thống SMP.

• Vấn đề: Khối lượng công việc của các bộ xử lý khác nhau?

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

11

Cân bằng tải (Load balancing)

• Một bộ xử lý có quá nhiều tải, trong khi các bộ xử lý khác rỗi => Cần đảm

bảo các bộ xử lý đều được sử dụng hiệu quả.

• Mục tiêu của cân bằng tải là phân phối khối lượng công việc (workload)

đều nhau cho các CPU.

• Có hai cách cân bằng tải:

▪ Push migration: Một tác vụ đặc biệt sẽ kiểm tra định kỳ tải của từng CPU. Nếu tình

trạng quá tải xuất hiện, hệ thống sẽ di chuyển (đẩy) tác vụ từ CPU bị quá tải sang các

CPU khác.

▪ Pull migration: CPU rỗi kéo (pull) tác vụ đang chờ từ CPU bận.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

12

Processor affinity

• Khi một tác vụ chạy trên một bộ xử lý, bộ nhớ đệm (cache) của bộ xử lý

đó lưu trữ dữ liệu được truy xuất bởi tác vụ => tác vụ có tính liên kết với

bộ xử lý (processor affinity).

• Cân bằng tải sẽ ảnh hưởng đến processor affinity, cụ thể là khi một tác vụ

được dời sang bộ xử lý khác:

• Cache của bộ xử lý mới phải nạp lại (repopulate)

• Cache của bộ xử lý cũ phải được giải phóng (invalidate)

à Phí tổn

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

13

Processor affinity

• Có 2 dạng liên kết:

• Liên kết mềm (Soft affinity): Hệ thống sẽ cố giữ tác vụ chỉ chạy trên

bộ xử lý đó (nhưng không đảm bảo).

• Liên kết cứng (Hard affinity): Cho phép tiến trình chọn một tập các bộ

xử lý mà nó có thể chạy trên đó.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

14

Processor affinity

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

15

ĐỊNH THỜI THEO THỜI GIAN THỰC (ĐỌC THÊM)

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

07.

16

• Có nhiều thách thức do yêu cầu về tính chất thời gian thực.

• Có 2 dạng hệ thống thời gian thực:

• Soft real-time systems: Các tác vụ quan trọng sẽ được cấp độ ưu

tiên lớn nhất, nhưng không đảm bảo bất cứ điều gì khác.

• Hard real-time systems: Tác vụ phải hoàn thành trong deadline của

nó.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

17

Định thời theo thời gian thực dựa trên độ ưu tiên

• Hệ thống thời gian thực phải phản hồi ngay lập tức yêu cầu CPU của một

tiến trình => Bộ định thời phải hỗ trợ định thời theo độ ưu tiên với chế độ

trưng dụng.

• Tiến trình có thêm một đặc trưng mới: tính chu kỳ - yêu cầu CPU trong một

khoảng thời gian cố định.

• Khi một tiến trình có chu kỳ yêu cầu CPU, nó có thời gian xử lý C, thời gian

deadline d (thời gian nó sẽ được phục vụ bởi CPU) và thời gian chu kỳ T.

• 0 ≤ C ≤ d ≤ T

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

18

Mô hình tác vụ trọng thời gian thực

Periodic tasks

Aperiodic tasks

Sporadic tasks

Self-Study

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

19

Các giải thuật định thời

• Tác vụ chu kỳ - Periodic Tasks

• Tác vụ phi chu kỳ - Aperiodic Task

• Rate Monotonic - RM

• Total Bandwidth Server – TBS

• Earliest Deadline First - EDF

• Enhanced Virtual Release Advancing TBS

• Constant Bandwidth Server

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

20

Định thời Rate Monotonic

• Độ ưu tiên được gán dựa trên nghịch đảo của chu kỳ => Chu kỳ ngắn thì

độ ưu tiên cao và ngược lại.

• Tần suất của tác vụ là 1/p.

• P1 được gán độ ưu tiên cao hơn P2.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

21

Định thời EDF

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

22

Định thời Total Bandwidth Server (TBS)

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

23

• Global Scheduling

• Partition Scheduling

• Partition EDF

• Semi-Partition Scheduling

• • • •

Global EDF PFAIR – Proportionate Fairness RUN – Reduce to Uniprocessor Local Assignment Algorithm (Duy D. et. al)

• Semi Partition Reservation

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

24

ĐỊNH THỜI TRÊN MỘT SỐ HỆ ĐIỀU HÀNH

8.1. Định thời trên Linux

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

08.

25

• Nhân Linux 2.5 trở về trước sử dụng các phiên bản định thời UNIX tiêu

chuẩn.

• Không hỗ trợ tốt các hệ thống nhiều bộ xử lý.

• Hiệu năng kém nếu có số lượng lớn các tiến trình trong hệ thống.

• Nhân Linux 2.5 sử dụng bộ định thời O(1):

• Chạy với thời gian hằng số.

• Định thời theo độ ưu tiên với chế độ trưng dụng.

• Có hai khoảng ưu tiên: time-sharing và real-time.

• Giá trị số nhỏ hơn biểu diễn độ ưu tiên lớn hơn.

• Hoạt động tốt với các hệ thống SMP nhưng đáp ứng kém với các tiến trình interactive.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

26

Bộ định thời CFS

• Nhân Linux từ 2.6.23 sử dụng bộ định thời CFS (Completely

Fair Scheduler)

• Định thời theo lớp:

• Mỗi lớp được gán một độ ưu tiên cụ thể.

• Bộ định thời chọn tác vụ có độ ưu tiên cao nhất trong lớp có độ ưu tiên cao nhất.

• Thời gian sử dụng CPU của mỗi tác vụ không dựa trên quantum time cố định mà

dựa trên tỷ lệ giờ CPU.

• Nhân Linux cài đặt sẵn 2 lớp: default và real-time. Các lớp khác có thể được thêm

vào.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

27

Bộ định thời CFS

• Thời gian sử dụng CPU:

• Được tính dựa trên giá trị nice được gán cho mỗi tác vụ, có giá trị từ -20 đến 19.

• Giá trị thấp hơn có độ ưu tiên cao hơn.

• Target latency – khoảng thời gian mà một tiến trình cần được chạy ít nhất một lần.

• Target latency có thể tăng lên nếu số lượng tiến trình tăng lên.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

28

Bộ định thời CFS

• CFS xác định tác vụ được thực thi kế tiếp qua virtual run time:

• Mỗi tác vụ có giá trị virtual run time riêng, được kết hợp với một hệ số đặc biệt dựa

trên độ ưu tiên.

• Các tiến trình có độ ưu tiên bình thường có virtual run time tương đương với thời gian

chạy thực tế.

• Chọn tiến trình có virtual run time nhỏ nhất để thực thi tiếp.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

29

Bộ định thời Real-time

• Định thời real-time dựa trên tiêu chuẩn POSIX.

• Các tác vụ real-time có độ ưu tiên tĩnh.

• Độ ưu tiên được chia thành 2 phần: real-time (từ 0 đến 99) và

normal (từ 100 đến 139).

• Giá trị nice -20 tương ứng với độ ưu tiên 100, +19 tương ứng

với độ ưu tiên 139.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

30

Định thời trên Android

• Sử dụng bộ định thời của Linux.

• Độ ưu tiên được phân chia theo nhóm của các tiến trình.

• Để thu hồi tài nguyên, Android có thể

hủy (kill) các tiến trình dựa trên độ

ưu tiên của chúng.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

31

ĐỊNH THỜI TRÊN MỘT SỐ HỆ ĐIỀU HÀNH

8.2. Định thời trên Windows

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

08.

32

• Định thời theo độ ưu tiên với chế độ trưng dụng.

• Tác vụ có độ ưu tiên cao nhất luôn được chạy tiếp.

• Tiến trình sẽ được thực thi cho đến khi (1) block bởi system call, (2) hết

quantum time, (3) bị thay thế bởi một tiến trình khác có độ ưu tiên cao

hơn.

• Sử dụng 32 độ ưu tiên, được chia thành 2 lớp: variable (1-15) và real-time

(16-31). Độ ưu tiên 0 dành cho quản lý bộ nhớ.

• Mỗi độ ưu tiên có hàng đợi riêng.

Idle thread được chạy nếu không có bất cứ tác vụ nào trong hàng đợi.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

33

• Các hàm thư viện Windows API cung cấp cho tiến trình các lớp

ưu tiên sau:

• REALTIME_PRIORITY_CLASS, HIGH_PRIORITY_CLASS,

ABOVE_NORMAL_PRIORITY_CLASS,NORMAL_PRIORITY_CLASS,

BELOW_NORMAL_PRIORITY_CLASS, IDLE_PRIORITY_CLASS.

• Tiến trình có thể có các độ ưu tiên tương đối sau:

• TIME_CRITICAL, HIGHEST, ABOVE_NORMAL,

,

BELOW_NORMAL, LOWEST, IDLE

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

34

• Lớp ưu tiên và độ ưu tiên tương đối có thể kết hợp để xác định

giá trị ưu tiên.

• Độ ưu tiên cơ sở (lúc khởi tạo) là

bên trong lớp.

• Khi hết quantum, độ ưu tiên có thể giảm nhưng không nhỏ hơn

độ ưu tiên cơ sở.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

35

• Các độ ưu tiên trên Windows

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

36

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

37

• Windows 7 có thêm user-mode scheduling (UMS):

• Ứng dụng tạo và quản lý tiểu trình độc lập với nhân.

• Hiệu quả hơn trong trường hợp có nhiều tiểu trình.

• Định thời UMS được thực hiện với sự hỗ trợ của các thư viện như C++

Concurrent Runtime (ConcRT).

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

38

ĐỊNH THỜI TRÊN MỘT SỐ HỆ ĐIỀU HÀNH

8.3. Định thời trên Solaris (đọc thêm)

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

08.

39

• Định thời theo độ ưu tiên

• Có 6 lớp, mỗi lớp có độ ưu tiên khác nhau và giải thuật định thời khác

nhau:

• Time sharing (TS) – mặc định • Interactive (IA) • Real time (RT)

• System (SYS) • Fair Share (FSS) • Fixed priority (FP)

• Lớp TS sử dụng giải thuật định thời MFQ.

• Độ ưu tiên càng lớn thì time slice càng nhỏ.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

40

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

41

• Bộ định thời chuyển đổi độ ưu tiên theo lớp thành độ ưu tiên

toàn cục:

▪ Tác vụ có độ ưu tiên cao nhất được chọn chạy tiếp.

▪ Tiến trình sẽ được thực thi cho đến khi (1) block, (2) hết quantum time,

(3) bị thay thế bởi một tiến trình khác có độ ưu tiên cao hơn.

▪ Nếu có nhiều tiến trình có cùng độ ưu tiên, bộ định thời sẽ sử dụng

hàng đợi round-robin.

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

42

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

43

• Định thời tiểu trình (Thread scheduling)

• Định thời đa bộ xử lý (Multiple-processor scheduling)

• Định thời theo thời gian thực (Real-time CPU scheduling)

• Định thời trên một số hệ điều hành

▪ Linux

▪ Windows

▪ Solaris

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

44

• Định thời tiểu trình như thế nào?

• Có các cách tiếp cận nào để thực hiện định thời đa bộ xử lý?

Ưu nhược điểm của từng cách tiếp cận?

• Cân bằng tải là gì? Tại sao phải cân bằng tải?

• Định thời theo thời gian thực như thế nào?

• Mô tả CFS?

• Trình bày đặc điểm của bộ định thời trên Windows?

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM

45

Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

46