하드 리얼 타임, 소프트 리얼 타임, 펌 리얼 타임의 차이점은 무엇입니까?


102

실시간다른 개념에 대한 정의를 읽었으며 하드 및 소프트 실시간 시스템에 대해 제공된 예제가 이해가됩니다. 그러나 확고한 실시간 시스템에 대한 실제 설명이나 예는 없습니다. 위의 링크에 따르면 :

확고 함 : 드물게 기한을 놓치는 것은 허용되지만 시스템의 서비스 품질을 저하시킬 수 있습니다. 결과의 유용성은 마감일 이후에 0입니다.

펌 리얼 타임과 하드 또는 소프트 리얼 타임 사이에 명확한 차이가 있습니까? 그 차이를 보여주는 좋은 예가 있습니까?

댓글에서 Charles는 새 태그에 대한 태그 위키를 제출하도록 요청했습니다. 내가 제공 한 "확실한 실시간 시스템"의 예는태그는 우유 서빙 시스템이었습니다. 시스템이 만료 시간 이후에 우유를 공급하면 우유는 "유용하지 않은"것으로 간주됩니다. 우유없이 시리얼을 먹는 것은 견딜 수 있지만 경험의 질이 떨어집니다.

이것은 내가 처음에 정의를 읽을 때 내 머릿속에서 형성 한 아이디어 일뿐입니다. 나는 훨씬 더 나은 예를 찾고 있으며 아마도 그것에 대한 나의 개념을 향상시킬 회사 실시간 의 더 나은 정의를 찾고 있습니다.


11
기본적으로 정의는 확실하지 않습니다.
Hot Licks 2013 년

원래 태그를 복원했습니다. 실시간으로 하드 또는 소프트와 관련하여 질문에보다 구체적인 태그를 배치 할 수 있으면 유용하다고 생각합니다. 질문에 대한 답변을받는 방식을 변경합니다. 6 개월 후에도 태그를 사용하지 않으면 태그가 자동으로 제거됩니다.
jxh

당신은 위하여려고하는 경우에 주장세 개의 새로운이 질문에 대한 태그 혼자이 질문에 적어도 추가 위키가 적용됩니다되는 다른 질문을 찾아보십시오.
Charles

답변:


114

하드 실시간은 모든 기한을 반드시 지켜야 함을 의미합니다. 이 요구 사항이있는 시스템은 거의 없습니다. 몇 가지 예로는 핵 시스템, 심장 박동기와 같은 일부 의료 응용 프로그램, 다수의 방어 응용 프로그램, 항공 전자 공학 등이 있습니다.

회사 / 소프트 실시간 시스템은 일부 기한을 놓칠 수 있지만 너무 많이 놓치면 결국 성능이 저하됩니다. 좋은 예는 컴퓨터의 사운드 시스템입니다. 만약 당신이 몇 비트를 놓치더라도 큰 문제는 아니지만 너무 많이 놓치면 결국 시스템을 저하시킬 것입니다. 지진 센서도 비슷합니다. 몇 개의 데이터 포인트를 놓친 경우 큰 문제는 아니지만 데이터를 이해하려면 대부분을 잡아야합니다. 더 중요한 것은 제대로 작동하지 않으면 아무도 죽지 않을 것입니다.

심장 박동기조차도 환자를 죽이지 않고 조금씩 떼어 낼 수 있기 때문에 선이 흐릿합니다.하지만 이것이 일반적인 요점입니다.

뜨겁고 따뜻한 것의 차이와 비슷합니다. 진정한 분열은 없지만 느낄 때 그것을 압니다.


2
당신의 "확실한"예는 나에게 "부드럽게"보인다.
jxh

언급했듯이 구분선은 매우 흐릿합니다. 제가 작업 한 하나의 소프트 실시간 시스템은 몇 초의 허용 오차를 가졌으므로 여기서 선을 그립니다.
Joel

1
연속체라는 것을 명심하십시오. 거의 모든 컴퓨터 시스템은 일정 시간 규모에서 "실시간"입니다. 회사의 청구 시스템은 회사로의 현금 흐름을 유지하기 위해 청구서를 충분히 빨리 내 보내야합니다. 그렇지 않으면 회사가 죽을 것입니다. 심박 조율기가 몇 백 밀리 초만큼 박동을 놓치면 환자가 죽을 것입니다.
Hot Licks 2013-06-26

