본문 바로가기
Microprocessor

Multi Task, Multi Process, Multi Thread

by 청운추월 2023. 5. 31.
반응형

1개의 작업을 Task 라고 이야기 할 수 있습니다.
어떤곳에서는 Task로 또 다른곳에서는 Process라는 용어를 사용합니다.
일반적으로 Task 나 Process 나 같은 의미로 사용됩니다.

피쳐폰(폰모양으로 생긴폰)에서는 Task라는 용어를 사용하는데
전화기는을 담당하는 Call Task
LCD 및 Keypad 입력을 받는 Handset Task
UI(User Interface)를 담당하는 UI Task 등등이 있습니다.
이 Task들이 서로 유기적으로 신호를 주고 받고 해서 프로그램이 동작하게 됩니다

Linux의 경우는 Process라는 용어를 사용하는데
Process는 하나의 프로그램이라고 볼 수 있습니다.
이 프로그램이 여러개의 동작을 해야 할 때 Thread를 생성하게 됩니다.
Game의 경우에 각각 독립적으로 움직여야 하는 부분은 Thread를 사용하게 됩니다.
Process와 Thread의 큰 차이점은
Process와 Process 간의 메모리 공유가 안된다는 점입니다.
Process와 Thread 간에는 메모를 공유할 수 있다는 점이 특징적입니다.


Microprocess는 부팅후 하는 일은 무한 루프를 도는 일입니다.
void main(void)
{

    while(1){
         task 처리.....   
    }
}


간단하게 while 문 안에 key 입력을 Check 하고 LED를 켤 수 있게
만들 수도 있습니다.

좀더 복잡한 프로그램은 main 에서 Task를 생성시켜고
scheduler가 주기적으로  또는 신호가 있을때 Task를 호출하는 방식으로 동작합니다.
Task  내부에서 Signal을 기다리면서 무한루프를 돌게 되고 무한루프를 빠져나오면
Task가 종료되게 됩니다.

'Microprocessor' 카테고리의 다른 글

Register 와 Hyper Threading  (0) 2023.05.31
Stack , Context Switching(문맥교환)  (0) 2023.05.31
Static RAM & Dynamic RAM  (0) 2023.05.31
Vector Table & Exception  (0) 2023.05.31
Scatter loading & ROM Binary  (0) 2023.05.31