
Bài giảng Hệ điều hành: Chương 2A - Quản lý quá trình
lượt xem 5
download

Bài giảng Hệ điều hành: Chương 2A - Quản lý quá trình trình bày về khái niệm cơ bản; định thời CPU; các tác vụ cơ bản như tạo/kết thúc quá trình; sự cộng tác giữa các quá trình; giao tiếp giữa các quá trình. Mời các bạn tham khảo bài giảng để bổ sung thêm kiến thức về lĩnh vực này.
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 2A - Quản lý quá trình
- 2.A Quản lý quá trình Khái niệm cơ bản Định thời CPU Các tác vụ cơ bản: tạo/kết thúc quá trình Sự cộng tác giữa các quá trình Giao tiếp giữa các quá trình 1
- Khái niệm cơ bản Hệ thống máy tính thực thi nhiều chương trình khác nhau ● Batch system: job ● Timeshared system: user program, task ● Job process Quá trình (process) ● một chương trình đang thực thi Một quá trình bao gồm ● Text (program code), data (chứa các global variable), heap, stack ● Hoạt động hiện thời: program counter (PC), các register ● Các file đang dùng 2
- Các bước nạp chương trình vào bộ nhớ 3
- Từ chương trình đến quá trình Chương trình thực thi có định dạng load module mà trình nạp (loader) “hiểu” được ● Vd định dạng elf trong Linux Layout luận lý của process image Executable binary file Process image (load module) trong main memory start address program program code code data data stack 4
- Khởi tạo quá trình Các bước hệ điều hành khởi tạo quá trình ● Cấp phát một định danh duy nhất (process number hay process identifier, pid) cho quá trình ● Cấp phát không gian nhớ để nạp quá trình ● Khởi tạo khối dữ liệu Process Control Block (PCB) cho quá trình PCB là nơi hệ điều hành lưu các thông tin về quá trình ● Thiết lập các mối liên hệ cần thiết (vd: sắp PCB vào hàng đợi định thời, …) 5
- Các trạng thái của quá trình (1/2) Các trạng thái của quá trình: ● new: quá trình vừa được tạo ● ready: quá trình đã có đủ tài nguyên, chỉ còn cần CPU ● running: các lệnh của quá trình đang được thực thi ● waiting: hay là blocked, quá trình đợi I/O hoàn tất, hay đợi tín hiệu ● terminated: quá trình đã kết thúc 6
- Các trạng thái của quá trình (2/2) Chuyển đổi giữa các trạng thái của quá trình terminated terminated new new admit dispatch exit ready ready running running interrupt I/O or event I/O or event completion wait waiting waiting 7
- Ví dụ về trạng thái quá trình Chuỗi trạng thái của quá /* test.c */ trình test như sau (trường int main(int argc, char** argv) hợp tốt nhất): { printf(“Hello world\n"); ● new exit(0); } ● ready ● running Biên dịch chương trình trong Linux gcc test.c –o test ● waiting (do chờ I/O khi gọi printf) Thực thi chương trình test ● ready ./test ● running Trong hệ thống sẽ có một quá trình test ● terminated được tạo ra, thực thi và kết thúc. 8
- Process Control Block Đã thấy là mỗi quá trình trong hệ thống đều được cấp phát một Process Control Block (PCB) PCB là một trong các cấu trúc dữ liệu quan trọng nhất của hệ điều hành Ví dụ layout của một PCB: (trường pointer dùng để liên kết các PCB thành một linked list) 9
- Các trường tiêu biểu của PCB From Tanenbaum 10
- Chuyển ngữ cảnh (context switch) (1/2) Làm thế nào để chia sẻ CPU giữa các quá trình? Ngữ cảnh (context) của một quá trình là “trạng thái” của quá trình ● Trị của các thanh ghi, trị của program counter,… Ngữ cảnh của quá trình có thể được lưu trong PCB của nó Chuyển ngữ cảnh là công việc giao CPU cho quá trình khác. Khi đó cần: ● lưu ngữ cảnh của quá trình vào PCB của nó ● nạp ngữ cảnh từ PCB của quá trình mới để quá trình mới thực thi 11
- Chuyển ngữ cảnh (2/2) 12
- Yêu cầu đối với hệ điều hành về quản lý quá trình Hỗ trợ sự thực thi luân phiên giữa nhiều quá trình ● Hiệu suất sử dụng CPU ● Thời gian đáp ứng Phân phối tài nguyên hệ thống hợp lý ● tránh deadlock, trì hoãn vô hạn định,… Cung cấp cơ chế giao tiếp và đồng bộ hoạt động các quá trình Cung cấp cơ chế hỗ trợ user tạo/kết thúc quá trình 13
- Quản lý quá trình: các hàng đợi Ví dụ các PCB running 7 process number ready 11 4 2 17 waiting 19 11 Có gì sai trong ví dụ? 14
- Định thời quá trình Tại sao phải định thời? ● Multiprogramming Có nhiều quá trình thực thi luân phiên nhau Mục tiêu: cực đại hiệu suất sử dụng của CPU ● Timesharing Cho phép user tương tác với quá trình đang thực thi Mục tiêu: tối thiểu thời gian đáp ứng Một số khái niệm cơ bản ● Các bộ định thời (scheduler) ● Các hàng đợi định thời (scheduling queue) 15
- Các hàng đợi định thời Job queue Ready queue Các device queue … 16
- Thêm mediumterm scheduling Đôi khi hệ điều hành (như timesharing system) có thêm mediumterm scheduling để điều chỉnh mức độ multiprogramming của hệ thống Mediumterm scheduler ● chuyển quá trình từ bộ nhớ sang đĩa (swap out) ● chuyển quá trình từ đĩa vào bộ nhớ (swap in) memory memory 17
- Các tác vụ đối với quá trình (1/4) Tạo quá trình mới ● Một quá trình có thể tạo quá trình mới thông qua một system call (vd: hàm fork trong Unix) Ví dụ: (Unix) Khi user đăng nhập hệ thống, một command interpreter (shell) sẽ được tạo ra cho user Quá trình được tạo là quá trình con của quá trình tạo (quá trình cha). Quan hệ chacon định nghĩa một cây quá trình. 18
- Cây quá trình trong Linux/Unix Ví dụ root root pagedaemon pagedaemon swapper swapper init init bash bash bash bash bash bash gcc gcc lsls mkdir mkdir grep grep 19
- Các tác vụ đối với quá trình (2/4) Tạo quá trình mới (tt) ● Chia sẻ tài nguyên của quá trình cha: hai khả năng Quá trình cha và con chia sẻ mọi tài nguyên Quá trình con chia sẻ một phần tài nguyên của cha ● Trình tự thực thi: hai khả năng Quá trình cha và con thực thi đồng thời (concurrently) Hệ điều hành chỉ cho quá trình cha chạy khi quá trình con kết thúc. 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 |
184 |
33
-
Bài giảng Hệ điều hành - Chương 1: Giới thiệu hệ điều hành
32 p |
176 |
16
-
Bài giảng Hệ điều hành: Chương 9 - ĐH Bách khoa TP HCM
56 p |
118 |
13
-
Bài giảng Hệ điều hành - Chương 5: Quản lý vào ra
30 p |
185 |
11
-
Bài giảng Hệ điều hành: Chương 1 - Nguyễn Phan Trung
43 p |
126 |
9
-
Bài giảng Hệ điều hành: Chương 1C - Cấu trúc hệ điều hành
22 p |
136 |
9
-
Bài giảng Hệ điều hành: Chương 1 - Đỗ Quốc Huy
107 p |
71 |
9
-
Bài giảng Hệ điều hành: Chương 1 - Phan Xuân Huy
25 p |
144 |
9
-
Bài giảng Hệ điều hành: Chương 2 - ThS. Hà Lê Hoài Trung
20 p |
126 |
9
-
Bài giảng Hệ điều hành: Chương 2 - ThS. Phan Đình Duy
36 p |
83 |
7
-
Bài giảng Hệ điều hành: Chương 1 - TS. Ngô Hữu Dũng
60 p |
126 |
7
-
Bài giảng Hệ điều hành: Chương 1 - Đặng Minh Quân
23 p |
78 |
6
-
Bài giảng Hệ điều hành: Chương 1 - ThS. Huỳnh Triệu Vỹ
156 p |
80 |
5
-
Bài giảng Hệ điều hành: Chương 1 - ĐH Bách khoa TP Hồ Chí Minh
26 p |
121 |
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 |
48 |
5
-
Bài giảng Hệ điều hành: Chương 2.1 - TS. Ngô Hữu Dũng
23 p |
62 |
3
-
Bài giảng Hệ điều hành: Chương 2 - ĐH Công nghệ thông tin
36 p |
72 |
3
-
Bài giảng Hệ điều hành - Chương 1: Mở đầu
13 p |
92 |
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
