VxWorks와 같은 실시간 운영 체제와 Windows와 같은 기존 운영 체제의 차이점은 무엇입니까?


대답 1:

실시간 OS는 특정 기간 내에 작업이 완료 될 것임을 보증합니다. 이것은 특정 도메인에서 중요 할 수 있습니다. 예를 들어, 자율 주행 차량 제어 시스템을 고려하십시오. 휠을 돌리지 않아도 충돌이 발생하지 않도록 제한된 시간 내에 계산이 완료되도록해야합니다.

즉, 스케줄러가 장치에서 작업이 실행되는 방식을 보장 할 수 있도록 OS 디자인이 다릅니다. 동시에 해당 OS 용으로 작성된 응용 프로그램은 이러한 요구 사항과 가정으로 인해 미묘하게 다릅니다.

반면, Windows에서 프로그램이 20ms 내에 완료되지 않으면 시스템이 느리게 보일 수 있지만 치명적인 오류 시나리오가 발생하지 않습니다. 다른 유형의 우선 순위를 지정할 수 있으므로 시스템과 상호 작용하려는 사용자에게이 유형의 환경이 더 나은 경우가 많습니다.


대답 2:

Saleem Abdulrasool은 훌륭한 답변을 제공합니다. 시스템 대기 시간에 관한 것입니다. 계산에서 실시간 정의는 발생하는 이벤트, 일반적으로 어떤 종류의 인터럽트 및 해당 이벤트에 응답하는 시스템 간의 응답 시간을 보장합니다.

다양한 운영 체제 제작자가 변경 및 테스트를 측정하는 데 사용하는 기본 하드웨어 세트로 하드웨어 믹스 및 실행 속도에 따라 응답 시간을 정의한다는 것을 알 수 있습니다.

응답 시간을 1 초로 정의하여 Windows를 실시간으로 정의 할 수 있습니다. 이 응답 시간은 실시간으로 간주되는 프로세스에 충분할 수 있습니다.

실시간 시스템의 코딩에도 동일한 제약 조건이 있으므로 코드가 응답하는 유형의 다음 인터럽트 전에 코드가 완료되어 시스템이 처리해야하는 다른 인터럽트를 허용해야합니다. 이것이 발생하지 않으면 코드가 스택을 손상시킬 위험이 있습니다.


대답 3:

저는 Saleem과 Andrew가 말한 것에 동의합니다. 일반적으로 RTOS와 기존 OS의 차이점은 스케줄링 알고리즘입니다. 이는 OS의 응용 프로그램 도메인과 우선 순위에 따라 결정됩니다.

기존 OS에서는 처리량과 공정성이 우선하므로 주어진 시간 내에 최대 수의 작업을 수행 할 수 있으며 모든 작업을 완료 할 수 있습니다.

RTOS에는 가능한 한 보장 된 완료 시간 창에 가까운 일부 작업이 있습니다. 이것이 다른 작업에 불공평 함을 의미하고 전체적으로 문제를 줄이더라도. RTOS 사용자가 지정한대로 실시간 작업에 일부 중요도가 있기 때문입니다. 따라서 이전에 시작된 작업조차 미리 선점하여 실시간 작업을 완료 할 수 있습니다. 이는 공정성을 위반하지만 실시간 원칙이 보장되어야합니다.

완료 시간에 "가능한 한 가깝게"말한 이유는 5 개의 실시간 작업을 동시에 시작하면 필요한 창 내에서 모든 작업을 완료하지 못할 수 있기 때문입니다. 시스템 설계자는 전체 시스템 및 용량 계획을 설계 할 때 이러한 가능성을 고려해야합니다.


대답 4:

VxWorks는 RTOS (Real-Time Operating System)이고 Windows는 GPOS (General Purpose Operating System)이므로 질문은 RTOS와 GPOS로 볼 수 있습니다.

가장 근본적인 차이점은 RTOS는 타이밍 동작에서 결정적이지만 GPOS는 비 결정적이라는 것입니다.

타이밍 동작의 결정 론적 의미는 RTOS 작업이 알려진 예상 시간 단위 만 소비한다는 것을 의미합니다. 예 : 샘플링 계산 (작업)이 2ms 안에 수행 될 것임을 알 수 있습니다.

GPOS에서 서비스 (작업)는 임의의 시간 지연을 응용 프로그램 소프트웨어에 주입 할 수 있으므로 예기치 않은 시간에 응답 속도가 느려질 수 있습니다. 예를 들어, 클릭하여 창을 열면 2 초 이내에 Windows의 Microsoft Word가 열리라고 보장 할 수 없습니다.