Ưu tiên và mối quan hệ của Windows là gì và nó cung cấp những gì?


9

Chính xác thì Ưu tiên và Mối quan hệ (được tìm thấy trong Trình quản lý tác vụ) là gì và chúng được sử dụng để làm gì:

Tìm thấy trong Trình quản lý tác vụ

Trong những tình huống nên / có thể sử dụng chúng và những lợi thế nào được tìm thấy trong khi tùy chỉnh các cài đặt này.

Câu trả lời:


3

Đặt mối quan hệ sẽ làm một cái gì đó, nhưng bạn sẽ không bao giờ muốn sử dụng nó.

Đặt mối quan hệ CPU buộc Windows chỉ sử dụng CPU (hoặc lõi) đã chọn. Nếu bạn đặt mối quan hệ với một CPU, Windows sẽ chỉ chạy ứng dụng đó trên CPU đó, không bao giờ trên bất kỳ ứng dụng nào khác.

Windows tự động đặt các ứng dụng chạy trên bộ xử lý ít bận rộn nhất, do đó, việc giới hạn nó trong một CPU không cho phép Windows thực hiện công việc của mình. Ngay cả khi CPU / lõi 1 đang bận chạy các ứng dụng khác, Windows sẽ không thể chạy một ứng dụng có ái lực được đặt trên CPU / Core 2.

Thực sự lý do duy nhất bạn muốn làm điều đó là để chạy một ứng dụng cũ không hoạt động chính xác khi chạy trên hệ thống nhiều CPU / Core.


5
> bạn sẽ không bao giờ muốn sử dụng nó. Không đúng. Nếu bạn có một ứng dụng một luồng, thì nó không thể sử dụng các luồng / lõi của CPU đến mức tối đa của chúng và Windows không thể làm gì để buộc / lừa nó. Nếu bạn có hai ứng dụng một luồng, bạn có thể yêu cầu Windows mỗi ứng dụng sử dụng một luồng / lõi riêng để thay vì có tổng mức sử dụng CPU khoảng 50-75%, bạn có thể tăng tối đa 100% (mỗi lõi được sử dụng tối đa bởi một chương trình). Vì vậy, có, bạn thực sự có thể sử dụng cài đặt, nhưng đó là một kịch bản cụ thể mà hầu hết mọi người sẽ không biết / nhận ra / cần.
Synetech

2
Nếu bạn có hai ứng dụng luồng đơn, Windows sẽ chạy từng ứng dụng trên một luồng / lõi khác nhau và bạn sẽ nhận được mức sử dụng CPU 100% mà không cần thiết lập mối quan hệ. Để kiểm tra, tôi chỉ chạy 4 phiên bản của một chương trình luồng đơn trên máy 4 lõi của mình và sử dụng CPU 100%. Windows đủ thông minh để lên lịch cho CPU một cách hiệu quả.
shf602

Tôi đoán nó phụ thuộc vào hệ thống và / hoặc phiên bản Windows. Tôi đã thấy nó (XP) di chuột cả hai lõi ở mức 50-75% trong đó cả hai quá trình được đặt thành cả hai lõi và cài đặt thủ công tối đa hóa CPU.
Synetech

@Synetech: Điều đó dường như gần như không thể. Nó sẽ phải di chuyển hai quá trình từ cốt lõi sang cốt lõi, luôn luôn cả hai cùng một lúc.
David Schwartz

Một trường hợp sử dụng hợp lệ khác cho việc này: Có những ứng dụng có thể sử dụng tất cả các CPU có sẵn và có thể ngăn các chương trình khác chạy tốt và / hoặc khiến HĐH phản ứng rất chậm với đầu vào của người dùng. Trong trường hợp này, ai đó có thể quyết định giới hạn một ứng dụng như vậy chỉ với một số CPU. Là một nhà phát triển, tôi thường xuyên sử dụng tính năng này khi định hình các ứng dụng sử dụng nhiều CPU của mình, vì hành động định hình chính nó đòi hỏi CPU.
Eyal Roth

2

Đặt mối quan hệ cho biết quá trình xử lý những gì bộ xử lý được phép chạy.

Mặc dù rất hữu ích cho một số trường hợp thích hợp, người dùng trung bình có lẽ không nên lộn xộn với nó.

