krs_setpartition 서브루틴

용도

프로세스의 파티션 자원 세트를 설정합니다.

구문

#include <sys/rset.h>
int krs_setpartition(pid, rset, flags)
pid_t pid;
rsethandle_t rset;
unsigned int flags;

설명

그만큼 krs_set파티션 서브루틴은 프로세스의 파티션 리소스 세트를 설정합니다. 서브루틴은 프로세스의 파티션 자원 세트를 제거하는 데에도 사용할 수 있습니다.

파티션 자원 세트는 프로세스의 스레드가 파티션 자원 세트에 포함된 프로세서에서만 실행되도록 제한합니다.

작업 구성요소는 프로세스 ID로 식별되는 기존 프로세스입니다. RS_MYSELF의 프로세스 ID 값은 첨부 파일이 현재 프로세스에 적용됨을 나타냅니다.

프로세스의 파티션 리소스 세트를 설정하려면 다음 조건을 충족해야 합니다.
  • 호출 프로세스에는 루트 권한이 있어야 합니다.
  • 리소스 세트에는 시스템에서 사용 가능한 프로세서가 포함되어야 합니다.
  • 새로운 파티션 자원 세트는 대상 프로세스의 유효 자원 세트와 동일하거나 상위 세트여야 합니다.
  • 대상 프로세스에는 프로세서에 대한 바인딩 프로세서 바인딩이 있는 스레드가 포함되어서는 안 됩니다.
그만큼 깃발 매개변수는 지정된 자원 세트에 포함된 자원을 사용하기 위한 정책을 나타내도록 설정할 수 있습니다. 재설정 매개변수. 지원되는 유일한 일정 정책은 다음과 같습니다.R_ATTACH_STRSET 이는 시스템의 프로세서가 실행 중인 경우에만 유용합니다. 동시 멀티스레딩 방법. 다음과 같은 프로세서POWER5 지원하다 동시 멀티스레딩 여기서 각 물리적 프로세서에는 두 개의 실행 엔진이 있습니다. 하드웨어 스레드 . 각 하드웨어 스레드는 본질적으로 단일 CPU와 동일하며, 각각은 리소스 세트에서 별도의 CPU로 식별됩니다. 그만큼R_ATTACH_STRSET 플래그는 프로세스가 단일 스레드 정책으로 예약됨을 나타냅니다. 즉, 물리적 프로세서당 하나의 하드웨어 스레드에서만 예약되어야 합니다. 이 플래그가 지정되면 자원 세트에 표시된 사용 가능한 모든 프로세서가 독점적으로 사용되어야 합니다. 라는 새로운 자원 세트 ST 리소스 세트 는 지정된 리소스 세트에서 구성되어 다음 규칙에 따라 프로세스에 연결됩니다.
  • 모든 오프라인 프로세서는 무시됩니다.
  • 물리적 프로세서의 모든 하드웨어 스레드(CPU)가 동시 멀티스레딩 모드에서는 물리적 프로세서당 하나 이상의 활성 하드웨어 스레드가 있음)가 지정된 리소스 세트에 포함되지 않으면 ST 리소스 세트를 구성할 때 프로세서의 다른 CPU가 무시됩니다.
  • ST 리소스 세트에는 물리적 프로세서당 하나의 CPU(하드웨어 스레드) 리소스만 포함됩니다.

매개변수

항목 설명
pid 파티션 자원 세트를 설정할 프로세스의 프로세스 ID를 지정합니다. RS_MYSELF 값은 현재 프로세스의 파티션 자원 세트가 설정되어야 함을 나타냅니다.
rset 설정할 파티션 자원 세트를 지정합니다. RS_DEFAULT 값은 프로세스의 파티션 자원 세트가 제거되어야 함을 나타냅니다.
플래그 프로세스에 사용할 정책을 지정합니다. R_ATTACH_STRSET 값은 프로세스가 단일 스레드 정책(물리적 프로세서당 하나의 하드웨어 스레드에서만)으로 예약됨을 나타냅니다.

리턴 값

성공적으로 완료되면, krs_set파티션 서브루틴은 0을 반환합니다. 실패할 경우 다음 중 하나 이상이 해당됩니다.
항목 설명
EINVAL R_ATTACH_STRSET 깃발 매개변수가 지정되었으며 하나 이상의 프로세서가 재설정 매개변수는 독점적으로 사용하도록 할당되지 않습니다.
ENODEV 에 의해 지정된 자원 세트 재설정 매개변수에 사용 가능한 프로세서가 포함되어 있지 않거나 R_ATTACH_STRSET 깃발 매개변수가 지정되었으며 구성된 ST 자원 세트에 사용 가능한 프로세서가 없습니다.
ESRCH 에 의해 식별된 프로세스는 PID 매개변수가 존재하지 않습니다.
실패 잘못된 주소.
ENOMEM 메모리를 사용할 수 없습니다.
EPERM 다음 중 하나가 참입니다:
  • 호출 프로세스에는 루트 권한이 없습니다.
  • 에 의해 식별된 프로세스는 PID 매개변수에는 바인드프로세서 프로세서 바인딩이 있는 하나 이상의 스레드가 있습니다.
  • 에서 식별한 프로세스 PID 매개변수에는 유효 자원 세트와 다음으로 식별되는 새 파티션 자원 세트가 있습니다. 재설정 매개변수에는 유효 자원 세트의 자원이 모두 포함되어 있지 않습니다.