안녕하십니까.
Linux에 대한 왕초짜가 궁금한게 너무 많아서 질문 드립니다.
저는 지금까지 RTOS - VRTX Spectra, VxWorks - 등을 이용하여 software를
만들어 왔습니다.
그런데 이제부터 Embedded Linux 기반으로 바꾸려니 모르는게
너무 많습니다.
제발 조언 부탁 드립니다.
다음은 제가 궁금하게 여기는 몇가지인데 답변해주시면 정말
고맙겠습니다.
기존의 RTOS를 사용했을 때는 BSP - Linux에서는 LILO 또는
BLOB라고 하더군요 - 의 동작이 끝나면 main함수를 call하여 그곳에서
필요한 Process(주고 Task라고 불렀는데)를 생성합니다.
그러고나서 main함수는 kill되고 각각의 Task가 통신을 하며 일을 수행하죠.
질문 1. Linux에서는 Process와 thread가 있던데 어떤형태를 사용하는 것이
위의 Task같이 동작하나요. (일반적으로 Embedded system에서 어떻게 사용하는지)
만일 Process형태를 사용한다면 각각의 Task를 만들어서 초기에 생성되는
init.d에 daemon형태로 등록하면되는 것인지 ??
또 thread형태로 한다면 ??? (모르겠다.)
질문 2. 전역변수 같은 공유자원에 대한 Access는 Process와 thread에서 어떻게 틀린지,
또 Process단위로 처리될때 어떻게 정의하는지 ?
질문 3. message queue를 사용하여 통신한다면, queue에 message가 도착했는지를
process가 주기적으로 polling하여 check하는지, 아니면 pending 상태인 process를
message도착시에 OS에서 invoke시켜주는지 ??
두서없는 질문 오랬동안 읽어 주셔서 고맙습니다.
응답두 주시면 더 고맙구요.
복 받으세요, Merry Cristmas구요, Happy New year입니다.