일부 시스템에서는 놓친 기한이 허용 될 수 있다는 것을 이해하지만 이것이 소프트 실시간 시스템에 대한 이해입니다. 기준의 실용적인 예를 찾고 있습니다. 결과의 유용성은 마감일 이후에 0입니다. 사운드 예를 들어 사운드가 비디오 스트림과 동기화되면 늦게 도착하는 오디오 패킷이 유용하지 않을까요? 그러나 비디오를 따라 잡기 위해 오디오 속도를 높이는 일부 영화 재생 시스템이 있습니다.
jxh 2013-06-26

실시간 요구 사항은 문제에 내재 된 것이 아니라 주어진 시스템의 맥락에 있습니다. 당신이 제공하는 예에서, 소리에 여전히 손상이 있고 (속도가 빨라짐) 소리와 비디오에 일시적인 불일치가 있습니다.
Joel

113

하드 실시간

하드 실시간 정의는 시스템 오류로 기한을 놓친 간주합니다. 이 스케줄링은 타이밍 제약을 준수하지 않으면 인명 또는 재산 손실이 발생하는 미션 크리티컬 시스템에서 광범위하게 사용됩니다.

예 :

  • 에어 프랑스 447 편은 센서 오작동으로 일련의 시스템 오류가 발생한 후 바다에 추락했습니다. 조종사는 오래된 계기 판독 값에 응답하면서 항공기를 멈췄습니다. 12 명의 승무원과 216 명의 승객이 모두 사망했습니다.

  • Mars Pathfinder 우주선은 우선 순위 반전으로 인해 시스템이 다시 시작되었을 때 거의 손실되었습니다. 우선 순위가 더 높은 작업이 우선 순위가 낮은 작업에 의해 차단되어 제 시간에 완료되지 않았습니다. 문제가 해결되었고 우주선이 성공적으로 착륙했습니다.

  • 잉크젯 프린터에는 용지의 특정 부분에 정확한 양의 잉크를 도포하는 제어 소프트웨어가있는 프린트 헤드가 있습니다. 마감일을 놓치면 인쇄 작업이 망가집니다.


확고한 실시간

회사 실시간 정의는 자주 놓친 마감이 가능합니다. 이러한 응용 프로그램에서 시스템은 적절한 간격이있는 한 작업 실패에서 살아남을 수 있지만 작업 완료 값이 0으로 떨어지거나 불가능 해집니다.

예 :

  • 로봇 조립 라인이있는 제조 시스템에서 마감일이 누락되면 부품이 부적절하게 조립됩니다. 파손 된 부품이 품질 관리에 걸리지 않고 너무 비싸지 않는 한 생산은 계속됩니다.

  • 디지털 케이블 셋톱 박스는 프레임이 화면에 표시되어야하는 시간 스탬프를 디코딩합니다. 프레임은 시간 순서에 민감하므로 기한을 놓치면 지터가 발생하여 서비스 품질이 저하됩니다. 나중에 놓친 프레임을 사용할 수있게되면 더 많은 지터가 표시 될 뿐이므로 쓸모가 없습니다. 시청자는 지터가 너무 자주 발생하지 않아도 프로그램을 계속 즐길 수 있습니다.


소프트 실시간

소프트 실시간 정의는 자주 놓친 마감을 허용하고, 한 작업을 적시에 실행으로 그 결과 값이 계속. 완료된 작업은 마감일까지 가치가 증가하고 그 이후에는 가치가 감소 할 수 있습니다.

예 :

  • 기상 관측소에는 온도, 습도, 풍속 등을 판독하기위한 많은 센서가 있습니다. 판독 값을 정기적으로 가져와 전송해야하지만 센서는 동기화되지 않습니다. 센서 판독 값이 다른 판독 값에 비해 빠르거나 늦어도 충분히 가깝다면 여전히 관련성이있을 수 있습니다.

  • 비디오 게임 콘솔은 게임 엔진 용 소프트웨어를 실행합니다. 작업간에 공유해야하는 많은 리소스가 있습니다. 동시에 게임이 올바르게 실행 되려면 일정에 따라 작업을 완료해야합니다. 작업이 상대적으로 제 시간에 완전히 맞춰지는 한 게임은 즐겁고 그렇지 않으면 약간만 지연 될 수 있습니다.


