Khối điều khiển tiến trình
Giao diện
Một khối điều khiển tiến trình (Process Control Block - PCB) là một cấu trúc dữ liệu trong nhân hệ điều hành chứa thông tin cần thiết để quản lý một tiến trình nhất định.[1]
Thông tin
[sửa | sửa mã nguồn]Tuỳ thuộc vào cài đặt nhưng nói chung PCB trực tiếp hoặc gián tiếp chứa những thông tin sau:
- Định danh của tiến trình (process identifier hay PID).
- Giá trị các thanh ghi của tiến trình, trong đó đáng chú ý là con trỏ chương trình và con trỏ stack
- Không gian địa chỉ của tiến trình
- Độ ưu tiên (trong đó tiến trình có giá trị cao hơn được ưu tiên trước, ví dụ nice trong các hệ điều hành Unix)
- Thông tin kế toán tiến trình, ví dụ như thời điểm thực thi gần nhất, bao nhiêu thời gian CPU đã sử dụng...
- Con trỏ tới PCB tiếp theo, nghĩa là con trỏ tới tiến trình tiếp theo được chạy
- Thông tin V/R (ví dụ các thiết bị V/R được cấp phát cho tiến trình, danh sách các tệp đang mở...)
Khi chuyển ngữ cảnh, tiến trình đang thực hiện bị dừng lại và một tiến trình khác có cơ hội thực hiện. Nhân dừng việc thực hiện của tiến trình, sao chép các giá trị trong thanh ghi vào PCB và cập nhật thanh ghi với các giá trị của PCB của tiến trình mới.
Vị trí của PCB
[sửa | sửa mã nguồn]Vì PCB chứa những thông tin tối quan trọng đối với tiến trình, nó phải được giữ trong một vùng bộ nhớ được bảo vệ. Trong một số hệ điều hành,, PCB được đặt ở đầu của ngăn xếp nhân của tiến trình.[2]
Ghi chú
[sửa | sửa mã nguồn]- ^ Deitel, Harvey M. (1984) [1982]. An introduction to operating systems . Addison-Wesley. tr. 673. ISBN 0-201-14502-2. pages 57-58
- ^ Yong, Zhang, "Breaking through the Maximum Process Number", Linux Journal, 1 Jan 2004, [1].