Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

Trường Đại Học Thủ Dầu Một Môn: Hệ điều hành (0+2)

Viện Kỹ thuật công nghệ Học kỳ: 1, 2023-2024


Chương trình TTNT&HTTT

LAB 8
Thông tin chung
 Thực hành 8: Quản lý tiến trình
 Sinh viên lưu file với tên theo định dạng sau: Lab8_MSSV.docx,
 Sinh viên nộp lên Elearning của lớp học tại buổi thực hành 8.
 Deadline: 12h00, ngày 11/10/2023

I. Nội dung
Phần 1. Cơ bản về tiến trình (process)
 Process: chương trình đang thực thi.
o Phân biệt: program và process?
 User có thể theo dõi trạng thái của process, tương tác với process
 Có hai loại user process trong hệ thống
o Foreground process:
 Có giao diện
 Tương tác trực tiếp với chương trình
 Chờ process kết thúc mới chạy được process khác
 Thực thi:
˗ Khi gõ lệnh tương ứng với tên chương trình theo cách thông thường
˗ Khi click vào icon trên giao diện đồ hoạ tương ứng với chương
trình.
˗ Foreground process tương tác được với người dùng qua thiết bị
nhập chuẩn là bàn phím.
˗ Kết xuất của chương trình chủ yếu là thiết bị xuất chuẩn là màn
hình.
˗ Trình thông dịch lệnh sẽ bị blocked cho tới khi foreground process
kết thúc.
˗ Kết thúc thực thi Foreground process: Ctrl + C.
Ví dụ:
$ find / -name ‘*.ps’ -print


Ctrl + C
o Tạm hoãn Foreground process: Ctrl + Z.
 Process tương ứng chuyển sang trạng thái suspended
Ví dụ:
$ find / ‘*.profile’ -print

Ctrl + Z
[1]+ Stopped find / ‚*.profile‛ –print
Trường Đại Học Thủ Dầu Một Môn: Hệ điều hành (0+2)
Viện Kỹ thuật công nghệ Học kỳ: 1, 2023-2024
Chương trình TTNT&HTTT

Nếu muốn cho process tiếp tục thực thi ở chế độ foreground, dùng lệnh fg n (trong
đó n là chỉ số của job hiển thị trong ngoặc vuông, ví dụ [1], [4], …), còn muốn
process thực thi ở chế độ background thì dùng lệnh bg n
Ví dụ:
$ jobs

fg 1
o Background process:
 Không có giao diện
 Không thể tương tác trực tiếp với chương trình
 Chạy nhiều process cùng lúc
 Thực thi:
˗ Background process vẫn xuất kết quả ra standard output là màn hình
trong lúc thực thi.
 Quản lý background process:
˗ Liệt kê các job đang hoạt động – dùng lệnh jobs.
 Các “process” thực hiện các công việc của hệ điều hành còn gọi là các
kernel_thread, daemon
 Đối với một process, có thể:
o Chuyển process từ thực thi background sang foreground và ngược lại
dùng lệnh fg hoặc bg.
 B1: Trì hoãn quá trình đó (bằng Ctrl + Z)
 B2.1: Dùng lệnh bg (background) để chuyển process sang chế
độ thực thi background.
 Ví dụ:
$ ls –R / > kq
...
^Z
[1]+ Stopped ls –R / > kq
$ bg (vì chỉ có một jobs nên bg không cần tham số)
[1]+ ls –R / > kq&
 B2.2. Chuyển background thành foreground process: dùng lệnh
fg
o Kết thúc một tiến trình
 Dùng lệnh kill: kill [-signal] process_identifier
Cần dùng lệnh ps để biết được pid của process.
Phần 2. Quản lý tiến trình
 Sử dụng lệnh top để xem thông tin về các tiến trình, và thông tin chung của
hệ thống :
Trường Đại Học Thủ Dầu Một Môn: Hệ điều hành (0+2)
Viện Kỹ thuật công nghệ Học kỳ: 1, 2023-2024
Chương trình TTNT&HTTT

top

 Sử dụng lệnh ps để xem thông tin về các tiến trình


Dùng lệnh sau để xem tất cả các process : (dạng cây)
ps -eljH | more
xem trạng thái của process (running, sleeping,…) : xem cột S
hoặc
pstree
 Xem các process của user hiện hành
o ps hoặc ps -l
Xem tiến trình cha (tổ tiên) của lệnh ps vừa thực thi : xem cột PID, PPID.
 Mở một terminal mới, login vào bằng tài khoản khác:
Chạy top.
o Trên terminal của root, dùng lệnh:
o Trên terminal của root, dùng lệnh: ps -a hay
ps -af //hiển thị các process đang chạy trên các terminal
 Sử dụng lệnh kill và killall
o dùng man xem manual về lệnh kill ( cú pháp lệnh kill là gì?)
o xem danh sách 64 các SIGNAL của lệnh kill: kill -l
o mô tả cú pháp và cho ví dụ sử dụng 4 SIGNAL thường dùng: -
SIGTERM, -SIGINT, -SIGKILL và SIGTERM.
o Mở terminal login với user 1, mở new terminal login với user 2.
Trên termianl user 1:
 run lệnh ps để xem các tiến trình đang chạy.
 run kill -pid của user 2: xem kết quả.
 Login với tài khoản root: run kill -pid của user 2: xem
kết quả.

Phần 3. Exercises
1. Vẽ cây quan hệ parent – children của các tiến trình.
2. Tìm tiến trình cha của tiến trình bất kỳ.
Trường Đại Học Thủ Dầu Một Môn: Hệ điều hành (0+2)
Viện Kỹ thuật công nghệ Học kỳ: 1, 2023-2024
Chương trình TTNT&HTTT

3. Xem danh sách các process dang chạy trên hệ thống bằng pstree.
4. Xem danh sách các process dang chạy trên hệ thống bằng top.
5. Mở một terminal mới, login vào bằng tài khoản khác:
=> top.
6. Lưu các kết quả của lệnh top vào file top.txt
7. Đếm số process đang thực thi trên máy.
8. Đếm số process của user root đang thực thi trên máy
9. Tạo user “abc”, đếm số process của user “abc” đang thực thi trên máy.
10.In thông tin tất cả các tập tin *.sh của máy.
11. Tạm dừng lệnh trên.
12. Chuyển lệnh trên về chế độ bg
13. Thực thi lại lệnh in ở câu 9.
14. Mô tả cú pháp và cho ví dụ sử dụng 4 SIGNAL thường dùng: -SIGTERM, -
SIGINT, -SIGKILL và SIGTERM.
15. Mở terminal login với user 1, mở new terminal login với user 2.
 Trên termianl user 1:
o run lệnh ps để xem các tiến trình đang chạy.
o run kill -pid của user 2: xem kết quả.
 Login với tài khoản root: run kill -pid của user 2: xem kết quả.

You might also like