저작자표시 공연 및 방송할 수...

Post on 22-Jan-2020

0 views 0 download

Transcript of 저작자표시 공연 및 방송할 수...

저 시-동 조건 경허락 2.0 한민

는 아래 조건 르는 경 에 한하여 게

l 저 물 복제, 포, 전송, 전시, 공연 송할 수 습니다.

l 차적 저 물 성할 수 습니다.

l 저 물 리 적 할 수 습니다.

다 과 같 조건 라야 합니다:

l 하는, 저 물 나 포 경 , 저 물에 적 허락조건 확하게 나타내어야 합니다.

l 저 터 허가를 러한 조건들 적 지 않습니다.

저 에 른 리는 내 에 하여 향 지 않습니다.

것 허락규약(Legal Code) 해하 쉽게 약한 것 니다.

Disclaimer

저 시. 하는 원저 를 시하여야 합니다.

동 조건 경허락. 하가 저 물 개 , 형 또는 가공했 경에는, 저 물과 동 한 허락조건하에서만 포할 수 습니다.

공 사 논

다 주 시뮬링크 모델에

고 우 스 쥴링

Fixed-priority Scheduling for

Multirate Simulink Models

2014 2 월

울 원

·컴퓨 공 부

원 : 하 순 회 ( )

부 원 : 창 건 ( )

원 : 래 혁 ( )

다 주 시뮬링크 모델에

고 우 스 쥴링

Fixed-priority Scheduling for Multirate Simulink Models

지도 이 창 건

이 논 공 사 논 출함

2014 1 월

울 원

·컴퓨 공 부

연 사 논 인 함

2013 12 월

i

요약

시뮬링크(Simulink)는 산업계에 가장 리 쓰이고 있는 모델

계 시뮬 이 도구이다. 특히 자동차 산업과 항공 산업

에 각종 자 어장 (Electronic Control Unit)를 계 는데 시

뮬링크 도구를 리 사용 고 있다. 시뮬링크 모델 임베 드

(Embedded Coder) 그램에 해 실 드웨어에 행가능

C/C++ 드 변 다. 각 시뮬링크 들 고 주 를

가지는 주 태스크 게 고 RM(Rate Monotonic) 스 쥴

링 법 행 다. 이 과 에 시뮬 이 행태 실 드웨

어 행 행태가 달라지게 다.

본 논 에 는 각 마다 다른 주 를 가지는 시뮬링크 모델

시뮬 이 과 가 게 고 우 스 쥴링 는 법

다. 시뮬링크 모델 각각 존 계를 여

DAG(Directed Acyclic Graph) 모델 꾼다. 그리고 각

존 계를 고 여 고 우 를 가지는 주 태스크 모

델 변 다. , 그러 법 에 스 쥴링 법 찾

내는 법 다.

법 용함 써, 다양 주 를 가지는 시뮬링크 모델

시뮬 이 규 실 드웨어 실행에 도 같이 용

있다. 이 써 시뮬링크 모델 시뮬 이 결과 실 드웨어 동

작 결과 차이를 이고 시뮬링크 모델 검증 단계에 시간과

ii

용 낄 있다.

주요어 : 시뮬링크, 고 우 , 주 태스크

번 : 2012-20809

iii

목차

요약 i

목차 iii

그림 목차 v

1 장 1

1.1 연구 경 1

1.2 연구 내용 3

1.3 본 구 5

2 장 연구 6

2.1 버퍼링 6

2.2 주 변 9

3 장 시뮬링크 모델 11

3.1 시뮬링크 모델 11

3.2 시뮬 이 13

3.3 드 생 실행 15

3.4 시뮬 이 과 드웨어 동작간 차이 17

iv

4 장 시뮬 이 규 만족시키는 고 우 19

4.1 용어, 가 조건 19

4.2 시뮬 이 규 20

4.3 시뮬 이 규 르는 고 우 24

5 장 고 우 26

5.1 고 우 26

5.2 증명 29

6 장 결 향후과 31

6.1 결 31

6.2 향후 과 32

