임태현, software catastrophe
TRANSCRIPT
Mars Climate Orbiter로키드 마틴사의 고도 측량 유닛이 문제중력을 lbF 로 계산다른 모듈은 kg⋅m/s2 로 계산 예상보다 더 작은 중력 값을 측정궤도 유지를 위해 추진력 강화낮은 궤도 진입 후 대기 마찰로 소멸
Ariane 5 flight 501• 아리안 4 의 관성제어 시스템을 사용• 이전 모듈은 부동소수를 16bit 로 처리• 다른 장치들은 부동소수를 64bit 로 처리• Overflow Exception 이 발생해서 과도한 궤도 수정이 폭발의 원인
소프트웨어 업그레이드메시지 처리 루틴 성능 향상자체 테스트를 통과전체 114 개 스위치에 배포Memory overwrite 오류스위치 연쇄 리부팅
1 while (ring receive buffer not empty and side buffer not empty) DO
2 Initialize pointer to first message in side buffer or ring receive buffer
3 get copy of buffer
4 switch (message)
5 case (incoming_message):
6 if (sending switch is out of service) DO
7 if (ring write buffer is empty) DO
8 send "in service" to status map
9 else
10 break
END IF
11 process incoming message, set up pointers to optional parameters
12 break END SWITCH
13 do optional parameter work
East Coast blackoutFirstEnergy 컨트롤 소프트웨어 버그가 원인 !
송전선이 나무와 접촉해당라인 전원 공급 중단전력 이상감지가 안됨전력 공급 소프트웨어 레이스 컨디션 발생과부하로 전력망 전체가 정지
Therac-25Thread 1 : // 턴테이블 준비 Thread. 주기적으로 수행 if ( system ready ) in_progress = 0 else in_progress ++
Thread 2 : // X-ray 빔 제어 Thread. 주기적으로 수행 . if ( start key pressed AND in_progress == 0 ) start radiation
Knight Capital8 대의 서버를 사용구매 알고리즘을 업그레이드해서 배포7 대에만 배포 , 한대는 기존 모듈 탑재새로운 모듈 활성화 플래그를 기존 환경변수 재활용환경 변수에 TRUE 값을 넣자 , 3 년전에 폐기된 모듈이 8번째 서버에서 활성화45 분동안 비상식적인 가격에 매매를 시도
시베리아 가스관 폭발구소련 , 캐나다 소프트웨어 회사에 잠입CIA 가 고의로 오류 소프트웨어 작성소련에서 해당 소프트웨어 탈취어느날 갑자기 펌프가 오작동해 파이프에 압력을 가함3 킬로톤의 폭발 발생( 히로시마 핵폰탄 : 15 킬로톤 )
ACM Ethics• 1. PUBLIC - Software engineers shall act consistently with the public interest.• 2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best in-
terests of their client and employer consistent with the public interest.• 3. PRODUCT - Software engineers shall ensure that their products and related modifications
meet the highest professional standards possible.• 4. JUDGMENT - Software engineers shall maintain integrity and independence in their pro-
fessional judgment.• 5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and pro-
mote an ethical approach to the management of software development and maintenance.• 6. PROFESSION - Software engineers shall advance the integrity and reputation of the pro-
fession consistent with the public interest.• 7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.• 8. SELF - Software engineers shall participate in lifelong learning regarding the practice of
their profession and shall promote an ethical approach to the practice of the profession.
Steam 파일 삭제
STEAMROOT="$(cd "${0%/*}" && echo $PWD)"
# Scary!rm -rf "$STEAMROOT/"*
스팀 업그레이드중에 파일 전체 삭제 문제 발생