2017-09-06 5 views
0

우리는 임베디드 시스템, 가혹한 환경 (주거용 건물의 난방 시스템 컨트롤러)에서 작동하도록 설계된 응용 프로그램을 개발 중입니다.그렇지 않으면 올바른 프로그램에서 손상된 메모리에 대해 걱정할 필요가 있습니까?

해당 응용 프로그램은 시스템을 재부팅 할 필요없이 몇 년 동안 실행해야합니다. Linux를 실행하는 임베디드 PC에서 실행됩니다. 이 프로그램은 수명이 응용 프로그램과 동일한 여러 클래스를 인스턴스화합니다.

이렇게 긴 수명 동안 메모리가 손상 될까 봐 걱정해야합니까? 클래스 불변량을 주기적으로 검사하여 그러한 메모리 손상을 감지하는 것이 합리적입니까? 아니면 현대의 하드웨어가 이런 부패를 천문학적으로 만들지 않을까?

+0

https://stackoverflow.com/questions/2580933/cosmic-rays-what-is-the-probability-they-will-affect-a-program –

답변

0

싼 SD 카드를 보드에 봤는데 쉽게 죽을 수 있습니다.
몇 달 전 높은 데이터 처리량으로 한 제조사를 다루었습니다. SD 카드가 제 시간에 반응하지 못했습니다. 일부 irq 실패 메시지가 나타나고 전체 파티션이 폭발합니다.
양산 용으로 적합하지 않은 경우 좋은 추천 스토리지를 선택하는 것이 좋습니다.
하지만 실제로 메모리 손상 문제 (ROM 외)를 기억할 수 없기 때문에 메모리 누수가 걱정됩니다. 그것들은 재부팅없이 오래 지속될 수있는 임베디드 시스템에서 가장 고약한 문제입니다.
사용자 공간 또는 커널 공간에서 발생할 수 있으므로주의해야합니다. 빌드 버전에 따라 항상 자신감을 가지고있는 소프트웨어조차도있을 수 있습니다. 리눅스 배포판을 신중하게 선택해야합니다. 전용 커널 개발 팀이 없다면, 보통이 패키지는 안정적인 시스템을 만드는 회사에 아웃소싱됩니다. 여기에는 모든 패키지가 테스트되고 누설되지 않았 음이 확인됩니다.
결국 메모리에 문제가있는 경우 확실히 몇 사이클의 스트레스 테스트가 필요합니다.