Process là gì? Phân biệt process và thread

0
process là gì

Một chương trình bao gồm một hoặc nhiều process. Nói một cách đơn giản, process là một chương trình đang được thực thi. Một hoặc nhiều thread chạy bên trong bối cảnh của process. Thread là đơn vị cơ bản mà hệ điều hành phân bổ thời gian xử lý. Thread có thể thực thi bất kỳ phần nào của process, bao gồm cả phần đang được thực thi hiện tại bởi thread khác.

Phân biệt process và thread

Process

  • Một instance của chương trình đang thực thi được gọi là process
  • Một số hệ điều hành sử dụng thuật ngữ “task” để đề cập đến một chương trình mà đang được thực thi
  • Một process luôn được lưu trữ trong main memory cũng được gọi là primary memory hay Random Access Memory (RAM)
  • Do đó, một process còn được gọi là một thực thể đang hoạt động. Nó sẽ biến mất nếu máy được khởi động lại.
  • Nhiều process có thể được liên kết tới cùng một chương trình
  • Trên một hệ thống đa vi xử lý, nhiều process có thể được thực thi song song
  • Trên một hệ thống đơn vi xử lý, mặc dù không đạt được mục đích xử lý song song, một thuật toán lập lịch process được áp dụng và process được lập lịch để thực thi mỗi process tại một thời điểm – mà ta luôn cảm thấy giống như nó đang chạy song song.
  • Ví dụ: Khi bạn mở chương trình máy tính trên Windows lên, bạn có thể mở nhiều phiên bản khác nhau, hay còn đươc gọi là nhiều instance của một chương trình. Khi đó mỗi instance được gọi là một process.

Thread

  • Một thread là một tập con của process
  • Nó được gọi là process nhẹ (lightweight process), vì nó tương tự như process thực sự nhưng thực thi bên trong bối cảnh của một process cha và chia sẻ cùng tài nguyên được phân bổ tới cho process bởi kernel hệ điều hành
  • Thường thì process chỉ có một thread điều khiển – một tập lệnh thực thi tại một thời điểm.
  • Một process cũng có thể được tạo thành từ nhiều thread – thực thi tập lệnh đồng thời.
  • Nhiều thread có thể khai thác khả năng xử lý song song trên hệ thống đa vi xử lý (multiprocessor system)
  • Trên một hệ thống đơn vi xử lý, một thuật toán lập lịch thread được áp dụng và bộ xử lý được lập lịch để chạy mỗi thread tại một thời điểm
  • Tất cả thread đang chạy bên trong process đều chia sẻ cũng không gian địa chỉ vùng nhớ, file descriptors, stack và các thuộc tính liên quan đến process khác
  • Vì thread của process chia sẻ cùng memory với nhau, dẫn đến việc đồng bộ hóa việc truy cập với dữ liệu được chia sẻ bên trong process đạt được tầm quan trọng chưa từng có
4.3/5 (3 Reviews)