41
Embedded System Lab. II MicroC MicroC /OS /OS - - II II Concept of Real Time System Concept of Real Time System 경희대학교 컴퓨터공학과 조진성

MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II

MicroCMicroC/OS/OS--IIIIConcept of Real Time System Concept of Real Time System

경희대학교 컴퓨터공학과

조 진 성

Page 2: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 1

ContentsContentsForeground/Background SystemCritical SectionResourceShared ResourceMultitaskingTaskContext SwitchKernelNon-Preemptive KernelPreemptive KernelReentrancy

Page 3: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 2

ContentsContentsPriority

Static Priorities Dynamic PrioritiesPriority Inversions

Mutual ExclusionDisable Interrupt Test-And-SetDisable SchedulingSemaphore

DeadlockSynchronizationEvent FlagsInterTask CommunicationInterruptsClock Tick

Page 4: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 3

Real Time SystemReal Time SystemReal Time System시스템이 논리적으로 완벽하게 동작해야 함은 물론이고 정해진 시간 내에동작하지 않을 경우 심각한 결과가 발생하는 시스템을 말한다.

리얼타임 시스템은 소프트(Soft)와 하드(Hard) 리얼타임 시스템으로 분류

Soft Real Time System소프트리얼타임시스템은가능한한빠르게임무를수행하지만반드시정해진시간내에수행할필요는없는시스템

Hard Real Time System하드리얼타임시스템은어떤사건이발생했을때정확히동작하는것은물론이고반드시정해진시간내에그임무를끝내야하는시스템

Page 5: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 4

Foreground / Background System Foreground / Background System Foreground 전경 프로세스는 인터럽트 레벨이라고 부르며, 인터럽트 서비스 루틴(Interrupt Service Routine, ISR)을 통하여 비동기적으로 발생하는이벤트를 처리한다.

Background배경프로세스는태스크레벨이라고부르며, 응용프로그램은요구되는동작을수행하기위해서특정한모듈이나함수를호출하는무한루프로구성된다.

Page 6: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 5

Foreground / Background System (ContForeground / Background System (Cont’’d) d) Non-multitasking System전형적인시스템

Page 7: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 6

Foreground / Background System (ContForeground / Background System (Cont’’d) d) Kernel 기반시스템

Page 8: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 7

Foreground / Background System (ContForeground / Background System (Cont’’d)d)Example of Foreground/Background Program

/* Background */void main (void){초기화;while(1){아날로그 입력을 읽는다;디지털 입력을 읽는다;모니터링 기능 수행;제어 기능 수행;아날로그 출력 갱신;디지털 출력 갱신;키보드 스캔;사용자 인터페이스 처리;표시장치 갱신;통신 요구 처리;기타...}}

/* Foreground */ISR1 (void){비동기 이벤트 처리;

}

ISR2 (void){비동기 이벤트 처리;

}

Page 9: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 8

Critical SectionCritical SectionCritical Section다른 process 나 task에의해서중단되어서는안되는일련의명령혹은코드의블럭을말한다

Critical Region 이라고도 한다.(Atomic)Critical Section 코드를실행할때는인터럽트가절대로발생하지않아야한다. (disabled)

.

.g_TotalCnt = g_TotalCnt +1;..

.

.Load Rx, [g_TotalCnt]Inc RxStore [g_TotalCnt], Rx..

Page 10: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 9

Resource & Shared Resource & MultitaskingResource & Shared Resource & MultitaskingResource

Process 나 Task가사용하는모든요소를말하며, 프린터, 키보드, 디스플레이와같은 I/O 장치, 변수, 구조체, 또는배열이될수도있다.

Shared Resource하나이상의 process나 Task가공통적으로사용할수있는 ResourceData corruption 을막기위해서각 Task는미리해당자원에대한 exclusive access 를얻어야한다.

Multitasking여러 Process 나 Task의실행순서를결정하고태스크사이의 CPU 사용권을전환하는일련의동작

Page 11: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 10

TaskTaskTask

Task는 ‘Thread’라고도불리기도하며, CPU를획득하여수행되는간단한프로그램이다.각 Task는우선순위, 고유한 CPU 레지스터집합, 고유스택을할당받는다.Task는다음의상태중한상태를갖는다.

