Chapter03-processes

  • Số trang: 50 |
  • Loại file: PDF |
  • Lượt xem: 63 |
  • Lượt tải: 0
tranphuong

Đã đăng 58976 tài liệu

Mô tả:

Chương 3: Tiến Trình PROCESS ThS: Hà Lê Hoài Trung Ôn tập chương 2      Hệ Điều hành có mấy thành phần Phân biệt giữa sytem call & library Cấu trúc hệ thống. Máy ảo – nhiệm vụ của máy ảo Tiến trình là gì? Nhiệm vụ chính của thành phần quản lý tiến trình? Các Tiến trình cùng chạy 1 chương trình? Khoa KTMT 2 Mục tiêu       Hiểu được quá trình là gì? Các trạng thái của quá trình Cấu trúc dữ liệu của Quá trình Cách tạo ra 1 quá trình. Mối quan hệ cha con giữa các quá trình Cách giao tiếp giữa các tiến trình Tiểu trình (Thread) Khoa KTMT 3 Nội Dung        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 4 3.1. Khaùi nieäm cô baûn m  Hoaït ñoäng cuûa CPU gọi là gì? – 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) – program counter (PC), process status word (PSW), stack pointer (SP), memory management registers,… Khoa KTMT 5 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 6 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 Executable binary file (load module) Process image in main memory program code program code data data start address stack Khoa KTMT 7 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 8 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 9 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 new admit dispatch ready exit terminated running interrupt I/O or event wait I/O or event completion waiting Khoa KTMT 10 3.2.Traïng thaùi quaù trình Ví duï /* test.c */ int main(int argc, char** argv) { printf(“Hello world\n"); exit(0); } Bieân dòch chöông trình trong Linux gcc test.c –o test Thöïc thi chöông trình test ./test Trong heä thoáng seõ coù moät quaù trình test ñöôïc taïo ra, thöïc thi vaø keát thuùc. Khoa KTMT  Chuoãi traïng thaùi cuûa quaù trình test nhö sau (tröôøng hôïp toát nhaát): – – – – new ready running waiting (do chôø I/O khi goïi printf) – ready – running – terminated 11 Ví dụ Cho đoạn chương trình như sau: /* test.c */ int main(int argc, char** argv) { int a = 2 + 3; exit(0); }  Biên dịch chương trình trong Linux gcc test.c –o test Thực thi chương trình Khoa KTMT /test  Chuỗi trạng thái của quá trình test 12 Ví dụ Cho đoạn chương trình như sau: /* test.c */ int main(int argc, char** argv) { int a = 2 + 3; printf(“Hello”); printf(“Hi”); exit(0); }  Biên dịch chương trình trong Linux gcc test.c –o test Thực thi chương trình Khoa KTMT /test  Chuỗi trạng thái của quá trình test là? 13 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 14 Process Representation in Linux  Represented by the C structure task_struct pid t pid; /* process identifier */ long state; /* state of the process */ unsigned int time slice /* scheduling information */ struct task struct *parent; /* this process’s parent */ struct list head children; /* this process’s children */ struct files struct *files; /* list of open files */ struct mm struct *mm; /* address space of this pro */ Khoa KTMT 15 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 16 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 17 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 19 11 2 17 waiting Coù gì sai trong ví duï? Khoa KTMT 18 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 19 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 20
- Xem thêm -