Chuong 2 - CPU Scheduling

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 77

CHƯƠNG 2: CPU SCHEDULING

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10h Edition

NỘI DUNG
I. Các khái niệm cơ bản
II. Tiêu chuẩn điều phối
III.Các thuật toán điều phối CPU
IV. Điều phối đa xử lý

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.2

I. CÁC KHÁI NIỆM CƠ BẢN


➢Hệ thống có một processor => Chỉ có một tiến trình được
thực hiện tại một thời điểm.
➢Tiến trình được thực hiện (chiếm dụng CPU) cho tới khi phải
chờ đợi một thao tác I/O.
▪ Hệ đơn chương: CPU không được sử dụng => lãng phí.
▪ Hệ đa chương: cố gắng sử dụng CPU (đang rảnh rỗi ) cho các tiến
trình khác (đang chờ đợi).
• Cần nhiều tiến trình sẵn sàng trong bộ nhớ tại một thời điểm.
• Khi một tiến trình phải chờ, hệ điều hành lấy lại processor
để phân cho tiến trình khác.
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.3
I. CÁC KHÁI NIỆM CƠ BẢN
➢Điều phối processor quan trọng với hệ điều hành đa nhiệm.
▪ Luân chuyển CPU giữa các tiến trình => khai thác hệ thống hiệu quả
hơn.
➢Điều phối processor là nền tảng trong thiết kế hệ điều hành.
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.4

I. CÁC KHÁI NIỆM CƠ


BẢN ➢Chu kỳ CPU-I/O
▪ CPU burst
▪ I/O burst
➢CPU-bound : process có
thời gian sử dụng CPU
nhiều hơn thời gian sử dụng
I/O
➢I/O-bound : process dùng
phần lớn thời gian để đợi I/O
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.5

BỘ ĐIỀU PHỐI CPU


➢Lựa chọn một trong số các tiến trình đang sẵn sàng trong bộ nhớ
và cung cấp CPU cho nó.
➢Quyết định điều phối CPU xảy ra khi tiến trình:
▪ Chuyển từ trạng thái thực hiện sang trạng thái chờ đợi (yêu cầu
vào/ra). (Điều phối không trưng dụng - non-preemptive)
▪ Chuyển từ trạng thái thực hiện sang trạng thái sẵn sàng (hết thời gian
sử dụng CPU => ngắt thời gian). (Điều phối trưng dụng –
preemptive)
▪ Chuyển từ trạng thái chờ đợi sang trạng thái sẵn sàng (hoàn thành
vào/ra). (Điều phối trưng dụng – preemptive)
▪ Tiến trình kết thúc. (Điều phối không trưng dụng - non-preemptive)

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.6

BỘ ĐIỀU PHỐI CPU


➢Điều phối không trưng dụng (non-preemtive) = độc
quyền ▪ Tiến trình chiếm CPU cho tới khi giải phóng bởi:
• Kết thúc nhiệm vụ
• Chuyển sang trạng thái chờ đợi
▪ Không đòi hỏi phần cứng đặc biệt (đồng hồ )
▪ Ví dụ: DOS, Win 3.1, Macintosh
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.7

BỘ ĐIỀU PHỐI CPU


➢Điều phối trưng dụng (preemtive) = không độc quyền ▪
Tiến trình chỉ được phép thực hiện trong khoảng thời gian
▪ Kết thúc khoảng thời gian được định nghĩa trước, ngắt thời gian xuất
hiện, bộ điều vận (dispatcher) được kích hoạt để quyết định hồi phục
lại tiến trình hay lựa chọn tiến trình khác
▪ Bảo vệ CPU khỏi các tiến trình “đói-CPU"
▪ Vấn đề dữ liệu dùng chung:
• Tiến trình 1 đang cập nhật DL thì bị mất CPU
• Tiến trình 2, được giao CPU và đọc DL đang cập
nhật
▪ Ví dụ: Hệ điều hành đa nhiệm WinNT, UNIX
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.8

PHÂN LOẠI CÁC HOẠT ĐỘNG ĐIỀU PHỐI


Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.9

PHÂN LOẠI CÁC HOẠT ĐỘNG ĐIỀU PHỐI ➢Điều