Siewert : 실시간 임베디드 시스템 및 구성 요소.
Liu & Layland : 하드 실시간 환경에서 멀티 프로그래밍을위한 스케줄링 알고리즘.
Marchand & Silly-Chetto : 소프트 비 주기적 작업 및 스킵이있는 주기적 작업의 동적 스케줄링.


10
얼마나 즐거운 예제 목록입니까!
Erik Kaplun 2015

가장 좋은 예 중 하나
비슈누 NK

447 추락 사고의 경우 비행기가 정체되기 전에 기한을 놓친 것이 많지 않았나요? 그런 의미에서 모든 시스템이 견고 해 보입니다.
Josiah Yoder

3
매우 좋은 목록이지만 잉크젯 프린터 예는 하드 실시간에 적합하지 않으며 기껏해야 단단하고 부드럽습니다.
Ab Irato

예를 들어 tysm
himanshuxd 19

43

실시간 컴퓨팅에 대한 Wikipedia 페이지 및 기타 페이지를 읽은 후. 나는 다음과 같은 추론을했다.

1> 하드 실시간 시스템 의 경우 시스템이 실패한 것으로 간주 되어도 시스템이 기한을 충족하지 못하는 경우.

2> Firm 실시간 시스템의 경우 시스템이 기한을 맞추지 못하더라도 한 번 이상 (예 : 여러 요청의 경우) 시스템이 실패한 것으로 간주되지 않습니다. 또한 특정 요청의 기한이 지나면 요청에 대한 응답 (질의에 대한 응답, 작업 결과 등)은 쓸모가 없습니다 ( 결과의 유용성은 기한 후 0 임). 가상의 예는 폭풍우 예측 시스템 일 수 있습니다 (폭풍이 도착하기 전에 예측되면 시스템이 작업을 수행 한 것입니다. 이벤트가 이미 발생한 후 예측하거나 발생했을 때 가치가 없음).

3> Soft real-time 시스템의 경우 시스템이 기한을 맞추지 못하더라도 두 번 이상 (예 : 여러 요청에 대해) 시스템이 실패한 것으로 간주되지 않습니다. 그러나이 경우 요청 의 결과는 마감일 이후의 결과에 대해 쓸모없는 가치가 아니며 0이 아니며 마감일 이후 시간이 지남에 따라 저하됩니다. 예 : 스트리밍 오디오-비디오.

다음 은 매우 유용한 리소스에 대한 링크입니다.


4
폭풍 예보 시스템은 좋은 예가 아닙니다. 시간을 기준으로 기한을 설정해야하기 때문이며 폭풍이 발생할 수있는 가장 빠른 시간을 이미 알고 있다면 폭풍 예보 시스템이 중복됩니다.
jxh

12

큰 재앙을 하드 리얼 타임의 정의와 연관시키는 것이 인기가 있지만 이것은 관련이 없습니다. 엄격한 실시간 제약 조건을 충족하지 못하면 단순히 시스템이 손상되었음을 의미합니다. 어떤 것이 "파손"으로 표시 될 때 결과의 심각성은 정의에 중요하지 않습니다.

Firm과 Soft는 단일 기한을 지키지 않으면 자동으로 파기 선언되지 않습니다.

하드 리얼 타임의 공정한 예를 보려면 링크 한 페이지에서 :

Atari 2600 및 Cinematronics 벡터 그래픽과 같은 초기 비디오 게임 시스템은 그래픽 및 타이밍 하드웨어의 특성으로 인해 어려운 실시간 요구 사항이있었습니다.

비디오 생성 루프의 어떤 것이 단 하나의 기한을 놓치면 전체 디스플레이에 결함이 발생하여 드물더라도 견딜 수 없습니다. 그것은 고장난 시스템이고 당신은 환불을 위해 그것을 가게로 가져갈 것입니다. 그래서 그것은 실시간으로 어렵습니다.

분명히 모든 시스템은 처리 할 수없는 상황에 처할 수 있으므로 정의를 예상 된 작동 조건 내로 제한해야합니다. 안전이 중요한 응용 프로그램에서는 사람들이 끔찍한 조건에 대해 계획해야합니다 ( "냉각수가 증발했습니다", " 브레이크가 고장났습니다. ", 드물게"태양이 폭발했습니다 ").

