학술논문

항공기 소프트웨어의 Signal Handler로 인한 원자성 위배를 자율 수리하는 건전성 관리 시스템 / On-the-fly Repairing of Atomicity Violation Caused by Signal Handlers for Health Management of Airborne Software
Document Type
Dissertation/ Thesis
Source
Subject
Airborne Software
Health Management System
Atomicity Violation
Signal Handler. On-the-fly Repairing
Language
Korean
Abstract
항공기 시스템의 주요 기능을 소프트웨어로 구현하는 비중이 증가함에 따라 소프트웨어의 복잡성과 잠재적 오류가 증가하고 있다. 항공기 소프트웨어의 잠재적 오류 및 결함을 사전에 제거하기 위해 개발단계에서는 엄격한 V&V (Verification & Validation) 작업을 수행한다. 하지만 프로그램의 모든 수행을 고려하여 개발단계에서 오류를 모두 제거하는 것은 불가능하다. 항공기 건전성 관리시스템은 항공기 시스템의 정상적인 수행을 위해 운용 단계에서 오류를 진단하고 조치하여 항공기 시스템의 기능이 실패하는 것을 방지한다. 병행 프로그램에서 원자성 위배는 적절한 동기화 기법 없이 공유변수에 대해 적어도 하나의 쓰기 접근을 수행할 때 발생한다. 이 오류는 프로그래머의 의도와는 다른 수행 결과를 초래하기 때문에 반드시 제거되어야 한다. 항공기 소프트웨어에서 원자성 위배 오류로 인한 소프트웨어의 실패를 방지 하기 위해 2010년부터 항공기 소프트웨어의 건전성 관리시스템을 사용하여 원자성 위배 오류를 진단하고 수리하는 연구가 진행되고 있다. 하지만, 관련 연구들의 기법을 사용하여 signal handler로 인한 원자성 위배를 수리하려고 하면 교착상태가 발생할 수 있다. 항공기 소프트웨어에서 교착상태가 발생하면 소프트웨어의 수행이 중단되기 때문에 치명적이다. 본 논문은 항공기 소프트웨어의 signal handler로 인한 원자성 위배를 자율 수리하는 건전성 관리시스템인 RAVSH (Repairing of Atomicity Violation Caused by Signal Handlers)를 제안한다. RAVSH는 thread의 임계영역 수행 중에 호출된 signal handler의 수행을 지연시키고 thread의 임계영역 수행 중에 호출된 signal handler의 수를 기록한다. 이후에 thread의 임계영역 수행이 끝나면 thread의 임계영역 수행 중에 도착한 signal handler가 있으면 오류로 진단하고 건전성 관리시스템의 error handler를 호출하여 signal handler를 재호출하는 방식으로 오류를 수리한다. 1개의 thread와 signal handler가 동작하는 합성 프로그램을 대상으로 실험한 결과, RAVSH 기법은 thread의 임계영역 수행 중에 도착한 signal을 손실 없이 모두 처리할 수 있음을 보인다. 그리고, RAVSH 기법은 원자성 위배가 발생하는 경우 약 3% 이내의 시간 오버헤드로 해당 오류를 수리할 수 있음을 보인다.
As the proportion of implementing key functionalities of airborne systems through software increases, the complexity and potential errors of software are also increased. In order to pro-actively eliminate potential errors and faults in airborne software, rigorous Verification & Validation (V&V) processes are carried out during the development phase. However, it is impossible to completely eliminate all errors during the development phase, considering the execution of the program.Airborne Health Management System diagnoses and repairs errors during runtime to prevent failures in airborne systems, ensuring normal execution of airborne system. Atomicity violations in concurrent programs occur when at least one write access is performed on a shared variable without appropriate synchronization techniques. These errors must be eliminated as they can lead to non-deterministic results different from the programmer's intent.Research has been conducted since 2010 to diagnose and repair atomicity violation errors using Health Management Systems to prevent software failures caused by such errors in aircraft software. However, attempting to repair atomicity violations caused by signal handlers using the techniques employed in related studies may lead to deadlock situations, which can be critical in airborne software. When a deadlock occurs in airborne software, the execution is halted, resulting in a potentially catastrophic outcome.This paper proposes RAVSH (Repairing of Atomicity Violation Caused by Signal Handlers) to autonomously repair atomicity violations caused by signal handlers in airborne software. RAVSH delays the execution of signal handlers invoked during the execution in a critical section of a thread and records the count of signal handlers invoked during the execution of the thread's critical section. Upon completion of the thread's critical section execution, if there are any signal handlers that arrived during this period, it diagnoses them as errors. The system then calls the error handler of the Health Management System to repair the errors by re-invoking the signal handlers.Experimental results of a synthetic program with one thread and one signal handler demonstrate that the RAVSH technique can handler all arrived signals during critical section without any signal loss. In addition, this technique can repair errors occurring due to atomicity violations with a time overhead of less than 3%.