Bài giảng Hệ điều hành nâng cao - Chương 3: Quản lý tiến trình - Trần Hạnh Nhi

Baøi 3 : QUAÛN LYÙ TIEÁN TRÌNH  
◼ Phaân chia CPU cho caùc tieán trình ?  
◼
◼
◼
◼
Tieáp caän  
Muïc tieâu ?  
Toå chöùc ?  
Chieán löôïc ?  
◼ Traïng thaùi tieán trình ?  
◼ Löu tröõ thoâng tin tieán trình ?  
◼ Caùc thao taùc treân tieán trình ?  
◼ Baûo veä tieán trình ?  
◼ Trao ñoåi thoâng tin giöõa caùc tieán trình ?  
1
Phaân chia CPU ?  
◼ 1 CPU vaät lyù : laøm theá  
naøo ñeå taïo aûo giaùc  
moãi tieán trình sôû höõu  
CPU rieâng cuûa mình ?  
CPU  
while(1)  
{
◼ Dispatcher  
luaân  
interrupt Pcur  
save state Pcur  
chuyeån CPU giöõa caùc  
tieán trình:  
Scheduler gets Pnext  
load state Pnext  
jump to it  
◼
Ngöõ caûnh xöû lyù rieâng  
bieät cho moãi tieán trình  
(PCB)  
}
◼
Dispatching loop :  
2
Traïng thaùi tieán trình ?  
Nhaän CPU  
running  
ready  
☺ Rs  
☺
CPU  
☺ Rs  
CPU  
Traû CPU  
Chôø R  
blocked  
Nhaän R  
Rs  
CPU  
3
Khoái quaûn lyù tieán trình trong moâ hình  
multiprocesses  
Process control Block  
PCB  
pid  
State  
(State, details)  
Context  
(IP, Mem, Files…)  
Relatives  
( Dad, children)  
Scheduling statistic  
4
PCB vaø TCB trong moâ hình multithreads  
PCB  
pid  
Thread Control Block  
TCB  
Threads list  
Context  
tid  
State  
(Mem, global  
ressources…)  
(State, details)  
Context  
Relatives  
( Dad, children)  
Scheduling statistic  
(IP, local stack…)  
5
Caùc thao taùc treân tieán trình  
◼ Taïo laäp tieán trình :  
◼
Caáp phaùt taøi nguyeân cho tieán trình con ?  
Hoaït ñoäng cuûa cha vaø con ñoäc laäp  
◼
◼ Keát thuùc tieán trình :  
◼
Thu hoài taøi nguyeân ?  
Eùp buoäc keát thuùc ?  
◼
◼ Thay ñoåi traïng thaùi tieán trình :  
Assign(), Block(), Awake(), Resume(),  
Suspend()  
6
Traïng thaùi tieán trình ?  
◼ Coù nhu caàu Suspend &Resume :  
◼
Heä thoáng quaù taûi  
◼
Kieåm soaùt hoaït ñoäng cuûa tieán trình con  
7
An ninh traät töï cho moâi tröôøng ña tieán trình !  
◼ Baûo veä tieán trình :  
◼
Ngaên caûn caùc tieán trình xaâm phaïm taøi nguyeân, can  
thieäp vaøoxöû lyù cuûa nhau => KGÑC rieâng bieät, 2  
mode xöû lyù  
◼
Baûo ñaûm quyeàn tieán trieån xöû lyù cho moãi tieán trình  
=> coâng baèng trong caùc chieán löôïc phaân phoái taøi  
nguyeân.  
◼ Trao ñoåi thoâng tin , phoái hôïp hoaït ñoäng ?  
◼
◼
◼
Nhu caàu ?  
Vaán ñeà ? => Chöông keá tieáp  
Giaûi phaùp ?  
8
Caùc danh saùch tieán trình  
Ready List  
P1  
P2  
P3  
P6  
P5  
P4  
Waiting Lists  
P7  
P10  
R1  
R1  
R1  
9
Ñieàu phoái tieán trình  
◼ Muïc tieâu ?  
◼ Caùc caáp ñoä ñieàu phoái  
◼ Thôøi ñieåm ra quyeát ñònh ñieàu phoái ?  
◼ Ñaùnh giaù chieán löôïc ñieàu phoái ?  
◼ Moät soá chieán löôïc ñieàu phoái  
10  
Ñieàu phoái tieán trình  
SCHEDULER  
choïn moät tieán trình  
nhaän cpu  
DISPATCH  
ER  
chuyeån ñoåi ngöõ  
caûnh  
11  
Chuyeån ñoåi ngöõ caûnh (context switching)  
◼ Kòch baûn :  
◼
Löu ngöõ caûnh tieán trình hieän haønh  
◼
Naïp ngöõ caûnh tieán trình ñöôïc choïn keá tieáp  
◼ Chi tieát cuï theå phuï thuoäc vaøo phaàn cöùng  
◼
general-purpose & floating point registers, co-  
processor state…  
◼ Chi phí chuyeån ñoåi ngöõ caûnh :  
◼
Giöõa caùc tieán trình ?  
Giöõa caùc tieåu trình ?  
◼
12  
Chuyeån ñoåi ngöõ caûnh giöõa caùc tieán trình  
P1  
P2  
User mode  
System call  
Dispatcher  
Kernel mode  
◼ Chuyeån ñoåi mode xöû lyù  
◼ Chuyeån ñoåi IP vaø caùc thanh ghi khaùc cuûa  
CPU  
◼ Chuyeån ñoåi khoâng gian ñòa chæ  
13  
Tieåu trình haït nhaân (Kernel thread)  
T1  
T2  
User mode  
System call  
Dispatcher  
Kernel mode  
◼ Khaùi nieäm tieåu trình ñöôïc xaây döïng beân trong  
haït nhaân  
◼ Distpatcher laøm vieäc vôùi ñôn vò laø tieåu trình  
14  
Tieåu trình ngöôøi duøng (User thread)  
◼ Khaùi nieäm tieåu trình ñöôïc hoã User  
trôï bôûi moät thö vieän hoaït  
ñoäng trong user mode  
mode  
T1 T2  
T3  
◼ Distpatcher cuûa haït nhaân laøm  
vieäc vôùi ñôn vò laø tieán trình  
LWP2  
◼ ThreadDistpatcher laøm vieäc  
LWP1  
vôùi ñôn vò laø tieåu trình  
◼
P -– LWP - T  
◼ Khoâng caàn chuyeån ñoåi cheá ñoä  
xöû lyù khi chuyeån ñoåi caùc tieåu  
trình cuøng thuoäc 1 tieán trình.  
P2  
P1  
Kernel  
Kernel  
mode  
15  
Löïa choïn tieán trình ?  
◼ Taùc vuï cuûa Scheduler  
◼ Muïc tieâu ?  
◼
Söû duïng CPU hieäu quaû  
◼
Ñaûm baûo taát caû caùc tieán trình ñeàu tieán trieån xöû lyù  
◼ Tieâu chuaån löïa choïn ?  
◼
Taát caû caùc tieán trình ñeàu nhö nhau ?  
◼
Ñeà xuaát moät ñoä öu tieân cho moãi tieán trình ?  
◼ Thôøi ñieåm löïa choïn ? (Thôøi ñieåm kích hoaït  
Scheduler())  
16  
Muïc tieâu ñieàu phoái  
◼ Hieäu quûa (Efficiency)  
Thôøi gian  
Ñaùùp öùng (Response time)  
Hoaøn taát(Turnaround Time = Tquit -Tarrive):  
Chôø (Waiting Time = T in Ready ) :  
Thoâng löôïng (Throughput = # jobs/s )  
Hieäu suaát Taøi nguyeân  
Chi phí chuyeån ñoåi  
◼ Coâng baèng ( Fairness) : Taát caû caùc tieán trình  
ñeàu coù cô hoäi nhaän CPU  
17  
Caùc caáp ñoä ñieàu phoái  
◼ Longterm scheduling :  
choïn tieán trình keá tieáp ñöôïc  
khôûi ñoäng (mang vao boä  
nhôù vaø nhaän traïng thaùi  
ready)  
◼ Mediumterm scheduling :  
quyeát ñònh chuyeån tieán trình  
ñang running sang traïng  
thaùi blocked.  
◼ Shorterm scheduling :  
choïn 1 tieán trình ôû traïng  
thaùi ready ñeå chuyeån sang  
traïng thaùi running.  
18  
◼
Khoâng coù söï phaân bieät roõ  
Thôøi ñieåm ra quyeát ñònh ñieàu phoái  
◼ Ñieàu phoái ñoäc quyeàn (non-preemptive  
scheduling): tieán trình ñöôïc choïn ñoäc chieám  
CPU  
◼ Ñieàu phoái khoâng ñoäc quyeàn (preemptive  
scheduling): tieán trình ñöôïc choïn coù theå bò  
« cöôùp » CPU bôûi tieán trình coù ñoä öu tieân cao  
hôn  
19  
Caùc chieán löôïc ñieàu phoái  
▪ FIFO  
▪ RR  
▪ SJF  
▪ MULTILEVELFEEDBACK  
▪ LOTTERY  
20  
Tải về để xem bản đầy đủ
ppt 23 trang Thùy Anh 10740 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành nâng cao - Chương 3: Quản lý tiến trình - Trần Hạnh Nhi", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pptbai_giang_he_dieu_hanh_nang_cao_chuong_3_quan_ly_tien_trinh.ppt