Hệ điều hành - Quản lý tiến trình

pdf 23 trang vanle 2490
Bạn đang xem 20 trang mẫu của tài liệu "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:

  • pdfhe_dieu_hanh_quan_ly_tien_trinh.pdf

Nội dung text: Hệ điều hành - Quản lý tiến trình

  1. HỆ ĐIỀU HÀHH Quản lý tiến trình
  2. 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-
  3. 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-
  4. Khaùi nieäm cô baûn -9.4-
  5. 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-
  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): – 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-
  7. 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-
  8. 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-
  9. 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-
  10. 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-
  11. 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-
  12. Chuyeån ngöõ caûnh (context switch) -9.12-
  13. 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-
  14. 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-
  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.15-
  16. Ñò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-
  17. 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-
  18. Caây quaù trình trong Linux/Unix  Ví duï root pagedaemon swapper init bash bash bash gcc ls mkdir grep -9.18-
  19. 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-
  20. 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-
  21. 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-
  22. 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-
  23. 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-