Chẳng hạn, nếu một tiến trình được cho phép lõi của chính nó chạy, nó có thể chạy trong thời gian thực (gần) mà không có 70 tiện ích cửa sổ đó liên tục bị gián đoạn và hoán đổi chồng trên bộ xử lý trong lát cắt thời gian của riêng chúng. Các ứng dụng thời gian thực là điều mà các cửa sổ không bao giờ có thể làm được trước khi các hệ thống đa xử lý / đa lõi xuất hiện vì HĐH sẽ liên tục bị gián đoạn / chuyển đổi tác vụ cho ứng dụng cho mục đích riêng của nó. Điều đó giờ đây có thể khắc phục bằng cách cách ly bộ xử lý một ứng dụng thời gian thực trong khi ngăn tất cả các ứng dụng khác trong hệ thống sử dụng bộ xử lý đó. Đây là một chủ đề rất thích hợp nhưng các hệ thống như mô phỏng chuyến bay (thực), tự động hóa nhà máy và hệ thống phản hồi điều khiển phụ thuộc vào kiến ​​trúc thời gian thực để hoạt động.

Các ứng dụng chuyên sâu của bộ xử lý (như VM) có thể được tách biệt với lõi của chúng để bạn có thể sử dụng chúng mà không cần đưa phần còn lại của hệ thống vào thu thập dữ liệu. Về lý thuyết, một trình ảo hóa chạy trên bộ xử lý hỗ trợ tương tác hypanneror kim loại trần có thể đạt hiệu năng của bộ xử lý tương đương với hệ điều hành độc lập tự chạy (trừ bộ xử lý cần thiết để chạy HĐH máy chủ). Tất nhiên, trong thực tế, ngay cả một VM chạy trên lõi / bộ xử lý riêng biệt của nó vẫn sẽ cần phải chấp nhận một lượng nhỏ chi phí từ máy chủ lưu trữ hệ điều hành.

Đối với các ứng dụng xử lý một lượng lớn dữ liệu trong thông lượng, cách ly ứng dụng với bộ xử lý của riêng nó (và có khả năng vẫn sử dụng nhiều lõi) sẽ cắt giảm việc hoán đổi bộ đệm.

Các ứng dụng cũ bị hỏng khi chúng trải rộng trên nhiều bộ xử lý có thể bị giới hạn ở một lõi / bộ xử lý để khắc phục sự cố.

Nếu bạn đang thực hiện các phép đo hiệu suất trên một ứng dụng cụ thể, gần như không thể có được kết quả nhất quán trên các hệ thống khác nhau trừ khi bạn có thể cô lập quy trình bởi vì, nếu không, bạn không kiểm soát được thời gian mà HĐH cung cấp cho ứng dụng của bạn. Hầu hết mọi người đồng ý rằng việc đo hiệu năng thời gian chạy không cho kết quả tốt nhưng những người đó chưa bao giờ nghĩ rằng sự can thiệp của hệ điều hành (khiến kết quả không nhất quán) có thể bị hạn chế bằng cách sử dụng mối quan hệ.

Có rất nhiều trường hợp mà mối quan hệ là quan trọng nhưng, nếu bạn không biết chúng là gì, có lẽ bạn sẽ không cần nó.


Điều làm cho mối quan hệ trở nên ít hữu ích hơn nhiều so với suy nghĩ của nhiều người là đây là: đặt mối quan hệ quá trình của bạn với một số tập hợp con của CPU có sẵn. không tắt bất cứ thứ gì khác ra khỏi những CPU đó. Để làm điều đó, bạn phải đi đến tất cả các quy trình khác trong hệ thống để tránh chúng ra khỏi CPU mà bạn muốn có cho riêng mình. Điều đó gần như không bao giờ thực tế.
Jamie Hanrahan

Có thể sử dụng phần mềm của bên thứ 3 . Tại sao MS không bao gồm chức năng này theo mặc định là ngoài tôi.
Evan Plaice

Bởi vì, như tôi đã viết, nó không hữu ích lắm. Và nó rất dễ bị lạm dụng. Trong thực tế, kết quả thông thường của việc quá "sáng tạo" với mối quan hệ là mọi thứ không chạy khi chúng có thể. Thông thường tốt hơn là chạy một luồng trên ngoài những gì bạn nghĩ là CPU ưa thích hơn là không (sau khi bạn dại dột đặt mối quan hệ để từ chối nó truy cập vào các CPU không hoạt động). Cơ chế "bộ xử lý lý tưởng" và "bộ xử lý trước" mặc định của Windows hoàn thành sự kết hợp bộ nhớ cache tốt mà không cần công cụ cùn như vậy của mặt nạ ái lực.
Jamie Hanrahan

2