참고 헌 33

v

그림 목차

그림 1 데이 결 (Data Integrity) 깨짐 ....................................... 6

그림 2 데이 결 보장 버퍼링.......................................... 7

그림 3 주 변 ........................................................................... 9

그림 4 주 변 이 요 경우 요 지 경우 ........... 10

그림 5 자동차 엔진 어 시뮬링크 모델 .......................................... 11

그림 6 시뮬 이 결과 그래 ........................................................ 13

그림 7 시뮬 이 행 행태 ........................................................... 14

그림 8 드웨어에 행 행태 .................................................... 15

그림 9 시뮬 이 과 드웨어 행과 차이 ................................. 17

그림 10 만족 어 운 시뮬 이 규 ...................................... 20

그림 11 시뮬 이 규 만족 는 경우 ...................................... 22

그림 12 나 이상 우 법 ........................................ 24

그림 13 소 주 과 부모 집합(PS) .............................. 27

그림 14 다 소주 과 부모 집합 ............................... 28

그림 15 임 우 우 변 ..................... 29

1 장

1.1 연구 경

시뮬링크는 산업계에 가장 리 쓰이고 있는 모델 계

시뮬 이 도구이다. 공 , 과 , , 등

분야에 연구 개 목 사용 고 있 면 계

100 만명 이상 연구원들이 사용 고 있다. 특히 자동차 산업과

항공 산업에 각종 자 어장 (Electronic Control Unit)를

계 는데 시뮬링크 도구를 리 사용 고 있다.

시뮬링크 모델 개 과 크게 모델 자인, 모델

시뮬 이 , 자동 드 생 , HiLS(Hardware-in-the-Loop

Simulation) 단계 나 어 있다. 첫째, 개 자는 주어진

시뮬링크 집합 이용해 체 모델 계 다. 째,

개 용 PC 에 시뮬링크 모델 시뮬 이 해보고 모델

다. 째, 시뮬링크 자동 드 생 능 이용해

C/C++ 드를 생 다. 째, 생 C/C++ 드를 실

드웨어에 탑재해 시뮬 이 검증 다.

시뮬링크 모델 개 과 PC 에 시뮬 이

결과 실 드웨어에 동작이 다를 있다는 이다.

시뮬 이 에 는 각 실 실행시간이나 신 달시간

고 지 고(Zero-execution time semantics) 각 들

차 실행 여 그 결과를 보여 다. 면에 실

구 에 는 들 여러 개 주 태스크 변 여

실행 고 각 태스크를 행 는데 시간이 걸리 에 그 행

행태가 많이 달라지게 다. 실 구 에 쓰는 RM

스 쥴링 식 간 존 계를 시 고 주

스 쥴링 에 시간 인 행태가 욱 달라질 있다.

이에 본 논 에 는 를 해결 해 시뮬링크 모델

구 에 도 시뮬 이 과 같 행 행태를 보이도 는

법 다.

1.2 연구 내용

시뮬링크 모델 각 고 주 (Sample Time)를

가지고 있 며, 사이에는 신 를 통해 데이 를 주고

는다. 모델 시뮬 이 단계에 는 존 계에 라 체

일 해 놓고 각 본 주 (Base Rate)마다

해당 는 행함 써 시뮬 이 결과를 이 어 낸다.

이 과 실 행시간이나 신 달 시간

시 고(Zero-execution time semantics) 가상 시간상에

이루어지게 다.

모델 시뮬 이 단계 이후에는 자동 드 변 과 거 게

는데 이 과 에 각 시뮬링크 들 고 우 를

가지는 주 태스크 모델 변 다. 각 시뮬링크

원래 주 (Sample Time) 같 주 를 가지게 며,

내부 는 RM(Rate Monotonic) 스 쥴링 법

동작 게 다[1,2,3].

RM 스 쥴링 법 각 태스크 우 를 각 태스크

주 가 짧 는 법이다. RM 스 쥴링 각

태스크 존 계를 시 에 존 계

행 는 시뮬 이 결과 다른 행태를 보일 있다. 종단

