You are on page 1of 2

BÀI TẬP

Câu 1: Hãy nêu rõ khái niệm chương trình, tiến trình, luồng, Cho ví dụ cụ thể?
Chương trình máy tính là tập hợp các câu lệnh thực hiện một tác vụ cụ thể khi được máy
tính thực thi. Hầu hết các thiết bị máy tính yêu cầu các chương trình để hoạt động đúng.
Một chương trình máy tính thường được viết bởi một lập trình viên máy tính bằng ngôn
ngữ lập trình.
VD: Các chương trình tính toán viết bằng C/C++
Tiến trình là một chương trình đang xử lý, sở hữu một con trỏ lệnh, tập các thanh ghi và
các biến. Để hoàn thành tác vụ của mình, một tiến trình có thể cần đến một số tài nguyên
như CPU, bộ nhớ chính, các tập tin và thiết bị nhập/xuất.
VD:

Ở Window ta có thể xem tiến trình các chương trình đang thực thi qua Task Manager.
Thread là một đơn vị cơ bản trong CPU. Một luồng sẽ chia sẽ với các luồng khác trong
cùng một tiến trình về thông tin data, các dữ liệu của mình. Việc tạo ra các thread giúp
cho các chương trình có thể chạy được nhiều công việc cùng một lúc.
VD: Trong một lớp học (tiến trình) ,Thầy giáo là luồng chính (đơn luồng), học sinh là
luồng phụ (đa luồng).
Câu 2: Nêu các trạng thái tiến trình, vẽ sơ đồ minh họa ?
New: tiến trình đang được tạo lập.
Ready: tiến trình chờ được cấp phát CPU để xử lý.
Running: các chỉ thị của tiến trình đang được xử lý.
Waiting: tiến trình chờ được cấp phát một tài nguyên, hay chờ một một sự kiện xảy ra.
Terminated: tiến trình hoàn tất xử lý

Mô tả: Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái Running trên một
bộ xử lý bất kỳ. Trong khi đó, nhiều tiến trình có thể ở trạng thái Waiting hay Ready.
Câu 3: Viết 1 chương trình tạo nhiều tiến trình ?
Hàm fork() sẽ tạo mới một tiến trình bằng việc "sao chép" tiến trình gọi nó. Tiến trình
mới được tạo ra gọi là tiến trình con, tiến trình gọi hàm fork là tiến trình cha.
Khi thành công, PID của tiến trình còn sẽ được trả về trong tiến trình cha, nếu mà tiến
trình đang gọi hàm fork là tiến trình con thì hàm sẽ trả về 0. Ngược lại, nếu hàm thất bại,
giá trị -1 sẽ được trả về trong tiến trình cha, lúc này không có bất cứ tiến trình còn mới
nào được tạo.

You might also like