Task는 일의 기본 단위이다.
thread, process와 같이 기본단위임.
Task는 running과 not running 상태를 가질 수 있음.
- running은 실행중인 상태이고, 실행중인 상태는 하나의 Task만 가질 수 있음.
여러개의 Task가 존재해도 running상태는 하나의 Task만 가질 수 있음.
- not running상태는 3가지가 있음
1. block 상태
멈춰있다고 보면 됨. 스케줄러가 running으로 변경할 수 없는 상태임.
보통 두가지 경우로 사용함
1) 시간
일정 시간마다 block상태로 진입하게 한다
2) event
일정 event가 일어날 때 까지 block상태를 유지한다.
2. suspend 상태
suspend상태로 들어가기위해서는 해당 API함수를 사용해야만 가능.
탈출또한 해당 API함수를 사용해야만 가능.
3. ready 상태
ready 상태여야만 스케줄러가 상태를 변경 가능.
그래서 block상태이거나 suspend상태에서 API함수로 ready상태로 진입 후 스케줄러가 우선순위나 ready상태에 진입한 시점등을 고려하여 running상태로 변경시켜줌.
'[esp32]' 카테고리의 다른 글
[ESP32] 펌웨어 업데이트(OTA api 사용) (0) | 2024.06.12 |
---|---|
[ESP32] wdt error (0) | 2024.02.02 |
[ESP32] ESP-IDF FreeRTOS (0) | 2024.01.23 |