간 지연시간(End-to-end Delay)이 어지게 고, 태스크

간 효과 인해 데이 결 이 깨질 도 있다.

그럼 써 체 시스 분 검증이 힘들어진다.

이런 를 해결 해 본 논 에 는 각 간

존 계를 우 를 는 법 다.

시뮬링크 모델 각각 존 계를 여 DAG(Directed

Acyclic Graph) 모델 꾼다. 그리고 각 노드 존 계

주 를 고 우 를 가지는 주 태스크 모델

꾼다. 이 존 계를 우 를 에

데이 를 는 보내는 과 는 실행 가 뒤 지

고, 종단 간 지연(End-to-end Delay)도 소 있다.

이 써 시뮬링크 모델 시뮬 이 결과 실 드웨어

행결과 차이를 일 있다. 그러므 시뮬링크 모델

개 과 검증에 걸리는 시간과 노 낄 있다.

1.3 본 구

본 논 다 과 같이 구 어 있다. 2 장에 는 시뮬링크

모델에 존 연구 그 계를 명 고, 이 논 여에

해 다. 3 장에 는 시뮬링크 모델 시뮬 이 과 존

구 에 해 명 고 그 분 다. 4 장에 는

시뮬 이 규 만족시키는 고 우 법

다. 5 장에 는 고 우 법과 그

스 쥴링에 해 명 고 마지막 6 장에 는 결 짓고

후속연구를 함 써 본 논 마 리 다.

2 장 연구

2.1 버퍼링

시뮬링크 모델 각 들 각각 본 주 (Base Rate)

가 는 주 를 가지고 있다. 시뮬 이 단계에 는

모든 들이 실행시간 고 없이(Zero-execution Time

Semantics) 차 실행 지만 실 드웨어 구

단계에 는 다양 주 를 가지는 주 태스크 모델

변 어 실행 다.

그림 1 데이 결 (Data Integrity) 깨짐

태스크들이 다른 주 를 가지고 실행 써 데이

결 (Data Integrity) 가 생 게 다. 를 들어

시뮬링크 1 과 2 가 있고, 1 주 (Period)는 1,

2 주 는 2 라고 자[그림 1]. 1 A 값 쓰고,

2 는 A 값 읽는다. 주 가 2 는 1 에 해

당 고 그 사이에 1 이 A 값 쓸 있다. 이런

상황에 는 2 가 읽어 들이는 A 값이 실행 간에 게

고 그러므 2 데이 결 이 깨어지게 다.

이런 경우 버퍼링 법 사용 면 를 해결

있다[그림 2]. 주 가 다른 과 사이에 존 계가

있다면 2 개 버퍼를 어 나는 읽 용 나 지 나는

쓰 용 사용 다. 그리고 데이 이 요 만 버퍼를

꾸어 사용 면 다.

그림 2 데이 결 보장 버퍼링

존 연구들 버퍼링 규약 고 고

우 (Fixed-priority) 스 쥴링 동

우 (Dynamic-priority) 스 쥴링에 른 버퍼링 법

소개 다. 그리고 주어진 시뮬링크 모델에 라 요 버퍼

개 를 계산 고, 버퍼를 재사용함 써 버퍼 개 를

소 다[4,5,6,7,8].

2.2 주 변

2.1 장에 소개 데이 결 (Data Integrity) 를

해결 해 시뮬링크 도구에 는 주 변 (Rate

Transition Block) 공 다. 개 자는 모델 계 단계부

주 가 다른 시뮬링크 사이에 주 변 함 써

데이 결 를 있다.

그림 3 주 변

주 변 2 가지 종 가 있다[그림 3]. Fast-to-Slow

주 가 짧 에 데이 가 이동 고

Slow-to-Fast 주 가 에 짧

데이 가 이동 다. 주 가 다른 사이마다 주 변

는다면 데이 결 이 보장 다. 지만 주 변

추가 인 모리 공간과 실행시간이 요 다.

10

일 주 가 다른 사이에는 주 변 이

