Quản lý tiến trình<br />
TS Hà Quốc Trung<br />
<br />
Giới thiệu<br />
<br />
<br />
<br />
Một tiến trình = một sự thực thi của một chương trình<br />
Mỗi tiến trình sẽ tương ứng với một tập các thông tin<br />
sau:<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Một định danh (pid)<br />
Một tiến trình cha (ppid)<br />
Người sở hữu (uid) và nhóm (gid)<br />
Một đầu vào chuẩn (stdin), một đầu ra chuẩn (stdout), một kênh<br />
báo lỗi chuẩn (stderr)<br />
Thời gian sử dụng CPU (CPU time) và mức độ ưu tiên<br />
Thư mục hoạt động hiện tại của tiến trình<br />
Bảng các tham chiếu đến các file được tiến trình sử dụng.<br />
<br />
Các tiến trình được sắp xếp để chia sẻ thời gian sử<br />
dụng CPU<br />
<br />
Các kiểu tiến trình (1)<br />
<br />
<br />
Các tiến trình hệ thống<br />
Thường<br />
<br />
thuộc về quyền root<br />
Không có giao diện tương tác<br />
Thường được chạy dưới dạng các tiến trình ngầm<br />
(daemon)<br />
Đảm nhiệm các nhiệm vụ chung, phục vụ mọi người<br />
sử dụng.<br />
Ví dụ:<br />
<br />
<br />
<br />
<br />
<br />
lpsched: Quản lý các dịch vụ in ấn<br />
cron: tự động thực hiện một lệnh/chương trình vào một thời<br />
gian xác định trước.<br />
inetd: quản lý các dịch vụ mạng.<br />
<br />
Các kiểu tiến trình (2)<br />
<br />
<br />
Các tiến trình của người sử dụng<br />
Thực<br />
<br />
<br />
<br />
<br />
hiện các nhiệm vụ của một người dùng cụ thể<br />
<br />
Thực hiện dưới dạng một shell tương ứng với một sự đăng<br />
nhập.<br />
Thực hiện dưới dạng một lệnh thông qua shell<br />
<br />
Thường<br />
Ví<br />
<br />
<br />
<br />
<br />
<br />
dụ:<br />
cp<br />
vi<br />
man<br />
…<br />
<br />
được thực hiện, quản lý bằng một terminal<br />
<br />
Lệnh ps<br />
<br />
<br />
Hiển thị các tiến trình<br />
Theo ngầm định, lệnh ps hiển thị các tiến trình thuộc về người<br />
sử dụng terminal.<br />
Sử dụng tùy chọn aux để hiển thị tất cả các tiến trình đang chạy<br />
trong máy.<br />
<br />
<br />
$ ps<br />
PID TTY<br />
2803 pts/1<br />
2965 pts/1<br />
$ ps aux<br />
USER<br />
PID<br />
root<br />
1<br />
...<br />
ttanh 951<br />
ttanh 953<br />
ttanh 966<br />
...<br />
<br />
TIME CMD<br />
00:00:00 bash<br />
00:00:00 ps<br />
%CPU<br />
0.1<br />
<br />
%MEM<br />
0.1<br />
<br />
0.0<br />
0.0<br />
0.0<br />
<br />
0.3<br />
1.9<br />
0.3<br />
<br />
VSZ<br />
1104<br />
<br />
RSS<br />
460<br />
<br />
1728 996<br />
6860 4916<br />
2704 1000<br />
<br />
TTY<br />
?<br />
<br />
STAT START TIME COMMAND<br />
S<br />
15:26 0:03 init[3]<br />
<br />
pts/0 S<br />
pts/0 S<br />
pts/0 R<br />
<br />
16:09 0:00 bash<br />
16:09 0:00 emacs<br />
16:23 0:00 ps aux<br />
<br />