인터럽트가일어나고 CPU 가인터럽트서비스를수행할때INTERRUPTED

Event의발생을기다림(I/O의종료, 공유자원등)WAITING

얼마의시간동안작업이중지DELAYED

CPU 를획득하여실제로수행되고있는상태RUNNING

수행될수는있지만현재수행되는 Task보다 priority 가낮을때READY

메모리에는존재하지만수행될수있는상태는아님DORMANT

DescriptionState

Page 12: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 11

Task (ContTask (Cont’’d) d) Task

Page 13: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 12

Task (ContTask (Cont’’d)d)

Task Transition

Page 14: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 13

Context SwitchContext SwitchContext Switch

Kernel 이동작하여실행중인 Task의실행을멈추고다른 Task를실행하도록하는과정

Kernel이다른 Task를실행하기로결정하면현재태스크의문맥을저장하고새로실행할태스크의문맥을해당스택으로부터복구한다.Context Switch는 CPU에오버헤드를부과한다.CPU 레지스터가많을수록오버헤드는증가한다.

Page 15: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 14

KernelKernelKernel

Multitasking 시스템에서 Task 관리와 Task간통신을관장하는핵심부분Kernel이제공하는가장기본적인서비스는 Context Switching 이다.Context Switch는 CPU에오버헤드를부과한다.CPU 레지스터가많을수록오버헤드는증가한다.

SchedulerDispatcher라고도하는 Scheduler는 Kernel의일부이며, 다음번으로실행할Task를결정하는일을한다.대부분의 Real Time Kernel에서는우선순위를기준으로결정하며,각 Task는그중요성에따라우선순위가배정된다.우선순위기반의 Kernel에서는비선점형(Non-Preemptive)과선점형(Preemptive) 두종류가있다.

Page 16: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 15

NonNon--Preemptive KernelPreemptive KernelNon-Preemptive Kernel어떤 Task가수행되고있을때 kernel이중간에그 Task의수행을중지시키고다른 task를수행시킬수있는능력이없다. 다른말로 cooperative multitasking이라고도한다.태스크가 CPU 소유권을넘겨줄때는 Kernel 서비스를명시적으로호출한다.비동기적이벤트(Interrupt)는 ISR이처리하며, ISR은항상인터럽트가발생한태스크로되돌아온다.

장점인터럽트지연시간이짧다.Task 레벨에서비재진입(Non-reenact)함수를사용할수있다.세마포어를사용해서공유데이터를보호할필요가줄어든다.

단점현재실행중인 Task가 CPU를자발적으로양도해야하기때문에상위우선순위의태스크가실행준비상태가되더라도실제로실행될때를기다려야한다. -> 응답성

Page 17: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 16

NonNon--Preemptive Kernel (ContPreemptive Kernel (Cont’’d)d)

Page 18: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 17

Preemptive KernelPreemptive KernelPreemptive Kernel시스템의응답성이중요한경우에사용된다.CPU의제어권은실행준비가된최상위우선순위 Task로항상넘어간다.ISR이최상위우선순위 Task를실행준비상태로만들면, ISR이종료될때인터럽트가발생했던 Task는중단되고새로운상위우선순위 Task가수행된다.

Page 19: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 18

ReentrancyReentrancyReentrancy한함수를여러개의 Task가사용할수있다.

Reentrant functionReentrant function은항상인터럽트를허용하며, 인터럽트나커널에의해선점된뒤에도데이터의손실없이다시시작될수있다.가능한한지역변수를사용하되, 전역변수를사용해야한다면보호방법이필요하다.

Page 20: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 19

PriorityPriorityTask Priority스케줄러가 다음 실행할 태스크를 결정할 때 사용하는 태스크 고유의 파라미터

중요한일을수행하는태스크일수록더높은우선순위를갖도록한다.

Static Priority응용프로그램이실행되는동안, Task의우선순위를바꿀수없다면 Task의우선순위는정적(Static)이다.각 Task는컴파일시정적(Static) 우선순위가배정된다.

Dynamic Priority각태스크의우선순위는응용프로그램실행도중바꿀수있다.우선순위전도문제를회피하기위해필요한실시간커널의기능

