Biểu đồ so sánh
Cơ sở để so sánh | Đa xử lý | Đa luồng |
---|---|---|
Căn bản | Đa xử lý thêm CPU để tăng sức mạnh tính toán. | Đa luồng tạo ra nhiều luồng của một tiến trình đơn lẻ để tăng sức mạnh tính toán. |
Chấp hành | Nhiều quy trình được thực hiện đồng thời. | Nhiều luồng của một tiến trình đơn được thực hiện đồng thời. |
Sự sáng tạo | Tạo ra một quá trình tốn thời gian và tốn nhiều tài nguyên. | Tạo ra một chủ đề là kinh tế trong cả ý nghĩa thời gian và tài nguyên. |
Phân loại | Đa xử lý có thể là đối xứng hoặc không đối xứng. | Đa luồng không được phân loại. |
Định nghĩa đa xử lý
Một hệ thống đa xử lý là một hệ thống có nhiều hơn hai bộ xử lý. Các CPU được thêm vào hệ thống để tăng tốc độ tính toán của hệ thống. Mỗi CPU có bộ thanh ghi và bộ nhớ chính riêng. Chỉ vì các CPU là riêng biệt, có thể xảy ra việc một CPU không phải có bất cứ điều gì để xử lý và có thể không hoạt động và cái còn lại có thể bị quá tải với các quy trình. Trong các trường hợp như vậy, các quy trình và tài nguyên được chia sẻ linh hoạt giữa các bộ xử lý.
Đa xử lý có thể được phân loại là đa xử lý đối xứng và đa xử lý không đối xứng . Trong đa xử lý đối xứng, tất cả các bộ xử lý được tự do chạy bất kỳ quy trình nào trong một hệ thống. Trong đa xử lý bất đối xứng, có một mối quan hệ chủ-tớ giữa các bộ xử lý. Bộ xử lý chính chịu trách nhiệm phân bổ quy trình cho các bộ xử lý nô lệ.
Nếu bộ xử lý có bộ điều khiển bộ nhớ tích hợp thì việc thêm bộ xử lý sẽ tăng lượng bộ nhớ có thể đánh địa chỉ trong hệ thống. Đa xử lý có thể thay đổi mô hình truy cập bộ nhớ từ truy cập bộ nhớ thống nhất sang truy cập bộ nhớ không đồng nhất . Truy cập bộ nhớ thống nhất chiếm cùng thời gian để truy cập bất kỳ RAM nào từ bất kỳ Bộ xử lý nào. Mặt khác, truy cập bộ nhớ không đồng đều sẽ mất nhiều thời gian hơn để truy cập một phần bộ nhớ so với các phần khác.
Định nghĩa đa luồng
Đa luồng là việc thực thi nhiều luồng của một tiến trình đồng thời trong bối cảnh của quá trình đó. Bây giờ chúng ta hãy thảo luận đầu tiên một chủ đề là gì? Một luồng của một tiến trình có nghĩa là một đoạn mã của một tiến trình, có ID luồng, bộ đếm chương trình, thanh ghi và ngăn xếp riêng và có thể thực thi độc lập. Nhưng các luồng thuộc cùng một quy trình phải chia sẻ các thuộc tính của quy trình đó như mã, dữ liệu và tài nguyên hệ thống. Việc tạo các quy trình riêng biệt cho mỗi yêu cầu dịch vụ sẽ tiêu tốn thời gian và tài nguyên hệ thống. Thay vì phát sinh chi phí này, sẽ hiệu quả hơn khi tạo các luồng của một quy trình.
Tạo một luồng là kinh tế vì nó chia sẻ mã và dữ liệu của quá trình mà chúng thuộc về. Vì vậy, hệ thống không phải phân bổ tài nguyên riêng cho từng luồng. Đa luồng có thể được tăng lên trên hệ điều hành đa xử lý. Khi đa luồng trên nhiều CPU tăng tính song song .
Sự khác biệt chính giữa đa xử lý và đa luồng
- Sự khác biệt chính giữa đa xử lý và đa luồng là đa xử lý cho phép một hệ thống có nhiều hơn hai CPU được thêm vào hệ thống trong khi đa luồng cho phép một quá trình tạo ra nhiều luồng để tăng tốc độ tính toán của hệ thống.
- Hệ thống đa xử lý thực thi đồng thời nhiều tiến trình trong khi đó, hệ thống đa luồng cho phép thực thi đồng thời nhiều luồng của một tiến trình.
- Tạo một quy trình có thể tiêu tốn thời gian và thậm chí làm cạn kiệt tài nguyên hệ thống. Tuy nhiên, việc tạo các luồng là kinh tế vì các luồng thuộc cùng một quy trình chia sẻ các thuộc tính của quy trình đó.
- Đa xử lý có thể được phân loại thành đa xử lý đối xứng và đa xử lý bất đối xứng trong khi đó, đa luồng không được phân loại thêm.
Phần kết luận:
Lợi ích của đa luồng có thể tăng dần trong môi trường đa xử lý vì đa luồng trên hệ thống đa xử lý làm tăng tính song song.