Bài giảng Hệ điều hành - Quản lí tiến trình
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành - Quản lí tiến trình", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_he_dieu_hanh_quan_li_tien_trinh.pdf
Nội dung text: Bài giảng Hệ điều hành - Quản lí tiến trình
- HỆ ĐIỀU HÀHH Quản lý tiến trình
- Quaûn lyù quaù trình Khaùi nieäm cô baûn Ñònh thôøi CPU Caùc taùc vuï cô baûn: taïo/keát thuùc quaù trình Söï coäng tac taùcgiö giöaõaca cacùc qua ù trình Giao tieáp giöõa caùc quaù trình -9.2-
- Khaùi nieäm cô baûn Heä thoáng maùy tính thöïc thi nhieàu chöông trình khaùc nhau – Batch system: jobs – Time-shared systems: user programs, tasks –Job process Quaù trình (process) –moät chöông trình ñang thöïc thi Moät quaù trình bao gogomàm – Text section (program code), data section (chöùa global variables) – Hoaït ñoäng hieän thôøi: program counter (PC), process status word (PSW), stack pointer (SP), memory management registers -9.3-
- Khaùi nieäm cô baûn -9.4-
- 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 , ) -9.5-
- Caùc traïng thaùi cuûa 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û tataiøi nguyenguyenânchæco, chæ conønca canànCPU 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. -9.6-
- Caùc traïng thaùi cuûa quaù trình Caùc traïng thaùi cuûa quaù trình (process states): terminated new admit dispatch exit ready running interrupt I/O or event I/O or completion event wait waiting -9.7-
- Process control block 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 qqguan troïng nhaát cuûa heä ñieàu haønh -9.8-
- Không gian địa chỉ Văn bản stack – Đoạn mã chương trình procedure Dữ liệu symbol – Dữ liệu được cấp phát tĩnh table function Vùng nhớ heap sqrt – Dữ liệu được cấp phát động main program Ngăn xếp – Hỗ trợ lời gọi hàm Logical address space -9.9-
- Process control block PCB kernel user CPU state memory text files data accounting PC priority heap SP user general CPU registers purpose storage stack registers -9.10-
- Chuyeån ngöõ caûnh (context switch) Ngöõ caûnh (context) cuûa moät quaù trình laø traïng thaùi cuûa quaù trình Ngöõ caûnh cuûa quaù trình ñöôïc bieåu dieãn trong PCB cuûa noù Chuyeån ngöõ caûnh (context switch) laø coâng vieäc giao CPU cho quaù trình khaùc. Khi ñoù caàn: – löu ngöõ caûnh cuûa quaù trình cuõ vaøo PCB cuûa noù – naïp ngöõ caûnh töø PCB cuûa quaù trình môùi ñeå quaù trình môùi thöïc thi -9.11-
- Chuyeån ngöõ caûnh (context switch) -9.12-
- Yeâu caàu ñoái vôùi heä ñieàu haø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 ppgyägïpyhoái taøi nguyeân heä thoáng hôïp lyù – traùnh deadlock, trì hoaõn voâ haïn ñònh, Cung cap caápcôche cô cheá giao tiep tieápva vaø ñoñongàng boä hoa hoatït ñoäng cacacùc quaù trình Cung cap caápcôche cô cheá hoã trôï user tao/ketaïo/ketátthu thucùc quaù trình -9.13-
- 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 15 -9.14-
- Ñònh thôøi quaù trình Taïi sao phaûi ñònh thôøi? – Multiprogramming . Coù nhienhieuàu qua ù trình phaphaiûi thöcthöïc thi lualuanân phien phieân nhau . Muïc tieâu: cöïc ñaïi hieäu suaát söû duïng cuûa CPU –Time-sharing . Cho pheùp users töông taùc khi quaù trình ñang thöïc thi . Muïc tieâu: toái thieåu thôøi gian ñaùp öùng Moät soá khakhaiùinieämcôba nieäm cô banûn –Caùc boä ñònh thôøi (scheduler) –Caùc haøng ñôïi ñònh thôøi (scheduling queue) -9.15-
- Ñònh thôøi quaù trình Taïi sao phaûi ñònh thôøi? – Multiprogramming . Coù nhienhieuàu qua ù trình phaphaiûi thöcthöïc thi lualuanân phien phieân nhau . Muïc tieâu: cöïc ñaïi hieäu suaát söû duïng cuûa CPU –Time-sharing . Cho pheùp users töông taùc khi quaù trình ñang thöïc thi . Muïc tieâu: toái thieåu thôøi gian ñaùp öùng Moät soá khakhaiùinieämcôba nieäm cô banûn –Caùc boä ñònh thôøi (scheduler) –Caùc haøng ñôïi ñònh thôøi (scheduling queue) -9.16-
- 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 quaù trình môùi thoâng qua moät system call (vd: 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ñöôïc taotaïo laø quaù trình con cucuaûa qua ù trình taotaïo, quaù trình cha. Quan heä cha-con ñònh nghóa moät caây quaù trình. -9.17-
- Caây quaù trình trong Linux/Unix Ví duï root pagedaemon swapper init bash bash bash gcc ls mkdir grep -9.18-
- Caùc taùc vuï ñoái vôùi quaù trình Taïo quaù trình môùi – Chia seû taøi nguyeân cuûa quaù trình cha . Quaù trình cha vaø conchiasecon chia seû moimoïi tai taøi nguyenguyenâ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. -9.19-
- Caùc taùc vuï ñoái vôùi quaù trình Taïo quaù trình môùi Keát thuùc quaù trình – Quaù trình töï keát thuùc . Quaù trình keát thuùc khi thöïc thi leänh cuoái vaø goïi system routine exit – Quaù trình keát thuùc do quaù trình khaùc (coù ñuû quyeàn, vd: quaù trình cha cuûa noù) . Goïi system routine abort vôùi tham soá laø pid (process identifier) cuûa quaù trình caàn ñöôïc keát thuùc – Heä ñi eà u h aø nh th u h oài t aát caû caù c t aøi nguyeâ n cuû a quaù t rì nh k eát thuùc (vuøng nhôù, I/O buffer, ) -9.20-
- Coäng taùc giöõa caùc quaù trình Trong quaù trình thöïc thi, caùc quaù trình coù theå coäng taùc (cooperate) ñeå hoaøn thaønh coâng vieäc Caùc quaù trình coäng taùc ñeå – Chia seû döõ lieäu (information sharing) – TêTaêng to ác t íhính toa ùn (computat iona l spee dup ) . Neáu heä thoáng coù nhieàu CPU, chia coâng vieäc tính toaùn thaønh nhieàu coâng vieäc tính toaùn nhoû chaïy song song – Thöïc hie än mo ät congâ viäieäc ch ung . Xaây döïng moät phaàn meàm phöùc taïp baèng caùch chia thaønh caùc module/process hôïp taùc nhau Söï coäng taùc giöõa caùc quaù trình yeâu caàu heä ñieàu haønh hoã trôï cô cheá giao tieáp vaø cô cheá ñoàng boä hoaït ñoäng cuûùûa caùc qua ùtìhù trình -9.21-
- Interprocess communication (IPC) IPC laø cô cheá cung caáp bôûi heä ñieàu haønh nhaèm giuùp caùc quaù trình – giao tiep tieápvô vôiùi nhau – vaø ñoàng boä hoaït ñoäng maø khoâng caàn chia seû khoâng gian ñòa chæ IPC coù theå ñöôïc cung caáp bôûi message passing system -9.22-
- Message passing system Laøm theá naøo ñeå caùc quaù trình giao tieáp nhau? – Naming . Giao tietiepáptröctie tröïc tiepáp – send(P, msg): göûi thoâng ñieäp ñeán quaù trình P – receive(Q, msg): nhaän thoâng ñieäp ñeán töø quaù trình Q . Giao tie áp g ia ùn tie áp: tho âng qua mailbox hay port – send(A, msg): göûi thoâng ñieäp ñeán mailbox A – receive(Q, msg): nhaän thoâng ñieäp töø mailbox B – Synchronization: blocking send, nonblocking send, blocking receive, nonblocking receive – Buffering: duøng queue ñeå taïm chöùa message . Zero capacity (no buffering) . Bounded capacity: ñoä daøi cuûa queue laø giôùi haïn . Unbounded capacity: ñoä dai daøicu cuaûa queue laø khokhongâng giôgiôiùihan haïn -9.23-