크리에이티브 커먼즈 라이선스
Creative Commons License
익숙한 단어이지요??

리눅스 무슨 커널, 유닉스 커널 등등 들어보기는 많이 들어보시지 않았나요?

이게 앞에서 말한 Foreground/Background System 의 개량형입니다.

Kernel 이란 Multitasking System 의 일부분 입니다. 
각각의 테스크들의 Management 와 각 테스크간의 통신을 수행해주는 녀석이죠~

제가 포스팅하는 M3 에는 RTX-Kernel 이 올라가 있지요? ㅋㅋ
다른 커널들도 많답니다. 

간혹 이렇게 커널 기반에서 펌웨어를 개발하시는 분들 중에서 "OS 를 올렸다, 얹었다" 
이렇게 표현하시는 분들도 있습니다.

물론 틀린 표현은 아니지만, 저는 ㅋㅋㅋ 좀 낯이 뜨거워서 잘 사용하지 않습니다 ㅋㅋ
사실 별로 대단한것이 아니니까요 ㅋ

훗날 WinCE 나 리눅스 같은 OS 정도 얹어놓고 A8 코딩쯤 할때나 저렇게 표현해야할듯 ㅋㅋ


커널기반 프로그래밍을 이해하실려면, 아셔야 할것이 좀 있습니다.

스케쥴러, 우선순위, 세마포어, 뮤텍스 등등... 이것들은 차차 설명하고 지금은
커널기반의 프로그램이 전경/배경 시스템과 어떻게 다른지만 살펴보지요

1. 커널을 사용하면 2.5% 정도의 시간을 더 허비한다.
2. 커널 사용시 ROM, RAM 을 더 많이 사용하게 된다.

-> 머야 이건 좋은게 아니자나요?? ㅋㅋ 하지만!!!!!

1,2번을 포기함으로 인해서 돌아오는 이점은 엄청 나다는 사실을 명심하세요~

3. Real-time Kernel 은 MCU 의 수행 시간을 컨트롤 한다. (젤로 급한 놈부터 서비스 해준당)
4. 한 프로그램에 여러개의 task 가 존재한다. (즉, 무한루프가 여러개 존재한다.)
5. 이 각각의 task 들은 자기 자신이 온전히 CPU 를 독점하여 사용하는 것처럼 동작한다.

흠... 너무 뜬구름 잡는 식인감 ㅋㅋ

더욱 자세히 아실려면 이 뒤의 개념을 좀더 이해 하셔야하니까요 간단하게 읽고 넘어가세요

아래와 같은 비교가 도움이 되려나 모르겠네요~

(1) 전경/배경 시스템 : 부대의 배치, 일하는 종류, 일을 시작하고 끝내는 시간, 일을 수행하는 순서 등을 모두 하나하나 내가 직접 계산하고 결정해서 한치의 어긋남이 없이 돌아가도록 만들어 놓겠다!!! 

(즉!!! 일을 시키는 사람이 천재이거나 완벽주의자거나 ㅋㅋ 둘중하나)

(2) Kernel 시스템 : 흠...내밑에 강한 권력을 갖는 꼬봉을 하나 만들겠다.(Kernel). 나는 내가 해야할 일들을 크게 가닥을 쳐서 뭐가 더 중요한지 순서만 매겨놓고 일을 수행하는것은 꼬봉에게 맡기겠다. 내 꼬봉은 나의 의도를 참 잘 알아서 중요한 일부터 잘 번갈아가며 일을 착착 진행해 나갈것이다.


(오 스마트 가이의 일처리 방식 ! ㅋㅋㅋㅋ)

점점 뒤로 가시다 보면 진짜 이놈 스마트 하구나 라고 느끼게 됩니다 ㅋ

그럼 아래의 간단한 그림 한편 보시면서 생각해 보시길 바라며 바이바이~
 

 
저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by J.Bear
TAG ,


티스토리 툴바