2015년 10월 29일 목요일

실시간 리눅스를 위한 동기화 프로토콜의 구현 및 검증

리눅스는 오픈 소스 기반의 범용운영체제로서 , 실시간성을 제공하는 시스템에는 적합하지 않다 . 그러나 사용의 편이성과 기존의 가용한 응용이 많은 장점 등이 있기 때문에 , 리눅스 운영체제에 실시간성을 지원하기 위한 연구가 지속되어 왔다 . 이러한 연구는 RT-Linux, RTAI, L4/Fiasco, ADEOS, Xenomai, XtratuM 등에서 찾아볼 수 있다 . 리눅스 커널 자체에서 실시간성을 지원하고자 하는 시도는 리눅스 커널 2.2.X 버전부터 도입된 실시간 선점형 (Real-time preemption) 커널이 있다 . 실시간 선점형 커널은 연성 실시간 시스템을 지원하기 위하여 원래의 스핀락 (raw spinlock) 으로 보호되는 임계 영역 (critical section) 이나 ttys 와 같은 오래된 코드들 외에는 커널의 대부분이 선점 가능하도록 한다 . 이를 위해서 대부분의 커널 스핀락 (spinlock) 은 뮤텍스 (mutex) 로 대체되고 , 모든 인터럽트는 커널 쓰레드로 변경된다 .

실시간 운영체제에서는 응용의 수행시간을 예측가능하게 만들기 위하여 우선순위 역전 (priority inversion) 현상이 반드시 제어되어야 한다 . 실시간 선점형 커널에서는 우선순위 상속 (priority inheritance) 이 지원되어 이를 제어하도록 되어 있다 . 그러나 우선순위 상속은 연쇄 블로킹 (chained blocking) 및 데드락 (deadlock) 문제를 해결하지 못하는 단점이 있다 . 본 원고에서는 RT 패치를 적용한 리눅스 커널에 PCP(Priority Ceiling Protocol) 을 구현하여 연쇄 블로킹 및 데드락 문제를 해결하였다 . PCP 의 구현 방법은 두 가지가 있으며 , [8] 에서 제시된 원래의 PCP 와 그 변형인 IPC(Immediate Priority Ceiling) 이다 . 본 원고에서는 이 두 가지를 모두 구현하여 그 성능을 측정 , 비교하였다 .

Ⅱ 실시간 시스템의 동기화 문제
Ⅲ 실시간 리눅스와 동기화 프로토콜 구현
Ⅳ 동기화 프로토콜의 성능 분석

테스트 자동화 : 언제 어떻게 그리고 얼마만큼 하는 것이 효과적인가

테스트 자동화는 테스터에 의존하는 수작업 테스팅 방법과 비교해서 비용이 효과적이며 , 시간을 절감할 수 있다는 점에서 장점이 부각되고 있습니다 . 그렇다면 , 프로젝트 개발단계에 있어 어느 시점에서 테스트 자동화를 수행하며 , 어떠한 방법에 의해서 , 어느 정도 수준으로 적용하는 것이 효과적인가에 대한 내용을 제시합니다.

▶ 핵심 프로그램 요인
▶ 언제 자동화 하여야 하는가
▶ 어떻게 테스트 자동화 프로그램을 이행하는가
▶ 얼마나 자동화하여야 하는가

리얼타임 시스템 프레임워크 및 아키텍처 part 2

전투기로 보는 리얼타임 시스템의 메시지 아키텍처

고 신뢰성과 안정성을 요구하는 전투기의 메세지 아키텍처를 설명하고자 합니다 .

전투기는 다양한 센서들로 구성되며 , 이 센서가 수집한 정보들을 통해 다양한 입 / 출력이 발생한다 . 레이더 ( 공급자 - 센서 ) 를 통해 주위로부터 수집된 정보를 조종기 계기판 ( 수요자 - 계기판 ) 과 조종석의 유리 창에 HUD ( 수요자 - HUD) 에 동시에 전달되어야 하며 , 같은 정보를 조종사가 보기에 빠른 판단을 하기 위해 수치적인 데이터가 아닌 위험도를 색상으로 등급화하여 전달하는 것도 필요하다 .

Ⅰ . 다양한 센서와 입출력 장치로 구성된 전투기
Ⅱ . Event Channel 아키텍처
Ⅲ . Event Channel 의 제약사항
Ⅳ . 리얼타임을 지원하기 위한 Event Channel 의 내부구조
Ⅴ . 개선된 전투기의 아키텍처

2015년 10월 28일 수요일

[SW공학 동영상 8화] 성공하는 SW만들기 이상은소장


  • 성공하는 소프트웨어란?
  • 올바른 SW 개발을 위해 중요한 것은?
  • SW 개발 전에 반드시 고려해야 할 기술적 사항은?
  • SW공학과 서비스공학의 핵심요소?
  • 관련된 글로벌 사례
  • 성공하는 SW개발을 위해서

ISO 26262 자동차 기능 안전을 위한 MISRA 코딩 규칙 적용 방법

ISO 26262에서는 최신의 SW 공학기술 및 개발 기법을 적용하여 안전한 자동차SW 개발을 하도록 요구하고 있다. 이중에서 MISRA(Motor Industry Software Reliability Association)코딩 표준은 자동차 SW개발자가 필수적으로 준수해야 하는 개발 기법으로,  많이들 어려워하는 부분이기도 하다.  ISO 26262에서 요구하는 MISRA가 무엇인지, 이것을 SW 개발에서 어떻게 적용해야 하는지, ㈜ 티큐엠에스에서 수석컨설턴트로 활동하고 있는 노경현 이사의 자문을 통해 살펴 보았다.
ISO 26262의 소프트웨어 테스팅 방법
자세히 보기 →

SI와 솔루션 개발의 차이 - 테스트 편

테스트의 절차와 목적에 대해 먼저 알아보도록 한다. 테스트 방법이나 절차는 잘 알고 있지만 그 절차가 왜 필요한 지에 대해 정확히 정리하고 SI 와 솔루션 테스트의 차이가 무엇인지 알아보기로 한다. 그리고 솔루션 테스트를 위한 최신 트렌드에 대해 살펴보고, 마지막으로 사례를 통해 솔루션 테스트의 역할과 목표를 확인해보기로 한다.

테스트의 절차와 목적

테스트의 절차
소프트웨어 테스트는 사전적인 의미로 "주요 이해관계자들에게 시험 대상 제품 또는 서비스의 품질에 관한 정보를 제공하는 조사 과정이다. 또한 소프트웨어에 대한 객관적이고 독립적인 시각을 제공하여 사업주체가 소프트웨어 구현의 위험성을 올바로 이해하도록 한다" 라고 정의되어 있다. 다시 말해 개발하고자 했던 의도대로 만들고 있는지 확인하는 것이라고 해석 할 수 있다. <그림 1>은 소프트웨어 테스트 절차를 나타내고 있다.

소프트웨어 테스트 절차



2015년 10월 27일 화요일

제58회 SW공학 Technical 세미나 안내(10/29(목))

안녕하십니까?
SW Quality Insights 제 58회 SW공학 Technical 세미나에 여러분을 모십니다.
본 세미나는 국내외 SW전문가를 초빙하여 SW개발 관련 최신 기술 동양을 파악하고 개발과정에서의 경험을 공유하는 등 SW개발자와 관리자의 역량강화를 위해 매월 지속적으로 개최하고 있습니다.