요 다. 지만 특별 경우에는 주 변 이 없어도 다.

주어진 우 실행시 경우, 이 일어나지

는다면 주 변 이 없어도 다[그림 4].

그림 4 주 변 이 요 경우 요 지 경우

존 연구에 는 주어진 시뮬링크 모델에 해 미리 다양

스 쥴 해보고 불 요 주 변 거 는 법

다[9].

11

3 장 시뮬링크 모델

3.1 시뮬링크 모델

시뮬링크 검 색 상자 나타내며, 주어진 입 에 해

연산 행 고 출 내보낸다. 각 본 주

인 주 (Sample Time)를 가지고 동작 다.

사이에는 신 를 통해 데이 를 주고 는데 이것 보통

살 시 다. 데이 를 보내는 Source 이라고

고 데이 를 는 Sink 이라 다. 이런 경우,

사이에는 존 계(Precedence Relation)가 있다고 다.

그림 5 자동차 엔진 어 시뮬링크 모델

12

를 들어, [그림 5]에 있는 Ignition Control

부 Acceleration 신 를 는다. 그리므 Control

Source 이 고 Ignition Sink 이 다.

이것 ‘Control -> Ignition ’ 이라고 시 도

있다.

시뮬링크 모델 개 자는 자 가 원 는 추가 고

연결함 써 쉽게 체 시스 자인 있다.

13

3.2 시뮬 이

개 자는 시스 계 후에 그것이 어떻게 동작 지 고

싶어 다. 이 시뮬링크 시뮬 이 능 사용함 써

시스 동작 미리 상해 볼 있다[그림 6].

그림 6 시뮬 이 결과 그래

시뮬 이 실 드웨어가 닌 PC 상에 이루어지며,

각 실행시간이나 신 처리 시간이 시 다. 그리고

시뮬 이 에 걸리는 시간과 실 실행시간 계가 없다.

를 들면 [그림 5]과 같 시뮬링크 모델이 있 , 각

래 같 태 시뮬 이 다.

14

그림 7 시뮬 이 행 행태

각 존 계에 라 일 다. 에 는

Block1 -> Block2 -> Block3 다([그림 7]

쪽 그림). 각 시각(t)마다 리스트 에 부

뒤 해당 이 실행 어야 는지 검사 다. 시각(t)이 0 일

는 모든 이 실행 어야 고, 그 외 시각에 는 시각이

해당 주 일 만 실행 어야 다.

에 는 시각이 1 일 , 주 가 1 인 2 만 실행 고

시각이 2 일 , 1 과 2 만 실행 다. 이 도 일

를 라야 다.

15

3.3 드 생 실행

시뮬 이 에 체 시스 동작 검증 고 나 는 실

드웨어에 탑재 C/C++ 드를 생 해야 다. 시뮬링크

도구에 드웨어 해주면 자동 드가

생 다. 이 과 에 각 들 고 주 를 가지는

주 태스크 변 어 드에 들어가게 다.

시뮬링크에 는 RM(Rate Monotonic) 스 쥴링 에

주 가 짧 들 우 가 높고 주 가 들

우 는 낮다.

그림 8 드웨어에 행 행태

16

[그림 7]과 같 시뮬링크 모델 실 드웨어에

실행 다고 면 [그림 8]과 같 행 행태를 보인다.

1 주 2, 2 는 주 1, 3 주 4 를 갖는

주 태스크 모델 변 고, 태스크 간 우 는 주 가

짧 주어진다. 시뮬 이 과는 다르게 실 실행

시간이 걸리 에 우 가 낮 태스크 2 3 태스크

1 에 해 어 실행이 지연 는 것 볼 있다.

17

3.4 시뮬 이 과 드웨어 동작간 차이

3.2 장과 3.3 장에 시뮬 이 행태 실 드웨어

동작 행태에 해 간단히 보 다. 그 2 가지 행태를

분 해보면 크게 2 가지 면에 차이가 난다는 것 가

있다.

그림 9 시뮬 이 과 드웨어 행과 차이

첫째, 실 드웨어 동작에 는 효과 인해 데이

