YOMEDIA
Hệ điều hành 1 - Chương III: Qúa trình (hay tiến trình) (process)
Chia sẻ: Lê Trinh Vàng
| Ngày:
| Loại File: PPT
| Số trang:27
79
lượt xem
5
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Hệ thống bó (Batch system): jobs
Time-shared systems: user programs, tasks
Các hoạt động là tương tự = gọi là process
Quá trình (process)
một chương trình đang thực thi
Một quá trình bao gồm
Text section (program code), data section (chứa global variables – thong tin du lieu di kem)
program counter (PC- lưu lại vị trí dòng lệnh đang được thực thi), process status word (PSW- có nhiều trạng thái như ready, running..), stack pointer (SP)con trỏ tới vị trí típ theo, memory management registers,…...
AMBIENT/
Chủ đề:
Nội dung Text: Hệ điều hành 1 - Chương III: Qúa trình (hay tiến trình) (process)
- Chöông III: Quaù trình (hay tieán trình) (Process)
Khaùi nieäm cô baûn
Traïng thaùi quaù trình
Khoái ñieàu khieån quaù trình (Process control
block)
Ñònh thôøi quaù trình (Process Scheduling)
Caùc taùc vuï ñoái vôùi quaù trình
Söï coäng taùc giöõa caùc quaù trình
Giao tieáp giöõa caùc quaù trình
Khoa KTMT 1
- 3.1. Khaùi nieäm cô baûn
Caùi gì goïi caùc hoaït ñoäng cuûa CPU?
– Heä thoáng boù (Batch system): jobs
– Time-shared systems: user programs, tasks
– Caùc hoaït ñoäng laø töông töï => goïi laø process
Quaù trình (process)
– moät chöông trình ñang thöïc thi
Moät quaù trình bao goàm
– Text section (program code), data section (chöùa global variables
– thong tin du lieu di kem)
– program counter (PC- löu laïi vò trí doøng leänh ñang ñöôïc thöïc thi),
process status word (PSW- coù nhieàu traïng thaùi nhö ready, running..),
stack pointer (SP)con troû tôùi vò trí típ theo, memory management
registers,…
Khoa KTMT 2
- 3.1. Khaùi nieäm cô baûn
Caùc böôùc naïp chöông trình vaøo boä nhôù
Khoa KTMT 3
- 3.1. Khaùi nieäm cô baûn
chöông trình =>quaù trình
Duøng load module ñeå bieåu dieãn chöông trình thöïc thi ñöôïc
Layout luaän lyù cuûa process image
Stack laø vuøng löu tröõ döõ lieäu taïm
Executable binary file Process image in
(load module) main memory
start address
program program
code code
data data
stack
Khoa KTMT 4
- 3.1. Khaùi nieäm cô baûn
Khôûi taïo quaù trình
Caùc böôùc heä ñieàu haønh khôûi taïo quaù trình
– Caáp phaùt moät ñònh danh duy nhaát (process number hay
process identifier, pid) cho quaù trình
– Caáp phaùt khoâng gian nhôù ñeå naïp quaù trình
– Khôûi taïo khoái döõ lieäu Process Control Block (PCB) cho quaù
trình
PCB laø nôi heä ñieàu haønh löu caùc thoâng tin veà
quaù trình
– Thieát laäp caùc moái lieân heä caàn thieát (vd: saép PCB
vaøo haøng ñôïi ñònh thôøi,…)
Khoa KTMT 5
- 3.2.Traïng thaùi quaù trình
Caùc traïng thaùi cuûa quaù trình (process states):
– new: quaù trình vöøa ñöôïc taïo
– ready: quaù trình ñaõ coù ñuû taøi nguyeân, chæ coøn caàn
CPU
– running: caùc leänh cuûa quaù trình ñang ñöôïc thöïc thi
– waiting: hay laø blocked, quaù trình ñôïi I/O hoaøn taát, tín
hieäu.
– terminated: quaù trình ñaõ keát thuùc.
Khoa KTMT 6
- 3.2.Traïng thaùi quaù trình
Chuyeån ñoåi giöõa caùc traïng thaùi cuûa quaù trình
terminated
terminated
new
new admit dispatch exit
ready
ready running
running
interrupt
I/O or event I/O or
completion event wait
waiting
waiting
Khoa KTMT 7
- 3.2.Traïng thaùi quaù trình
Ví duï Chuoãi traïng thaùi cuûa
/* test.c */ quaù trình test nhö sau
int main(int argc, char** argv)
{ (tröôøng hôïp toát
printf(“Hello world\n"); nhaát):
exit(0);
} – new
– ready
Bieân dòch chöông trình trong
Linux – running
gcc test.c –o test – waiting (do chôø I/O khi
goïi printf)
Thöïc thi chöông trình test
./test – ready
– running
Trong heä thoáng seõ coù moät – terminated
quaù trình test ñöôïc taïo ra, thöïc
thi vaø keát thuùc.
Khoa KTMT 8
- 3.3.Process control block
Ñaõ thaáy laø moãi quaù trình trong heä thoáng ñeàu ñöôïc
caáp phaùt moät Process Control Block (PCB)
PCB laø moät trong caùc caáu truùc döõ lieäu quan
troïng nhaát cuûa heä ñieàu haønh vaø goàm:
- Traïng thaùi quaù trình: new, ready,
running,…
- Boä ñeám chöông trình
- Caùc thanh ghi
- Thoâng tin laäp thôøi bieåu CPU: ñoä öu
tieân, …
- Thoâng tin quaûn lyù boä nhôù
- Thoâng tin taøi khoaûn: löôïng CPU, thôøi
gian söû duïng,
- Thoâng tin traïng thaùi I/O
Khoa KTMT 9
- 3.3.Process control block
Löu ñoà
chuyeån
CPU töø
quaù trình
naøy ñeán
quaù trình
khaùc
Khoa KTMT 10
- Yeâu caàu ñoái vôùi heä ñieàu haønh veà quaûn lyù quaù trình
Hoã trôï söï thöïc thi luaân phieân giöõa nhieàu quaù
trình
– Hieäu suaát söû duïng CPU
– Thôøi gian ñaùp öùng
Phaân phoái taøi nguyeân heä thoáng hôïp lyù
– traùnh deadlock, trì hoaõn voâ haïn ñònh,…
Cung caáp cô cheá giao tieáp vaø ñoàng boä hoaït
ñoäng caùc quaù trình
Cung caáp cô cheá hoã trôï user taïo/keát thuùc quaù
trình
Khoa KTMT 11
- Quaûn lyù caùc quaù trình: caùc haøng ñôïi
Ví duï
caùc PCB
running 7 process number
ready
11 4 2 17
waiting
19 11
Coù gì sai trong ví duï?
Khoa KTMT 12
- 3.4. Ñònh thôøi quaù trình (Process Scheduling)
Taïi sao phaûi ñònh thôøi?
– Ña chöông (Multiprogramming)
Coù vaøi quaù trình chaïy taïi caùc thôøi ñieåm
Muïc tieâu: taän duïng toái ña CPU
– Chia thôøi(Time-sharing)
Users töông taùc vôùi moãi chöông trình ñang thöïc thi
Muïc tieâu: toái thieåu thôøi gian ñaùp öùng
Moät soá khaùi nieäm cô baûn
– Caùc boä ñònh thôøi (scheduler)
– Caùc haøng ñôïi ñònh thôøi (scheduling queue)
Khoa KTMT 13
- Caùc haøng ñôïi ñònh thôøi (Scheduling
queues)
Haøng ñôïi
coâng vieäc-
Job queue
Haøng ñôïi
saün saøng-
Ready queue
Haøng ñôïi
thieát bò-
Device queues
…
Khoa KTMT 14
- Caùc haøng ñôïi ñònh thôøi (Scheduling
queues)
Löu ñoà haøng ñôïi cuûa ñònh thôøi quaù trình
Khoa KTMT 15
- 3.5. Boä ñònh thôøi (Scheduler)
Boä ñònh thôøi coâng vieäc (Job scheduler) hay boä
ñònh thôøi daøi (long-term scheduler)
Boä ñònh thôøi CPU hay boä ñònh thôøi ngaén
Caùc quaù trình coù theå moâ taû nhö:
– Quaù trình höôùng I/O (I/O bound process)
– Quaù trình höôùng CPU (CPU bound process)
Thôøi gian thöïc hieän khaùc nhau => keát hôïp haøi hoøa
giöõa chuùng
Khoa KTMT 16
- Boä ñònh thôøi trung gian(mediumterm scheduling)
Ñoâi khi heä ñieàu haønh (nhö time-sharing system)
coù theâm medium-term scheduling ñeå ñieàu chænh
möùc ñoä ña chöông cuûa heä thoáng
Medium-term scheduler
– chuyeån quaù trình töø boä nhôù sang ñóa (swap out)
– chuyeån quaù trình töø ñóa vaøo boä nhôù (swap in)
Khoa KTMT 17
- 3.6. Caùc taùc vuï ñoái vôùi quaù trình
Taïo quaù trình môùi (process creation)
– Moät quaù trình coù theå taïo nhieàu quaù trình môùi
thoâng qua moät lôøi goïi heä thoáng create-process (vd: haøm
fork trong Unix)
Ví duï: (Unix) Khi user ñaêng nhaäp heä thoáng, moät
command interpreter (shell) seõ ñöôïc taïo ra cho user
Quaù trình ñöôïc taïo laø quaù trình con cuûa quaù trình taïo
(quaù trình cha). Quan heä cha-con ñònh nghóa moät caây
quaù trình.
Khoa KTMT 18
- Caây quaù trình trong Linux/Unix
Ví duï
Khoa KTMT 19
- 3.6.Caùc taùc vuï ñoái vôùi quaù trình
Taïo quaù trình môùi
– Quaù trình con nhaän taøi nguyeân: töø HÑH hoaëc töø P
cha
– Chia seû taøi nguyeân cuûa quaù trình cha
Quaù trình cha vaø con chia seû moïi taøi nguyeân
Quaù trình con chia seû moät phaàn taøi nguyeân cuûa
cha
– Trình töï thöïc thi
Quaù trình cha vaø con thöïc thi ñoàng thôøi
(concurrently)
Quaù trình cha ñôïi ñeán khi caùc quaù trình con keát
thuùc.
Khoa KTMT 20
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
ERROR:connection to 10.20.1.100:9315 failed (errno=111, msg=Connection refused)
ERROR:connection to 10.20.1.100:9315 failed (errno=111, msg=Connection refused)
Đang xử lý...