2017-02-06 1 views
0

하드웨어와 같은 다른 변수와 요인이있을 때 어떻게 인터럽트 대기 시간이 특정 값을 초과하지 않도록 할 수 있습니까?무엇이 RTOS 동작을 예측 가능하게합니까?

+0

제목은 한 가지만 묻고, 몸체는 다른 것을 묻습니다. 인터럽트 대기 시간은 특히 RTOS 동작과 관련이 없으며 대부분 RTOS와 독립적입니다. 그래서 당신이 무엇을 요구하고 있는지 명확하지 않습니다. 두 개의 별개의 질문으로 보입니다. 나는 대답 할 것이지만, 나는 어떤 질문을해야할지 모른다. – Clifford

답변

1

하드웨어 대기 시간을 예측할 수 있습니다. 상수 일 필요는 없지만 확실히 한정되어 있습니다. 예를 들어 인터럽트 입력은 일반적으로 12 사이클이지만 때로는 15 사이클이 걸릴 수도 있습니다.

RTOS 대기 시간을 예측할 수 있습니다. 또한 일정하지 않지만, 예를 들어, RTOS가 언제든지 1000 사이클 이상 동안 인터럽트를 차단하지 않는다는 것을 확신 할 수 있습니다. 대개는 짧은 시간 동안 차단되지만 결코 진술되지 않습니다.

응용 프로그램 만이 이상한 일을하지 않으면 (예 : 우선 순위가 가장 높은 스레드의 while (1);) 전체 시스템의 대기 시간은 하드웨어 대기 시간과 RTOS 대기 시간의 합계가됩니다.

여기서 중요한 사실은 실시간 운영 체제를 사용하여 응용 프로그램을 작성하는 것이 응용 프로그램이 실시간이어야한다는 유일한 요구 사항이 아니라는 것입니다. 응용 프로그램에서 실시간 제약 조건을 위반하지 않도록해야합니다. RTOS의 주된 업무는 이 아니라으로 진행되므로 임의/예측할 ​​수없는 지연이 발생할 수 있습니다.

일반적으로 RTOS의 "예측 가능한"것들 중 가장 중요한 것은 차단되지 않은 최상위 우선 순위 스레드가 실행되고 있다는 것입니다. 기간. 데스크톱 컴퓨터, 태블릿 또는 스마트 폰과 같은 GPOS에서는 스케쥴러가 우선 순위가 낮은 스레드가 기아 상태를 방지하기 위해 더 중요한 작업이 있더라도 일정 시간 동안 실행하도록 허용하기 때문에 이는 사실이 아닙니다. 지금 할 일. 스케줄러가 로그를 하드 드라이브에 저장하거나 일부 가비지 수집을 수행하는 것이 가장 좋은시기이기 때문에 어느 날 10 초 이내에 반응 할 수 있고 다른 날에는 10 초 이내에 반응 할 수 있기 때문에 응용 프로그램의 동작을 예측할 수 없게 만듭니다 .

또는 RTOS의 대기 시간은 마이크로 초 범위 (1 밀리 초) 일 가능성이 있습니다. GPOS의 경우 대기 시간은 수십 초 정도 일 것입니다.

+0

답변 해 주셔서 감사합니다. "응용 프로그램에서 실시간 제약 조건을 위반하지 않도록해야합니다"이러한 제약 조건은 무엇입니까? 당신은 지점을 나에게 가로 질러 밀어주는 모범을 줄 수 있냐?? –

+1

@FebinSunny - 응용 프로그램에서 1ms의 대기 시간이 필요한 경우, 그 이상인 중요한 영역을 두거나 (인터럽트를 비활성화하거나 스케줄러를 일시 중지하여) 해당 제약 조건을 위반할 수 있습니다. 또한 스레드에 잘못된 우선 순위를 할당하여 위반할 수 있습니다 (가장 중요한 스레드가 최우선 순위를 갖지 않도록). 일반적으로 마감일이 맞는지 확인하기 위해 일별 분석 (예 : 요율 - 단조 분석)을 수행해야합니다. RTOS만이 가능합니다. –

+0

다른 말로, RTOS의 "실제 시간"을 결정하는 주요 측정법은 완료 할주기의 주기성의 가변성입니다. 이를 일반적으로 지터라고합니다. 지터가 낮을수록 RTOS의 결정 성이 낮아집니다. – endTunnel