Page 21: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 20

Priority (ContPriority (Cont’’d)d)Priority Inversions높은 priority 의 Task가어떤자원을사용할준비가되어있을때낮은 priority 의Task가자원을놓지않을때발생하는상황

우선순위전도문제

Page 22: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 21

Priority (ContPriority (Cont’’d)d)

우선순위상속을지원하는커널

Page 23: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 22

Mutual ExclusionMutual ExclusionMutual Exclusion여러 Task 들이공유자원에접근할때데이터손상을방지하기위해상호배제(Mutual Exclusion)가보장되어야한다.

Mutual Exclusion을위한일반적인방법Interrupt 활성화/비활성화Test-And-Set(TAS) 수행Scheduling 활성화/비활성화Semaphore

Page 24: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 23

Mutual Exclusion (ContMutual Exclusion (Cont’’d)d)Interrupt 활성화/비활성화공유자원의 독점적인 액세스를 얻을 수 있는 가장 쉬우면서 빠른 방법

인터럽트의 비활성화 기간이 너무 길면 시스템의 응답성에 영향을 주므로주의해야 한다.

Disable interrupt;Access the resource(Read/Write from/to variables);Enable interrupt;

OS_ENTER_CRITICAL();Access the resource(Read/Write from/to variables);OS_EXIT_CRITICAL();

의사코드 MicroC/OS

Page 25: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 24

Mutual Exclusion (ContMutual Exclusion (Cont’’d)d)Test And Set (TAS)주로 Foreground/Background 시스템에서사용하는방법으로원리는세마포어와같다.

Disable interrupt;if(‘Access variable’ is 0){

Set variable to 1;Enable interrupt;Access the resource;Disable interrupt;Set the ‘Access variable’ back to 0;Enable interrupt;

}else{Enable interrupt;/* You don’t have access to the resource, try back later */

}

Page 26: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 25

Mutual Exclusion (ContMutual Exclusion (Cont’’d)d)Scheduling 활성화/비활성화

ISR과 Task가공유하는자원에대해사용할수없다.스케줄러가비활성화된동안이라도인터럽트는처리된다.ISR은처리가끝난뒤항상인터럽트가발생했던 Task로돌아간다.권장하지않음. 세마포어사용이더바람직하다.

OSSchedLock();Access the resource (interrupts are allowed);OSSchedUnlock();

Page 27: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 26

Mutual Exclusion (ContMutual Exclusion (Cont’’d)d)Semaphore용도공유자원에대한접근을제어(상호배제)이벤트발생을알림

태스크간의동작을동기화함

코드를 실행하기 위해 얻어야 하는 열쇠로 생각할 수 있다.

MicroC/OS에서는 Binary, Counting Semaphore를모두지원한다.Semaphore에행하는기본적인 3가지 operation초기화(Create), 대기(Pend), 신호(Signal)

Page 28: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 27

DeadlockDeadlockDeadlock교착상태는두 Task가각자다른 Task에서쓰고있는자원을무한정기다리는상태를말한다.

교착상태를피하는간단한방법

Task를진행하기전에필요한모든자원을획득한다.순서대로자원을획득한다.역순으로자원을획득한다.

Page 29: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 28

SynchronizationSynchronizationSynchronization

ISR과태스크를동기화하기위해세마포어를사용할수있다. 이때세마포어카운터를 반드시 0으로초기화해야한다.

단방향(Unilateral) 동기화ISR에서태스크로, 태스크에서태스크로

양방향(Bilateral) 동기화태스크와태스크사이에서만가능

Page 30: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 29

Event FlagsEvent FlagsEvent Flags

Task가여러개의이벤트에동기화하고자할때는 Event Flags를사용분리동기화와결합동기화가있다.Event Flags를지원하는커널은 Event Flags를켜고(SET), 끄고(CLEAR), 대기(WAIT)할때사용하는서비스를제공한다.

Page 31: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 30

InterTaskInterTask CommunicationCommunicationInterTask Communication

Task 사이에서는다음을이용해서통신할수있다.전역변수

메시지

Task와 ISR 사이의통신은전역변수를통해서만가능하다.