결 (Data Integrity) 가 생 다. 드웨어 행에 는

태스크 실행 간에 높 태스크가 행 써

데이 결 이 깨지고 만다[그림 1]. 데이 결 이

18

깨짐 써 연산 결과가 했 값이랑 달라지게 다. 이

는 2.1 장에 버퍼링 법이나 2.2 장에

주 변 사용함 써 해결 있다.

째, 실 드웨어 동작에 는 RM 스 쥴링 사용 므

간 실행 가 뒤 게 다. 시뮬 이 에 는

존 계를 지 면 실행 했지만 RM 스 쥴링에 는

존 계를 시 고 주 우 를 에

실행 가 게 다. 를 들어, [그림 9]에 시뮬 이

항상 1,2,3 실행 지만 실 행에 는

2,1,3 행 다. 그러므 시뮬 이 결과 실

행행태가 달라지게 다. , 실행 가 써

종단 간 지연(End-to-end Delay)는 어지게 고

이것 시스 떨어뜨리게 다. 간 실행

를 보장 면 RM 스 쥴링이 닌 다른 우

법이 요 다.

19

4 장 시뮬 이 규 만족시키는

고 우

4.1 용어, 가 조건

주어진 시뮬링크 모델 N 개 시뮬링크 구 어

있다. 각 주 를 가지고 있 며, 사이에는 존

계가 존재 다. 각 해당 는 태스크가 있 며 태스크

주 는 원래 주 같다. 태스크 실행시간

없 며, 우리가 자 롭게 조 있는 것 직 태스크

우 뿐이다. , 우 가 같 태스크는 존재 지 는다.

실 드웨어에 시뮬링크 드가 행 에는 이

우 에 라 스 쥴링 다.

l Bi 는 i 번째 나타낸다.

l Ti 는 Bi 에 해당 는 태스크를 나타낸다.

l Pi 는 Ti 주 를 나타낸다.

l Ji,j 는 Ti j 번째 작업 나타낸다.

l Ti Tj 사이에 존 계가 있 면 Ti -> Tj 나타낸다.

l Ti 가 Tj 보다 우 가 높다면 Ti > Tj 나타낸다.

l 모든 태스크 주 (Deadline) 같다.

20

4.2 시뮬 이 규

시뮬 이 규 명 게 에

시뮬 이 규 만족 다는 것에 해 생각해보자.

시뮬 이 행태 실 드웨어에 행 행태가 같 면

같 시뮬 이 규 잘 만족 다고 말 있다.

그림 10 만족 어 운 시뮬 이 규

만약에 각 시각(Time Step)마다 시뮬 이 에 출 값과

실 드웨어에 출 값이 히 같다면 시뮬 이 규

벽히 만족 다고 말 있다. 지만 이 게 면 시각

0 과 1 사이에 모든 실행이 나야만 다. 냐 면

21

시뮬 이 에 는 실행시간이 모 0 이 에 시각 1 에

모든 실행이 나 이다[그림 10]. 지만 실

드웨어 행에 도 이것 만족 는 경우는 매우 드

에 이것 시뮬 이 규 삼 는 힘들다.

다 는 시뮬 이 에 출 값과 실 드웨어에

출 값이 같 야 다는 것 시뮬 이 규 삼 있다.

에 시뮬 이 규 과는 다르게 각 시각 게

지 출 값 내놓 요는 없다. 시뮬 이 과 실

드웨어 행에 출 값 같게 면 몇가지 조건

만족해야 다.

첫째, 시뮬 이 에 사이 존 계를 감 여

태스크 실행 를 는 것처럼 실 드웨어 행에 도

태스크 사이 존 계를 고 해 태스크 우 를 해야

다. 존 RM 스 쥴링 식 사용 면 사이

존 계를 고 지 므 각 태스크 작업 가

달라지게 다. 그러므 태스크 우 를 에는

사이 존 계가 그 지 지도 해야 다.

째, 각 태스크 (Deadline) 지 태스크 행이 나야

