4.3. 실시간 스케줄러 우선순위
systemd 명령을 사용하여 부팅 프로세스 중에 시작된 서비스의 실시간 우선 순위를 설정할 수 있습니다. 일부 커널 스레드에는 매우 높은 우선 순위가 제공될 수 있습니다. 이 구성을 통해 기본 우선순위는 RTSJ(Real Time Specification for Java)의 요구 사항과 잘 통합됩니다. RTSJ에는 10에서 89까지 다양한 우선순위가 필요합니다.
RTSJ를 사용하지 않는 배포의 경우 90 미만의 스케줄링 우선 순위는 애플리케이션에서 사용할 수 있습니다. 필수 시스템 서비스가 실행되지 않도록 할 수 있으므로 우선 순위 49 이상의 애플리케이션 스레드를 예약할 때는 주의해야 합니다. 이로 인해 차단된 네트워크 트래픽, 차단된 가상 메모리 페이징, 차단된 파일 시스템 저널링 등 예기치 않은 동작이 발생할 수 있습니다.
애플리케이션 스레드가 우선 순위 89 이상으로 예약된 경우 스레드가 매우 짧은 코드 경로만 실행해야 합니다. 이렇게 하지 않으면 RHEL for Real Time 커널의 짧은 대기 시간 기능이 손상되었습니다.
4.3.1. 필수 권한 없이 사용자의 실시간 우선 순위 설정 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 애플리케이션에 대한 root 권한이 있는 사용자만 우선 순위 및 스케줄링 정보를 변경할 수 있습니다. root 권한을 제공하기 위해 설정을 수정할 수 있으며 기본 방법은 사용자를 realtime 그룹에 추가하는 것입니다.
/etc/security/limits.conf 파일을 편집하여 사용자 권한을 변경할 수도 있습니다. 그러나 이로 인해 중복이 발생하고 일반 사용자에게는 시스템을 사용할 수 없게 될 수 있습니다. 이 파일을 편집하려면 주의해야 하며 변경하기 전에 항상 복사본을 만듭니다.