반응형

독일 철도 Hamburg Altona역의 스위치 타워 교체

  • 독일 철도의 Hamburg-Altona는 매일 30,000명의 승객이 이용하는 분주한 역
  • 1995 3 12Hamburg-Altona 역의 기존 전자기계식(Electromechanical) 철로 스위치 타워(railway switch tower)Siemens에서 개발한 자동화된 컴퓨터 시스템으로 교체함


구 시스템

신 시스템

- 250건의 레일 이동(rail shunts)

- 수백 개의 신호

- 7개 주요 스위치 스탠드

- 50명의 숙련된 스위치맨 필요

- 18개 스위치 스탠드(모든 스위치 스탠드가 Intel 486 기반 실시간 시스템에 의해 통제됨)

- 하나의 중앙 운영/디스플레이 시스템(BAR 16)이 모든 스탠드를 조정

- BAR 16: 16 비트 인터페이스, 2개의 프로세서와 RAM을 가진 중복 하드웨어, 구 시스템과 호환이 안되어 병행하여 런 할 수 없음

- 구 시스템보다 40명 적은 스위치맨을 요구

 

신 시스템의 장애

  • 시스템을 시작하자마자 중앙 컴퓨터(BAR 16)에서 장애 발생(머신이 여러 차례 크래시되고 리부팅 하는데 10분이 걸림)
  • Siemens의 전문가들이 여러 시간 동안 문제의 원인을 찾지 못하자 역 전체를 임시 폐쇄하기로 결정
  • 수천 명의 승객이 25 킬로미터 떨어진 다른 철로까지 가야만 했고 독일의 다른 기차에도 영향을 미침


장애 원인

  • 이틀 후에야 전문가들은 특정 조건하에서 스택 오버플로우가 발생하는 것을 알아냄. 소프트웨어로 쓰여진 스택이 RAM 메모리를 사용하는데, RAM 크기가 3,500 바이트인 것을 프로그래머가 간과하고 스택 할당에 3,500 바이트를 약간 초과해 사용하는 스택 루틴 알고리즘을 개발함
  • 스택 오버플로우 처리를 책임지는 루틴을 조사해보니 프로그래밍 에러로 인해 해당 루틴이 데드루프(deadloop)에 빠지는 것을 발견
  • 기자 회견에서 Siemens 책임자는 좋은 RTOS가 있으므로 스택 루틴이 사용될 일이 결코 없을 것으로 개발팀이 가정하고 주의를 기울이지 않았다고 답변


버그 수정

  • 4일 동안 이 버그가 단 두 번만 나타남
  • 일요일에 시스템에 장애가 발생하였고 수요일이 되어서야 버그가 수정됨(수요일 1:59pm에 철로가 정상으로 복귀)
  • 스택 루틴 할당을 위한 새로운 4,000 바이트 RAM이 구축됨(, 안전한 상한선을 위해 500 바이트를 더 추가)


반응형

+ Recent posts