다. 이것 스 쥴 가능 스트를 통해 그 여부를

있다. 스 쥴 가능 스트를 통과 다면 당연히 째 조건도

만족 다.

22

째, (Preemption)이 일어나는 경우 버퍼링 법 통해

데이 결 보장해야 다. 이 일어난다면 데이

결 이 깨질 있 에 별도 버퍼를 사용 여 출 값

장해야 다. 버퍼링 법 이미 그 구 이 다른 연구에

자 히 어 있다..

그림 11 시뮬 이 규 만족 는 경우

를 들어, [그림 11]에 빨간 J2,1 시뮬 이 에 는

시각 1 에 결과가 나 고 실 드웨어 행에 는 시각 2 에

결과가 나 다. 지만 실 드웨어 행에 도 사이

존 계 B1->B2, B1->B3 를 모 만족시킨다. , 태스크

모 만족 다. 그리고 버퍼링 법 이미 구 어

있어 데이 결 이 보존 다고 가 자. 그러면 실

23

드웨어 행에 도 시뮬 이 규 이 지 진다고 말

있다.

24

4.3 시뮬 이 규 르는 고 우

4.1 장에 언 시뮬 이 규 만족 는 고 우

찾 보자. Ti -> Tj 라는 존 계가 있다면 Ti > Tj 를

만족 는 우 를 함 써 시뮬 이 규 만족시킬

있다. Ti 우 가 Tj 보다 높 에 모든 시각 t 에

해 시작 ,

실행 가 ,

다.

그러므 시뮬 이 규 만족시킬 있다.

시뮬 이 규 만족시키는 고 우 법 여러

개가 존재 다. 를 들어, 래 [그림 12]과 같 시뮬링크

모델에 는 사이 존 계를 만족시키는 우

법이 2 개 존재 다. 사이 존 계가 복잡해질

시뮬 이 규 만족시키는 고 우 법

늘어난다.

그림 12 나 이상 우 법

25

법 주어진 시뮬링크 모델에 용 다면 시뮬 이

규 르는 고 우 나 찾 있다. 주어진

체 시뮬링크 태스크 집합 A = {T1, T2, … , TN}, 직

우 가 해지지 태스크 집합 U = A, 이미 우 가

해진 태스크 집합 C = ∅ 이 있다고 자. 집합 U 에

입 값이 모 , 다시 말 면 Source 이 닌

태스크를 찾는다. 찾 태스크가 여러 개일 경우 그 에 어떤

태스크를 택 든지 상 이 없다. 찾 태스크를 Ti 라고

다면 Ti 고 우 를 고 U = A – { Ti }, C = C

∪ { Ti } 가 다. 그리고 Ti 에 나가는 모든 존 계는

거 다. 이런 법 복해 태스크를 찾 마다 그 다

우 를 고 태스크를 U 에 거해 나가면

시뮬 이 규 지키는 우 법 나 찾

있다.

법 우 를 다면 시뮬 이 규

만족시키면 실 드웨어에 행시킬 있다. 지만

존 계만 생각해 우 를 다면 스 쥴 불가능

우 도 있다(시뮬 이 규 만족시키는

우 경우 는 매우 많다). 그러므 사이

존 계 뿐만 니라 주 지 고 해야만 스 쥴 공

가능 높일 있다.

26

5 장 고 우

5.1 고 우

4 장에 는 시뮬 이 규 만족시키는 고 우

법 살펴보 다. 시뮬 이 규 만족 는 고

우 법 히 많지만 그 에는 스 쥴이

불가능 법도 있 있다. 그러므 시뮬 이 규

만족시키는 고 우 법 에 가장 스 쥴 가능 이

높 법 찾 내어 실 드웨어에 행 는 것이

가장 합리 이다. 시뮬 이 규 만족 는 우

법 에 우 법 명 다.

고 우 에 스 쥴링 법 주 가 짧

우 를 는 RM 스 쥴링 법이다. 본 인

근 법 사이 존 계를 지키면 주 가 짧

태스크들에게 높 우 를 는 것이다.

27

