Làm thế nào để bạn thiết lập mối quan hệ bộ xử lý trong Snow Leopard trên MacBook Pro? Tôi biết trong Windows bạn chỉ có thể chuyển đổi nó trong Trình quản lý tác vụ.
Làm thế nào để bạn thiết lập mối quan hệ bộ xử lý trong Snow Leopard trên MacBook Pro? Tôi biết trong Windows bạn chỉ có thể chuyển đổi nó trong Trình quản lý tác vụ.
Câu trả lời:
OS X đã hỗ trợ API mối quan hệ luồng kể từ phiên bản 10.5. Đây là một số tài liệu có liên quan từ trang web tôi liên kết đến.
Một tập hợp mối quan hệ là một tập hợp các luồng chia sẻ tài nguyên bộ nhớ và muốn chia sẻ bộ đệm L2. Các bộ ái lực riêng biệt đại diện cho các mối quan hệ riêng biệt, đó là, các luồng thuộc một bộ khác nên sử dụng bộ đệm L2 riêng và do đó được chạy trên một bộ xử lý logic khác.
Một bộ ái lực được xác định bởi một "thẻ". Chủ đề được gán cho một mối quan hệ cụ thể bằng cách gán cho nó thẻ xác định bộ đó. Một chủ đề có thể thuộc tối đa một bộ ái lực; đó là, nó có một thẻ ái lực.
Ví dụ, một ứng dụng muốn chạy 2 luồng trên bộ đệm L2 riêng biệt sẽ đặt các luồng có các thẻ có ái lực khác nhau. Trên một máy lõi kép, mối quan hệ này sẽ bị bỏ qua một cách hiệu quả. Tuy nhiên, trên MacPro 4 lõi, bộ lập lịch sẽ cố gắng chạy các luồng trên các gói riêng biệt. Tương tự, trên MacPro 8 lõi, bộ lập lịch sẽ cố gắng chạy các luồng này trên các khuôn riêng biệt (có thể có hoặc không có trong cùng một gói CPU vật lý).
Một ứng dụng muốn đặt một luồng trên mỗi bộ xử lý có sẵn sẽ làm như sau:
- Lấy số lượng bộ xử lý trên hệ thống bằng sysctl (3).
- Tạo số lượng chủ đề.
- Đặt mỗi luồng với một thẻ ái lực riêng biệt.
- Bắt đầu tất cả các chủ đề.
Các chủ đề với chính sách mối quan hệ mặc định sẽ được lên lịch tự do hơn trên bất kỳ bộ xử lý nào. Các luồng này sẽ được ưu tiên di chuyển để chạy trên bộ xử lý nhàn rỗi. Chủ đề với các thẻ mối quan hệ sẽ có xu hướng vẫn ở vị trí.
Tham khảo nguồn cho danh sách mã và thông tin về việc chia sẻ thẻ mối quan hệ giữa các tiến trình cha và con, có được cấu hình bộ đệm CPU và hơn thế nữa.
http://developer.apple.com/mac/l Library / releasenotes / Formformance / RN-AffinityAPI /
Mac OS X không xuất giao diện xác định bộ xử lý hoặc điều khiển vị trí luồng Chủ đề rõ ràng cho chủ đề ràng buộc bộ xử lý không được hỗ trợ . Thay vào đó, kernel quản lý tất cả các vị trí luồng. Các ứng dụng hy vọng rằng trình lập lịch biểu, trong hầu hết các trường hợp, sẽ chạy các luồng của nó bằng cách sử dụng vị trí bộ xử lý tốt liên quan đến mối quan hệ bộ đệm.
Từ http://images.apple.com/macosx/docs/OSX_for_UNIX_Users_TB_July2011.pdf
• Chủ đề hạt nhân hiệu quả. Mỗi luồng POSIX được xếp hàng trên một CPU cụ thể, cải thiện mối quan hệ và khả năng mở rộng của bộ xử lý trong khi giảm sự tranh chấp khóa. Các chủ đề phù hợp với POSIX (1c), bao gồm hỗ trợ cho việc hủy bỏ và các trường hợp bị chia sẻ.
Có vẻ như quảng cáo với tôi, iMac chạy Lion của tôi có vẻ tôn trọng điều đó hầu hết thời gian, nhưng nó không phải là quá trình cốt lõi.
Tôi không thể tìm thấy bất kỳ API nào để kiểm soát mối quan hệ quá trình cho darwin.