코어 수와 더 높은 nice 값으로 프로세스를 실행하는 능력 사이에는 어떤 관계가 있습니까?

코어 수와 더 높은 nice 값으로 프로세스를 실행하는 능력 사이에는 어떤 관계가 있습니까?

8개의 높은 우선 순위(nice=-20) OS 스레드(내가 가지고 있는 코어 수)로 CPU를 "플러딩"하면 명백한 이유로 작업이 "일시 중지"되지만 여전히 사용할 수 있습니다.

"높은 우선순위 스레드"라고 말하는 것은 동일한 높은 우선순위 프로세스에 의해 생성된 스레드를 의미합니다.

그러나 64개의 스레드가 있으면 컴퓨터를 완전히 사용할 수 없게 됩니다. 최대 우선 순위 스레드와 코어 간 배포 사이의 관계는 무엇입니까? 주어진 좋은 값을 달성하기 위해 CPU를 완전히 플러딩하려면 얼마나 많은 스레드를 생성해야 하는지 대략적으로 계산할 수 있습니까?

답변1

적어도 직접적으로는 그런 관계가 없습니다.

nice우선순위. 친밀도가 0인 N 스레드, 친밀도가 10인 N 스레드, 친밀도가 -10인 N 스레드가 있든 예약 결과는 동일합니다.

시스템이 응답 상태를 유지하는지 여부는 사용자 입력과 같은 느린 작업에 신경 써야 하는 시간에 따라 달라집니다. 1000개의 프로세스가 있고 각각 네트워크 패킷이나 데이터가 스토리지에서 전달되기를 기다리는 경우 인간 사용자인 시스템 성능에 거의 영향을 미치지 않습니다. 존재하지만, 일어나야 할 펑키한 일을 위해 시간을 계획하는 데 시간을 빼앗기지 않습니다. 상호 작용하는 프로세스가 동일하든, 하위 프로세스든, 상위 프로세스인지에 관계없이 중요한 것은 동일한 리소스를 두고 경쟁하는지 여부입니다.

So Friendly는 실제로 CPU 코어보다 준비할 작업이 더 많을 때 다음에 실행할 사람을 정의하는 도구입니다. 작동할 준비가 된 작업 수와 PRIO_RR()가 있을 수 있는 작업과 충돌하는지 여부는 준비되었을 때 활성화가 보장되는 초당 횟수와 다른 질문입니다.

관련 정보