Fundamental Notes/RTOS

10.10.12 강의록 : RTOS

콩콩댕 2010. 10. 12. 11:33
반응형
/* 설명 1
active 상태와 inactive 상태의 차이가 무엇인지를 먼저 설명하고, TASK FSM을 설명하는 것임
inactive 상태라는 것은 태스크에 등록만 되 어있고, 태스크가 구동되지 않았다는 의미임. 홀로 자신의 태스크 프로그램만 가지고 있다는 의미임
이것이 active 상태로 바뀌려면, 태스크 프로그램이 어떤 정보와 같이 생성이 되어서 연결이 되어 있어야 함. 이때 이 어떤 정보는 생성과 동시에 업데이트가 되어야 함. 메모리, 스택포인터, 스택area 등의 정보들을 받아야 함. = 실행 환경 = 워킹 스페이스를 할당받아야 하고 이것이 업데이트되어 태스크 프로그램과 연결되어야 하고, 이러한 워킹 스페이스를 TCB에 업데이트 시켜야 함.
이러한 일을 해주는 게 두가지 존재. 1. TASK가 다른 TASK를 시스템 콜을 써서 액티브 상태로 바꾸는 것.  2. CPU에서 TASK_START를 해주는 경우.  시스템이 시작할 때 아예 처음부터 READY 상태로 만드는 것. (작은 RTOS의 경우) 이런 경우 이니셜 태스크가 있어야 함. 이니셜 태스크가 있어서 모든 태스크를 생성과 동시에 레디 상태로 만들어 줌
*/
active 상태에서 dormant 상태로 넘어올 때에는 메모리를 비롯한 워킹 스페이스의 자원들을 모두 회수해야 함.

Dormant -> Ready로 가는 이유 : 설명 1 참조

2가지로 나누자. :1.  최조에 러닝으로 가는 경우(이런 경우에는 Dormant 필요 없음),  2. 러닝태스크가 다른 태스크를 깨우는 과정도 설계 하게끔. 2는 시스템콜에 넣기

스테이트 다이어그램, 플로우 차트, 수도 코드 중 아무 방법을 이용해서 시스템콜을 설명하기

'Fundamental Notes > RTOS' 카테고리의 다른 글

10.11.02 강의록 : RTOS  (0) 2010.11.02
10.10.5 강의록 : RTOS  (0) 2010.10.05
RTOS : 서론  (0) 2010.04.02