1
1
Nguyên lý hệđiềuhành
NguyễnHải Châu
Khoa Công nghệ thông tin
Trường Đạihọc Công nghệ
2
Lậplịch CPU
3
Tạisaophảilậplịch CPU?
z Số lượng NSD, số lượng tiến trình luôn lớn
hơnsố lượng CPU củamáytínhrất nhiều
z Tạimộtthời điểm, chỉ có duy nhấtmộttiến
trình đượcthựchiệntrênmộtCPU
z Vấn đề:
z Nhu cầusử dụng nhiềuhơn tài nguyên (CPU)
đang có
z Do đócầnlậplịch để phân phốithờigiansử dụng
CPU cho các tiếntrìnhcủa NSD và hệ thống
4
Hàng chờ lậplịch tiếntrình
Hàng chờ sẵn
sàng thựchiện
Hàng chờ vào/ra
Yêu cầuvào/ra
Hếtthờigian
sử dụng CPU
Tạomộttiến
trình con
Chờ ngắt
CPU
Vào/ra
Tiếntrìnhcon
thựchiện
Ngắtxuấthiện
5
CPU-burst và IO-burst
z Trong suốtthờigiantồntạitronghệ thống,
tiếntrìnhđược xem như thựchiệnhailoại
công việcchính:
z Khi tiếntrìnhở trạng thái running: Sử dụng CPU
(thuậtngữ: CPU-burst)
z Khi tiếntrìnhthựchiện các thao tác vào ra: Sử
dụng thiếtbị vào/ra (thuậtngữ: I/O burst)
6
Microsoft
Office
Outlook
CPU-burst
Adobe
Photoshop
CPU-burst
2
7
Hai loạitiếntrìnhchính
z Căn cứ theo cách sử dụng CPU của tiến
trình, có hai loại tiến trình:
z Tiếntrìnhloại CPU-bound: Tiếntrìnhcómộthoặc
nhiều phiên sử dụng CPU dài
z Tiếntrìnhloại I/O-bound: Tiến trình có nhiều
phiên sử dụng CPU ngắn(tứclàthờigianvàora
nhiều)
8
Bộ lậplịch ra hoạt động khi…
1. Mộttiến trình chuyểntừ trạng thái running
sang waiting
2. Mộttiến trình chuyểntừ trạng thái running
sang ready
3. Mộttiến trình chuyểntừ trạng thái waiting
sang ready
4. Mộttiếntrìnhkếtthúc
9
Các phương pháp lậplịch
terminated
new
ready running
waiting
admitted
exit
I/O hoặcsự kiện
đãhoàntất
Bị ngắt
(Interrupt)
Chờ I/O hoặc
sự kiện
Lậplịch
2
1
3
4
z 1 và 4: Lậplịch non-preemptive
z Ngượclại: Lậplịch preemptive
10
Lậplịch non-preemptive
z Mộttiếntrìnhgiữ CPU đếnkhinókết thúc
hoặcchuyển sang trạng thái waiting.
z Ví dụ: Microsoft Windows 3.1, Apple
Macintosh sử dụng lậplịch non-preemptive
z Có thể sử dụng trên nhiềuloạiphầncứng vì
không đòi hỏitimer
11
Lậplịch preemptive
z Hiệuquả hơnlậplịch non-preemptive
z Thuậttoánphứctạphơn non-preemptive và
sử dụng nhiều tài nguyên CPU hơn
z Ví dụ: Microsoft Windows XP, Linux, UNIX
sử dụng lậplịch preemptive
12
Bộđiềuphối (dispatcher)
z Nhiệmvụ:
z Chuyểntrạng thái (context switch)
z Chuyểnvề user-mode
z Thựchiệntiến trình theo trạng thái đãlưu
z Cầnhoạt động hiệuquả (tốc độ nhanh)
z Thờigiancần để bộđiềuphốidừng mộttiến
trình và thựchiệntiến trình khác gọilàđộ trễ
(latency) củabộđiềuphối
3
13
Các tiêu chí đánh giá lậplịch
z Khả năng tậndụng CPU (CPU utilization):
Thể hiệnqua tảiCPU –làmộtsố từ 0% đến
100%.
z Trong thựctế các hệ thống thường có tảitừ 40%
(tảithấp) đến 90% (tảicao)
z Thông lượng (throughput): Là số lượng các
tiến trình hoàn thành trong một đơnvị thời
gian
14
Các tiêu chí đánh giá lậplịch
z Thời gian hoàn thành (turnaround time):
z t
turnaround
= t
o
-t
i
với t
i
là thời điểmtiếntrìnhvàohệ
thống, t
o
là thời điểmtiếntrìnhrakhỏihệ thống
(kếtthúcthựchiện)
z Như vậy t
turnaround
là tổng: thờigiantảivàobộ nhớ,
thờigianthựchiện, thời gian vào ra, thờigian
nằm trong hàng chờ…
15
Các tiêu chí đánh giá lậplịch
z Thờigianchờ (waiting time): Là tổng thời
gian tiến trình phảinằm trong hàng chờ
ready (t
waiting
)
z Các thuậttoánlậplịch CPU không có ảnh hưởng
đếntổng thờigianthựchiệnmộttiến trình mà chỉ
có ảnh hưởng đếnthờigianchờ củamộttiến
trình trong hàng chờ ready
z Thờigianchờ trung bình (average waiting time):
t
averagewaiting
=t
waiting
/ n, n là số lượng tiến trình trong
hàng chờ
16
Các tiêu chí đánh giá lậplịch
z Thờigianđáp ứng (response time): Là
khoảng thờigiantừ khi tiếntrìnhnhận được
mộtyêucầuchođếnkhibắt đầu đáp ứng
yêu cầu đó
z t
res
= t
r
– t
s
, trong đó t
r
là thời điểmnhậnyêu
cầu, t
s
là thời điểmbắt đầu đáp ứng yêu cầu
17
Đánh giá các thuậttoánlậplịch
XấuTốtThờigianđáp ứng (response
time)
XấuTốtThờigianchờ (waiting time)
-> Thờigianchờ trung bình
XấuTốtThờigianhoànthành
(turnaround time)
TốtXấuThông lượng (throughput)
TốtXấuKhả năng tậndụng CPU
(CPU utilization)
Giá trị caoGiá trị thấpTiêu chí
18
Các thuậttoánlậplịch
4
19
FCFS (First Come First Served)
z Tiến trình nào có yêu cầusử dụng CPU
trướcsẽđượcthựchiệntrước
z Ưu điểm: Thuậttoánđơngiảnnhất
z Nhược điểm: Hiệuquả củathuậttoánphụ
thuộcvàothứ tự củacáctiến trình trong hàng
chờ, vì thứ tự này ảnh hưởng rấtlớn đến thời
gian chờ trung bình (average waiting time)
20
Ví dụ FCFS 1a
z Giả sử có 3 tiếntrìnhP
1
, P
2
, P
3
vớithờigian
thựchiệntương ứng là 24ms, 3ms, 6ms
z Giả sử 3 tiếntrìnhxếphàngtheothứ tự P
1
, P
2
,
P
3
. Khi đótacóbiểu đồ Gantt như sau:
z Thờigianchờ củacáctiếntrìnhlà: P
1
chờ
0ms, P
2
chờ 24ms, P
3
chờ 27ms
z Thờigianchờ trung bình: (0+24+27)/3=17ms
P
1
P
2
P
3
0242733
21
Ví dụ FCFS 1b
z Xét ba tiếntrìnhtrongvídụ 1a vớithứ tự xếp
hàng P
3
, P
2
, P
1
z Biểu đồ Gantt:
z Thờigianchờ củacáctiếntrìnhlà: P
3
chờ
0ms, P
2
chờ 6ms, P
3
chờ 9ms
z Thờigianchờ trung bình: (0+6+9)/3=5ms
z Thờigianchờ trung bình thấphơnthờigian
chờ trung bình trong ví dụ 1a
P
1
P
2
P
3
069 33
22
Hiệntượng “đoàn hộ tống”
z Thuậtngữ: convoy effect
z Xảyrakhicómộttiến trình “lớn” P nằm ởđầu
hàng chờ và nhiềutiến trình “nhỏ” Q
i
xếphàng
sau P.
z “Lớn”: Sử dụng nhiềuthờigianCPU vàvàora
z “Nhỏ”: Sử dụng ít thời gian CPU và vào ra
z Thuậttoánlậplịch đượcsử dụng là FCFS.:
z Hiệntượng xảy ra: CPU, thiếtbị vàoracónhiều
thờigianrỗi, thờigianchờ trungbìnhcủacác
tiến trình cao
23
Ví dụ convoy effect
Hàng chờ sẵn
sàng thựchiện
Hàng chờ vào/ra
Yêu cầuvào/ra
Hếtthờigian
sử dụng CPU
Tạomộttiến
trình con
Chờ ngắt
CPU
Vào/ra
Tiến trình con
thựchiện
Ngắtxuấthiện
Q
3
(10) Q
2
(10) Q
1
(10) P (40)
P (50) Q
1
(10) Q
2
(10) Q
3
(10)
24
Convoy effect: Thờigiansử
dụng CPU và thiếtbị vào ra
Thiếtbị
vào ra
CPU
0
40 50 60 70
P
Q
1
Q
2
Q
3
40
0
Rỗi
90
P
90
Rỗi
Q
1
Q
2
Q
3
100 110 120 130
130
P
Rỗi
140
Q
1
Q
2
Q
3
150 160 180
180
P
z Giả sử P là tiến trình “lớn” có chu kỳ sử dụng CPU trong 40ms
và vào ra trong 50ms
z Q
1
, Q
2
, Q
3
là 3 tiến trình “nhỏ”cóchukỳ sử dụng CPU trong
10ms và vào ra trong 10ms
z Thứ tự xếp hàng: P, Q
1
, Q
2
, Q
3
Rỗi
5
25
SJF (Shortest Job First)
z Với SJF, tham số lậplịch có thêm độ dài của
phiên sử dụng CPU tiếp theo t
nextburst
z Tiếntrìnhcót
nextburst
nhỏ nhấtsẽđượclập
lịch sử dụng CPU trước
z Nếu hai tiếntrìnhcót
nextburst
bằng nhau thì
FCFS đượcápdụng
26
SJF (Shortest Job First)
z Vớilậplịch dài hạn: Có thể biết t
nextburst
vì có
tham số chỉ ra thờigianchạycủatiếntrìnhkhi
đưatiếntrìnhvàohệ thống (job submit)
z Khó khăn: Chỉ có thể phỏng đoán được t
nextburrt
vớilậplịch ngắnhạn
z Đọc ở nhà: Dựđoán t
nextburst
bằng công thức
trung bình mũ (exponential average) trang
160-162 trong giáo trình
z SJF không tối ưu đượcvớilậplịch ngắnhạn
z SJF thường đượcápdụng cho lậplịch dài hạn
27
Lậplịch có độ ưutiên
z Thuậtngữ: Priority scheduling
z Mỗitiếntrìnhđượcgắnmộtthamsố lậplịch gọilàđộ
ưutiênp, với p là mộtsố thực
z Tiếntrìnhcóđộ ưutiêncaonhất đượcsử dụng CPU
z Qui ướctrongmônhọcnày:
z TiếntrìnhP
1
và P
2
có độ ưutiênp
1
, p
2
tương ứng
z p
1
>p
2
có nghĩalàtiếntrìnhP
1
có độ ưutiênthấphơn P
2
z SJF là trường hợp đặcbiệtcủalậplịch có ưutiênvới
ưutiêncủacáctiếntrìnhlànghịch đảo độ dài phiên
sử dụng
28
Lậplịch có độ ưutiên
z Hai cách xác định độ ưu tiên:
z Độ ưutiêntrong: Được tính toán dựatrêncác
tham sốđịnh lượng củatiếntrìnhnhư giớihạnvề
thờigian, bộ nhớ, số file đang mở, thờigiansử
dụng CPU
z Độ ưutiênngoài: Dựavàocácyếutố như mức
độ quan trọng, chi phí thuê máy tính…
z Chờ không xác định: Mộttiếntrìnhcóđộ ưu
tiên thấpcóthể nằm trong hàng chờ trong
mộtkhoảng thờigiandàinếu trong hàng chờ
luôn có các tiếntrìnhcóđộ ưutiêncaohơn
29
Lậplịch có độ ưutiên
z Để tránh hiệntượng chờ không xác định, có
thêm tham số tuổi để xác định thờigiantiến
trình thờigiannằm trong hàng chờ
z Tham số tuổi đượcsử dụng để làm tăng độ
ưutiêncủatiếntrình
z Ví dụ thựctế: Khi bảodưỡng máy tính IBM
7094 của MIT năm 1973, ngườitathấymột
tiếntrìnhnằm trong hàng chờ từ năm 1967
nhưng vẫnchưa đượcthựchiện
30
Ví dụ lậplịch có độ ưutiên
z Xét 5 tiến trình như trong
bảng vớithứ tự trong hàng
chờ là P
1
, P
2
, P
3
, P
4
, P
5
z Sử dụng thuậttoánlậplịch
có ưu tiên, ta có thứ tự
thựchiệncủacáctiếntrình
như sau biểu đồ dưới
z Thờigianchờ trung bình là
(1+6+16+18)/5=8.2ms
3
1
4
5
2
10
1
2
1
5
P
1
P
2
P
3
P
4
P
5
Độ ưu
tiên
Thờigian
thựchiện
(ms)
Tiến
trình
P
1
(3)P
5
(2)
06 16
P
2
(1)
1
P
3
(4) P
4
(5)
18
19
6
31
Round-robin (RR)
z Còn gọilàlậplịch quay vòng
z Đượcthiếtkếđểáp dụng cho các hệ phân
chia thời gian (time-sharing)
z RR hoạt động theo chếđộpreemptive
z Tham số lượng tử thời gian (time quantum)
t
quantum
: Mỗitiếntrìnhđượcsử dụng CPU
trong nhiềunhấtbằng t
quantum
, sau đó đến
lượttiến trình khác
32
Round-robin (RR)
z Hiệuquả của RR phụ thuộc độ lớncủa
t
quantum
z Nếu t
quantum
nhỏ thì hiệuquả của RR giảmvìbộ
điềuphốiphảithựchiệnnhiềuthaotácchuyển
trạng thái, lãng phí thờigianCPU
z Nếu t
quantum
lớnthìsố thao tác chuyểntrạng thái
giảm đi
z Nếu t
quantum
rấtnhỏ (ví dụ 1ms) thì RR được
gọi là processor sharing
z Nếu t
quantum
= ∞ thì RR trở thành FCFS
33
Ví dụ RR
z Giả sử có 3 tiếntrìnhP
1
, P
2
, P
3
vớithờigianthực
hiệntương ứng là 24ms, 3ms, 6ms, thứ tự trong
hàng chờ P
1
, P
2
, P
3
,vào hàng chờ cùng thời điểm0
z Giả sử t
quantum
=4ms
z RR lậplịch các tiến trình như sau:
P
2
P
3
P
1
P
3
P
1
P
1
P
1
P
1
P
1
0
4 7 11 15 17 21 25 29 33
z
Thờigianchờ
z P
1
: 0+(11-4)+(17-15)=9ms
z P
2
: 4ms
z P
3
: 7+(15-11)=11ms
z Thờigianchờ trung bình:
(9+4+11)/3=8ms
34
Lậplịch vớihàngchờđamức
z Thuậtngữ: Multilevel queue scheduling
z Đượcsử dụngkhitacóthể chia các tiến
trình thành nhiềulớp khác nhau để lậplịch
theo các tiêu chí khác nhau, ví dụ:
z Lớpcáctiến trình có tương tác (interactive hoặc
foreground process) cầncóđộ ưutiêncaohơn
z Lớpcáctiếntrìnhchạynền (background) thường
khôngcótương tác vớiNSD: Độ ưutiênthấphơn
35
Lậplịch vớihàngchờđamức
z Thuậttoánlậplịch với hàng chờđamứcchia
hàng chờ ready thành nhiềuhàngchờ con
khác nhau, mỗihàngchờ con đượcápdụng
mộtloạithuật toán khác nhau, ví dụ:
z Hàng chờ các tiến trình background: FCFS
z Hàng chờ các tiếntrìnhcótương tác:RR
z Các tiếntrìnhđượcphânlớpdựavàođặc
tính như bộ nhớ, độ ưu tiên, …
z Cầncóthuậttoánlậplịchchocáchàngchờ
con, ví dụ: preemptive có độ ưutiêncốđịnh
36
Ví dụ hàng chờđamức
z Ví dụ các hàng chờđamứccóđộ ưutiên
giảmdần:
z Hàng chờ các tiếntrìnhhệ thống
z Hàng chờ các tiếntrìnhcótương tác
z Hàng chờ các tiến trình là editor
z Hàng chờ các tiếntrìnhhoạt động theo lô
z Hàng chờ các tiếntrìnhthựctậpcủasinhviên
7
37
Lậplịch vớihàngchờđamức
có phảnhồi
z Thuậtngữ: Multilevel feedback-queue
scheduling
z Thuậttoánlậplịch kiểu này nhằmkhắcphục
nhược điểm không mềmdẻo củalậplịch với
hàng chờđamức
z Ý tưởng chính: Cho phép tiến trình chuyểntừ
hàng chờ này sang hàng chờ khác, trong khi
lậplịch với hàng chờđamức không cho phép
điềunày
38
Lậplịch vớihàngchờđamức
có phảnhồi
z Cách thựchiện:
z Độ dài phiên sử dụng CPU và thờigianđãnằm
tronghàngchờ là tiêu chuẩnchuyểntiếntrình
giữa các hàng chờ
z Tiến trình chiếmnhiềuthờigianCPU sẽ bị
chuyểnxuống hàng chờ có độ ưutiênthấp
z Tiếntrìnhnằm lâu trong hàng chờ sẽđược
chuyển lên hàng chờ có độ ưutiêncaohơn
39
Các tham số củabộ lậplịch
hàng chờđamứccóphảnhồi
z Số lượng các hàng chờ
z Thuậttoánlậplịch cho mỗihàngchờ
z Phương pháp tăng độ ưutiênchomộttiếntrình
z Phương pháp giảm độ ưutiênchomộttiếntrình
z Phương pháp xác định hàng đợinàođể đưa
mộttiếntrìnhvào
40
Các thuậttoánlậplịch khác
z Sinh viên tìm hiểu trong giáo trình:
z Lậplịch đaxử lý
z Lậplịch thờigianthực
41
Các phương pháp đánh
giá thuậttoánlậplịch
42
Mô hình xác định
z Thuậtngữ: Deterministic modeling
z Dựa vào các trường hợpcụ thể (chẳng hạn
các ví dụđã nói trong bài giảng này) để rút ra
các kếtluận đánh giá
z Ưu điểm: Nhanh và đơngiản
z Nhược điểm: Không rút ra đượckếtluận
đánh giá cho trường hợptổng quát
8
43
Mô hình hàng chờ
z Thuậtngữ: Queueing model
z Dựatrênlýthuyếtxácsuất, quá trình ngẫu nhiên. Tài
liệuthamkhảo:
z Leonard Kleinrock, Queueing Systems: Volume I – Theory
(Wiley Interscience, New York, 1975)
z Leonard Kleinrock, Queueing Systems: Volume II –
Computer Applications (Wiley Interscience, New York, 1976)
z Ưu điểm: So sánh đượccácthuật toán lậplịch trong
mộtsố trường hợp
z Hạnchế: Phứctạpvề mặttoánhọc, lớpcácthuật
toán phân tích so sánh đượccònhạnchế
44
Mô phỏng
z Thuậtngữ: Simulation
z Thựchiện các tình huống giảđịnh trên máy
tính để đánh giá hiệuquả củacácthuật toán
lậplịch, kiểm nghiệmcáckếtquả lý thuyết
z Mô phỏng thường tốnthờigianCPU và
không gian lưutrữ
z Đượcsử dụng nhiều trong công nghiệp
z Ví dụ các hệ mô phỏng mạng (có module
hàng chờ): OPNET, NS-2, Qualnet
45
Cài đặtthử trong thựctế
z Mô phỏng có thể xem như “qui nạp không
hoàn toàn”
z Có thể xây dựng hệ thống thử trong thựctế
z Ưu điểm: Đánh giá đượchiệuquả thựcsự
khi sử dụng
z Nhược điểm:
z Chi phí cao
z Hành vi củangườisử dụng có thể thay đổi theo
môi trường hệ thống
46
Tóm tắt
z Khái niệmlậplịch, các tiêu chí đánh giá thuật
toán lậplịch
z Các phương thứchoạt động preemptive và
non-preemptive
z Các thuật toán lậplịch FCFS, SJF, ưu tiên,
RR
z Lậplịch vớihàngchờđamức, có và không
có phảnhồi
z Các phương pháp đánh giá thuậttoánlập
lịch
47
Bài tập
z Thựchiệnvídụ RR vớilượng tử thờigian
2ms, 6ms và 6ms.
z Tính thờigianchờ trungbìnhcủacáctiếntrình
trong các trường hợp này.
z Khi lượng tử thời gian thay đổi, thờigianchờ
trung bình thay đổithế nào?
z Tính thời gian hoàn thành (turnaround time) của
tấtcả các tiến trình trong các trường hợptrên
z Nhậnxétvề sự thay đổithời gian hoàn thành của
các tiếntrìnhkhilượng tử thời gian thay đổi
48
Bài tập
z Hãy xây dựng mộtvídụ về hiệntượng convoy
effect sao cho thờigianrỗicủathiếtbị vào ra
ít hơnthờigianrỗicủaCPU. Giả sử có 4 tiến
trình, trong đó P là tiếntrình“lớn”, Q
1
, Q
2
, Q
3
là các tiến trình “nhỏ” đượcnằm trong hàng
chờ theo thứ tự: P, Q
1
, Q
2
, Q
3
z Tìm hai ví dụ trong thựctế về hàng chờđa
mức và hàng chờđamứccóphảnhồivàgiải
thích các ví dụ này.