intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

68
lượt xem
4
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,…...

Chủ đề:
Lưu

Nội dung Text: Hệ điều hành 1 - Chương III: Qúa trình (hay tiến trình) (process)

  1. 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
  2. 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. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. Boä ñònh thôøi trung gian(medium­term 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
  18. 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
  19. Caây quaù trình trong Linux/Unix  Ví duï Khoa KTMT 19
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2