Linux(Raspberry Pi에 관한 내용)의 인터럽트가 처리하는 데 "오랜 시간"이 걸리거나 "프로그래머가 원하는 작업을 시작"한다고 가정해 보겠습니다. 이거 진짜야? 상황이 얼마나 나쁜가요? Python과 C 사이에 큰 차이가 있나요?
하드웨어("베어메탈")에서는 인터럽트 핸들러/함수 시작으로 점프하는 데 몇 사이클밖에 걸리지 않습니다. 그렇죠? 내가 설명하면이것맞습니다. 새로운 Raspberry Pi 4에서는 10나노초 미만이 소요됩니다. 저는 Raspberry Pi 및 기타 ARM 기반 하드웨어에 가장 관심이 있지만 다른 플랫폼에서도 데이터가 좋습니다. ARM 베어메탈이 AVR(아두이노)보다 훨씬 빠른 것 같은데..?
편집: 질문을 조금 더 명확하게 했습니다. @dirkt님 감사합니다!
보너스 질문: 운영 체제가 없는 순수 어셈블리에서는 물리적 이벤트부터 인터럽트 핸들러까지의 시간이 매번 거의 동일할 것으로 예상할 수 있습니다. Linux에는 얼마나 큰 차이가 있습니까? (커널이 다른 일을 할 수도 있기 때문입니다.)
편집 2: 이것을 찾았습니다블로그 게시물, Arduino Uno와 Raspberry Pi Zero를 비교합니다. 저자는 또한 거의 베어 메탈 AVR만큼 빠른 것으로 보이는 커널 모듈을 시도했습니다(그러나 이는 16MHz AVR 대 1GHz ARM입니다!). 이것이 ARM의 베어 메탈에 얼마나 가까운지 궁금합니다. 내 원래 질문에 매우 가깝지만 베어 메탈 ARM은 없습니다.
답변1
방금 이 글을 읽었습니다. 커널 모듈 정보. 나는 이것이 절전이 될 수 있다는 데 동의합니다. 나는 또한 이것이 다른 방해 때문일지도 모른다고 생각하고 있습니다.
커널 모듈은 베어메탈만큼 빨라야 합니다., 조건이 동일한 경우: 동일한 전원 상태, 동일한 다른 인터럽트.
커널 모듈이 시스템에 충돌을 일으킬 수 있으므로 작고 단순하게 유지하십시오.