그리고 때때로 "누구나 지켜 보는 동안"작동 조건이 암시 적으로 존재한다는 사실을 잊지 마십시오. 아무도 당신이 규칙을 어기는 것을 보지 못한다면 (또는 그들이 그렇게했지만 그들은 누구에게도 알리기 전에 불이났다) 그리고 아무도 당신이 사실 이후에 당신이 규칙을 어겼다는 것을 증명할 수 없다면, 그것은 당신이 규칙을 어 기지 않은 것과 같습니다!


4
If nobody sees you break the rules (or if they did but they die the fire before telling anyone), and nobody can prove that you broke the rules after the fact, then it's kind of the same as if you never broke the rules!... 좋아, HAL. 자, 포드 베이 문 좀 열어 주 시겠어요?
기본적으로

11

다양한 종류의 실시간 시스템 유형을 구별하는 가장 간단한 방법은 다음 질문에 답하는 것입니다.

지연된 시스템 응답 (마감 후)이 여전히 유용합니까?

따라서이 질문에 대한 답변에 따라 시스템이 다음 범주 중 하나로 포함될 수 있습니다.

  1. 어려움 : 아니요, 응답이 지연되면 시스템 장애로 간주됩니다.

기한을 놓치면 시스템을 사용할 수 없게되는 경우입니다. 예를 들어 자동차 에어백 시스템을 제어하는 ​​시스템은 충돌을 감지하고 가방을 빠르게 팽창시켜야합니다. 전체 프로세스는 25 분의 1 초 정도 걸립니다. 따라서 예를 들어 시스템이 1 초의 지연으로 반응하는 경우 결과는 치명적일 수 있으며 차량이 이미 충돌 한 후에 가방을 부 풀리는 것은 이점이 없습니다.

  1. Firm : 아니오, 그러나 시스템 장애로 인해 지연된 답변은 필요하지 않습니다.

마감일을 놓치는 것이 용납되지만 서비스 품질에 영향을 미치는 경우입니다. 간단한 예로서 비디오 암호화 시스템을 고려하십시오. 일반적으로 암호화 암호는 서버 (비디오 헤드 엔드) 에서 생성되어 고객 셋톱 박스로 전송됩니다. 이 프로세스는 일반적으로 셋톱 박스가 암호를 받도록 동기화되어야 합니다.암호화 된 비디오 프레임 수신을 시작하기 전에. 이 경우에는 셋톱 박스가 아직 암호를받지 못했기 때문에 프레임을 디코딩 할 수 없기 때문에 지연으로 인해 비디오 결함이 발생할 수 있습니다. 이 경우 마감일을 지키지 않으면 서비스 (영화, 재미있는 축구 경기 등)가 영향을받을 수 있습니다. 이 경우 동일한 암호화 된 프레임이 이미 결함을 일으켰 기 때문에 지연된 암호를받는 것은 유용하지 않습니다.

  1. Soft : 예,하지만 시스템 서비스가 저하되었습니다.

위키 백과 설명 에서와 같이 결과의 유용성은 마감일 이후에 저하 됩니다. 즉, 기한이 지난 시스템에서 응답을받는 것은 최종 사용자에게 여전히 유용하지만 기한에 도달하면 유용성이 저하됩니다. 이 경우에 대한 간단한 예는 방 (또는 건물)의 온도를 자동으로 제어하는 ​​소프트웨어입니다. 이 경우 시스템이 온도 센서를 읽는 데 약간의 지연이있는 경우 거친 온도 변화에 반응하는 속도가 약간 느립니다. 그러나 결국에는 변화에 반응하고 그에 따라 온도를 조정하여 예를 들어 일정하게 유지합니다. 따라서이 경우 지연된 반응이 유용하지만 시스템 서비스 품질이 저하됩니다.


6

소프트 리얼 타임은 결과가 마감일 이후에 취득하더라도하는 결과가 여전히 유효한 것으로 간주됩니다, 이해하는 가장 쉬운 방법입니다.