그림 13 소 주 과 부모 집합(PS)

주어진 시뮬링크 모델에 소주 를 가지는

찾는다. 그러면 그 에 들어 는 존 계(Incoming

Dependency)가 있는 모든 부모 과 해당 이루어진

집합 MP 구 있다. 를 들어 [그림 13] 같

주 존 계를 가진 시뮬링크 모델이 주어진다면 소주 를

갖는 Block4(P=1)이다. 그리고 그에 른 부모

집합 PS1 = {Block1, Block2, Block4} 이다. 그러면 이 부모

집합 들에게 가장 높 우 를 다(T1 >

T2 > T4).

28

그림 14 다 소주 과 부모 집합

다 는 우 가 지 에 가장 주 가

짧 (Block5) 찾고 이 부모 집합(PS2)

찾는다. 이 단계 마찬가지 부모 집합 들에게

그 다 우 를 다(T3 > T5)[그림 14]. 마지막

Task6 에게 우 를 면 다(T1 > T2 > T4 > T3 > T5

> T6).

모든 태스크 우 를 지 법

복 면 시뮬 이 규 만족함과 동시에 가장 스 쥴

가능 이 높 우 찾 있다.

29

5.2 증명

5.1 장에 우 이 이라는 것 증명

해 다 과 같 증명 법 사용 다. 임 스 쥴

가능 우 A 가 존재 다고 가 자. 그리고

5.1 장에 우 B 라고 자. 어떠

경우에도 A 를 B 변 있 면 5.1 장에

우 법 B 가 우 이 다.

그림 15 임 우 우 변

시뮬 이 규 지키면 모든 태스크 는

우 A 가 있다고 가 자. 소주 TM 이 있고,

그 태스크 작업들 JM, 그 (Deadline) DM 이라고 자.

TM 부모 집합 PS 라고 고, 그 에 가장 짧

30

DPS 라고 자. , TM 보다 우 가 높 에

부모 집합에 포함 지 는 나 지 집합 O 라고

고 그 에 가장 짧 DO 라고 자.

이 나 지 집합 O 에 들어있는 우 를 TM

보다 낮게 조 다[그림 15]. 그러면 소주 TM 과 그

부모 집합 PS 는 왼쪽 (높 우 ) 이동 게 고,

나 지 집합 O 는 른쪽 (낮 우 ) 이동 게

다. 이 경우에 우 가 높 지는 소주 MT 그

부모 집합 PS 는 당연히 스 쥴 가능 다. , 우 가

낮 지는 나 지 집합 O 도 DM 지 에

이것 스 쥴 가능 다.

이 법 복 다 소주 에도 같이

용 다면 임 우 A 는 결국 5.1 장 우

B 변 다. 다시 말 면 스 쥴 가능 임 우

A 가 존재 다면 우 B 도 역시 스 쥴 가능 다.

그러므 5.1 장 우 법이 스 쥴 가능 이 가장

높 우 이다.

31

6 장 결 향후과

6.1 결

시뮬링크 모델 시뮬 이 과 실 드웨어 행 행태는

많 차이가 있다. 이는 시뮬 이 규 과 실 드웨어 행

식 차이에 롯 다. 실 드웨어 행에 는

존 계를 지키지 는 RM 스 쥴링과 효과 에

시뮬 이 결과 많이 다른 행 행태를 보인다. 본

논 에 는 실 드웨어 행에 도 시뮬 이 규

지키 해 새 운 고 우 법 했다.

고 우 법 사용 다면 존 RM

스 쥴링 법보다 보다 시뮬 이 에 가 운 드웨어

행결과를 얻 있다. 지만 RM 스 쥴링보다 시스

용도(Utilization)이 낮 에 스 쥴이 실 가능 도

존재 다. 본 논 에 는 스 쥴 가능 높이 보다는

시뮬 이 과 가 운 드웨어 행 보장 면 가능

스 쥴 가능 높이는 우 다.

32

6.2 향후 과

본 논 에 고 우 법 시뮬 이

규 만족시키지만 체 시스 용도(Utilization)

