Tiến trình<br />
<br />
3.1. Looking at Processes<br />
<br />
<br />
<br />
<br />
Tiến trình (Process): là chương trình đang<br />
được chạy.<br />
Vd:<br />
<br />
<br />
<br />
<br />
<br />
có 2 terminal window -> 2 tiến trình<br />
mỗi terminal window chạy 1 shell -> mỗi shell là<br />
một tiến trình<br />
gõ lệnh trong shell -> chương trình tương ứng<br />
được thực hiện trong 1 tiến trình mới.<br />
<br />
2<br />
<br />
<br />
<br />
Lập trình viên chuyên nghiệp thường sử dụng<br />
nhiều luồng hợp tác trong cùng một ứng<br />
dụng:<br />
<br />
<br />
ứng dụng thực hiện được nhiều việc hơn<br />
<br />
<br />
<br />
tăng tính mạnh mẽ của ứng dụng<br />
<br />
<br />
<br />
tăng tính hữu dụng của các chương trình đã tồn<br />
tại<br />
<br />
3<br />
<br />
Process IDs<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Mỗi tiến trình trong HĐH Linux có Process ID<br />
duy nhất (pid)<br />
pid là số 16-bit được Linux gán tuần tự khi<br />
một tiến trình mới được tạo.<br />
Mỗi tiến trình có một parent process, ngoại<br />
trừ tiến trình init.<br />
C, C++:<br />
<br />
<br />
sử dụng định nghĩa kiểu pid_t<br />
<br />
<br />
<br />
Các system call: getpid(), getppid()<br />
4<br />
<br />
5<br />
<br />