예 : 웹 브라우저-특정 URL을 요청합니다. 페이지를로드하는 데 시간이 걸립니다. 시스템이 페이지를 제공하는 데 예상보다 많은 시간이 걸리면 얻은 페이지가 유효하지 않은 것으로 간주되지 않고 시스템 성능이 기준에 미치지 못했다고 말합니다 (시스템 성능이 저하되었습니다!).

하드 실시간 결과가 마감일 이후에 취득하는 경우 시스템, 시스템이 완전히 실패한 것으로 간주됩니다.

예 : 로봇이 라인 트레이싱 등의 작업을 수행하는 경우. 장애물이 경로에 들어오고 로봇이 프로그래밍 된 기한 내에이 정보를 처리하지 않으면 (거의 순간!) 로봇이 실패했다고합니다. (로봇 시스템도 완전히 파괴 될 수 있습니다!)

에서 회사 실시간 프로세스 실행의 결과가 마감일 이후에 오면 시스템, 우리는 그 결과를 폐기하지만, 시스템은 실패한 것으로이라고하지 않습니다.

예 : 적 위치 모니터링 또는 기타 작업을위한 위성 통신. 위성이 주기적으로 프레임을 전송하는 지상 전산 국이 과부하 상태이고 현재 프레임 (패킷)이 제때 처리되지 않고 다음 프레임이 나타나면 현재 패킷 (마감일을 놓친 패킷)은 중요하지 않습니다. 처리가 완료되었는지 (또는 절반 완료 또는 거의 완료되었는지)가 삭제 / 삭제됩니다. 그러나 지상 컴퓨터가 완전히 고장난 것은 아닙니다.


브라우저 예가 잘못되었습니다. 시간은 웹 브라우저의 자원이 아닙니다. 이것은 전혀 실시간 시스템이 아닙니다.
Bart Friederichs

6

"소프트 실시간"을 정의하려면 "하드 실시간"과 비교하는 것이 가장 쉽습니다. 아래에서 "확실한 실시간"이라는 용어가 "소프트 실시간"에 대한 오해를 구성한다는 것을 알 수 있습니다.

자연스럽게 말하면 대부분의 사람들은 정보 나 이벤트를 "실시간"으로 간주하는 비공식적 정신 모델을 암묵적으로 가지고 있습니다.

•인지 된 통화와 관련 될 수있는 지연 (대기 시간)이있는 경우 또는 그 정도까지 나타납니다.

• 즉, 정보 또는 이벤트가 만족할만한 가치를 갖는 시간 프레임.

"하드 실시간"에 대한 다양한 임시 정의가 있지만이 멘탈 모델에서 하드 실시간은 "if"용어로 표현됩니다. 특히, 실시간 작업 (예 : 작업)에 완료 기한이 있다고 가정하면 모든 작업이 완료되는 이벤트의 만족스러운 가치는 모든 작업이 기한을 충족하는 특별한 경우로 제한됩니다.

하드 실시간 시스템은 애플리케이션과 시스템 및 환경에 대한 모든 것이 정적이고 선험적으로 알려져 있다는 매우 강력한 가정을합니다. 자원 충돌이 없으며 시스템의 전반적인 시간 진화가 있습니다. 항공기 비행 제어 시스템 또는 자동차 제동 시스템 및 기타 여러 경우에서 이러한 가정은 일반적으로 모든 기한이 충족되도록 충족 될 수 있습니다.

이 멘탈 모델은 하드 및 소프트 실시간을 모두 포괄 할 수있을만큼 의도적이고 매우 유용하게 일반적입니다. 소프트는 "그 정도까지"라는 문구에 의해 수용됩니다. 예를 들어 작업 완료 이벤트가 다음과 같은 경우 차선책이지만 허용 가능한 값을 갖는다 고 가정합니다.

  • 작업의 10 % 이상이 마감일을 놓치지 않습니다.
  • 또는 작업이 20 % 이상 지각되지 않음
  • 또는 모든 작업의 ​​평균 지각이 15 % 이하입니다.
  • 또는 모든 작업 중 최대 지각이 10 % 미만입니다.

이들은 모두 매우 많은 애플리케이션에서 소프트 실시간 사례의 일반적인 예입니다.

