2011-02-06 9 views

답변

8

FreeRTOS는 Linux가 아니며 26 가지 코어를 지원하는 자체 플랫폼 표준 커널이기는하지만 척도가 아닙니다. 그러나 마이크로 컨트롤러 마이크로 프로세서 용으로 설계되었습니다. 대부분의 코어는 MMU를 사용하지 않으므로 프로세스 개념이 없습니다. 원하는 경우 모든 작업은 '스레드'가 단일 '프로세스'에서 실행됩니다. 그래서 혼란을 일으키지 않도록 '작업'이라는 용어를 사용합니다. MPU의 사용을 지원하는 FreeRTOS 버전이 있습니다. 이것은 메모리 파티셔닝과 MMU와 같은 액세스 권한을 허용하지만 가상 주소 공간보다는 선형입니다.

2

FreeRTOS는 here으로 문서화 된 간단한 우선 순위 스케줄러를 사용합니다.

리눅스처럼 스레드를 처리한다는 것은 무슨 뜻인지 모르겠지만 모든 스레드가 동일한 우선 순위를 갖고 있다면 CPU 시간을 상당히 할당해야합니다.

+0

안녕하세요, 감사합니다. 하나 이상의 CPU가 있다면 어떻게 될까? –

1

예, 비슷한 우선 순위를 가진 작업에도 CPU 시간이 할당됩니다. 이 작업은 다음 웹 사이트에서 볼 수있다 : 추가 된 점, FreeRTOS으로

http://www.freertos.org/implementation/a00007.html

,이 이름은 실시간 운영 시스템 제안의로. 즉, FreeRTOS는 Linux와 같은 시간 공유 시스템처럼 실행되도록 구성 할 수 있으며 그 반대도 마찬가지입니다.

희망을 얻었습니다. 건배!

1

(무료) RTOS는 일반적으로 Linux와 같은 일반적인 GPOS에서 사용되는 것과 동일한 프로세스 및 스레드 아이디어를 가지고 있지 않습니다. 혼란을 피하기 위해 종종 "작업"이라는 용어가 사용됩니다.

즉, FreeRTOS coroutines을 볼 수 있습니다.이 유형은 FreeRTOS에서 실행 스레드 유형의 일종입니다.

0

모든 프로세스/스레드/작업에는 자체 스택이 있습니다. FreeRTOS는 그 목적으로 힙에서 메모리를 할당합니다. 이것은 FreeRTOS가 Task_A에서 Task_B로 컨텍스트를 전환 할 때 수행하는 것입니다. (1) CPU 레지스터의 모든 내용을 Task_A의 스택으로 푸시하십시오. (2) CPU 스택 포인터가 Task_A 대신 Task_B 스택을 참조하도록하십시오. (3) Task_B의 스택에는 Task_B가 휴면 상태가되었을 때 CPU의 '저장된 상태'를 나타내는 CPU 레지스터가 맨 위에 있습니다. 이제 그 값을 CPU 레지스터에 복원 할 차례입니다. (4) 작업 B를 계속 실행하십시오.

이 컨텍스트 전환은 일반적으로 FreeRTOS에서 매우 규칙적으로 발생합니다. 이러한 방식으로 FreeRTOS 운영 체제는 우선 순위가 가장 높은 모든 작업이 CPU 시간을 공유하도록 보장 할 수 있습니다. 우선 순위가 낮은 작업은 CPU 시간을 얻습니다 (예 : 높은 우선 순위의 작업). 세마포 큐를 기다리고있을 때 ..

FreeRTOS는 내가 아는 한 멀티 코어를 지원하지 않습니다. FreeRTOS는 일반적으로 CPU 코어가 하나 뿐인 초소형 마이크로 컨트롤러에서 실행됩니다.