Biểu đồ so sánh
Cơ sở để so sánh | Đa nhiệm | Đa luồng |
---|---|---|
Căn bản | Đa nhiệm cho phép CPU thực hiện nhiều tác vụ cùng một lúc. | Đa luồng cho phép CPU thực hiện đồng thời nhiều luồng của một tiến trình. |
Chuyển đổi | Trong CPU đa nhiệm chuyển đổi giữa các chương trình thường xuyên. | Trong CPU đa luồng chuyển đổi giữa các luồng thường xuyên. |
Bộ nhớ và tài nguyên | Trong hệ thống đa nhiệm phải phân bổ bộ nhớ và tài nguyên riêng cho từng chương trình mà CPU đang thực thi. | Trong hệ thống đa luồng phải phân bổ bộ nhớ cho một tiến trình, nhiều luồng của tiến trình đó chia sẻ cùng một bộ nhớ và tài nguyên được phân bổ cho tiến trình. |
Định nghĩa đa nhiệm
Đa nhiệm là khi một CPU duy nhất thực hiện một số tác vụ (chương trình, quy trình, tác vụ, luồng) cùng một lúc. Để thực hiện đa nhiệm, CPU chuyển đổi giữa các nhiệm vụ rất thường xuyên để người dùng có thể tương tác với từng chương trình cùng một lúc.
Trong một hệ điều hành đa nhiệm, một số người dùng có thể chia sẻ hệ thống cùng một lúc. Như chúng ta đã thấy CPU chuyển đổi nhanh chóng giữa các tác vụ, do đó cần một ít thời gian để chuyển từ người dùng này sang người dùng tiếp theo. Điều này gây ấn tượng với người dùng rằng toàn bộ hệ thống máy tính được dành riêng cho anh ta.
Định nghĩa đa luồng
Đa luồng khác với đa nhiệm theo nghĩa đa nhiệm cho phép nhiều tác vụ cùng một lúc, trong khi đó, Đa luồng cho phép nhiều luồng của một tác vụ (chương trình, quy trình) được xử lý bởi CPU cùng một lúc.
Trước khi nghiên cứu đa luồng hãy cho chúng tôi nói về một chủ đề là gì? Một luồng là một đơn vị thực thi cơ bản có bộ đếm chương trình riêng, tập hợp thanh ghi, ngăn xếp nhưng nó chia sẻ mã, dữ liệu và tệp của quá trình mà nó thuộc về. Một tiến trình có thể có nhiều luồng đồng thời và CPU chuyển đổi giữa các luồng này thường xuyên tạo ấn tượng cho người dùng rằng tất cả các luồng đang chạy đồng thời và điều này được gọi là đa luồng.
Sự khác biệt chính giữa đa nhiệm và đa luồng trong HĐH
- Sự khác biệt cơ bản giữa đa nhiệm và đa luồng là trong đa nhiệm, hệ thống cho phép thực thi nhiều chương trình và tác vụ cùng một lúc, trong khi đó, trong đa luồng, hệ thống thực thi nhiều luồng của cùng một tiến trình hoặc cùng một lúc.
- Trong đa nhiệm CPU phải chuyển đổi giữa nhiều chương trình để có vẻ như nhiều chương trình đang chạy cùng một lúc. Mặt khác, trong CPU đa luồng phải chuyển đổi giữa nhiều luồng để làm cho nó xuất hiện rằng tất cả các luồng đang chạy đồng thời.
- Đa nhiệm phân bổ bộ nhớ và tài nguyên riêng cho từng quy trình / chương trình trong khi đó, trong các luồng đa luồng thuộc cùng một quy trình có chung bộ nhớ và tài nguyên như của quy trình.
Phần kết luận:
Đa nhiệm tương tự như đa chương trình trong khi đó, Đa luồng là đa nhiệm dựa trên luồng. Đa luồng ít tốn kém hơn so với đa nhiệm vì các luồng dễ dàng tạo ra sau đó là một quá trình.