| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 비트코인
- toefl writing
- AUTOSAR
- backtrader
- 파이썬
- it
- 아마존 웹 서비스
- AWS
- 자동차sw
- probability
- python
- realtimesystem
- 확률
- can
- GeorgiaTech
- 암호화폐
- 개발자
- 토플 라이팅
- 오토사
- 퀀트
- 자동매매
- 프로그래밍
- 실시간시스템
- TOEFL
- Cloud
- 토플
- 클라우드
- 임베디드
- 블록체인
- 백트레이더
- Today
- Total
Leo's Garage
Reference Model 본문
앞 서 Monolithic Design Approach에 대해서 알아보았다.
말한 것과 같이 Monolithic Design Approach는 구성 요소를 구분하기 보다는 하나의 Binary 형태로 모든 기능 요소를 구성하는 특징이 있다.
만들기 쉽고, 특히나 빠른 개발이 필요한 상황에서는 빛을 발하기 쉽다. (프로토 타입 개발)
그러나 이러한 개발방법은 유지보수가 어렵고, 해당 개발을 기준으로 파생 제품을 만들고자 할 때 어려움이 생긴다.
가령 데이터 통신 프로토콜 함수 부분과 통신 처리 부분, 연산 부분이 모두 하나로 합쳐져 있는 구조라면, 통신 프로토콜이 변경되었다고 해서 간단하게 그 부분만 수정하기 어려울 수 있다는 것이다.
게다가 Super Loop를 주로 사용하는 개발방법으로 복잡한 시스템을 개발하기에 어려움이 있다.
또한 Monolithic Design Approach는 Requirements를 만족시키는 개발이 쉽지 않은데, 0 부터 10까지 순차적으로 개발되기도 하기 때문이다.
그래서 Reference Model이라는 개념이 나온다 .
이 Reference Model은 시스템을 Workload, Resource, Scheduling 관점에서 추상화하여 바라보면서 개발을 한다.
1. Workload Model
- Job and Tasks
- Release Time (Periodic, Aperiodic, sporadic)
- Deadline (absolute/relative, hard/soft, single stage/end to end)
- Execution Time (deterministic/stochastic)
- Temporal distance and precedence constraints
위와 같은 Workload Model은 아래와 같은 수식으로 표현할 수 있다.
$$T_{i}=(\Phi_{i},P_{i},C_{i},D_{i})$$
$$\Phi_{i} = offset$$
$$P_{i} = Period$$
$$C_{i} = Execution Time$$
$$D_{i} = Deadline$$
2. Resource Model
- Processors and Resources
- Utilization of resources
Resources Model은 Active Resources와 Passive Resources로 나눌 수 있는데,
(1) Active Resources
Process, Bus, Disk 등과 같이 스케쥴링되어야 하는 자원을 의미한다.
(2) Passive Resources
Shared Variables, Semaphores 그리고 Library rountine과 같은 job이 실행될 때 필요하지만 스케쥴링되지 않는 자원을 의미한다.
$$U=\sum_{i}^{}\frac{C_{i}}{P_{i}}$$
위 수식은 Utilization of CPU Load를 표현한 수식이다.
3. Scheduling algorithms
- Priority/Preemptability/blocking
- Scheduler and Schedule
스케줄링 알고리즘은 Shedulable한 Task Set을 feasible하게 스케줄링 할 수 있는 알고리즘들을 말한다.
Priority는 Ready Queue에 있는 Job들에게 부여하는 우선순위를 의미한다.
Preempatability는 Priority에 따라서 우선순위가 높은 Task나 Job이 실행될 수 있는지를 의미한다.
Blocking은 HW Interrrupt와 같이 실행 중인 Task나 Job을 Blocking하고 수행하는 것을 의미한다.
위와 같이 추상화한 모델들을 이용하여 좀 더 복잡한 시스템을 간략화하여 바라볼 수 있다.
'Study > Real Time Systems' 카테고리의 다른 글
| Priority-Driven Scheduling of Periodic Tasks (Dynamic Priority) - 2 (1) | 2025.06.08 |
|---|---|
| Priority-Driven Scheduling of Periodic Tasks (Dynamic Priority) - 1 (1) | 2025.06.08 |
| Scheduler라는 개념은 왜 필요한가? (0) | 2025.05.12 |
| RTS 환경 하에 Mutex, Semaphore 그리고 Spinlock 비교 (0) | 2025.04.22 |
| Monolithic Design Approach (0) | 2025.04.19 |