Professional Documents
Culture Documents
Lab 8 - Quản Lý Tiến Trình
Lab 8 - Quản Lý Tiến Trình
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
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ả.