디지털 라이브러리[ 검색결과 ]
머신러닝을 이용한 내장형 소프트웨어의 동시성 오류 탐지 방안 설계 및 구현
http://doi.org/10.5626/JOK.2022.49.5.327
내장형 소프트웨어(embedded software)는 범용 소프트웨어와는 다르게 특정 목적에 맞게 하드웨어를 최적화하여 설계하기 때문에 제한된 환경에서의 목표하는 성능을 만족시키는 것이 중요하다. 오늘날 내장형 소프트웨어는 규모와 복잡도가 과거에 비해 크게 증가하고 있다. 규모와 복잡도가 커짐에 따라 소프트웨어에 발생하는 오류의 형태도 다양해지는데 그 중 복잡해진 소프트웨어 모듈 사이에서 발생가능한 동시성 오류(concurrency error)에 대한 이슈가 많다. 이러한 내장형 소프트웨어의 동시성 오류를 검출하기 위해 기존에는 사용자의 수동 입력에 의존하였으나, 본 논문에서는 SVM과 딥러닝을 활용한 머신러닝 기반의 동시성 오류 탐지 도구(MCED)를 제안한다.
기반 소프트웨어 프레임워크 테스트 서비스를 활용한 내장형 소프트웨어의 효율적인 시험 방안
http://doi.org/10.5626/JOK.2020.47.9.804
최근 내장형 소프트웨어(embedded software)는 과거와는 다르게 그 규모와 복잡도가 크게 증가함에 따라 소프트웨어 품질 및 신뢰성을 유지하기가 어려워지고 있다. 이러한 소프트웨어 품질 및 신뢰성을 높이기 위해서는 무엇보다 소프트웨어에 대한 효율적인 시험이 중요하다. 내장형 소프트웨어 특성상 하드웨어와의 결합도가 높고 플랫폼도 매우 다양하여 범용 시스템에서 윈도우즈나 리눅스를 기준으로 주로 사용되는 기존 시험 자동화 도구를 적용하기 어렵다. 또한 일반적으로 소프트웨어와 하드웨어를 같이 개발하는 경우 운용 가능한 하드웨어의 개수도 소프트웨어 개발자의 수에 비해 적어서 대상 하드웨어에서 동작시켜 시험하기가 힘들다. 이와 같은 문제로 본 논문에서는 기반 소프트웨어 프레임워크(NSFW : Next Software Framework) 테스트 서비스를 활용한 내장형 소프트웨어의 효율적인 시험 방안을 제시한다. 그리고 기존 방법에서 나아가 동시성 오류(Concurrency errors)에 대해 더욱 효율적으로 시험을 수행할 수 있는 방안을 제시한다.
멀티 스레드 프로그램의 자료경합 탐지를 위한 수행 중 감시 도구
멀티 스레드 프로그램의 수행 중에 발생하는 자료경합과 원자성 위배 등과 같은 동시성 오류는 스레드들의 비결정적 수행으로 인해 다양한 수행 순서를 고려해야 하고 재생산 또한 어렵기 때문에 디버깅하기 어렵고 귀찮은 오류로 잘 알려져 있다. 이러한 자료경합을 디버깅하기 위해서는 스레드의 수행순서와 메모리 접근 및 동기화 정보 등과 같은 프로그램의 수행 중에 발생한 정보를 수집 및 분석해야 한다. 본 논문에서는 멀티 스레드 프로그램의 수행 중에 벡터 클록 시스템을 기반으로 스레드의 병행성과 접근사건들 간의 순서관계를 생성 및 유지함으로써 정확하면서도 효율적인 감시와 분석이 가능한 도구인 VcTrace를 제시한다. 제시된 감시 도구를 사용하여 멀티 스레드 기반의 응용 프로그램을 대상으로 수행중 발생한 스레드와 접근사건 등의 정보를 감시 및 유지하고, 자료경합을 탐지하는 기술과 접목하여 실용성을 분석한다.