떨어뜨린다. 그리고 실행시간에 고 가 없 에

우 여도 실 드웨어에 실행 에는

스 쥴 불가능 경우가 생 다.

미리 일링 행해 실행시간에 보가 있다면

스 쥴 가능 스트를 가 있고, 개 자에게 좀 많

보를 가 있다. 스 쥴이 불가능 다면 특

주 를 낮추도 개 자에게 조언 도 있 것이다.

면에 스 쥴이 가능 다면 특 주 를 리도 는

법도 있다. 다시 말 면, 개 자에게 좀 많 택

공 는 시뮬 이 개 도구를 만들 도 있 것이다. ,

스 쥴 가능 과 시뮬 이 규 지키는 것 Trade-off

계를 좀 명 게 히는 것도 요 다.

33

참고 헌

[1] Kirner, Raimund, et al. "Fully automatic worst-case execution

time analysis for Matlab/Simulink models." Real-Time Systems,

2002. Proceedings. 14th Euromicro Conference on. IEEE, 2002.

[2] Scaife, Norman, and Paul Caspi. "Integrating model-based

design and preemptive scheduling in mixed time-and event-

triggered systems." Real-Time Systems, 2004. ECRTS 2004.

Proceedings. 16th Euromicro Conference on. IEEE, 2004.

[3] Baleani, Massimo, et al. "Efficient embedded software design

with synchronous models." Proceedings of the 5th ACM

international conference on Embedded software. ACM, 2005.

[4] Tripakis, Stavros, et al. "Semantics-preserving and memory-

efficient implementation of inter-task communication on static-

priority or EDF schedulers." Proceedings of the 5th ACM

international conference on Embedded software. ACM, 2005.

[5] Sofronis, Christos, Stavros Tripakis, and Paul Caspi. "A

memory-optimal buffering protocol for preservation of

synchronous semantics under preemptive scheduling."

Proceedings of the 6th ACM & IEEE International conference on

Embedded software. ACM, 2006.

[6] Di Natale, Marco. "Optimizing the multitask implementation of

multirate Simulink models." Real-Time and Embedded

Technology and Applications Symposium, 2006. Proceedings of

the 12th IEEE. IEEE, 2006.

34

[7] Sangiovanni-Vincentelli, Alberto, and Marco Di Natale.

"Embedded system design for automotive applications." Computer

40.10 (2007): 42-51.

[8] Natale, Marco Di, and Valerio Pappalardo. "Buffer

optimization in multitask implementations of simulink models."

ACM Transactions on Embedded Computing Systems (TECS) 7.3

(2008): 23.

[9] Di Natale, Marco, et al. "Synthesis of multitask

implementations of simulink models with minimum delays."

Industrial Informatics, IEEE Transactions on 6.4 (2010): 637-651.

35

Abstract

Fixed-priority Scheduling for

Multirate Simulink Models

Yuyeon Oh

School of Computer Science Engineering

College of Engineering

The Graduate School

Seoul National University

Simulink is model-based design and simulation tool. It is

most widely used in industry. Particularly in the automotive

industry and the aerospace industry, it is used for designing

various electronic control devices. A Simulink model is

transformed into C/C++ codes which can be executed at an

actual HW by Embedded Coder tool. Each Simulink block is

converted into an inherent periodic task. By default, all these

tasks are executed on RM scheduling policy. In the process, the

simulation behavior and the actual HW execution behavior are

getting different.

36

This paper proposes a new fixed-priority assignment for

multirate Simulink models which behaves like simulation. First,

a Simulink model is converted into a DAG(Directed Acyclic

Graph) considering all dependencies between blocks. Next, the

DAG is converted into periodic tasks. Finally, each task is

assigned its own fixed-priority to maximize its schedulability.

By applying the above method, Simulink simulation semantics

are preserved at actual HW execution. So the difference

between simulation results and actual HW execution results can

be reduced. And we can save time and costs in Simulink model

validation stage.

Keywords : Simulink, Fixed-priority, Periodic Task

Student number : 2012-20809