Process (Quá trình)
Process có nghĩa là bất kỳ chương trình (program) nào đang được thực thi. Process control block (Khối điều khiển quá trình) điều khiển hoạt động của mọi process. Process control block chứa thông tin về các process, ví dụ process priority, process id, process state, CPU, register, v.v. Một process có thể tạo ra nhiều process khác được gọi là Child Process. Process mất nhiều thời gian hơn để kết thúc (terminate) và nó bị cô lập (isolated) có nghĩa là nó không chia sẻ bộ nhớ với bất kỳ process nào khác.
Process có thể có các trạng thái sau: new (mới), ready (sẵn sàng), running (đang chạy), waiting (đang chờ), terminated (đã chấm dứt), suspended (bị tạm ngừng).
Thread (Luồng)
Thread là phân đoạn của một process có nghĩa là một process có thể có nhiều thread (multiple threads) và nhiều thread này được chứa trong một process. Một thread có 3 trạng thái: running (đang chạy), ready (sẵn sàng), và blocked (bị chặn). Thread tốn ít thời gian hơn để kết thúc (terminate) so với process và KHÔNG giống như process, thread không bị cô lập có nghĩa là thread chia sẻ bộ nhớ với mọi thread khác.
Điểm khác biệt giữa Process và Thread
Process | Thread |
Process nghĩa là bất kỳ chương trình nào đang được thực thi | Thread là phân đoạn của một process |
Process tốn nhiều thời gian để kết thúc | Thread tốn ít thời gian để kết thúc |
Process tốn nhiều thời gian để tạo | Thread tốn ít thời gian để tạo |
Process tốn nhiều thời gian để chuyển đổi ngữ cảnh (context switching) | Thread tốn ít thời gian để chuyển đổi ngữ cảnh |
Process kém hiệu quả về mặt giao tiếp (communication) | Thread hiệu quả hơn về mặt giao tiếp |
Process là biệt lập (isolated) | Thread chia sẻ bộ nhớ (share memory) |
Process được xem như process nặng | Thread được gọi là process nhẹ |
Chuyển process sử dụng giao diện hệ điều hành (operating system) | Chuyển thread không yêu cầu gọi hệ điều hành và gây ra một ngắt cho kernel |
Nếu một process bị block thì nó sẽ không ảnh hưởng đến hoạt động của một process khác | Thread thứ hai trong cùng một task không thể chạy khi một server thread đang bị chặn |
Process có Process Control Block, Stack và Address Space riêng. | Thread có Process Control Block của parent, Thread Control Block và Stack của riêng nó và Address Space chung. |