Dependability

‍이세현·2024년 10월 18일
1

시스템에 부과되는 비기능적 요구사항으로 Performance, Scalability, Dependability 등이 있다. 자동차 소프트웨어의 핵심적인 NFR로는 제품의 동작에 대한 전반적인 믿음, Dependability가 있다.

Dependability의 한글 번역은 Relibaility와 혼동될 수 있으므로 영어 그대로 Dependability로 사용한다.

  • 높은 Dependability를 위한 비용은 기하급수적으로 증가한다.
    • 가전 < 자동차 < 항공기 << 의료기기
    • 비용은 필요인력, 시간 등을 포함한다.
  • 주요 Dependability 요소
    • Availability, Reliability, Safety, Security, Resilience
    • Repairability(수리용이성), Maintainability(유지보수성), Error tolerance(오류감내성)

Availability

  • 요청 시 서비스를 제공하는 능력
  • 사용 가능 확률: uptimeuptime+downtime\frac{\text{uptime}}{\text{uptime}+\text{downtime}}
    • downtime\text{downtime}은 계획한 것, 예기치 못한 것을 모두 포함한다.
  • Uptime
    • 90%: 24시간 당 144분 down
    • 99%: 24시간 당 14.4분 down
    • 99.9%: 24시간 당 84초 down
    • 99.99%: 일주일에 1분 down
  • 고가용성을 위한 Redundant(중복) 설계
    • Active redundancy: 둘 이상의 부품이 동시에 동작
      • Throttle Control System에 적용된다.
    • Passive redundancy: 한 부품에 문제가 생기면 나머지가 동작
      • 자율주행 시 Passive redundancy가 적용된다.
    • 자율주행의 경우 문제가 생겨도 동작 가능하게 하기 위해 Alternate, two computer systems, overlaps camera 등 중복으로 설계한다.

Reliability

  • 신뢰성
  • 정상 동작 확률 Mean Time Between Failures MTBF=Total TimeNumber of Failures\text{MTBF}=\frac{\text{Total Time}}{\text{Number of Failures}}
    • 고장 안 나면 Number of Failures=0\text{Number of Failures}=0이므로 MTBF=\text{MTBF}=\infin
  • Fault(결함): 오류로 이어질 수 있는 것. 인간이 잘못 설계한 bug
    • Fault가 Hidden 상태이면 서비스는 성공적으로 제공된다.
    • Fault가 발현되면 Error로 이어진다.
    • Fault를 발견하고 제거하기 위해 Debugging이 필요하다.
  • Error(오류): 예기치 않은 시스템 동작으로 이어질 수 있는 잘못된 시스템 설계. Fault가 발현된 것
    • Error가 감지되거나 회복(detect, recover, handling, protection)되면 서비스는 성공적으로 제공된다.
    • Error가 전파되면 Failure로 이어진다.
    • Bug를 잡기 위해 Error로부터 bug를 tracking하려면 어느 부분에서 발생한건지 나누어서 소거해야 한다.
      • Techniques: Detection, Identification, Isolation
  • Failure(장애): 시스템이 예상한 서비스를 제공하지 않은 것. 오류가 고장으로 이어져 manage가 불가능한 문제가 발생한 것
    • Failures를 관측하기 위해 Testing이 필요하다.

Fault Management

  • Fault avoidance: 인간의 결합 생성을 원천적으로 방지
    • 코드 자동생성 등
  • Fault detection: 시스템에서 결함을 찾아내는 방법
    • 정적 코드 분석 등
  • Fault tolerance: 결함이 장애로 이어지지 않도록 방지
    • 다양성과 중복성 등

Error Detection and Recovery

#define LEN_ARR 10
int arr[LEN_ARR];
i = 20;
arr[i] = 100; // Error Detection 추가

방어적 프로그래밍

if (i < LEN_ARR)
    arr[i] = 100;
else
    arr[LEN_ARR - 1] = 100;

