Bài giảng Kỹ thuật Máy tính - Chương 4: Quản lý quá trình - Nguyễn Thanh Sơn
Khái niệm cơ bản
Định thời CPU
Các tác vụ cơ bản
Sự cộng tác giữa các quá trình
Giao tiếp giữa các quá trình
Định thời CPU
Các tác vụ cơ bản
Sự cộng tác giữa các quá trình
Giao tiếp giữa các quá trình
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ thuật Máy tính - Chương 4: Quản lý quá trình - Nguyễn Thanh Sơn", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
- bai_giang_ky_thuat_may_tinh_chuong_4_quan_ly_qua_trinh_nguye.pdf
Nội dung text: Bài giảng Kỹ thuật Máy tính - Chương 4: Quản lý quá trình - Nguyễn Thanh Sơn
- 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: jobs Time-shared systems: user programs, tasks Job process Quá trình (process) một chương trình đang thực thi, bao gồm: Text section (program code), data section (chứa global variables) Hoạt động hiện thời: program counter (PC), process status word (PSW), stack pointer (SP), BK memory management registers TP.HCM Khoa Khoa học & Kỹ thuật Máy tính
- Chương trình 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 ● Ví dụ: định dạng elf trong Linux Layout luận lý của process image Process image in Executable binary file main memory (load module) start address program program code code data data BK stack TP.HCM Khoa Khoa học & Kỹ thuật Máy tính
- Trạng thái của quá trình Các trạng thái của quá trình (process state): 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. BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính
- Trạng thái quá trình (tt.) Chuyển đổi giữa các trạng thái của quá trình terminated new admit dispatch exit suspended ready running Active States interrupt I/O or event I/O or completion event wait Suspended ready blocked Suspended States BK Suspended blocked suspended TP.HCM Khoa Khoa học & Kỹ thuật Máy tính
- Process Control Block (PCB) Đã 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 PCBs thành một linked list) BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính
- Chuyển ngữ cảnh(tt.) BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính
- Quản lý quá trình Ví dụ: Các hàng đợi Các PCB running 7 process number ready 11 4 2 17 waiting 19 11 Có gì sai trong ví dụ? BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính
- Các hàng đợi định thời Job queue Ready queue Device queues BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính
- Các tác vụ đối với quá trình (1) Tạo quá trình mới (process creation) 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ệ cha-con định nghĩa một cây quá trình. BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính
- Các tác vụ đối với quá trình (tt.) 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á BK trình con kết thúc. TP.HCM Khoa Khoa học & Kỹ thuật Máy tính
- Về quan hệ cha/con Ví dụ trong UNIX/Linux Quá trình gọi fork() để tạo một quá trình mới Quá trình mới (con) gọi exec() để nạp và thực thi một chương trình trong không gian nhớ của nó Quá trình cha làm việc khác, ví dụ: gọi wait() để đợi con xong Đồng bộ BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính
- Các tác vụ đối với quá trình (tt.) (2) Kết thúc quá trình Quá trình tự kết thúc Quá trình kết thúc khi thực thi lệnh cuối và gọi system routine exit Quá trình kết thúc do quá trình khác (có đủ quyền, vd: quá trình cha của nó) Gọi system routine abort với tham số là pid (process identifier) của quá trình cần được kết thúc Hệ điều hành thu hồi tất cả các tài nguyên của quá trình kết thúc (vùng nhớ, I/O buffer, ) BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính
- Bài toán producer-consumer Bài toán tiêu biểu về sự cộng tác giữa các quá trình: bài toán producer-consumer Producer tạo ra các dữ liệu và consumer tiêu thụ, sử dụng các dữ liệu đó. Sự trao đổi thông tin thực hiện qua buffer unbounded buffer: kích thước buffer vô hạn (không thực tế). bounded buffer: kích thước buffer có hạn. Producer và consumer phải hoạt động đồng bộ vì Consumer không được tiêu thụ khi producer chưa sản xuất Producer không được tạo thêm sản phẩm khi BK buffer đầy. TP.HCM Khoa Khoa học & Kỹ thuật Máy tính
- Message passing system Làm thế nào để các quá trình giao tiếp nhau? Các vấn đề: Naming Giao tiếp trực tiếp send(P, msg): gửi thông điệp đến quá trình P receive(Q, msg): nhận thông điệp đến từ quá trình Q Giao tiếp gián tiếp: thông qua mailbox hay port send(A, msg): gửi thông điệp đến mailbox A receive(B, msg): nhận thông điệp từ mailbox B Synchronization: blocking send, nonblocking send, blocking receive, nonblocking receive Buffering: dùng queue để tạm chứa các message Zero capacity (no buffering) Bounded capacity: độ dài của queue là giới hạn Unbounded capacity: độ dài của queue là không giới hạn BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính
- Socket Socket Đầu cuối (endpoint) của một kênh giao tiếp Cơ chế giao tiếp mức thấp (low- level), gửi nhận một chuỗi byte dữ liệu không cấu trúc (unstructured stream of bytes) Giao tiếp qua socket: connectionless và connection- oriented Lập trình socket Berkeley socket (BSD socket), WinSock BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính
- Connectionless Transport Service Process A Process B socket() socket() bind() bind() sendto()/ sendto()/ recvfrom() recvfrom() close() close() sendto(socket, buffer, buffer_length, flags, destination_address, addr_len) recvfrom(socket, buffer, buffer_length, flags, from_address, BK TP.HCM addr_len) Khoa Khoa học & Kỹ thuật Máy tính
- Remote procedure call Remote procedure call (RPC) Cho phép một chương trình gọi một thủ tục nằm trên máy tính ở xa qua mạng. Các vấn đề khi hiện thực RPC Truyền tham số và kết quả trả về của lời gọi thủ tục Chuyển đổi dữ liệu khi truyền trên mạng (data conversion) Kết nối client đến server Bin dịch chương trình Kiểm sóat lỗi Security BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính
- Lưu đồ thực hiện RPC Client Server return reply call request call request return reply Client Stub Server Stub message to parameter message to parameter parameter to message parameter to message TRANSPORT TRANSPORT (OS 1) (OS 2) receive send receive send BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính
- Truyền tham số trong RPC (tt.) BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính
- Remote method invocation Remote Method Invocation (RMI) Cho phép một chương trình Java có thể gọi một phương thức (method) của một đối tượng ở xa, nghĩa là một đối tượng ở tại một máy ảo Java khác BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính