콘텐츠로 건너뛰기
Home » [Deos] ARINC-653 지원 특징_#2_Slack Scheduling

[Deos] ARINC-653 지원 특징_#2_Slack Scheduling

  1. Scheduling과 내재된 문제점

시간 분할 된 실시간 운영체제는 스케줄링 타임라인 내의 바인딩 된 특정한 위치에(예: Hyper-period) 제한된 시간 동안 CPU에 접근할 수 있도록 보장합니다. 이와 같은 요소는 중요도가 다양한 소프트웨어가 동일한 플랫폼에 공존해야 하는 고도로 통합된 시스템 개발을 위한 핵심 요소입니다. 중요도가 높은 계산은 중요도가 낮은 소프트웨어가 잘못 동작하는 경우에도 CPU에 대한 액세스가 보장됩니다. 즉, 중요도가 높은 애플리케이션이 worst case execution을 위해 예산을 책정함으로써 필요한 CPU 시간을 확보할 수 있습니다. 이 접근법은 worst case execution과 nominal case execution 간에 작은 편차를 갖는 periodic computation에서 잘 지원하는 솔루션을 제공합니다. 이는 곧, DO-178C에서 요구하는 취약점인 worst case execution을 극복할 수 있도록 합니다.


<그림 1. ARINC-653 Partition Scheduling에서 발생할 수 있는 문제점 예시>

그러나, 위와 같은 단순 시간 분할 된 실시간 운영체제는 위 그림처럼 nominal case execution 간에 CPU가 활용되지 않는 의미 없는 일이 발생할 수 있다.

2. Deos의 Slack scheduling

Deos의 특허 받은 slack scheduling 기술은 scheduling에서 발생할 수 있는 가장 일반적인 문제점들을 추적하고 있으며, CPU의 사용을 100% 커스터마이징 가능하도록 합니다. Slack이라는 용어는 쉽게 풀어서 CPU time budget을 저장 해 두었다가, 사용되지 않는 CPU 실행시간이 있을 경우, slack에서 꺼내 쓰는 형태라고 할 수 있습니다. Slack time은 다음 과 같은 두 경우에서 제공받을 수 있습니다.

  • 스레드를 실행하는 동안 사용되지 않는 예산 CPU 시간.
  • 할당되지 않은 CPU 시간.

저장되어 있는 Slack time은 할당되지 않은 총 CPU time과 정확히 일치하며, 이는 곧 time scheduling에서 어긋남이 없이, 낭비 없이 실행된다는 것을 의미합니다.


<그림2. Deos의 Slack Scheduling>

내용 자세히 보기 클릭