Failure Protection

  • 장애가 발생해도 치명적인 상황으로 이어지지 않도록 보호
    • UPS(무정전 전원장치)는 Power failure로 인해 전원이 나가도 작업 상황이 보호된다.

Failure Classes

12
Systematic Failure(인간의 실수 bug)Random Hardware Failure
Transient Failure(특정 상황에서 드물게 발생)Permanent Failure(항상 발생)
Recoverable Failure(자동 복구 가능)Unrecoverable Failure(복구를 위해 운영자 개입 필요)
Non-corrupting Failure(시스템을 파괴하지 않음)Corrupting Failure(시스템을 파괴)

Triple Modular Redundancy

  • Redundancy를 통해 Reliability를 향상시킨다.
  • Random hardware failure를 찾아내기에 효율적이다.
  • 다수결의 원리
  • 동일한 시스템에 대해 세개의 센서 출력값이 있으면 가장 신뢰있는 출력을 선택하는 것

N-version Programming

  • Diversity를 통해 Reliability를 향상시킨다.
    • 동일한 job에 대해 프로그래밍 언어, 개발팀 등을 다양하게 적용시킨다.
  • Systeatic failure를 찾아내기에 효율적이다.
  • 항공기에서 주로 사용한다.

Safety

  • 안전성
  • 불합리한 위험의 부재
  • Safety는 상품이 아닌 사람을 위한 것이다.
    • 혼자 동작하는 기계는 safety를 다루지 않는다.

Safety Standards for E/E/PE or E/E/PES Systems

  • IEC 61508
    • 기능안전 표준
    • Electrical/Electronic/Programmable Electronic Safety-related Systems
    • 다른 표준들의 모표준격
      • 자동차 E/E System에 맞추어 customizing 된 것이 ISO 26262이다.

Security

  • 보안성
  • Confidentiality: 외부 공격자에게 정보가 유출될 위험
  • Integrity: 공격자가 시스템 오동작을 유발할 위험
  • Availability: 공격자가 시스템을 다운시킬 위험

Security vs Safety

  • Security: 외부 환경, 사람의 공격으로부터 시스템을 보호하는 것
  • Safety: 시스템으로부터 내부의 환경, 사람을 보호하는 것

Resilience

  • 회복탄력성
  • 일반적인 의미: 시련을 극복하는 능력
  • 기술적인 의미: 장애 상황에서도 시스템의 최소한의 기능은 유지
  • 장애로 인한 최대 품질을 제공하지 못할 경우 선택적으로 품질을 조정하여 최선을 서비스를 제공한다.
    • Graceful Degradation: Gracefully 품질을 낮추어 서비스를 제공한다.

Simplex Architecture for Resiliency

  • Simple + Complex
  • 시스템이 고장이나 오류가 발생하더라도 안전하게 작동할 수 있도록 보장한다.
  1. 고성능 제어기 (High-performance controller):
    • 기본적으로 사용된다.
    • 주된 역할은 최적의 성능을 제공하는 것
    • 일반적으로 고성능 알고리즘을 사용하여 차량 제어를 수행하지만, 새로운 기술이나 복잡한 기능이 도입되었을 경우 결함이 발생할 가능성도 존재한다.
  2. 안전 제어기 (Safety controller):
    • 검증된 안정적인 알고리즘을 사용해 시스템을 항상 안전하게 유지하는 역할을 한다.
    • 고성능 제어기에 문제가 생기거나 시스템이 불안정해지면, 이 안전 제어기가 기본적인 안전 기능을 수행하여 시스템을 보호한다.
  3. 모니터링 시스템 (Monitoring system):
    • 고성능 제어기의 상태를 실시간으로 감시하여, 예상치 못한 오류나 비정상적인 동작이 감지되면 자동으로 안전 제어기로 전환하는 역할을 한다.
profile
Hi, there 👋

0개의 댓글

관련 채용 정보