Linux에서 실시간 애플리케이션을 실행하는 방법은 무엇입니까?

Linux에서 실시간 애플리케이션을 실행하는 방법은 무엇입니까?

Debian Jessie에서 LinuxCNC를 실행하기 위해 다음을 수행했습니다.

  • Jessie 백포트를 통해 커널 4.9 RT를 설치하려면 apt-get/aptitude를 사용하세요.
  • 컴퓨터를 다시 시작하고 uname -a포함 여부를 확인했습니다.PREEMPT RT
  • 저장소를 추가하고 다음을 사용하여 LinuxCNC를 설치하십시오.apt-get

그런 다음 linuxCNC 마법사를 시작하여(일반적으로 메뉴를 클릭하여) 지터 테스트를 수행합니다. 내 현재 결과는 약 140us로 매우 나쁩니다.

있는지 알고 싶습니다.활성화할 PREMPTION 구성또는 특정 방법애플리케이션 실행보다 정확한 실시간 성능을 얻으려면?

또한 내가 어떻게 할 수 있겠는가?프로세스가 실시간으로 실행되고 있는지 확인?

참고: 내 컴퓨터는 Intel E6600입니다.

답변1

활성화할 수 있는 PREMPTION 구성이 있는지, 아니면 더 정확한 실시간을 얻기 위해 애플리케이션을 실행하는 특정 방법이 있는지 궁금합니다.

아래를 참조하세요:

http://wiki.linuxcnc.org/cgi-bin/wiki.pl?지연 테스트

여기 링크:

https://forum.linuxcnc.org/18-computer/25927-reducing-latency-on-multicore-pc-s-success?limitstart=0

(위 페이지에서 :)

Linux 관련 변경 사항:

  • /etc/default/grub을 편집하고 커널 옵션을 추가합니다: "isolcpus=1 acpi_irq_nobalance noirqbalance"(나중에 update-grub 호출)
  • "irqbalance" 소프트웨어가 설치되어 있지 않은지 확인하고, 설치되어 있으면 삭제하십시오(Ubuntu 소프트웨어 센터 -> 설치된 소프트웨어 -> irqbalance 검색 -> 삭제).
  • /etc/init에 upstart 스크립트 "irq-affinity.conf"를 추가합니다(첨부 파일 참조, irq 처리가 첫 번째 코어로 이동됩니다).
  • sh 스크립트 set-irq-affinity 및 watchirqs를 /usr/local/sbin에 추가합니다. (첫 번째는 선호도 마스크의 수동 설정을 허용하고, 두 번째는 irq가 다른 코어에 어떻게 예약되는지 실시간으로 보여주는 콘솔 창을 엽니다 -> 모든 숫자 irq이지만 0은 CPU0에서 처리해야 함)

하지만 Système D에 맞게 스크립트를 조정해야 할 수도 있습니다.

간단한 테스트입니다. 원하는 우선순위가 있는 nice -n <x>경우 우선순위 높이기를 사용할 수도 있습니다.<x>

또한 프로세스가 실시간으로 실행되고 있는지 어떻게 확인할 수 있나요?

이 질문을 보세요:Linux의 실시간 프로세스 스케줄링

관련 정보