phối dài hạn (long-term scheduling): xác định process mới (new)
nào được tiếp tục vào “sâu hơn” trong hệ thống.
▪ Thường chỉ có trong batch system
➢Điều phối trung hạn (medium-term scheduling): xác định
process nào được đưa vào (swap in), đưa ra khỏi (swap out) bộ
nhớ chính.
▪ Swap in/out có thể tốn đến vài giây thời gian =>chu kỳ ĐIỀU PHỐI
trung hạn có thể là vài phút.
➢Điều phối ngắn hạn (short-term scheduling): xác định process
nào được thực thi tiếp theo.

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.10
ĐIỀU PHỐI DÀI HẠN
➢Ảnh hưởng đến độ đa lập trình (degree of multiprogramming: số
quá trình đang ở trong bộ nhớ)
➢Nếu càng nhiều process đang ở trong bộ nhớ thì khả năng mọi
process bị block có xu hướng giảm
▪ Sử dụng CPU hiệu quả hơn
▪ Nhưng mỗi process được phân chia khoảng thời gian sử dụng CPU
nhỏ hơn
➢Thường có xu hướng đưa vào một tập lẫn lộn các CPU-bound
process và I/O-bound process
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.11

ĐIỀU PHỐI TRUNG HẠN


➢Quyết định việc đưa process (không phải process ở trạng thái
new) vào bộ nhớ chính, hay ra khỏi bộ nhớ chính
➢Phụ thuộc vào yêu cầu quản lý việc đa lập trình (multiprogramming)
▪ Cho phép bộ điều phối dài hạn chấp nhận (admit) nhiều process hơn số
lượng process mà có tổng kích thước được chứa vừa trong bộ nhớ
chính (kỹ thuật bộ nhớ ảo)
▪ Nhưng nếu có quá nhiều process thì sẽ làm tăng việc truy xuất đĩa, do
đó cần phải lựa chọn độ đa lập trình cho phù hợp
➢Được thực hiện bởi phần mềm
quản lý bộ nhớ
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.12

ĐIỀU PHỐI NGẮN HẠN


➢Xác định process nào được thực thi tiếp theo, còn gọi là điều
phối CPU
➢Tùy hệ thống (điều phối nonpreemptive, preemptive) mà được
kích hoạt khi có một sự kiện dẫn đến khả năng chọn một process
để thực thi
▪ 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)
▪ Signal

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.13

II. TIÊU CHUẨN ĐIỀU PHỐI