Message Mail Box Message Queue

Page 32: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 31

InterruptsInterruptsInterrupts비동기적인이벤트가발생한것을 CPU에게알려주는하드웨어메커니즘CPU가 Interrupt를인식하면인터럽트벡터를참조해서해당 ISR로점프한다.ISR은가능한한짧아야한다. 실행시간이길경우들어오는데이터를잃어버릴수있다.ISR이이벤트를처리하고종료될때, 다음중한곳으로리턴

Foreground/Background에서의 Background TaskNon-Preemptive Kernel일경우, Interrupt가발생한 TaskPreemptive Kernel일경우, 실행준비상태가된최상위우선순위 Task

Page 33: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 32

Interrupts (ContInterrupts (Cont’’d)d)Interrupt 처리시간

Interrupt LatencyInterrupt가비활성화된최대시간 + ISR에서최초명령을시작하려는시간

Interrupt ResponseInterrupt 지연시간 + CPU 문맥을저장하는시간

Interrupt RecoveryCPU 문맥을복구하는시간 + Interrupt로부터복귀명령실행시간

Page 34: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 33

Interrupts (ContInterrupts (Cont’’d)d)

Interrupt Latency, Response, Recovery (Fore/Background)

Page 35: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 34

Interrupts (ContInterrupts (Cont’’d)d)

Interrupt Latency, Response, Recovery (Non-preemptive)

Page 36: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 35

Interrupts (ContInterrupts (Cont’’d)d)

Interrupt Latency, Response, Recovery (Preemptive)

Page 37: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 36

Clock TickClock TickClock Tick시간의기본단위(Tick)Hardware적인 Timer로발생시스템에서주기적으로발생하는특별한인터럽트로시스템의 Heartbeat의역할을한다.10ms 에서 200ms까지의프로그래밍가능한주기를갖는다.(주기가작을수록 Overhead는증가)실시간 Kernel은 clock tick을기본단위로하는시간만큼 Task를 Delay 할수있다.실제 Task Level에서 Tick 단위의시간을정확히구현 하는것은불가능하다.

Page 38: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 37

Clock Tick (ContClock Tick (Cont’’d)d)Clock Tick (Case 1)

Page 39: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 38

Clock Tick (ContClock Tick (Cont’’d)d)Clock Tick (Case 2)

Page 40: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 39

Clock Tick (ContClock Tick (Cont’’d)d)Clock Tick (Case 3)

Page 41: MicroC/OS-II Concept of Real Time Systemmesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-10...Embedded System Lab. II 3 Real Time System Real Time System 9시스템이논리적으로완벽하게동작해야함은물론이고정해진시간내에

Embedded System Lab. II 40

Real Time System SummeryReal Time System Summery

있음있음App Code가제공되어야함제공되는 Service

APP Code+Kernel RAM +SUM(태스크스택 + MAX(ISR스택))

APP Code+Kernel RAM +SUM(태스크스택 + MAX(ISR스택))

APP CodeRAM Size

APP Code+ Kernel Code

APP Code+ Kernel Code

APP CodeROM Size App Code

최상위우선순위결정 + 문맥전환시간

최장수행시간의태스크 + 최상위우선순위결정 + 문맥전환시간

배경프로세스Task response

최상위우선순위결정 + 배경프로세스문맥복구시간 + 인터럽트복귀명령

태스크문맥복구시간

+ 인터럽트복귀명령배경프로세스문맥복구시간

+ 인터럽트복귀명령Interrupt recover

인터럽트지연시간

+ CPU 문맥저장시간+ 커널의 ISR 진입함수

인터럽트지연시간

+ CPU 문맥저장시간인터럽트지연시간

+ CPU 문맥저장시간Interrupt response

MAX(가장긴명령어, 사용자인터럽트비활성화, 커널인터럽트비활성화) + ISR 진입시간

MAX(가장긴명령어, 사용자인터럽트비활성화, 커널인터럽트비활성화) + ISR 진입시간

MAX(가장긴명령어, 사용자인터럽트비활성화) + ISR 진입시간Interrupt latency

Preemptive KernelNon-preemptive KernelForeground,Background