"소프트 실시간"을 정의하려면 "하드 실시간"과 비교하는 것이 가장 쉽습니다. 아래에서 "확실한 실시간"이라는 용어가 "소프트 실시간"에 대한 오해를 구성한다는 것을 알 수 있습니다.
자연스럽게 말하면 대부분의 사람들은 정보 나 이벤트를 "실시간"으로 간주하는 비공식적 정신 모델을 암묵적으로 가지고 있습니다.
•인지 된 통화와 관련 될 수있는 지연 (대기 시간)이있는 경우 또는 그 정도까지 나타납니다.
• 즉, 정보 또는 이벤트가 만족할만한 가치를 갖는 시간 프레임.
"하드 실시간"에 대한 다양한 임시 정의가 있지만이 멘탈 모델에서 하드 실시간은 "if"용어로 표현됩니다. 특히, 실시간 작업 (예 : 작업)에 완료 기한이 있다고 가정하면 모든 작업이 완료되는 이벤트의 만족스러운 가치는 모든 작업이 기한을 충족하는 특별한 경우로 제한됩니다.
하드 실시간 시스템은 애플리케이션과 시스템 및 환경에 대한 모든 것이 정적이고 선험적으로 알려져 있다는 매우 강력한 가정을합니다. 자원 충돌이 없으며 시스템의 전반적인 시간 진화가 있습니다. 항공기 비행 제어 시스템 또는 자동차 제동 시스템 및 기타 여러 경우에서 이러한 가정은 일반적으로 모든 기한이 충족되도록 충족 될 수 있습니다.
이 멘탈 모델은 하드 및 소프트 실시간을 모두 포괄 할 수있을만큼 의도적이고 매우 유용하게 일반적입니다. 소프트는 "그 정도까지"라는 문구에 의해 수용됩니다. 예를 들어 작업 완료 이벤트가 다음과 같은 경우 차선책이지만 허용 가능한 값을 갖는다 고 가정합니다.
- 작업의 10 % 이상이 마감일을 놓치지 않습니다.
- 또는 작업이 20 % 이상 지각되지 않음
- 또는 모든 작업의 평균 지각이 15 % 이하입니다.
- 또는 모든 작업 중 최대 지각이 10 % 미만입니다.
이들은 모두 매우 많은 애플리케이션에서 소프트 실시간 사례의 일반적인 예입니다.
방과 후 자녀를 데리러 오는 단일 작업 응용 프로그램을 고려하십시오. 그것은 아마도 실제 기한이 없을 것입니다. 대신 그 사건이 발생하는시기에 따라 귀하와 귀하의 자녀에게 어떤 가치가 있습니다. 너무 일찍은 자원 (예 : 시간)을 낭비하고 너무 늦으면 자녀가 홀로 남겨져 잠재적으로 위험에 처할 수 있기 때문에 (또는 최소한 불편을 겪을 수 있기 때문에) 부정적인 가치가 있습니다.
정적 하드 실시간 특수 사례와 달리 소프트 실시간은 작업 및 시스템에 대해 필요한 최소한의 애플리케이션 별 가정 만 수행하며 불확실성이 예상됩니다. 자녀를 데리러 가려면 학교까지 운전해야하며 날씨, 교통 상황 등에 따라 시간이 달라집니다. 시스템을 과도하게 프로비저닝하고 싶을 수 있습니다. 최악의 운전 시간) 그러나 이것은 다시 자원 (시간, 가족 차량을 차지하고 다른 가족 구성원의 사용을 거부 할 수 있음)을 낭비하고 있습니다.
이 예는 자원 낭비 측면에서 비용이 많이 들지 않는 것처럼 보일 수 있지만 다른 예를 고려하십시오. 모든 군사 전투 시스템은 소프트 실시간입니다. 예를 들어, 업데이트 된 미사일을 목표 기동으로 사용하여 적대적인 지상 차량에 항공기 공격을 수행하는 것을 고려하십시오. 코스 업데이트 작업을 완료하는 데 대한 최대 만족도는 대상에 대한 직접적인 파괴 공격으로 달성됩니다. 그러나 이러한 결과를 확인하기 위해 리소스를 과도하게 프로비저닝하려는 시도는 일반적으로 너무 비싸고 불가능할 수도 있습니다. 이 경우 미사일이 목표물에 충분히 가까워 져서 미사일을 비활성화 할 수 있다면 덜 만족할 수 있습니다.
분명히 전투 시나리오에는 자원 관리에 의해 수용되어야하는 가능한 많은 동적 불확실성이 있습니다. 소프트 실시간 시스템은 산업 자동화와 같은 많은 민간 시스템에서도 매우 일반적이지만, 당연히 군용 시스템은 만족할만한 가치를 달성하기 위해 가장 위험하고 긴급한 시스템입니다.
실시간 시스템의 핵심은 "예측 가능성"입니다. 하드 실시간 사례는 예측 가능성의 한 가지 특별한 경우에만 관심이 있습니다. 즉, 작업이 모두 마감일을 충족하고 해당 이벤트에 의해 가능한 최대 값이 달성된다는 것입니다. 이 특별한 경우를 "결정적"이라고합니다.
다양한 예측 가능성이 있습니다. 결정 론적 (결정론)은 예측 가능성 스펙트럼에서 하나의 끝점 (최대 예측 가능성)입니다. 다른 끝점은 최소 예측 가능성 (최대 비결 정성)입니다. 스펙트럼의 메트릭과 끝점은 선택한 예측 가능성 모델의 관점에서 해석되어야합니다. 이 두 끝점 사이의 모든 것은 예측 불가능한 정도 (= 비결 정성 정도)입니다.
대부분의 실시간 시스템 (즉, 소프트 시스템)은 예를 들어 작업 완료 시간과 그에 따른 이벤트에서 얻은 값에 대한 비 결정적 예측 가능성을 가지고 있습니다.
일반적으로 (이론상) 예측 가능성 및 만족할만한 가치는 필요한만큼 결정 론적 종점에 가깝게 만들 수 있지만 물리적으로 불가능하거나 과도하게 비쌀 수있는 가격 (전투 중 또는 학교에서 자녀를 데리러 가기).
소프트 리얼 타임은 확률 모델 (일반적인 빈도주의 모델이 아님)의 애플리케이션 별 선택이 필요하므로 이벤트 지연 및 결과 값에 대한 추론을위한 예측 가능성 모델이 필요합니다.
허용 가능한 값을 제공하는 위의 이벤트 목록을 다시 참조하면 다음과 같은 비 결정적 케이스를 추가 할 수 있습니다.
- 어떤 작업도 기한을 5 % 넘게 놓칠 확률은 0.87보다 큽니다. (여기에 표시된 일정 기준의 수에 유의하세요.)
미사일 방어 응용 프로그램에서 전투에서 공격이 항상 방어보다 유리하다는 사실을 감안할 때 다음 두 가지 실시간 컴퓨팅 시나리오 중 어느 것을 선호합니까?
모든 적대 미사일의 완벽한 파괴는 거의 불가능하거나 불가능하기 때문에 방어 자원을 할당하여 가장 위협적인 (예 : 목표에 따라) 적대 미사일이 성공적으로 요격 될 가능성을 최대화합니다 (근접 요격이 중요합니다. 적대 미사일을 경로를 벗어나 이동할 수 있습니다.
이것은 정적이 아닌 동적이고 전통적인 실시간 개념과 기술이 적용되지 않기 때문에 실시간 컴퓨팅 문제가 아니라고 불평하고, 정적 하드 실시간보다 어렵게 들리므로 관심이 없습니다. .
실시간 컴퓨팅 커뮤니티에서 소프트 리얼 타임에 대한 다양한 오해에도 불구하고 소프트 리얼 타임은 매우 일반적이고 강력하지만 하드 리얼 타임에 비해 잠재적으로 복잡합니다. 여기에 요약 된 소프트 실시간 시스템은 실시간 컴퓨팅 커뮤니티 외부에서 오랫동안 성공적으로 사용 된 기록을 가지고 있습니다.
OP 질문에 직접 답변하려면 :
하드 실시간 시스템은 결정 론적 보장을 제공 할 수 있습니다. 대부분의 경우 모든 작업이 기한을 충족하고, 인터럽트 또는 시스템 호출 응답 시간이 항상 x보다 작습니다. 매우 강력한 가정이 이루어지고 올바른 경우에만 가능합니다. 중요한 모든 것은 정적이고 선험적으로 알려진 것입니다 (일반적으로 하드 실시간 시스템에 대한 이러한 보장은 다소 단순한 경우를 제외하고는 개방형 연구 문제입니다)
소프트 실시간 시스템은 결정 론적 보장을하지 않으며, 응용 프로그램 별 기준에 따라 현재 동적 상황에서 실행 가능한 최적의 분석적으로 지정되고 달성 된 확률 적 적시성 및 적시성 예측 가능성을 제공하기위한 것입니다.
분명히 하드 실시간은 소프트 실시간의 단순한 특수한 경우입니다. 분명히 soft real-time의 분석적 비 결정적 보증은 제공하기가 매우 복잡 할 수 있지만 대부분의 실시간 사례가 동적이 아니기 때문에 가장 일반적인 실시간 사례 (전투와 같이 가장 위험한 안전에 중요한 사례 포함)에서는 필수입니다. 공전.
"확실한 실시간"은 "소프트 실시간"의 잘못 정의 된 특수 사례입니다. "소프트 리얼 타임"이라는 용어를 제대로 이해하고 사용한다면이 용어는 필요하지 않습니다.
내 웹 사이트 real-time.org에서 실시간, 하드 실시간, 소프트 실시간, 예측 가능성, 결정 성 및 관련 주제에 대해 훨씬 더 자세히 설명합니다.