- RTOS 란 무엇입니까?
- 왜 RTOS인가 ??
- 실시간 운영 체제와 운영 체제의 차이점
- RTOS의 유형
- 무료 RTOS 사용의 이점
- RTOS와 관련된 몇 가지 주요 문제
- RTOS 사용 방법
임베디드 시스템은 우리 주변의 모든 전자 장치에 광범위하게 적용됩니다. 분명한 예는 우리가 항상 가지고 다니는 미니 노트북입니다.
임베디드 시스템이 등장 할 때마다 마이크로 컨트롤러 또는 마이크로 프로세서와 같은 하드웨어와 펌웨어 또는 운영 체제와 같은 소프트웨어의 조합입니다. 운영 체제는 모든 전자 기기의 기반을 형성하고 하드웨어 및 전자 기기 내에서 소프트웨어를 모두 관리합니다. 운영 체제라는 용어는 컴퓨터 용 Unix 및 Windows로 제한 될뿐만 아니라 마이크로 컨트롤러로 확장 될 수도 있습니다. 마이크로 컨트롤러에서 실행할 수있는 이러한 운영 체제 중 하나를 실시간 운영 체제 라고 합니다. 여기에서는 RTOS 및 실시간 운영 체제의 응용 프로그램에 대해 알아 봅니다.
RTOS 란 무엇입니까?
RTOS로 널리 알려진 실시간 운영 체제는 컨트롤러가 우선 순위에 따라 특정 기간 내에 입력에 응답하고 작업을 완료 할 수있는 기능을 제공합니다. 처음 보면 RTOS는 다른 임베디드 프로그램이나 펌웨어처럼 들릴 수 있지만 운영 체제의 아키텍처를 기반으로합니다. 따라서, 임의의 운영 체제와 같은 RTOS가 여러 프로그램 지원을 동시에 실행할 수있다 다중화. 우리가 알고 있듯이 프로세서 또는 컨트롤러의 핵심은 한 번에 하나의 명령 만 실행할 수 있지만 RTOS에는 스케줄러 라는 것이 있습니다.어떤 명령어를 먼저 실행할지 결정하여 여러 프로그램의 명령어를 차례로 실행합니다. 기술적으로 RTOS는 병렬로 연결된 명령을 한 번에 하나씩 실행함으로써 멀티 테이킹의 환상을 만듭니다.
따라서 RTOS는 실제 세계의 다양한 응용 프로그램에 적합합니다. 해당 출력을 제공하는 로직이 평가 될 때마다 모든 입력에 대한 RTOS에서. 이 논리는 논리적 인 창의성뿐만 아니라 특정 작업이 수행 된 기간을 기준으로 측정됩니다. 시스템이 특정 시간 동안 작업을 수행하지 못하는 경우이를 시스템 오류라고합니다.
왜 RTOS인가 ??
- 드라이버 가용성: RTOS에는 다양한 응용 프로그램에 직접 사용할 수있는 많은 드라이버가 있습니다.
- 예약 된 파일: RTOS는 예약을 처리하므로 시스템 예약에 집중하는 대신 응용 프로그램 개발에만 집중할 수 있습니다. 예를 들어 작업 예약 파일은 일련의 조건이 충족 될 때마다 특정 작업을 정의하는 데 사용됩니다. RTOS는 일반적으로 실행, 준비 및 차단 된 상태를 스케줄링하기 위해 특정 고급 알고리즘을 사용합니다. RTOS를 실행하는 동안 스케줄링보다는 애플리케이션 개발에 더 집중합니다.
- 기능 추가의 유연성: RTOS 내에서 새 기능을 추가하려는 경우에도 기존 기능을 방해하지 않고 간단히 추가 할 수 있습니다.
실시간 운영 체제와 운영 체제의 차이점
실시간 운영 체제와 Windows, Linux 등과 같은 운영 체제 간에는 다양한 차이점이 있습니다. 테이블 형식을 사용하여 하나씩 살펴 보겠습니다.
S. 아니 | 운영 체제 | 실시간 시스템 |
1 | 시간 공유는 운영 체제에서 프로세스 실행의 기초입니다. | 프로세스는 우선 순위 에 따라 실행됩니다. |
2 | 운영 체제는 시스템의 하드웨어와 소프트웨어 간의 인터페이스 역할을합니다. | 실시간 시스템은 실제 문제에 대해 실행되도록 설계되었습니다. |
삼 | 운영 체제 실행과 관련하여 메모리 관리는 중요한 문제가 아닙니다. | 메모리가 할당되는 실시간 문제에 따라 메모리 관리가 어렵습니다. 이는 그 자체로 중요합니다. |
4 | 응용 프로그램: 사무실, 데이터 센터, 가정용 시스템 등 | 응용 분야: 항공기 또는 원자로 제어, 과학 연구 장비 |
5 | 예: Microsoft Windows, Linux, OS | 예: Vx Works, QNX, Windows CE |
RTOS의 유형
실시간 운영 체제를 크게 세 부분으로 분류 할 수 있습니다.
- 하드 실시간 운영 체제
- 소프트 실시간 운영 체제
- 확고한 실시간 운영 체제
1. 하드 실시간 운영 체제
예제를 사용하여 이러한 유형의 운영 체제를 이해하기 시작하겠습니다. 실제 예제는 비행 제어 시스템입니다. 비행 제어 시스템 내에서 조종사가 입력 형태로 제공하는 모든 작업은 정시에 수행되어야합니다. 하드 실시간 운영 체제에서는 시스템 오류를 허용 할 수 있습니다. 하드 RTOS의 기능은 다음과 같습니다.
- 정시에 작업을 수행하려면
- 기한을 지키지 못하면 치명적입니다.
- 더 나쁜 케이스 응답 시간 보장
- 시스템 오류로 이어질 수 있음
2. 소프트 실시간 운영 체제
소프트 RTOS를 사용하는 가장 쉬운 예는 온라인 데이터베이스입니다. 소프트 RTOS 내에서 우리가 더 걱정하는 매개 변수는 속도입니다. 따라서 소프트 RTOS의 기능은 다음과 같습니다.
- 작업은 가능한 한 빨리 수행해야합니다.
- 작업을 늦게 완료하는 것은 바람직하지 않지만 치명적이지는 않습니다.
- 성능 저하 가능성이 있습니다.
- 시스템 장애로 이어질 수 없습니다
3. 확고한 실시간 운영 체제
물체를 집는 데 사용되는 로봇 팔은 견고한 RTOS의 한 예 중 하나로 간주 될 수 있습니다. 여기서는이 회사 내에서 프로세스가 지연 되더라도 허용됩니다.
무료 RTOS 사용의 이점
다음은 응용 프로그램에서 RTOS를 사용할 때의 이점입니다.
- 방화벽 문제 없음
- 성능 향상을위한 낮은 대역폭
- 향상된 보안 및 개인 정보
- 개발에 사용되는 하드웨어 및 소프트웨어 구성 요소의 감소로 인한 저렴한 비용
RTOS와 관련된 몇 가지 주요 문제
이제 실제 응용에서 RTOS에 대한 많은 장점이 있음에도 불구하고 다양한 단점도 있습니다. 여기에서는 이와 관련된 몇 가지 문제에 대해 설명합니다.
- 인터럽트는 일반적으로 프로그램에서 실행중인 프로그램을 중지하여 흐름을 코드의 다른 중요한 부분으로 전환하는 데 사용됩니다. 여기서는 빠른 응답 시간이 필요하므로 RTOS 내에서; 가능한 최소한의 시간 동안 인터럽트를 비활성화 하는 것이 좋습니다.
- 커널은 다양한 이벤트에 대해서도 응답해야 하므로 ROM에 적절하게 맞도록 커널 크기를 줄여야합니다.
- RTOS의 정교한 기능은 가상 메모리에 대한 개념이 없기 때문에 제거해야합니다.
RTOS 사용 방법
이제 RTOS가 무엇이며 어디서 사용할 수 있는지 알았으므로 RTOS 를 시작 하려면 일반적으로 Tornado 또는 FreeRTOS 개발 환경을 사용해야합니다. 이 두 개발 환경에 대해 간략하게 살펴 보겠습니다.
토네이도 – VxWorks
Tornado 는 대상 시스템에서 실시간 관련 임베디드 RTOS 애플리케이션 을 개발하기위한 통합 환경 입니다. 토네이도는 아래에 나열된 세 가지 기본 요소로 구성됩니다.
1) VxWorks
2) 애플리케이션 구축 도구 (컴파일러 및 관련 프로그램)
3) VxWorks 애플리케이션을 관리, 디버그 및 모니터링 할 수있는 통합 개발 환경
VxWorks 는 네트워크로 연결된 실시간 운영 체제입니다. VxWorks를 시작하려면 하나의 워크 스테이션과 함께 하나의 개발 키트 (타겟)가 있어야합니다. 여기서 개발 키트는 워크 스테이션의 대상 서버와 통신하는 대상 호스트 또는 구성 요소 일뿐입니다. 여기서 타겟은 쉘 및 디버거 와 같은 토네이도 도구를 연결합니다. 따라서 VxWorks를 사용하여 시스템을 구성하고 구축 할 것이며 Tornado는 구성 및 구축을위한 그래픽 사용자 인터페이스 와 명령 줄 도구 를 제공합니다.
여기 그림에 나오는 매우 중요한 점은 시스템 내에 tornado를 설치하는 동안 설치 디렉토리가 경로 이름을
installDir / target 으로 사용해야한다는 것 입니다. 예를 들어 Windows 호스트의 C: \ tornado에 토네이도를 저장하려면 전체 경로 이름이 installDir / target / h / vxworks.h로 식별되어야합니다.
여기서는 Vx 작업의 기능에 대해 자세히 논의하지 않겠지 만 (다음 튜토리얼에서 남겨 둘 것입니다) WindRiver GNU를 사용하여 Vxworks 내에서 C ++를 사용하여 개발을 수행하는 방법에 대해 논의 할 것 입니다. WindRiver GNU는 실행 중에 관련된 인터럽트와 메모리 사용 보고서에 대한 그래픽 분석을 제공하는 데 도움이됩니다.
예를 들어, 위에서 언급 한 WindRiver보기에서는 작업 우선 순위 (tLowPri 및 tHighPri)와 함께 관련 프로세서 번호를 설명합니다. 유휴 상태, 즉 녹색 선은 프로세서가 작동 상태가 아닌 시간을 나타내며 몇 초마다 관찰됩니다. t1, t7, t8 & t9는 사용되는 다양한 프로세서에 불과합니다. 여기서는 t7 프로세서 만 선택합니다.
따라서이 Windriver는 VxWorks 및 애플리케이션 모듈 서브 루틴을 모두 호출 할 수 있습니다. 토네이도 실행 도구 모음 (-> i 버튼)에서 나중에 메뉴를 클릭 한 다음 셸을 클릭하여 Windriver 애플리케이션을 실행할 수 있습니다. 마지막으로 명령 프롬프트에서 "> windsh target server"를 입력합니다.
이제 C ++를 사용하여 프로그래밍하려면 INCLUDE_CPLUS_DEMANGLER 구성 요소를 포함하는 것이 중요합니다.이 demangler 구성 요소를 사용하면 대상 셸 기호가 사람이 읽을 수있는 C ++ 기호 이름 형식을 반환 할 수 있습니다. Vxworks 대상에 C ++ 모듈을 다운로드하기 전에 munching으로 알려진 프로세스를 따르십시오. 여기서 munching은 추가 호스트 처리 단계를 의미합니다.
C ++ 응용 프로그램 소스 프로그램을 컴파일하고 예를 들어 hello.cpp 파일을 가져옵니다. 나중에 그것을 실행하여.o에서 munch하고 생성 된 ctdt.c 파일을 컴파일하십시오. 또한 응용 프로그램을 ctdt.o와 연결하여 VxWorks 내에서 다운로드 가능한 모듈 인 hello.out을 생성합니다. 이 VxWorks를 실행 한 후 출력은 일부 대상에서 사용할 make 파일입니다.
무료 RTOS
일반적으로 RTOS로 시작할 때마다 일반적으로 Vx Works RTOS를 선호합니다. 그러나 여기서는 초보자도 실시간 운영 체제의 개념을 살펴보기 위해 사용할 수있는 Free RTOS에 대해 간략히 설명하겠습니다. 무료 RTOS는 Richard Barry와 FreeRTOS 팀이 개발했으며 Real time engineer ltd가 소유하고 있지만 무료로 사용할 수 있으며 아래 링크를 클릭하여 간단히 다운로드 할 수 있습니다.
무료 ROTS 다운로드
이 문서에서 사용중인 최신 무료 RTOS 버전은 FreeRTOS V10으로 표시된 버전 10입니다.
무료 RTOS의 가장 큰 장점은 하드웨어 측면에서 플랫폼 독립적 인 동작입니다. 즉, 운영 체제를 실행하는 데 사용할 c 코드는 아키텍처가 다른 다양한 플랫폼에서 실행할 수 있습니다. 따라서 8051 마이크로 컨트롤러를 사용하는지 또는 최신 ARM 마이크로 컨트롤러를 사용하는지에 관계없이 실행 프로세스와 함께 작성한 코드는 둘 다 비슷합니다.
Vx 작업 및 기타 RTOS 운영 도구보다 무료 RTOS를 사용하면 다른 많은 이점이 있습니다. 그들 중 일부는 다음과 같이 말할 수 있습니다.
- 더 쉬운 테스트 제공
- 코드 재사용 성의 개념을 촉진합니다.
- 더 적은 유휴 시간
- 쉬운 유지 보수
- 타이밍 정보 추상화
또한 기본 Kernel, 여기서 Kernel은 무료 RTOS 내에 존재하는 운영 체제의 핵심 구성 요소를 의미하므로 다양한 응용 프로그램에서 사용할 수 있습니다. 확장 된 모듈을 운영 체제에 쉽게 부착하여 더 많은 응용 프로그램을 무료로 얻을 수 있기 때문에 RTOS가 더욱 강력 해집니다.
무료 RTOS를 사용하는 예 중 하나는 Free RTOS와 Nabto를 결합하는 개념을 사용하여 설명 할 수 있습니다. Nabto 는 장치에서 브라우저로 정보를 전송하는 데 사용되는 무료 웹 장치입니다.
따라서 Free RTOS를 Nabto와 결합 하면 그림 a에 설명 된 것처럼 작은 C 코드가됩니다. 요즘에는 사물 인터넷 (IOT)이 유행하고 있으며 우리가 액세스 할 모든 IOT 장치는 인터넷을 통해 고유 한 URL을 가지고 있으며이 기술은 안전하고 매우 낮은 대역폭의 지점 간 연결을 허용합니다. 인터넷 연결이없는 경우이 조합이 도움이 될 수 있습니다. 따라서 무료 RTOS는 IOT 구현과 관련하여 인기있는 선택입니다.