Bài giảng Hệ điều hành: Chương 3 - ThS. Hà Lê Hoài Thương
lượt xem 21
download
Mục tiêu chương 3 Tiến trình (Process) thuộc bài giảng hệ điều hành nhằm trình bày về các kiến thức: khái niệm cơ bản tiến trình, trạng thái quá trình, khối điều khiển quá trình (Process control block), định thời quá trình (Process Scheduling), các tác vụ đối với quá trình, sự cộng tác giữa các quá trình.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Hệ điều hành: Chương 3 - ThS. Hà Lê Hoài Thương
- Chöông III: 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) – program counter (PC), process status word (PSW), stack pointer (SP), 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 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 new admit dispatch exit ready running interrupt I/O or event I/O or completion event wait waiting Khoa KTMT 7
- 3.2.Traïng thaùi quaù trình Ví duï Chuoãi traïng thaùi cuûa quaù /* test.c */ trình test nhö sau (tröôøng int main(int argc, char** argv) { hôïp toát nhaát): printf(“Hello world\n"); – new exit(0); } – ready – running Bieân dòch chöông trình trong Linux gcc test.c –o test – waiting (do chôø I/O khi goïi printf) Thöïc thi chöông trình test – ready ./test – running Trong heä thoáng seõ coù moät quaù trình – terminated 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(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
- 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
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Hệ điều hành: Chương 1 - ThS. Hà Lê Hoài Thương
39 p | 182 | 33
-
Bài giảng Hệ điều hành - Chương 1: Giới thiệu hệ điều hành
32 p | 167 | 16
-
Bài giảng Hệ điều hành: Chương 9 - ĐH Bách khoa TP HCM
56 p | 116 | 13
-
Bài giảng Hệ điều hành: Chương 2 - Trần Công Án (ĐH Cần Thơ)
39 p | 136 | 11
-
Bài giảng Hệ điều hành - Chương 5: Quản lý vào ra
30 p | 165 | 10
-
Bài giảng Hệ điều hành: Chương 1 - Phan Xuân Huy
25 p | 143 | 9
-
Bài giảng Hệ điều hành: Chương 1C - Cấu trúc hệ điều hành
22 p | 133 | 9
-
Bài giảng Hệ điều hành: Chương 2 - Hà Duy An (ĐH Cần Thơ)
45 p | 106 | 9
-
Bài giảng Hệ điều hành: Chương 1 - Nguyễn Phan Trung
43 p | 122 | 9
-
Bài giảng Hệ điều hành: Chương 2 - ThS. Hà Lê Hoài Trung
20 p | 123 | 9
-
Bài giảng Hệ điều hành: Chương 2 - ThS. Phan Đình Duy
36 p | 79 | 7
-
Bài giảng Hệ điều hành: Chương 1 - TS. Ngô Hữu Dũng
60 p | 122 | 7
-
Bài giảng Hệ điều hành: Chương 1 - Đặng Minh Quân
23 p | 75 | 6
-
Bài giảng Hệ điều hành: Chương 1 - ThS. Huỳnh Triệu Vỹ
156 p | 78 | 5
-
Bài giảng Hệ điều hành - Chương 1: Tổng quan hệ điều hành (Lương Minh Huấn)
109 p | 46 | 5
-
Bài giảng Hệ điều hành: Chương 1 - ĐH Bách khoa TP Hồ Chí Minh
26 p | 118 | 5
-
Bài giảng Hệ điều hành: Chương 2 - ĐH Công nghệ thông tin
36 p | 67 | 3
-
Bài giảng Hệ điều hành - Chương 1: Mở đầu
13 p | 86 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn