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
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
◼
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 đủ
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:
bai_giang_he_dieu_hanh_nang_cao_chuong_3_quan_ly_tien_trinh.ppt