방과 후 자녀를 데리러 오는 단일 작업 응용 프로그램을 고려하십시오. 그것은 아마도 실제 기한이 없을 것입니다. 대신 그 사건이 발생하는시기에 따라 귀하와 귀하의 자녀에게 어떤 가치가 있습니다. 너무 일찍은 자원 (예 : 시간)을 낭비하고 너무 늦으면 자녀가 홀로 남겨져 잠재적으로 위험에 처할 수 있기 때문에 (또는 최소한 불편을 겪을 수 있기 때문에) 부정적인 가치가 있습니다.

정적 하드 실시간 특수 사례와 달리 소프트 실시간은 작업 및 시스템에 대해 필요한 최소한의 애플리케이션 별 가정 만 수행하며 불확실성이 예상됩니다. 자녀를 데리러 가려면 학교까지 운전해야하며 날씨, 교통 상황 등에 따라 시간이 달라집니다. 시스템을 과도하게 프로비저닝하고 싶을 수 있습니다. 최악의 운전 시간) 그러나 이것은 다시 자원 (시간, 가족 차량을 차지하고 다른 가족 구성원의 사용을 거부 할 수 있음)을 낭비하고 있습니다.

이 예는 자원 낭비 측면에서 비용이 많이 들지 않는 것처럼 보일 수 있지만 다른 예를 고려하십시오. 모든 군사 전투 시스템은 소프트 실시간입니다. 예를 들어, 업데이트 된 미사일을 목표 기동으로 사용하여 적대적인 지상 차량에 항공기 공격을 수행하는 것을 고려하십시오. 코스 업데이트 작업을 완료하는 데 대한 최대 만족도는 대상에 대한 직접적인 파괴 공격으로 달성됩니다. 그러나 이러한 결과를 확인하기 위해 리소스를 과도하게 프로비저닝하려는 시도는 일반적으로 너무 비싸고 불가능할 수도 있습니다. 이 경우 미사일이 목표물에 충분히 가까워 져서 미사일을 비활성화 할 수 있다면 덜 만족할 수 있습니다.

분명히 전투 시나리오에는 자원 관리에 의해 수용되어야하는 가능한 많은 동적 불확실성이 있습니다. 소프트 실시간 시스템은 산업 자동화와 같은 많은 민간 시스템에서도 매우 일반적이지만, 당연히 군용 시스템은 만족할만한 가치를 달성하기 위해 가장 위험하고 긴급한 시스템입니다.

실시간 시스템의 핵심은 "예측 가능성"입니다. 하드 실시간 사례는 예측 가능성의 한 가지 특별한 경우에만 관심이 있습니다. 즉, 작업이 모두 마감일을 충족하고 해당 이벤트에 의해 가능한 최대 값이 달성된다는 것입니다. 이 특별한 경우를 "결정적"이라고합니다.

다양한 예측 가능성이 있습니다. 결정 론적 (결정론)은 예측 가능성 스펙트럼에서 하나의 끝점 (최대 예측 가능성)입니다. 다른 끝점은 최소 예측 가능성 (최대 비결 정성)입니다. 스펙트럼의 메트릭과 끝점은 선택한 예측 가능성 모델의 관점에서 해석되어야합니다. 이 두 끝점 사이의 모든 것은 예측 불가능한 정도 (= 비결 정성 정도)입니다.

대부분의 실시간 시스템 (즉, 소프트 시스템)은 예를 들어 작업 완료 시간과 그에 따른 이벤트에서 얻은 값에 대한 비 결정적 예측 가능성을 가지고 있습니다.

일반적으로 (이론상) 예측 가능성 및 만족할만한 가치는 필요한만큼 결정 론적 종점에 가깝게 만들 수 있지만 물리적으로 불가능하거나 과도하게 비쌀 수있는 가격 (전투 중 또는 학교에서 자녀를 데리러 가기).

소프트 리얼 타임은 확률 모델 (일반적인 빈도주의 모델이 아님)의 애플리케이션 별 선택이 필요하므로 이벤트 지연 및 결과 값에 대한 추론을위한 예측 가능성 모델이 필요합니다.

허용 가능한 값을 제공하는 위의 이벤트 목록을 다시 참조하면 다음과 같은 비 결정적 케이스를 추가 할 수 있습니다.

  • 어떤 작업도 기한을 5 % 넘게 놓칠 확률은 0.87보다 큽니다. (여기에 표시된 일정 기준의 수에 유의하세요.)

