정의
주기 태스크 모델은 워크로드를 태스크의 정적 집합으로 보고, 각 태스크가 일정한 간격을 두고 job의 무한열을 낳는다고 기술하는 워크로드 모델이다.[1]
실시간 워크로드는 한 번 실행되고 끝나지 않는다. 같은 코드가 센서 주기에 맞춰 계속 다시 도는 것이 보통이고, 그래서 워크로드를 기술하려면 실행 한 번이 아니라 반복 자체를 파라미터로 잡아야 한다. 주기 태스크 모델은 그 반복을 도착 간격 하나로 요약하며, 실시간 스케줄링 참조 모델에서 워크로드 축을 채우는 가장 널리 쓰이는 모델이다.[1]
job과 태스크
태스크는 반복의 단위이고, job은 그 반복이 낳은 실행 한 단위다. 주기 태스크 는 job의 무한열로 다뤄지며, 첫 job은 태스크 위상 에 release되고 번째 job은 에 release된다. 각 job은 최악 실행 시간 와 상대 데드라인 , 그리고 자신의 release 시각에서 정해지는 절대 데드라인 로 특징지어진다.[2]
한 job이 실제로 도는 시간은 실행마다 다를 수 있지만 정의상 최악 실행 시간을 넘지 않는다.[3] 시간 축 위에서 실행되는 것은 태스크 자체가 아니라 태스크가 낳는 job이고, 태스크는 그 job들이 어떤 규칙으로 나타날지를 미리 알려 주는 기술인 셈이다.
release 패턴
같은 파라미터를 써도 job이 나타나는 방식은 갈린다. 주기 태스크의 도착은 위 식대로 정확히 간격을 지키지만, sporadic 태스크는 만 보장한다 — 여기서 는 주기가 아니라 최소 도착 간격이고, 그 간격만 지나면 다음 job은 아무 때나 도착할 수 있다.[3][1]
aperiodic 태스크는 도착 간격이 불규칙하고 하한도 없다. 이런 태스크는 조작자 입력 같은 임의 사건을 처리하는 자리에 쓰이며 보통 soft 데드라인을 갖는데, 도착 간격에 하한이 없으면 데드라인을 항상 지키겠다는 보장 자체가 불가능하기 때문이다. 같은 불규칙한 도착이라도 최소 도착 간격이 보장되면 hard 데드라인을 붙일 수 있고, 그 경우를 sporadic이라 부른다.[4]
파라미터 표기
태스크 집합은 태스크마다 (최악 실행 시간, 상대 데드라인, 주기) 3-튜플을 늘어놓아 적는다. 상대 데드라인이 주기와 같은 implicit deadline이면 데드라인 항이 잉여이므로 (최악 실행 시간, 주기) 2-튜플로 줄여 쓴다.[3] 데드라인과 주기의 관계가 만드는 유형 구분은 데드라인에서, 실행 시간 파라미터를 어떻게 정하는지는 최악 실행 시간에서 다룬다.
파라미터에서 바로 얻어지는 값도 있다. 태스크의 이용률 는 이며 그 태스크가 쓰는 프로세서 시간의 비율을 뜻하고, 태스크 집합 전체의 이용률은 그 합이다.[2] 이용률로 스케줄가능성을 판정하는 방법은 이용률 상한에서 다룬다.
위상은 태스크 집합의 성격도 가른다. 모든 태스크가 동시에 도착하는 시점이 있는 집합을 synchronous, 도착 시각이 고정된 오프셋만큼 어긋나 있는 집합을 asynchronous라 한다.[1]
모델이 성립하는 조건
이 모델의 골격은 1973년 Liu와 Layland의 논문에서 나왔다. 그 논문은 hard 데드라인을 가진 요청이 모두 주기적이고 간격이 일정하며, 각 태스크는 다음 요청이 오기 전에 끝나야 하고, 태스크끼리 요청이 서로를 유발하지 않으며, 실행 시간은 태스크마다 일정하다고 놓았다. 실행 시간을 최대 처리 시간으로 읽으면 후속 요청의 부기 비용과 선점 비용까지 그 안에 넣을 수 있고, 그 결과 태스크 하나가 주기와 실행 시간 두 수로 완전히 특징지어진다.[5]
이 기술이 오프라인 분석의 근거가 된다. 실행 전에 job의 정확한 도착 시각이나 실제 실행 시간을 아는 것은 미래를 내다보는 알고리즘에나 가능한 일이고, 모델이 주는 것은 그 대신 도착 간격의 하한과 실행 시간의 상한이다.[1] 이 두 경계만으로 최악의 상황을 상정해 판정하는 절차는 스케줄가능성 분석에서 다룬다.