-주어진 시간대로 처리하는 것이 중요
-순서대로
-General OS (일반적인 os 예:윈도우 -효율성이 필요) vs RTOS(효율성 따지지 않음)
-Hard RTOS(주어진 시간안에 반드시 처리해야함 예:군사장비) vs Soft RTOS(시간안에 처리하면 좋음 안되면 어쩔수없지만, 약간의 오차 가능 예:일반가전(세탁기, 선풍기)
-단계
Fetch -> Decode -> Excute 등등
-CPU 스케줄링
선점 스케줄링
Round Robin(라운드로빈)
FCFS(First Come Fist suerved)
Context Switching
-cpu가 프로세스를 실행하고 있을때
->인터럽트 요청에 의해 다음 우선 순위의 프로세스가 실행 되어야 할때
->현재까지 실행된 정보를 레지스터에 저장(SP)
->다음 우선 순위의 프로세스 수행(이 프로세스 정보로 교체작업)
펌웨어에서
Task == Process
Task == Service단위
라고 흔히 부름(원래는 아니지만)
Process => 메모리에 적재되어 실행되는 프로그램, CPU에서 자원을 할당 받아 수행되는 작업단위
Semaphore(자원이 비어있으면 순서대로 할당받아 받음), Mutex(키값이 있는 작업만 자원을 할당 받음)


ADD버튼


2개만듬
제너레이션하면 경고 문구 뜸


두 곳을 바꿔준다

FreeRTOS헤더와 소스파일 Middlewares폴더가 생김

코드에도 헤더파일과 init함수가 새로 추가되는데
osKernelInitialize();함수가 새로 추가되는데 차례로 내려오다가 여기에 걸리면
freeRTOS.c 코드로 넘어가진다

LED1, LED2로 추가한 TASK가 2개가 추가되어있고 StartTask라고 되어있는 그중에서 while문의 역할을 하는 For(;;)안에 동작 코드를 추가하면 된다
이전에 순차적으로 동작되던 토글 함수는 5번핀이 토글되고 6번핀이 토글되고 다시 5번핀이 토글되지만 이렇게 각각 task를 나누게 되면 동작하는 시간을 작게 쪼개어 빠르게 교차로 동작한다 이렇게 되면 서로 따로 동작하는것 처럼 보이게 된다(순차동작이 아니라 병렬 동작하는것 처럼)