미사일 방어 응용 프로그램에서 전투에서 공격이 항상 방어보다 유리하다는 사실을 감안할 때 다음 두 가지 실시간 컴퓨팅 시나리오 중 어느 것을 선호합니까?

  • 모든 적대 미사일의 완벽한 파괴는 거의 불가능하거나 불가능하기 때문에 방어 자원을 할당하여 가장 위협적인 (예 : 목표에 따라) 적대 미사일이 성공적으로 요격 될 가능성을 최대화합니다 (근접 요격이 중요합니다. 적대 미사일을 경로를 벗어나 이동할 수 있습니다.

  • 이것은 정적이 아닌 동적이고 전통적인 실시간 개념과 기술이 적용되지 않기 때문에 실시간 컴퓨팅 문제가 아니라고 불평하고, 정적 하드 실시간보다 어렵게 들리므로 관심이 없습니다. .

실시간 컴퓨팅 커뮤니티에서 소프트 리얼 타임에 대한 다양한 오해에도 불구하고 소프트 리얼 타임은 매우 일반적이고 강력하지만 하드 리얼 타임에 비해 잠재적으로 복잡합니다. 여기에 요약 된 소프트 실시간 시스템은 실시간 컴퓨팅 커뮤니티 외부에서 오랫동안 성공적으로 사용 된 기록을 가지고 있습니다.

OP 질문에 직접 답변하려면 :

하드 실시간 시스템은 결정 론적 보장을 제공 할 수 있습니다. 대부분의 경우 모든 작업이 기한을 충족하고, 인터럽트 또는 시스템 호출 응답 시간이 항상 x보다 작습니다. 매우 강력한 가정이 이루어지고 올바른 경우에만 가능합니다. 중요한 모든 것은 정적이고 선험적으로 알려진 것입니다 (일반적으로 하드 실시간 시스템에 대한 이러한 보장은 다소 단순한 경우를 제외하고는 개방형 연구 문제입니다)

소프트 실시간 시스템은 결정 론적 보장을하지 않으며, 응용 프로그램 별 기준에 따라 현재 동적 상황에서 실행 가능한 최적의 분석적으로 지정되고 달성 된 확률 적 적시성 및 적시성 예측 가능성을 제공하기위한 것입니다.

분명히 하드 실시간은 소프트 실시간의 단순한 특수한 경우입니다. 분명히 soft real-time의 분석적 비 결정적 보증은 제공하기가 매우 복잡 할 수 있지만 대부분의 실시간 사례가 동적이 아니기 때문에 가장 일반적인 실시간 사례 (전투와 같이 가장 위험한 안전에 중요한 사례 포함)에서는 필수입니다. 공전.

"확실한 실시간"은 "소프트 실시간"의 잘못 정의 된 특수 사례입니다. "소프트 리얼 타임"이라는 용어를 제대로 이해하고 사용한다면이 용어는 필요하지 않습니다.

내 웹 사이트 real-time.org에서 실시간, 하드 실시간, 소프트 실시간, 예측 가능성, 결정 성 및 관련 주제에 대해 훨씬 더 자세히 설명합니다.


"첫 번째 혁명은 당신이 사물을 보는 방식에 대해 생각을 바꾸고 당신이 보여주지 않은 다른 방식이있을 수 있다는 것을 알게 될 때입니다." 스캇 - 헤론 --Gil, "혁명 의지가 방영 될 수 없음"
E. 더글러스 젠슨

2

실시간-외부 프로세스가 발생하는 실제 시간 동안 계산이 수행되는 시스템 또는 작동 모드와 관련하여 계산 결과를 사용하여 외부 프로세스를 적시에 제어, 모니터링 또는 응답 할 수 있습니다. 방법. [IEEE 표준 610.12.1990]

나는이 정의가 오래되고 아주 오래되었다는 것을 압니다. 그러나 IEEE (Institute of Electrical and Electronics Engineers)의 최신 정의를 찾을 수 없습니다.


2
사실 1990 년은 전혀 오래되지 않았습니다. 70 년대에이 토론을했는데 정의는 거의 같았습니다.
Hot Licks

2

직렬 포트에서 데이터를 입력하는 작업을 고려하십시오. 새 데이터가 도착하면 직렬 포트가 이벤트를 트리거합니다. 소프트웨어가 해당 이벤트를 서비스 할 때 새 데이터를 읽고 처리합니다. 직렬 포트에는 들어오는 데이터 (MSP432에 2 개, TM4C123에 16 개)를 저장하는 하드웨어가있어 버퍼가 가득 차고 더 많은 데이터가 도착하면 새 데이터가 손실됩니다. 이 시스템은 실시간으로 하드, 단단하거나 소프트합니까?

응답이 늦으면 데이터가 손실 될 수 있기 때문에 실시간어렵 습니다.


마이크에서 소리를 입력하고 소리 데이터를 조작 한 다음 데이터를 스피커로 출력하는 보청기를 생각해보십시오. 시스템은 일반적으로 작고 경계가있는 지터를 가지고 있지만, 때때로 보청기의 다른 작업으로 인해 일부 데이터가 지연되어 스피커에서 소음 펄스가 발생합니다. 이 시스템은 하드, 펌 또는 소프트 실시간입니까?

그것은이다 회사 실시간 이 인식 할 수있는 오류가 발생하지만, 효과가 무해 크게 경험의 품질을 변경하지 않기 때문에.


데이터를 프린터로 출력하는 작업을 고려하십시오. 프린터가 유휴 상태 일 때 프린터는 이벤트를 트리거합니다. 소프트웨어가 해당 이벤트를 처리 할 때 프린터에 더 많은 데이터를 보냅니다. 이 시스템은 하드, 펌 또는 소프트 실시간입니까?

그것은이다 부드러운 실시간 더 빨리 응답 더 나은,하지만 시스템의 값이 (대역폭은 초당 인쇄 데이터의 양) 대기 시간 감소 때문이다.

UTAustinX : UT.RTBN.12.01x 실시간 블루투스 네트워크


1

정의가 잘못되었을 수 있습니다.

내 경험에서 나는 하드웨어와 소프트웨어에 의존하는 것으로 두 가지를 분리했습니다.

하드웨어 구동 인터럽트를 서비스하는 데 200ms가 있다면 그것이 바로 당신이 가진 것입니다. 300ms의 코드를 거기에 집어 넣으면 시스템이 고장 나지 않고 개발되지 않았습니다. 완료하기 전에 전환됩니다. 코드가 작동하지 않거나 목적에 맞지 않습니다. 많은 시스템에는 하드 정의 된 처리 기간이 있습니다. 비디오, 통신 등

실시간 응용 프로그램 을 작성하는 경우 이것은 soft 로 간주 될 수 있습니다 . 시간이 부족하면 다음에 부하가 줄어들고 OS를 조정하거나 메모리를 추가하거나 하드웨어를 업그레이드 할 수도 있습니다. 옵션이 있습니다.

UX 관점에서 보는 것은 도움이되지 않습니다. Skoda는 고장 나면 고장 나지 않을 수 있지만 BMW는 당연합니다.


스코 다스에 대해 무엇을 가지고 있습니까!
Erik Kaplun 2015

1

정의는 수년에 걸쳐 용어의 손상으로 확장되었습니다. 이제 "하드"실시간이라고하는 것은 단순히 실시간으로 불렸던 것입니다. 따라서 누락 된 타이밍 윈도우 (단면 시간 마감이 아닌)로 인해 잘못된 데이터 또는 잘못된 동작이 발생하는 시스템은 실시간으로 고려해야합니다. 이러한 특성이없는 시스템은 비 실시간으로 간주됩니다.

그것은 시간이 비 실시간 시스템에서 중요하지 않다는 의미가 아니라 그러한 시스템의 타이밍 요구 사항이 근본적으로 잘못된 결과를 초래하지 않는다는 것을 의미합니다.


1

하드 실시간 시스템은 우선 순위 예약의 선점 버전을 사용하므로 중요한 작업이 즉시 예약되는 반면 소프트 실시간 시스템은 우선 순위 예약의 비 선점 버전을 사용하므로 제어가 더 높은 우선 순위로 이전되기 전에 현재 작업이 완료 될 수 있습니다. 추가 지연을 유발합니다. 따라서 하드 실시간 시스템에서는 작업 기한이 비판적으로 준수되는 반면 소프트 실시간 시스템에서는 그렇게 심각하게 처리되지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.