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.
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ế tố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ở...)
Lấy thơng tin trạng thái của các tiến trình: sử dụng câu lệnh ps, pstree, top. PS:
#ps <option>
Option:
f: thể hiện các process dưới dạng tree. l: thể hiện dưới dạng long list.
w: thể hiện dưới dạng wide output.
x: Xem cả các process không gắn với terminal (daemon). a: process của các user khác.
U: user xem process của một user cụ thể. u: thể hiện dưới dạng “user format”.
Hình 5.3 và 5.4 Bảng quản lý và giám định tiến trình
Trong đó:
USER hoặc UID Tên của tiến trình.
PID ID (định danh) của tiến trình.
%CPU %CPU sử dụng của tiến trình.
%MEM % bộ nhớ tiến trình sử dụng.
SIZE Kích thước bộ nhớ ảo tiến trình sử dụng.
RSS Kích thước của bộ nhớ thực sử dụng tiến trình.
TTY Vùng làm việc của tiến trình.
STAT Trạng thái của tiến trình.
START Thời gian hay ngày bắt đầu của tiến trình.
TIME Tổng thời gian sử dụng CPU.
COMMAND Câu lệnh được thực hiện.
PRI Mức ưu tiên của tiến trình.
PPID ID của tiến trình cha.
WCHAN Tên của hàm nhận khi tiến trình ngủ được lấy từ
file/boot/system.map
Pstree:
Tương tự lệnh ps với tham số -f
KẾT LUẬN
Qua phần bài tập được trình bày trên tài liệu này, ta đã nắm được các nguyên lí trong cơ chế quản lý tiến trình của hệ điều hành Linux ở một mức độ căn bản. Từ đó giúp hiểu được một phần cách vận hành hoạt động hệ thống của hệ điều hành Linux. Tài liệu đã mang đến 1 phần kiến thức tuy nhỏ nhưng khá đầy đủ và căn bản có thể giúp em tự tin khi nghiên cứu sâu hơn trong vấn đề quản lý bộ nhớ không chỉ của hệ điều hành Linux mà còn cả các hệ điều hành khác.
Tài liệu này chủ yếu nghiên cứu về quản lí tiến trình, một kỹ thuật quản lý bộ nhớ rất hiệu quả và thông dụng không chỉ áp dụng riêng với Linux. Phần bài tập này chỉ mang tính chất nghiên cứu cơ bản nên khơng trình bày sâu nhưng chúng em đã cố gắng tóm lược lại các vấn đề chính để hiểu được cách hoạt động của bộ nhớ trong hệ thống sử dụng hệ điều hành Linux
Sau bài tập lớn này chúng em đã có thêm nhiều hiểu biết về hệ điều hành Linux đặc biệt là quy trình quản lý tiến trình trong hệ điều hành Linux, giúp chúng em nâng cao khả năng đọc dịch tài liệu, phân kế hoạch thực hiện cũng như sắp xếp thời gian. Em xin cám ơn thầy và các bạn đã giúp đỡ chúng em hoàn thành bài tập lớn này!