9장. RHEL for Real Time의 유사성
실시간으로 시스템의 모든 스레드 및 인터럽트 소스에는 프로세서 선호도 속성이 있습니다. 운영 체제 스케줄러는 이 정보를 사용하여 어떤 CPU에서 실행할 스레드 및 인터럽트를 결정합니다.
실시간으로 유사성은 비트 마스크로 표시됩니다. 여기서 마스크의 각 비트는 CPU 코어를 나타냅니다. 비트가 1로 설정되면 스레드 또는 인터럽트가 해당 코어에서 실행될 수 있습니다. 0인 경우 스레드 또는 인터럽트는 코어에서 실행되지 않습니다. 선호도 비트 마스크의 기본값은 모두이므로 스레드 또는 인터럽트는 시스템의 모든 코어에서 실행될 수 있습니다.
기본적으로 프로세스는 모든 CPU에서 실행할 수 있습니다. 그러나 프로세스의 선호도를 변경하여 사전 정의된 CPU에서 프로세스를 실행하도록 프로세스에 지시할 수 있습니다. 하위 프로세스는 상위 프로세스의 CPU 특성을 상속합니다.
보다 일반적인 선호도 설정 중 일부는 다음과 같습니다.
- 모든 시스템 프로세스에 대해 하나의 CPU 코어를 예약하고 나머지 코어에서 애플리케이션을 실행할 수 있습니다.
-
동일한 CPU에서 스레드 애플리케이션 및 지정된 커널 스레드(예: 네트워크
softirq또는 드라이버 스레드)를 허용합니다. - 각 CPU의 쌍 생산자 및 소비자 스레드.
선호도 설정은 좋은 예상 동작을 위해 프로그램과 함께 설계되어야 합니다.
9.1. 프로세서 유사성 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 프로세스는 모든 CPU에서 실행할 수 있습니다. 그러나 프로세스의 선호도를 변경하여 사전 정의된 CPU에서 실행되도록 프로세스를 구성할 수 있습니다. 하위 프로세스는 상위 프로세스의 CPU 특성을 상속합니다.
시스템에서 기능 조정에 대한 실시간 관행은 애플리케이션을 실행하는 데 필요한 코어 수를 확인한 다음 해당 코어를 격리하는 것입니다. 이는 Tuna 툴을 사용하거나 쉘 스크립트를 사용하여 비트마스크 값을 수정할 수 있습니다.
taskset 명령은 프로세스의 선호도를 변경하고 /proc/ filesystem 항목을 수정하면 인터럽트의 선호도를 변경할 수 있습니다. p 또는 --pid 옵션과 함께 taskset 명령을 사용하고 프로세스의 PID(프로세스 ID)를 사용하여 프로세스의 선호도를 확인합니다.
-c 또는 --cpu-list 옵션은 비트마스크 대신 코어 수 목록을 표시합니다. 특정 프로세스를 바인딩할 CPU 수를 지정하여 선호도를 설정할 수 있습니다. 예를 들어 CPU 0 또는 CPU 1을 이전에 사용한 프로세스의 경우 CPU 1에서만 실행할 수 있도록 선호도를 변경할 수 있습니다. taskset 명령 외에도 sched_setaffinity() 시스템 호출을 사용하여 프로세서 선호도를 설정할 수도 있습니다.