정의
데드라인은 job이 완료되어야 하는 시각이다. 태스크에 붙는 상대 데드라인은 job을 깨운 자극이 들어온 뒤 계산을 마치기까지 허용되는 최대 지연이다.[1]
hard 실시간 시스템의 설계 제약은 한 문장으로 요약된다 — 모든 태스크의 모든 job이 각자에게 배정된 상대 데드라인 안에 계산을 마쳐야 하고, 그러지 못하는 것은 곧 시스템의 실패다.[1] 데드라인은 그래서 실시간 시스템의 시간적 정확성이 수식으로 내려앉는 지점이고, 워크로드 모델에서 최악 실행 시간과 짝을 이루는 파라미터다.
절대 데드라인과 상대 데드라인
상대 데드라인 는 태스크에 붙는 상수이고, 절대 데드라인 는 job마다 따로 정해지는 시각이다. 둘은 job의 release 시각 로 이어진다.
같은 태스크의 job들은 상대 데드라인을 공유하지만 절대 데드라인은 저마다 다르다.[2] 이 절대 데드라인을 실행 중에 비교해 job을 고르는 방식은 Earliest Deadline First에서 다룬다.
주기 대비 유형
상대 데드라인과 주기의 관계는 세 단계로 나뉜다. implicit deadline은 데드라인이 주기와 같은 경우이고, constrained deadline은 데드라인이 주기 이하인 경우이며, arbitrary deadline은 둘 사이에 아무 관계도 걸지 않아 데드라인이 주기보다 클 수도 있는 경우다.[3] 어느 유형인지는 주기 태스크 모델의 파라미터가 결정한다.
셋의 차이는 표기가 아니라 분석 난이도로 나타난다. 데드라인이 주기보다 크면 앞선 job이 끝나기 전에 다음 job이 도착할 수 있어 한 태스크의 job이 동시에 여럿 살아 있게 되고, 판정은 job 하나가 아니라 그 job들의 연쇄를 봐야 한다.[4]
hard와 soft
데드라인은 위반의 귀결로도 나뉜다. hard 데드라인은 지키지 못하는 것이 곧 시스템의 실패인 경우이고, soft 데드라인은 위반이 서비스 품질 저하로만 이어지는 경우다.[5]
soft 데드라인을 쓰는 시스템의 요구사항은 “언제나 지킨다”가 아니라 다른 형태로 적힌다. job이 데드라인을 넘겨 완료되는 최대 지연을 제한하거나, 연속한 job 여러 개 가운데 위반이 몇 개까지 허용되는지를 적거나, 위반 확률의 상한을 두는 식이다.[1] 이 가운데 위반 개수를 제한하는 형태는 제어 시스템의 안정성을 보장하는 조건으로 쓰인다.
데드라인 미스 이후
hard 데드라인을 쓰는 시스템이라도 위반이 곧 정지로 이어지게 설계하지는 않는다. 오프라인 판정이 통과했더라도 모델이 놓친 효과나 하드웨어 고장으로 위반은 일어날 수 있으므로, 위반 뒤에도 데이터가 일관된 상태로 남아 저하 모드로 실행을 이어 갈 수 있게 만드는 것이 설계 규범이다.[1]
데드라인을 지킬 수 있는지 판정하는 절차는 스케줄가능성 분석이 다루고, 데드라인의 길이를 우선순위로 옮기는 배정 정책은 고정 우선순위 스케줄링이 다룬다.