Process và Thread

Một process là một chương trình đang được thực thi (đang chạy). Nhưng, một chương trình không phải là một process. Vì chương trình là một file, hay một folder bị động nằm trên máy; Trong khi đó, một process là một chương trình đang hoạt động (đang chạy, đã được tải lên bộ nhớ chính để hoạt động).


  • New: process mới được tạo.
  • Running: process đang được thực thi/ chạy.
  • Waiting: process đợi I/O hoặc tín hiệu nào đó.
  • Ready: process sẵn sàng được CPU chạy.
  • Terminated: process hoàn thành việc.

Thread, hay luồng, là một tiến trình nhỏ có thể được quản lý độc lập bởi một bộ lập lịch. Tất cả các luồng trong một chương trình đơn được chứa hợp lý trong một tiến trình. Nhân cấp phát một ngăn xếp và khối điều khiển luồng (TCB) cho mỗi luồng. Hệ điều hành chỉ lưu con trỏ ngăn xếp và trạng thái CPU tại thời điểm chuyển đổi giữa các luồng của cùng một tiến trình.


Các thuộc tính của một Thread:

- Một cuộc gọi hệ thống có thể tạo nhiều hơn một luồng.

- Luồng chia sẻ dữ liệu và thông tin.

- Luồng chia sẻ bộ nhớ heap nhưng có ngăn xếp và thanh ghi riêng của mình.

- Quản lý luồng không tiêu thụ hoặc tiêu thụ ít cuộc gọi hệ thống hơn vì giao tiếp giữa các luồng có thể đạt được bằng cách sử dụng bộ nhớ dùng chung.

- Thuộc tính cô lập của tiến trình làm tăng chi phí của nó về mặt tiêu thụ tài nguyên.




Nhận xét

Bài đăng phổ biến từ blog này

Thương mại hoá y tế

Các IDE hỗ trợ lập trình viên Python

CÁCH XỬ LÝ FILE trong Python