Đây là một tính năng rất hữu ích trong các kịch bản nhất định. Giả sử bạn có một ứng dụng đa luồng có xu hướng không hoạt động hoặc tích cực lấy 100% mỗi CPU trong vài phút, thực hiện tìm kiếm, xây dựng, v.v. Hãy gọi ứng dụng này là "nhật thực".

Chúng ta cũng nói rằng trong khi bạn làm việc trên ứng dụng này, bạn có một loạt các ứng dụng khác có yêu cầu cpu khiêm tốn, nhưng về cơ bản là các ứng dụng thời gian thực. Ví dụ: trong khi bạn đang sử dụng Eclipse và nó đang khởi động các bản dựng hoặc thực hiện các trình biên dịch gwt một cách ngẫu nhiên, bạn cũng đang sử dụng máy tính của mình để truyền phát nhạc hoặc thực hiện nghiên cứu trong cửa sổ trình duyệt (ví dụ: nghiên cứu nguyên nhân của sự cố xây dựng) . Chắc chắn, bạn sẽ không chết nếu âm nhạc của bạn bỏ qua hoặc trình duyệt của bạn ngừng phản hồi, nhưng điều đó thật khó chịu.

Những gì mối quan hệ cho phép bạn làm là giới hạn ứng dụng ăn cpu của bạn với 7/8 lõi để mọi người khác được đảm bảo quyền truy cập vào một cpu tương đối không sử dụng và bạn không phải liên tục phải đối phó với sự tắc nghẽn và gián đoạn đối với khả năng sử dụng mọi thứ khác trên máy tính của bạn trong khi nhật thực bị mài đi.


Bạn sẽ tốt hơn nhiều trong trường hợp này chỉ đơn giản là đặt quá trình hog CPU của bạn ở mức ưu tiên thấp.
Jamie Hanrahan

1

Ưu tiên cao hơn có nghĩa là việc xử lý một nhiệm vụ sẽ được ưu tiên hơn các nhiệm vụ ưu tiên thấp. Ví dụ: nếu bạn đang chạy một ứng dụng mà bạn yêu cầu phải rất nhạy và một loạt các quy trình không tương tác khác, thì các ưu tiên có thể đảm bảo trải nghiệm tốt hơn với quy trình ưu tiên cao của bạn.

Ví dụ: kể từ Windows Vista, Windows Media Player sẽ tự động được ưu tiên cao hơn để đảm bảo phát lại các tệp phương tiện trơn tru và liên tục, chỉ với khoảng 20% ​​thời gian CPU có sẵn cho các quy trình khác theo mặc định. Đây chỉ là một ví dụ để giúp bạn hiểu những gì ưu tiên làm. (Bạn có thể đọc thêm về các ưu tiên của Media Player trong Vista trên Technet .)

Ái lực mềm hoặc cứng có thể tăng tốc độ xử lý vì bộ nhớ cache của CPU vẫn có thể còn sót lại quá trình trong đó khi một quá trình trước đó bị gián đoạn và sau đó được tiếp tục lại sau đó.


Lời cảm ơn ngọt ngào! Vì vậy, một hướng dẫn tốt để sử dụng từ xa là gì?
James Mertz


Một hướng dẫn tốt để sử dụng mối quan hệ: "Đừng".
Jamie Hanrahan

"Chỉ có 20% thời gian CPU dành cho các quy trình khác" không phải là một mô tả chính xác. Việc triển khai thực tế là một luồng đi vào bộ lập lịch lớp đa phương tiện được phép chạy tới 80% mỗi khoảng thời gian lập lịch trong lớp ưu tiên thời gian thực. Nó không nhất thiết phải sử dụng nhiều như vậy, và nếu không. hơn 20% sẽ có sẵn cho các chủ đề khác.
Jamie Hanrahan

1

Một ví dụ hoàn hảo cho điều này là các trò chơi máy tính cũ (hoặc phần mềm khác), đặc biệt khi các trò chơi (ứng dụng) 32 bit được mô phỏng trên máy tính 64 bit hiện đại. Bằng cách thiết lập mối quan hệ với các trò chơi cũ giới hạn chúng chỉ có bốn lõi, có thể tránh được các sự cố OFTEN để cho phép các trò chơi cứng đầu bắt đầu. Một số công cụ kết xuất được sử dụng bởi các trò chơi OLD, trình chỉnh sửa video và phần mềm đồ họa được tăng tốc phần cứng hoặc phần mềm CAD, không hiểu hơn bốn lõi CPU và sẽ bị lỗi khi khởi chạy.

Tôi không tạo tài khoản chỉ để đăng bài này, để tìm cho tôi google 'kieseyhow'

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.