• Hiệu quả (Efficiency)
−🡇 Thời gian
o🡇 Đáp ứng (Response time)
o🡇 Hoàn tất (Turnaround Time = Tquit -Tarrive):
o🡇 Chờ (Waiting Time = T in Ready ) :
−🡅 Thông lượng (Throughput = # jobs/s )
o🡅 Hiệu suất Tài nguyên
o🡇 Chi phí chuyển đổi
• Công bằng (Fairness): Tất cả các tiến trình đều có cơ hội nhận CPU

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.14

II. TIÊU CHUẨN ĐIỀU PHỐI


➢Sử dụng CPU (Lớn nhất)
▪ Mục đích là làm CPU hoạt động nhiều nhất có thể
▪ Sử dụng CPU thay đổi từ 40% (hệ thống tải nhẹ) đến 90% (hệ
thống tải nặng).
➢Thông lượng (throughput) (Lớn nhất)
▪ Số lượng tiến trình hoàn thành trong một đơn vị thời
gian • Các tiến trình dài: 1 tiến trình/giờ
• Các tiến trình ngắn: 10 tiến trình/giây

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.15

II. TIÊU CHUẨN ĐIỀU PHỐI


➢Thời gian hoàn thành (Nhỏ nhất)
▪ Khoảng thời gian từ thời điểm gửi đến hệ thống tới khi quá trình
hoàn thành
• Thời gian chờ đợi để đưa tiến trình vào bộ nhớ
• Thời gian chờ đợi trong hàng đợi sẵn sàng
• Thời gian chờ đợi trong hàng đợi thiết bị
• Thời gian thực hiện thực tế

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.16

II. TIÊU CHUẨN ĐIỀU PHỐI


➢Thời gian chờ đợi (Nhỏ nhất)
▪ Tổng thời gian chờ trong hàng đợi sẵn sàng (Giải thuật điều phối
CPU không ảnh hưởng tới các tiến trình đang thực hiện hay đang đợi
thiết bị vào ra)
➢Thời gian đáp ứng (Nhỏ nhất)
▪ Từ lúc gửi câu hỏi cho tới khi câu trả lời đầu tiên được tạo ra
• Tiến trình có thể tạo kết quả ra từng phần
• Tiến trình vẫn tiếp tục tính toán kết qủa mới trong khi kết quả cũ được
gửi tới người dùng.

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.17
II. TIÊU CHUẨN ĐIỀU PHỐI CPU ➢Các giải thuật
lập lịch sẽ được đánh giá qua 5 tiêu chuẩn này. ➢Các giải
thuật gồm:
▪ First Come, First Served (FCFS) scheduling
▪ Shortest-Job-First scheduling
▪ Priority Scheduling
▪ Round-robin scheduling
▪ Etc.,
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.18

CÁC TIÊU CHUẨN ĐIỀU PHỐI CPU


➢Hướng đến người sử dụng (user-oriented)
⚫ Thời gian đáp ứng (Response time): khoảng thời gian process
nhận yêu cầu đến khi yêu cầu đầu tiên được đáp ứng (time
sharing, interactive system) → cực tiểu
⚫ Thời gian quay vòng (hoàn thành) (Turnaround time): khoảng
thời gian từ lúc một process được nạp vào hệ thống đến khi
process đó kết thúc → cực tiểu
⚫ Thời gian chờ (Waiting time): tổng thời gian một
process đợi trong ready queue → cực tiểu
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.19

TIÊU CHUẨN ĐIỀU PHỐI CPU


➢Hướng đến hệ thống (system-oriented)
⚫ Sử dụng CPU (processor utilization): định thời sao cho CPU càng
bận càng tốt → cực đại
⚫ Công bằng (fairness): tất cả process phải được đối xử như nhau
⚫ Thông lượng (throughput): số process hoàn tất công việc trong
một đơn vị thời gian → cực đại
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.20

HAI THÀNH PHẦN CỦA CHIẾN LƯỢC ĐIỀU


PHỐI ➢Hàm lựa chọn (selection function)
▪ Xác định process nào trong ready queue sẽ được thực thi tiếp theo.
Thường theo các tiêu chuẩn như
• w = tổng thời gian đợi trong hệ thống
• e = thời gian đã được phục vụ
• s = tổng thời gian thực thi của process (bao gồm cả trị e)
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.21

HAI THÀNH PHẦN CỦA CHIẾN LƯỢC ĐIỀU


PHỐI ➢Chế độ quyết định (decision mode)
▪ Chọn thời điểm thực hiện hàm lựa chọn để điều phối
▪ Non-preemptive (không trưng dụng)
• Khi ở trạng thái running, process sẽ thực thi cho đến khi kết thúc
hoặc bị blocked do yêu cầu I/O
▪ Preemptive (trưng dụng)
• Process đang thực thi có thể bị ngắt và chuyển về trạng thái
ready • Tránh trường hợp một process độc chiếm CPU

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.22

Preemptive và Non-preemptive
◼ Hàm định thời được thực hiện khi
⚫ (1) Chuyển từ trạng thái running sang waiting
⚫ (2) Chuyển từ trạng thái running sang ready
⚫ (3) Chuyển từ trạng thái waiting, new sang ready
⚫ (4) Kết thúc thực thi
⚫ (1) và (4) không cần lựa chọn loại định thời biểu, (2) và (3) cần
◼ Trường hợp 1, 4 được gọi là định thời nonpreemptive ◼ Trường
hợp 2, 3 được gọi là định thời preemptive
Thực hiện theo cơ chế nào
khó hơn? Tại sao?

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.23

III. CÁC THUẬT TOÁN ĐIỀU PHỐI CPU ◼


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


Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.24

III. CÁC THUẬT TOÁN ĐIỀU PHỐI CPU


➢Đến trước phục vụ trước (FCFS: First Come, First
Served). ▪ Nguyên tắc:
• Tiến trình được quyền sử dụng CPU theo trình tự xuất hiện
• Tiến trình sở hữu CPU tới khi kết thúc hoặc chờ đợi vào ra
▪ Đặc điểm:
• Đơn giản, dễ thực hiện.
• Tiến trình ngắn phải chờ đợi như tiến trình dài

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.25

FCFS
➢Hàm lựa chọn: chọn process ở trong hàng đợi ready lâu
nhất ➢Chế độ quyết định: nonpreemptive
▪ Một process sẽ được thực thi cho đến khi nó block hoặc kết thúc
➢FCFS thường được hiện thực bằng một FIFO queue

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.26
➢Thời gian đợi cho P1= 0, P2= 24,
FCFS P3= 27
➢Thời gian đợi trung bình: (0 + 24
+ 27) / 3 = 17
➢Ví dụ:
➢Giả sử các process đến theo thứ
tự P1, P2, P3
➢Giản đồ Gantt cho việc điều
phối là:
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.27

+ 3) / 3 = 3 ▪ Tốt hơn rất nhiều so với


