Bộ xử lý đa lõi có thể chạy nhiều tiến trình cùng một lúc không?


9

Tôi hiểu rằng một bộ xử lý đa lõi có thể chạy nhiều luồng của cùng một tiến trình cùng một lúc bằng các lõi khác nhau của nó.
Nó cũng có thể chạy nhiều tiến trình cùng một lúc (mỗi lõi chạy một tiến trình khác nhau)?

Câu trả lời:


14

Theo như hệ điều hành và các ứng dụng liên quan, mỗi lõi là một bộ xử lý riêng biệt và tuân theo các quy tắc mối quan hệ giống như có nhiều bộ xử lý.

Bộ xử lý nào (có thể là thật, lõi hay siêu phân luồng) mà một tiến trình chạy phụ thuộc hoàn toàn vào hệ thống lập lịch của hệ điều hành. Chính hệ thống lập lịch trình này (bị ảnh hưởng bởi các cài đặt mối quan hệ ) sẽ quyết định nơi một quy trình nên chạy và khi nào. Các quy trình và luồng có thể chuyển đổi giữa các bộ xử lý và lõi tùy ý khi bộ lập lịch thấy phù hợp.


7

Từ kiến ​​thức hạn chế của tôi về các hệ điều hành, tôi tin rằng mọi quy trình đều có ít nhất một luồng và chính các luồng này được lên lịch chứ không phải chính các tiến trình. Quá trình chỉ đơn giản là chứa thông tin về chương trình và các luồng mà nó đã thiết lập đang chạy. Bằng cách này, một ứng dụng luồng đơn được xử lý giống như một ứng dụng đa luồng, nhưng ứng dụng đa luồng có thể sử dụng tài nguyên tốt hơn.

Ví dụ: giả sử chúng ta có hai tiến trình với hai luồng mỗi và một ứng dụng luồng đơn, tất cả đều hoạt động mạnh trên bộ xử lý lõi kép (hoặc CPU kép, không có sự khác biệt nào ở đây)

 Process A
    |_Thread A-1
    |_Thread A-2

 Process B
    |_Thread B-1
    |_Thread B-2

 Process C
    |_Thread C

Mỗi luồng có thể lập lịch biểu trên tất cả các lõi của CPU và tải được cân bằng bởi bộ lập lịch hệ điều hành.

Sau đó, nếu chúng ta đi và thiết lập mối quan hệ bộ xử lý cho Quy trình B để giới hạn nó ở một CPU thì tất cả các luồng của quá trình đó cũng bị ràng buộc với CPU đó và sẽ không chạy trên bất kỳ CPU nào khác. Làm tương tự với Quy trình C sẽ không dẫn đến thay đổi thực sự vì nó chỉ có thể chạy trên một CPU tại một thời điểm.


2

Câu trả lời ngắn:

  1. Có, với điều kiện HĐH hỗ trợ nó.
  2. Ngày nay tất cả các hệ điều hành đều hỗ trợ nó.

Các quy trình và luồng (như trong đa luồng) là các cấu trúc mức hệ điều hành. Một khi bạn nhận được mức độ đủ thấp trong việc lập lịch các biến mất này và bạn chỉ có một chuỗi các chuỗi thực thi xếp hàng để có thời gian thực hiện.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.