Medium-term schedulingMedium-term Short-term scheduling... First Come First Served 2/5 Process Burst time ms... First Come First Served 4/5... Shortest Job First 3/3... Shortest Remainin
Trang 1NH TH I CPU
Trang 4V n ấ đề ầ c n gi i quy t ả ế
■ Trong các h th ng multiprogramming / multitaskingệ ố
● T i m t th i i m trong b nh có nhi u processạ ộ ờ đ ể ộ ớ ề
● T i m i th i i m ch có m t process ạ ỗ ờ đ ể ỉ ộ được th c thiự
● Do ó, cân phai giai quyêt vân ê phân lo i và l a chon process đ ̀ ̉ ̉ ́ ́ đ ̀ ạ ự ̣
th c thi sao cho ự được hiêu qua nhât (̣ ̉ ́ tiêu chí nh th i) C n có đị ờ ầ
chiên ĺ ượ đ ̣c inh th i CPUờ
Trang 5Medium-term scheduling
Medium-term
Short-term scheduling
Trang 6Phân lo i các ho t ạ ạ độ ng nh th i (2/2) đị ờ
■ Đị nh th i dài h n ờ ạ (long-term scheduling): xác nh các process m i đị ớ
(new) nào đượ đưc a vào hàng đợ ẳi s n sàng
● Thường ch có trong batch systemỉ
■ Đị nh th 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 nh th i ỳ đị ờ
trung h n có th là vài phútạ ể
■ Đị nh th i ng n h n ờ ắ ạ (short-term scheduling): xác nh process nào đị
c th c thi ti p theo
Trang 7nh th 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
Trang 8nh th 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 nh th 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 ứ ừ
Trang 9● 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
Trang 10
N i dung c n quan tâm ộ ầ
■ Định th i trên h th ng có ờ ệ ố m tộ processor (uniprocessor scheduling): quy t nh vi c s d ng (m t) CPU cho m t t p các process trong h ế đị ệ ử ụ ộ ộ ậ ệ
th ngố
■ Tiêu chí nào?
Trang 11Tiêu chí nh th i (1/4) đị ờ
■ Độ ợ l i CPU (CPU utilization)
● Kho ng th i gian CPU b n, t 0% ả ờ ậ ừ đến 100%
● C n gi cho CPU càng b n càng t tầ ữ ậ ố
■ Th i gian ch ờ ờ (waiting time)
● Th i gian m t process trong hàng ờ ộ ở đợi ready
Trang 12Tiêu chí nh th i (2/4) đị ờ
■ Thông n ng ă (throughput)
● S lố ượng process hoàn t t trong m t ấ ộ đơn v th i gianị ờ
■ Th i gian áp ng ờ đ ứ (response time)
● Th i gian t lúc có yêu c u c a ngờ ừ ầ ủ ười dùng (user request) đến khi
có áp ng đ ứ đầu tiên
● Thường là v n ấ đề ớ v i các I/O-bound process
Trang 13Tiêu chí nh th i (3/4) đị ờ
■ Th i gian quay vòng ờ (turnaround time)
● Th i gian ờ để ộ m t process hoàn t t, k t lúc vào h th ng ấ ể ừ ệ ố
Trang 15Có th làm ể đượ c?
■ T t c các tiêu chí không th ấ ả ể đượ ố ư đồc t i u ng th i vì có m t s tiêu ờ ộ ố
chí liên quan nhau
Trang 16Tiêu chí nh th i t các góc nhìn (1/2) đị ờ ừ
■ Hướng đến ngườ ử ụi s d ng (user-oriented)
● Th i gian quay vòngờ
Th i gian t lúc submission ờ ừ đến lúc process k t thúcế
C n quan tâm v i các h th ng x lý bó (batch system)ầ ớ ệ ố ử
● Th i gian áp ngờ đ ứ
C n quan tâm v i các h th ng giao ti p (interactive system)ầ ớ ệ ố ế
Trang 18Hai thành ph n c a chi n l ầ ủ ế ượ đị c nh th i (1/2) ờ
■ 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 chí như
w = tông th i gian ̉ ờ đợi trong h thôngệ ́
e = th i gian ã ờ đ được phuc vu ̣ ̣
s = tông th i gian th c thi cua process (bao gôm ca tr ̉ ờ ự ̉ ̀ ̉ ị e)
Trang 19Hai thành ph n c a chi n l ầ ủ ế ượ đị c nh th i (2/2) ờ
■ Ch ế độ quy t nh ế đị (decision mode)
Trang 21Non-preemption và preemption (1/2)
■ Hàm l a ch n có th ự ọ ể được th c thi khi có quá trìnhự
(1) chuyên t trang thai running sang waiting ̉ ừ ̣ ́
(2) chuyên t trang thai running sang readỷ ừ ̣ ́
(3) chuyên t trang thai waiting, new sang readỷ ừ ̣ ́
(4) kêt thuc th c thi ́ ́ ự
■ Chi n lế ượ đ ̣c inh th i ờ non-preemptive: ch th c thi hàm l a ch n trong ỉ ự ự ọ
trường h p 1 và 4 (quá trình running n u b ng t s ti p t c running ợ ế ị ắ ẽ ế ụ
sau ó)đ
■ Chi n lế ượ đ ̣c inh th i ờ preemptive: ngoài trường h p 1 và 4 còn th c ợ ự
thi thêm hàm l a ch n trong trự ọ ường h p 2 ho c 3 (ho c c hai)ợ ặ ặ ả
Trang 22Non-preemption và preemption (2/2)
■ Hi n th c ch ệ ự ế độ quy t nh nào khó h n? T i sao?ế đị ơ ạ
■ Preemptive scheduling: hai lo i hi n th cạ ệ ự
Trang 23■ Dispatcher s chuy n quy n i u khi n CPU v cho process ẽ ể ề đ ề ể ề được
ch n b i b nh th i ng n h nọ ở ộ đị ờ ắ ạ
■ Bao g m:ồ
● Chuy n ng c nh (s d ng thông tin ng c nh trong PCB)ể ữ ả ử ụ ữ ả
● Chuy n v user modeể ề
● Nh y ả đến v trí thích h p (chính là program counter trong PCB) ị ợ
trong chương trình ng d ng ứ ụ để quá trình ti p t c th c thiế ụ ự
■ Công vi c này gây ra phí t nệ ổ
● Dispatch latency: th i gian dispatcher c n t lúc d ng m t ờ ầ ừ ừ ộ
process đến lúc m t process khác ti p t c ch yộ ế ụ ạ
Trang 24First Come First Served (FCFS) (1/5)
■ 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ệ ự ằ ộ
Trang 25First Come First Served (2/5)
Process Burst time (ms)
Trang 26First Come First Served (3/5)
■ Th i gian ph c v trung bình =ờ ụ ụ
■ Thông n ng =ă
■ Th i gian quay vòng =ờ
Trang 27First Come First Served (4/5)
Trang 28First Come First Served (5/5)
Nh n xétậ
■ 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.ộ ạ
■ Câu h i: Li u có x y ra trỏ ệ ả ường h p ợ trì hoãn vô h n nh ạ đị (starvation hay indefinite blocking) v i gi i thu t FCFS?ớ ả ậ
■ FCFS thường được s d ng trong các h th ng bó (batch system)ử ụ ệ ố
Trang 30Shortest Job First (SJF) (1/3)
■ Đố ới v i m i process, c n bi t ỗ ầ ế độ dài c a CPU burstủ
■ Hàm l a ch nự ọ : ch n process có ọ độ dài CPU burst nh nh tỏ ấ
Trang 31Shortest Job First (2/3)
Process Th i i m ờ đ ể đến Burst time (ms)
Trang 32Shortest Job First (3/3)
Trang 33D oán th i gian s d ng CPU (1/2) ự đ ờ ử ụ
(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)
Trang 34D oán th i gian s d ng CPU (2/2) ự đ ờ ử ụ
dài CPU burst
Trang 35Shortest Job First
Nh n xétậ
■ 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ệ ố
Trang 36Shortest Remaining Time First (SRTF) (1/4)
■ 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ì preempt ủ đ ự
process ang th c thiđ ự
● Cách làm này còn được g i là ọ Shortest-Remaining-Time-First
(SRTF)
Trang 37Shortest Remaining Time First (2/4)
Trang 38Shortest Remaining Time First (3/4)
■ Th i gian ph c v trung bình =ờ ụ ụ
■ Thông n ng =ă
■ Th i gian quay vòng =ờ
P1 P2 P3 P2 P4 P1
Trang 39Shortest Remaining Time First (4/4)
Nh n xétậ
■ 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
Trang 40Priority Scheduling
■ M i process ỗ được gán m t ộ độ ư u tiên
■ CPU s ẽ được c p cho process có ấ độ ư u tiên cao nh tấ
■ Ch ế độ quy t nh:ế đị
● Preemptive
● Non-preemptive
Trang 41Gán độ ư u tiên
■ SJF: độ ư u tiên là th i-gian-s -d ng-CPU-d - oá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ỉ ệ ờ ờ ử ụ
● Các yêu c u bên ngoài nh : s ti n ngầ ư ố ề ười dùng tr khi th c thi ả ự
công vi cệ
Trang 42Priority Scheduling
■ 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ờ
Trang 43Round Robin (RR) (1/4)
■ Hàm l a ch n: gi ng FCFSự ọ ố
2 1
3 4 5
6 7
8
Trang 47Quantum time và chuy n ng c nh ể ữ ả
■ Quantum time càng nh thì càng có nhi u l n chuy n ng c nh ỏ ề ầ ể ữ ả
(context switch) trong khi th c thi.ự
Số lần ngưng/tiếp tục quá trình
Trang 48Quantum time và th i gian quay vòng ờ
■ Th i gian quay vòng trung bình không ch c s ờ ắ ẽ được c i thi n khi ả ệ
quantum l nớ
Trang 49Quantum time cho Round Robin*
Nh n xétậ
■ 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 process, 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) ơ ố ơ ả
Trang 50Quantum time cho 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 ế ổ ỉ ≈ 1%
Nh ng n u có nhi u ng 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ụ ớ
Trang 51Round 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
ư
Trang 52Round 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.đ ị
Trang 53Multilevel Queue Scheduling (1/3)
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 nh th i riêng Ví d :ả ậ đị ờ ụ
● foreground: dùng RR
● background: dùng FCFS
Trang 54Multilevel Queue Scheduling (2/3)
■ Định th 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 ử ụ ấ đị để đị nh th i cho các process c a mình Ví ờ ủ
d :ụ
80% cho foreground (dùng RR)
20% cho background (dùng FCFS)
Trang 55Multilevel Queue Scheduling (3/3)
Trang 56Multilevel Feedback Queue (1/3)
■ Trong h th ng ệ ố Multilevel Feedback Queue, b nh th 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 qua 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)
Trang 57Multilevel Feedback Queue (2/3)
đượ ộ quantum là 8 ms N u không ế tr CPUả trong 8 ms, công
vi c s ệ ẽ đượ đưc a xu ng ố đuôi hàng đợi Q1
● T i Qạ 1, công vi c s ệ ẽ được cho m t ộ quantum là 16 ms N u ế công
Trang 58Multilevel Feedback Queue (3/3)
■ 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 nh th i nào?ớ ỗ ử ụ ả ậ đị ờ
● Khi nào th ng c p m t process?ă ấ ộ
● Khi nào giáng c p m t process?ấ ộ
Trang 60Chính sách và c ch (2/2) * ơ ế
■ Đố ới v i quá trình
● Chính sách
Khi nào thì nh th i quá trình? đị ờ
Quá trình nào được ch y?ạ
● C chơ ế
Làm th nào ế để chuy n ng c nh? Dispatcherể ữ ả
Làm th nào ế để ả b o v (protect)? Qu n lý b nhệ ả ộ ớ
● Ví dụ
Trang 61 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 ọ
Trang 62Processor 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ổ
Trang 63Câ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 ả ẽ ấ ệ ừ
Trang 64Ph ươ ng pháp ánh giá gi i thu t nh th i CPU * đ ả ậ đị ờ
● 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ụ ụ ệ
Trang 65T ng k t ổ ế
■ S th c thi c a m t processự ự ủ ộ
■ B nh th i ch n m t process t hàng ộ đị ờ ọ ộ ừ đợi ready
● Dispatcher th c hi n switchingự ệ
■ Các tiêu chí nh th i (thđị ờ ường xung đột nhau)
● Độ ợ l i CPU, th i gian ch , th i gian áp ng, thông n ng,…ờ ờ ờ đ ứ ă
■ Các gi i thu t nh th iả ậ đị ờ
● FCFS, SJF, Priority, RR, Multilevel Feedback Queue
■ Định th i trên h th ng multiprocessor (ờ ệ ố đọc thêm)
● Processor affinity và cân b ng t iằ ả
■ Phương pháp ánh giá gi i thu t nh th i CPU (đ ả ậ đị ờ đọc thêm)
Trang 66M t s v n ộ ố ấ đề bàn thêm
■ Cách làm t t nh t là adaptiveố ấ
■ Để ự th c hi n t i u hoàn toàn thì c n ph i tiên oán úng tệ ố ư ầ ả đ đ ương lai (!)
● Th c t thì a s các gi i thu t l i cho k t qu gán ự ế đ ố ả ậ ạ ế ả độ ư u tiên cao
nh t cho các process có nhu c u ít nh tấ ầ ấ
● V n ấ đề đị nh th i có xu hờ ướng chuy n sang “tweak and see” ể
■ Các tiêu chí nào nên t i u?ố ư
● Có r t nhi u, tùy vào h th ng, ng c nh mà ch n l aấ ề ệ ố ữ ả ọ ự