FCFS trường hợp trước
➢Giả sử các process đến theo thứ
tự: P2, P3, P1 ➢Giản đồ Gantt cho
việc điều phối là:

➢Thời gian đợi của P1=6,P2=


0,P3= 3
➢Thời gian đợi trung bình: (6 + 0
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.28

FCFS
➢FCFS “không công bằng” với process có CPU burst ngắn vì nó
phải chờ trong thời gian dài (so với thời gian mà nó cần phục vụ)
thì mới được sử dụng CPU.
➢Điều này đồng nghĩa với việc FCFS “ưu tiên” các process thuộc
dạng CPU bound.
➢FCFS thường được sử dụng trong các hệ thống bó (batch system)
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.29

III. CÁC THUẬT TOÁN ĐIỀU PHỐI CPU


➢Công việc ngắn trước (SJF – Shortest Job First)
▪ Nguyên tắc:
• Mỗi tiến trình lưu trữ thời gian của chu kỳ sủ dụng CPU tiếp
theo • Tiến trình có thời gian sử dụng CPU ngắn nhất sẽ sở hữu
CPU • Hai phương pháp:
– Không trưng dụng CPU
– Có trưng dụng CPU (SRTF: Shortest Remaining Time First)

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.30

SJF – SHORTEST JOB FIRST ▪ Đặc


điểm
• SJF (SRTF) là tối ưu: Thời gian chờ đợi trung bình nhỏ
nhất • Không thể biết chính xác thời gian của chu kỳ sử dụng
CPU – Dự báo dựa trên những giá trị trước đó
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.31

SJF

SHORTEST JOB FIRST ➢Ví dụ:

➢Giản đồ Gantt khi điều phối theo SJF

➢Thời gian đợi trung bình = (0 +


6 + 3 + 7)/4 = 4
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.32

SJF – SHORTEST JOB FIRST ➢SJF sử dụng ưu tiên


ngầm định: công việc ngắn nhất được ưu tiên trước
▪ Những công việc thuộc loại I/O bound thường có CPU burst ngắn
➢Process có thời gian thực thi dài có thể bị trì hoãn vô hạn định
nếu các process có thời gian thực thi ngắn liên tục vào
➢Không thích hợp cho môi trường time-sharing khi không dùng
preemption
▪ Các CPU bound process có “độ ưu tiên” thấp, nhưng một process
không thực hiện I/O có thể độc chiếm CPU nếu nó là
process đầu tiên vào hệ thống
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.33
DỰ ĐOÁN THỜI GIAN SỬ DỤNG CPU ➢Thời
gian sử dụng CPU chính là độ dài của CPU burst ➢Trung
bình có trọng số các CPU burst đo được trong quá khứ
➢Giả thiết: những CPU burst càng mới càng phản ánh gần hành vi
của process trong tương lai
➢Phương pháp trung bình hàm mũ (exponential
averaging) ▪ τn+1= αtn+ (1 - α) τn, 0 ≤ α ≤ 1
▪ t chỉ trị đo được, τ chỉ trị dự đoán
▪ Suy ra: τn+1 = α tn+ (1 - α) α tn-1+…+(1 - α)jα tn-j+…+(1-α )n+1 ατ0 ▪
Nếu chọn a= ½ thì có nghĩa là trị đo được tnvà trị đã dự
đoán τ n được xem quan trọng như nhau.
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.34

DỰ ĐOÁN THỜI GIAN SỬ DỤNG CPU

Operating System Concepts – 10th Edition


Silberschatz, Galvin and Gagne ©2018
1.35
SHORTEST REMAINING TIME FIRST (SRTF)
➢Chế độ quyết định của SJF: non-preemptive
➢Phiên bản preemptive của SJF:
▪ Nếu một process mới đến mà có độ dài CPU burst nhỏ hơn thời gian
cần CPU còn lại của process đang thực thi, thì thực hiện preempt
process đang thực thi
▪ Cách làm này còn được gọi là Shortest-Remaining-Time First
(SRTF)
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.36

SHORTEST REMAINING TIME FIRST (SRTF)

➢Ví dụ
➢Giản đồ Gantt khi điều phối theo SRTF

➢Thời gian đợi trung bình = (9 +


1 + 0 + 2) / 4 = 3 ▪ Tốt hơn giải thuật SJF
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.37

SHORTEST REMAINING TIME FIRST (SRTF)


➢Tránh trường hợp process có thời gian thực thi dài độc chiếm
CPU ➢Cần phải quản lý thời gian thực thi còn lại của các
process ➢Có thời gian quay vòng tốt hơn SJF
➢Process có thời gian thực thi ngắn có độ ưu tiên cao
➢Có thể dẫn đến starvation (đói CPU).
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.38

SO SÁNH SJF, SRTF, FCFS, RR


• SJF vs SRTF

– Tốt nhất để tối thiểu hóa thời gian phản hồi trung bình. (SJF: non
preemptive, SRTF: preemptive)
– SRTF ít nhất là tương đương với SJF
• SRTF vs FCFS và RR

– Nếu thời gian sử dụng của các tiến trình là như nhau → SRTF = FCFS
– Nếu thời gian sử dụng của các tiến trình là biến động lớn → SRTF, RR

giúp cho các tiến trình có thời gian ngắn không chờ quá lâu.
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.39

SO SÁNH SJF, SRTF, FCFS, RR


• SRTF có thể làm phát sinh trường hợp “đói CPU” (starvation) cho các tiến
trình có thời gian sử dụng CPU tương đối lâu
– Ví dụ: Trường hợp các tiến trình có thời gian sử dụng ngắn liên tục được
đưa vào. → tiến trình có thời gian sử dụng dài sẽ không được phép sử
dụng CPU → tình trạng đói CPU (starvation).
• Cả 4 phương pháp đều yêu cầu phải biết thời gian mà một tiến trình sẽ dùng
CPU.

– Làm sao biết?


Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.40

SO SÁNH SJF, SRTF, FCFS, RR


• Dùng SRTF để làm cơ sở đánh giá các phương pháp khác (vì là phương
pháp tối ưu) về thời gian phản hồi trung bình.
• Ưu điểm
– Thời gian phản hồi trung bình của SRTF là tốt nhất.
• Khuyết điểm
– Phải dự đoán thời gian sử dụng CPU của tiến trình
– Không công bằng

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.41

ĐIỀU PHỐI CÓ ĐỘ ƯU TIÊN


➢Nguyên tắc:
▪ Mỗi tiến trình gắn với một số hiệu ưu tiên (số nguyên)
▪ CPU sẽ được phân phối cho tiến trình có độ ưu tiên cao nhất
▪ SJF: độ ưu tiên gắn liền với thời gian thực hiện
▪ Hai phương pháp
• Không trưng dụng CPU
• Có trưng dụng CPU

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.42

ĐIỀU PHỐI CÓ ĐỘ ƯU TIÊN


➢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
➢Vấn đề:trì hoãn vô hạn định –process có độ ưu tiên thấp có
thể không bao giờ được thực thi
➢Giải pháp: aging–độ ưu tiên của process được tăng theo thời gian

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.43

ROUND ROBIN
➢Nguyên tắc:
▪ Mỗi tiến trình được cấp một lượng tử thời gian q thực hiện
▪ Khi hết thời gian, tiến trình bị trưng dụng processor và được đưa vào
cuối hàng đợi sẵn sàng
▪ Nếu có n tiến trình, thời gian chờ đợi nhiều nhất (n - 1)q
➢Vấn đề: lựa chọn lượng tử thời gian q
▪ q lớn: FCFS
▪ q nhỏ: luân chuyển CPU nhiều

▪ Thông thường = 10-100ms


Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.44
➢Ví dụ

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.45
ROUND ROBIN
➢Giản đồ
Gantt

➢Thường có thời gian quay vòng cao hơn SJF, nhưng lại có
thời gian đáp ứng tốt hơn
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.46

ROUND ROBIN
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.47
Operating System
Silberschatz, Galvin and Gagne ©2018
Concepts – 10th Edition 1.48
ROUND ROBIN
➢Khi thực hiện process switch thì OS sẽ sử dụng CPU chứ không phải process
của người dùng (OS overhead, phí tổn):
▪ Dừng thực thi, lưu tất cả thông tin, nạp thông tin của process sắp thực thi
➢Performance tùy thuộc vào kích thước của quantum time (còn gọi là time slice),
và hàm phụ thuộc này không đơn giản
➢Time slice ngắn thì đáp ứng nhanh
▪ Vấn đề: có nhiều chuyển ngữ cảnh. Phí tổn sẽ cao.
➢Time slice dài hơn thì throughput tốt hơn (do giảm OS overhead) nhưng thời gian
đáp ứng lớn
▪ Nếu time slice quá lớn, RR trở thành
FCFS.
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.49

ROUND ROBIN
➢Quantum time và thời gian cho process switch:
▪ Nếu quantum time = 20 ms và thời gian cho process switch = 5 ms, thì
phí tổn (OS overhead) chiếm 5 / (20 + 5) = 20%
▪ Nếu quantum = 500 ms, thì phí tổn chỉ còn khoảng1%
➢Nhưng nếu có nhiều người sử dụng 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
process switch
▪ Ví dụ với 4.3 BSD UNIX, quantum time là 1 giây
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.50

ROUND ROBIN
➢Nếu có n process trong hàng đợi ready, và quantum time là q, như
vậy mỗi process sẽ lấy 1/n thời gian CPU theo từng khối có kích
thước lớn nhất là q
▪ Sẽ không có process nào chờ lâu hơn (n -1)q đơn vị thời gian
➢RR sử dụng một giả thiết ngầm là tất cả các process đều có
tầm quan trọng ngang nhau
▪ Không thể sử dụng RR nếu muốn các process khác nhau có độ ưu
tiên khác nhau
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.51

ROUND ROBIN
➢Nhược điểm:
➢Các process dạng CPU-bound vẫn còn được “ưu tiên”
▪ Ví dụ:
▪ Một I/O-bound process sử dụng CPU trong thời gian ngắn hơn
quantum time và bị blockedđể đợi I/O. Và
▪ Một CPU-bound process chạy hết time slice và liên tục quay trở về
hàng đợi ready queue, thường ở trước các I/O bound process đã bị
blocked.

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.52

MULTILEVEL QUEUE SCHEDULING ➢Điều


phối hàng đợi đa mức (multilevel queue scheduling):
➢Trường hợp các quá trình có thể được phân thành nhóm, ví
dụ: interactive và batch.
➢Hàng đợi ready sẽ được chia thành nhiều hàng đợi riêng rẽ. Ví
dụ: ▪ Foreground (cho công việc cần giao tiếp)
▪ Background (cho công việc dạng bó)
➢Mỗi hàng đợi sẽ có giải thuật điều phối riêng. Ví
dụ: ▪ Foreground: dùng RR

▪ Background: dùng FCFS


Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.53

MULTILEVEL QUEUE SCHEDULING


➢Điều phối cần phải thực hiện giữa các hàng đợi với nhau ▪
Theo cách cố định (fixed priority scheduling). Ví dụ: phục vụ tất
cả các process của foreground rồi mới đến background
• Có khả năng xảy ra trì hoãn vô hạn định (starvation)
▪ Chia thời gian(time slice) – mỗi hàng đợi sẽ được lấy một
khoảng sử dụng CPU nhất định để điều phối cho các process
của mình. Ví dụ:
• 80% cho foreground (dùng RR)
• 20% cho background (dùng FCFS)

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.54

MULTILEVEL QUEUE
SCHEDULING ➢Độ ưu tiên cao
nhất
➢Độ ưu tiên thấp nhất
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.55

MULTILEVEL FEEDBACK QUEUE ➢Trong hệ thống


Multilevel Feedback Queue, bộ điều phối có thể di chuyển process
giữa các queue tùy theo đặc tính của nó được quan sát.Ví dụ:
▪ Nếu một process sử dụng CPU quá lâu, nó sẽ bị di chuyển sang một
hàng đợi có độ ưu tiên thấp hơn
▪ Nếu một process chờ quá lâu trong một hàng đợi có độ ưu tiên thấp,
nó sẽ được di chuyển lên hàng đợi có độ ưu tiên cao hơn (aging,
giúp tránh starvation)

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.56
MULTILEVEL
FEEDBACK QUEUE ➢ Ví dụ: Có 3
hàng đợi
▪ Q0, dùng RR với quantum 8ms
▪ Q1, dùng RR với quantum 16ms
▪ Q2, dùng FCFS
➢ Giải thuật
▪ Công việc mới sẽ vào hàng đợi Q0. Khi đến lượt, công việc sẽ được một quantumlà 8
milli giây. Nếu không trả CPUtrong 8 milli giây, công việc sẽ được đưa xuống đuôi
hàng đợi Q1
▪ Tại Q1, công việc sẽ được cho một quantumlà 16 milli giây. Nếu công việc khôngtrả
CPU trước khi hết quantum thìsẽ bị chuyển xuống Q2
▪ Công việc ở hàng đợi “cao” preempt công việc ở hàng đợi “thấp”
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.57

MULTILEVEL FEEDBACK QUEUE ➢Multilevel


Feedback Queue được xác định bởi các thông số ▪ Có bao
nhiêu hàng đợi?
▪ Với mỗi queue sử dụng giải thuật điều phối nào?
▪ Khi nào thăng cấp một process?
▪ Khi nào giáng cấp một process?
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.58

IV. ĐIỀU PHỐI ĐA XỬ LÝ


➢Nếu có nhiều CPU thì có thể thực hiện việc chia tải
▪ Phức tạp hơn so với điều phối trên một processor
➢Làm sao để chia tải?
▪ Asymmetric multiprocessor
• Một master processor sẽ thực hiện điều phối cho tất cả các processor
còn lại

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.59

IV. ĐIỀU PHỐI ĐA XỬ LÝ


▪ Symmetric multiprocessor (SMP)
• Hoặc mỗi processor có một hàng đợi ready riêng và bộ điều phối riêng
• Hoặc có một hàng đợi ready chung cho tất cả processors
– Một processor được chọn làm scheduler cho các processor khác
– Hoặc mỗi processor có bộ điều phối riêng và tự chọn process từ hàng
đợi chung để thực thi
➢Đa xử lý không đối xứng
▪ Chỉ có một processor truy nhập, hàng đợi hủy bỏ vấn đề dung chung
cơ sở dữ liệu

▪ Có thể tắc nghẽn tại một processor


Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.60

PROCESSOR AFFINITY
➢Khi một process chạy trên một processor, có một số dữ liệu
được cache trên bộ nhớ cache của processor
➢Khi một process được di dời sang một processor
khác ▪ Cache của processor mới phải được repopulated
▪ Cache của processor cũ phải được invalidated
=>vấn đề phí tổn

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.61

CÂN BẰNG TẢI


➢Một processor có quá nhiều tải, trong khi những bộ xử lý khác thì
lại rảnh
➢Cân bằng tải sử dụng:
▪ Push migration: một task đặc biệt sẽ định kỳ kiểm tra tải trên tất
cả các processors và công việc sẽ được đẩy đến processor rảnh
▪ Pull migration: processor rảnh sẽ lấy công việc từ processor đang
bận
▪ Một số hệ thống (ví dụ Linux) hiện thực cả hai
➢Cần phải có sự cân bằng giữa load balancing và processor affinity

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.62

PHƯƠNG PHÁP ĐÁNH GIÁ GIẢI THUẬT ĐIỀU PHỐI


CPU ➢Deterministic modeling
▪ Định nghĩa trước một tập tải (workload) và khảo sát
performance của các giải thuật trên cùng tập tải đó
▪ Không tổng quát
➢Queuing model
▪ Sử dụng queuing theory để phân tích giải thuật
▪ Sử dụng nhiều giả thiết để phục vụ việc phân tích
▪ Không sát thực tế

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10th Edition 1.63
PHƯƠNG PHÁP ĐÁNH GIÁ GIẢI THUẬT ĐIỀU PHỐI

CPU ➢Mô phỏng (simulation)


▪ Xây dựng bộ mô phỏng và chạy thử
▪ Với tập tải giả (thường được sinh tự động)
▪ Hoặc tập tải được ghi nhận từ thực tế
➢Hiện thực
▪ Viết mã của giải thuật và test nó trong hệ thống thực
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.64

HẾT
CHƯƠNG 2: CPU SCHEDULING

Silberschatz, Galvin and Gagne ©2018


Operating System Concepts – 10h Edition

You might also like