Professional Documents
Culture Documents
ID: 21522217
Class: IT007.N17
OPERATING SYSTEM
LAB 03’S REPORT
SUMMARY
Task Status Page
Section 3.3 Hoàn thành 2
Task 1 Hoàn thành 7
Section 3.4 Task 2 Hoàn thành 12
Task 3 Hoàn thành 18
Task 1 Hoàn thành 19
Task 2 Hoàn thành 21
Section 3.5
Task 3 Hoàn thành 22
Task 4 Hoàn thành 24
Self-scrores: 9.5
*Note: Export file to PDF and name the file by following format:
LAB X – <Student ID>.pdf
1
3.3. Sinh viên chuẩn bị.
3.3.1. < Đã install các gói cần thiết >.
3.3.2. < Đã install các gói cần thiết >.
2
3
3.3.3. Makefile.
4
3.3.4. Trình gỡ lỗi.
5
6
3.4. Hướng dẫn thực hành.
3.4.1. Tiến trình.
3.4.1.1. Khái niệm.
3.4.1.2. Tiến trình trong môi trường Linux.
7
3.4.1.3. Tạo tiến trình.
8
9
10
3.4.1.4. Kết thúc tiến trình.
11
3.4.2.1. Khái niệm.
3.4.2.2. Tiểu trình trong Linux.
3.4.2.3. Tạo tiểu trình.
12
3.4.2.4. Dừng tiểu trình.
13
14
15
3.4.2.5. Hợp và gỡ tiểu trình.
16
3.4.2.6. Truyền dữ liệu cho tiểu trình.
17
3.4.3. Signal ( Truyền thông giữa các tiến trình )
18
3.5. Bài tập ôn tập.
A.
19
B.
Bước 1: sử dụng lệnh ps -ef để list tất cả các process
C.
Bước 1: sử dụng lệnh ps -ef để list tất cả các process (như câu B)
Bước 2: sử dụng lệnh ps -p -s [PID của tiến trình]
- Giả sử lấy tiến trình có PID = 1275
20
2. Chạy và Giải thích đoạn chương trình exercise_2.c.
Giải thích:
- Dòng chứa lệnh fork() là sinh ra một tiến trình con.
- Khi xét (pid == 0) có nghĩa là đang xét tiến trình con. Biến num_coconuts của tiến tr
ình con được gán = 42. Tuy nhiên, biến num_coconuts của tiến trình cha vẫn không b
ị thay đổi nên vẫn là 17.
21
- Sau đó tiến trình con exit(), rồi tiến trình cha đợi tiến trình con kết thúc xong rồi mới
in ra dòng chữ. Dó đó, kết quả trả về chứa biến num_coconuts của tiến trình cha (= 1
7).
- Vì vậy, kết quả in ra màn hình: “I see 17 coconuts!”.
22
̵ pthread_equal: so sánh xem 2 thread có giống nhau không, nếu giống thì trả về m
ột số khác 0, ngược lại trả về 0.
̵ pthread_exit: sử dụng để kết thúc 1 thread.
̵ pthread_join: block chương trình và chờ cho thread với ID là “thread” kết thúc, và
giá trị return của thread đó được lưu vào biến con trỏ “retval”. Nếu thread đã kết t
húc trước khi gọi pthread_join(), thì hàm sẽ return ngay lập tức.
̵ pthread_self: trả về id của thread hiện hành.
Chương trình:
23
Kết quả chương trình:
4. Chương trình.
24
Kết quá chương trình:
25
26