DBPIA-NURIMEDIA

Size: px
Start display at page:

Download "DBPIA-NURIMEDIA"

Transcription

1 모델기반의커널테스팅프레임워크 523 모델기반의커널테스팅프레임워크 (MOdel-based KERnel Testing (MOKERT) Framework) 김문주 홍신 (Moonzoo Kim) (Shin Hong) 요약최근내장형시스템이점점많은분야에사용되며, 시스템에특화된운영체제커널에대한필요성이커지고있다. 하지만, 커널개발은코드의복잡성등의이유로말미암아테스팅에큰비용이소요됨에도불구하고, 높은신뢰성을달성하기가어려운실정이다. 이러한커널개발및테스팅의어려움을극복하기위해, 운영체제커널의동시성오류검출을지원하는모델기반의커널테스팅 (MOKERT) 프레임워크를제안한다. MOKERT 프레임워크는주어진 C 프로그램을 Promela 정형명세모델로변환하고나서 Spin 모델검증기를사용하여검증하고, 검증반례가생성된경우, 이검증반례를실제커널코드에서실행을시켜서진위를확인한다. 본연구에서는 MOKERT 프레임워크를리눅스 proc 파일시스템에적용하여, ChangeLog 에보고된오류가실제로자원경쟁문제를일으킴을확인하였을뿐만아니라, 커널패닉을일으키는새로운오류도발견하였다. 키워드 : 모델검증기법, 테스팅, 검증반례분석, 모델추출 Abstract Despite the growing need for customized operating system kernels for embedded devices, kernel development continues to suffer from insufficient reliability and high testing cost for several reasons such as the high complexity of the kernel code. To alleviate these difficulties, this study proposes the MOdel-based KERnel Testing (MOKERT) framework for detection of concurrency bugs in the kernel. MOKERT translates a given C program into a corresponding Promela model, and then tries to find a counter example with regard to a given requirement property. If found, MOKERT executes that counter example on the real kernel code to check whether the counter example is a false alarm or not. The MOKERT framework was applied to the Linux proc file system and confirmed that the bug reported in a ChangeLog actually caused a data race problem. In addition, a new data race bug in the Linux proc file system was found, which causes kernel panic. Key words :model checking, testing, counter example analysis, model extraction 본연구는 2008년교육과학기술부의재원으로한국학술진흥재단의지원을받아수행된연구이며 (KRF-2008), 교육과학기술부 / 한국과학재단우수연구센터육성사업의지원 (R ) 과지식경제부및정보통신연구진흥원의대학 IT연구센터지원사업 (IITA-2009-(C )) 의연구결과로수행되었습니다. 이논문은 2009 한국소프트웨어공학학술대회에서 검증반례재연을통한모델기반커널테스팅 의제목으로발표된논문을확장한것이며, 추가성과는 Model-Based Testing 2009에발표하였음 종신회원 : KAIST 전산학과교수 moonzoo@cs.kaist.ac.kr 학생회원 : KAIST 전산학과 hongshin@gmail.com 논문접수 : 2009년 3월 16일심사완료 : 2009년 5월 15일 CopyrightC2009 한국정보과학회ː개인목적이나교육목적인경우, 이저작물의전체또는일부에대한복사본혹은디지털사본의제작을허가합니다. 이때, 사본은상업적수단으로사용할수없으며첫페이지에본문구와출처를반드시명시해야합니다. 이외의목적으로복제, 배포, 출판, 전송등모든유형의사용행위를하는경우에대하여는사전에허가를얻고비용을지불해야합니다. 정보과학회논문지 : 소프트웨어및응용제36권제7호 (2009.7) 1. 서론소프트웨어테스팅은일반적으로소프트웨어의총개발기간및가용자원의 50% 이상을차지한다. 여러소프트웨어시스템가운데운영체제커널은다음과같은원인으로, 개발및분석이어려운소프트웨어중하나로알려졌다. - 코드의복잡함운영체제커널은다양한하드웨어구성요소 (CPU, 메모리, 컴퓨터주변장치 ) 와소프트웨어구성요소 ( 장치드라이버모듈, 시스템콜라이브러리 ) 를관리하기위해서많은수의서비스루틴을가지고있다. 그뿐만아니라, 커널은성능향상을위해복잡한형태의최적화된알고리즘을사용한다. - 동시성으로말미암은동작경우의수증가커널은다중스레드프로그램이므로동시성오류 (con-

2 524 정보과학회논문지 : 소프트웨어및응용제 36 권제 7 호 (2009.7) currency bug) 를일으킬수있으며, 특정한동시성오류는특정스케줄링시나리오에의해서만발생한다. 동시에수행되는스레드의개수에따라서실행가능한스케줄링시나리오의수는지수적으로증가하며, 대부분의커널에서사용자는프로세스스케줄러를정교하게제어할수가없다. 이러한이유로커널의동시성오류를발견하고수정하는것은어렵다. - 유닛테스팅의어려움대부분의커널은성능의향상을위해단일 (monolithic) 커널구조를사용한다. 그러므로커널의유닛을독립적으로테스팅하기위해서는, 커널전체의구현에대한이해를요구하여, 많은비용이소요된다. 예를들어, proc 파일시스템을테스트하려면가상파일시스템, 메모리관리, 스케줄러등에관한실행환경을테스팅에적합하게구성하는과정이필요하다. 그이유는앞서언급한부분들이 proc 파일시스템의수행에밀접한관계가있기때문이다. 위와같이, 커널의특정부분을유닛테스팅하려면실행환경을상세하고적합하게구성해야하며, 이는때때로유닛테스팅그자체보다더큰노력을요구한다. - 적합한도구의부재커널테스팅을지원하는도구들이적은이유는, 테스팅툴에의해발생하는부작용으로커널이멈추거나, 예상치못한작동을일으킬가능성이있기때문이다. 또한, 일반적인테스팅도구는커널환경에서는사용할수없는라이브러리에의존하는경우가많아서, 커널테스팅에적합하지않다. 이러한이유로커널개발자들은커널을분석할때 printk() 나커널로그에의존하는경우가대부분이다. 커널의복잡성과크기를고려할때, 커널을구성요소단위로분석하는것이필요하다. 하지만, 위에서언급한이유로말미암아구성요소단위로커널을테스팅하는것은실질적으로어렵다. 결과적으로전통적인테스팅방법은커널을개발및분석하는데있어큰도움을주지못하며, 이로인해커널은특정개발자들만이개발할수있는영역으로남아있다. 하지만, 내장형시스템이일상생활모든영역에널리사용되면서특정목적을위한운영체제 ( 휴대폰또는센서네트워크를위한운영체제 ) 개발의필요성이점차증가하고있다. 그러므로커널의구성요소단위분석을지원하는프레임워크를개발하는것이중요하다. 본연구는모델추출 [1] 과모델검증기법 [2] 을이용해커널상의동시성오류를검출하는모델기반의테스팅프레임워크를개발하는것을목적으로한다. 앞서언급한이유로말미암아전통적인방식의테스팅으로커널을검증하는것은현실적으로어려움이많기에, 모델검 증기법이커널을분석하는데대안이될수있다. 그이유는, 모델검증기법은분석하고자하는커널의구성요소와그와관련된환경을추상화를통하여모델링하므로, 복잡한커널을구성요소단위로독립적으로분석하는것이가능하다. 게다가모델검증기법은모든가능한실행시나리오를분석하고, 구체적인검증반례 (counter example) 를제시해주기때문에, 커널을분석하는데유용하다. 하지만, 추상모델과실제프로그램간의차이로말미암아모델검증기법이제시한검증반례가실제프로그램상의에러인지, 아니면오경보 (false alarm) 인지의여부를개발자들이판단하기는어려우므로, 순수한모델검증기법만으로는커널을검증하는데문제가있을수있다. 본논문에서제시하는모델기반의커널테스팅프레임워크는모델검증과정에서발견한검증반례를모델이아닌, 실제운영체제커널코드의실행에서재연하는기능을제공한다. 이기능을통해모델기반의커널테스팅프레임워크는커널개발자들에게모델검증기법과테스팅의장점을동시에제공할수있다. 이기능은모델검증에서발견된오류의원인분석, 결함패치 (bug patch) 의적합성확인, 추상화모델의정밀화등의작업을가능하게한다. 따라서모델기반의커널테스팅프레임워크의사용은, 비록추상화모델과검증반례를재연하기위한실행환경을구성하기위한작업이필요하지만, 커널의분석에서전통적인테스팅기법의어려움을극복할수있다. 2. 관련연구커널과같은동시성을갖는프로그램의신뢰성을향상하려는방법중, 동시성프로그램테스팅의경우, 가능한많은프로그램수행경우를테스트하려고노력하고있다. [3] 에서는문맥전환 (context switching) 이일어나는시점마다무작위적으로실행될스레드를고르는알고리즘을제안하고, 실험을통하여이알고리즘을이용한테스팅이운영체제스케줄링에의존한테스팅기법보다더많은서로다른수행시나리오를검사하기때문에, 프로그램의동시성오류를찾을확률을높일수있음을보이고있다. 하지만, 동시성프로그램테스팅의경우오류의검출이확률적이라는근본적인단점이있다. 본연구에서제안하는모델기반의커널테스팅 (MOdel-based KERrnel Testing(MOKERT)) 프레임워크는, 모델검증도구를사용하여모든수행가능시나리오가요구사항을만족하는지를검사하기때문에, 확률적테스팅기법보다높은신뢰성을제공할수있다. [4] 에서는메시지전달이나세마포어등의명백한동기화 (synchronization) 메커니즘을사용하는경우, 하나의

3 모델기반의커널테스팅프레임워크 525 그림 1 모델검증도구 SPIN 이생성하는반례의예 수행시나리오를기반으로, 자원경쟁 (data race) 을일으킬수있는여러수행시나리오를변형하여생성하여테스트하는 RichTest라는툴을구현하고있으나, 실제동시성프로그램에서는공유변수를통한간접적인동기화사용이빈번하므로실제적인효용성이크지않다. 또한, 다중스레드프로그램의효과적인분석과디버깅을위하여, 실제프로그램의실행을기록하고, 이를재연하는연구가진행되고있다. [5] 에서는자바프로그램의실행을기록하고다시재연하는가상기계를구현하였다. 가상기계상에서다중스레드자바프로그램을테스트하고, 오류실행이발견되는경우, 오류실행을재연함으로써결함을분석하고디버깅할수있도록하였다. [6] 과 [7] 에서는프로그램의오류가일어나기전시점까지의프로그램의실행을기록하고, 이를재연하여프로그램오류의원인을분석할수있도록지원하는효과적인알고리즘을제시하고있다. 이와같은연구들에서는테스트중에관찰이가능한오류에대해서만재연기능을제시할뿐이므로, 만일테스팅과정중오류가발견되지않는경우, 프로그램에오류가없음을확신하지못한다. 하지만, 본연구에서제안하는 MOKERT 프레임워크는모델검증을통해모든수행가능한시나리오를분석하여, 모든오류를검출및재연할수있으므로위의연구들과는차별성을갖는다. 위에언급한연구들의약점인, 효과적인테스트케이스생성의어려움을극복하고자제안된일반적인모델기반테스팅기법은, 프로그램의특성을표현한모델을근간으로테스트케이스들을생성하는기술이다. [8] 에서는 Java PathFinder 모델검증도구를이용하여테스트케이스를생성하고있다. [9] 는비행안내시스템에관한사례연구를각각기호적 (symbolic), 한정적 (bounded), 명시적 (explicit) 모델검증도구에적용해테스트케이스를생성하고, 각모델검증도구가테스트케이스를생성하는시간및자원정도를비교하고있다. [10] 에서는추상상태기계 (abstract state machine) 기반의명세를 Promela 모델로자동변환하여, Spin 모델검증도구가생성하는검증반례를테스트케이스로이용한다. 위와같은기법의경우, 모델검증도구가생성하는검증반례를이용해테스트케이스를생성하지만, 본연구에서제안하는 MOKERT프레임워크와는달리, 검증반례를재연하는기능은없다. 본연구와밀접한관련이있는소프트웨어검증도구중 CHESS[11] 는무상태검색 (stateless search) 기법을사용하여동시성프로그램의많은스케쥴링시나리오를체계적으로테스트하며, 검출된오류시나리오를재연하는기능을제공한다. 하지만, 이기법은검증대상및환경이완전히구현된상태에서만적용가능하며, 기반플랫폼 (WIN32API 등 ) 에크게의존하기때문에, 하드웨어바로위에서동작하는커널을직접적으로테스트할수는없다. 다른소프트웨어모델검증도구들 [12,13] 은술어추상기법이나 SAT 인코딩을통해검증대상 C 프로그램으로부터정형모델을자동으로추출하여모델검증을수행하나, 상태폭발문제등의문제점들로말미암아그적용범위가크게제한되어있다. MOKERT는검증대상프로그램의완전자동화된분석을목적으로하고있지는않으며, 그대신전문가의지식을활용하여어플리케이션에대한추상화모델과환경을생성함으로써커널에존재하는동시성오류의실제적인검출을목표로한다 ([14] 참조 ). 3. 모델검증도구 SPIN과모델추출도구 Modex 3.1 모델검증도구 SPIN 모델검증도구 SPIN[2] 은모델명세언어로 Promela 를사용한다. C 언어와 Promela 언어의공통적인특성들로말미암아, C 프로그램으로작성된검증대상프로그램은이에대응되는 Promela 모델로변환할수있다. 예를들어, C언어에서의스레드는 Promela 모델에서프로세스로표현할수있으며, C에서사용되는모든제어구문들 (if, goto, while 등 ) 은 Promela의제어구문으로자동으로변환할수있다. 또한, Promela는 typedef와배열등을사용하여복잡한자료구조를표현할수있다. 1) 또한, Promela는 C 언어의함수호출에대응할수있는 inline 함수를제공한다. 이에더하여, SPIN 4.0 이상의버전에서는 Promela언어에 C 구문을내장하여사용할수있다. 이기능을통하여, C언어로작성된프로그램에서 Promela 모델로의자동변환의가용성이증가하였다. 1) 하지만, 포인터변수의직접적인표현은불가능하며, 배열등을통하여간접적으로표현해야한다.

4 526 정보과학회논문지 : 소프트웨어및응용제 36 권제 7 호 (2009.7) 모델검증도구 SPIN이생성하는검증반례에는다음과같은정보들이포함되어있다. - 단계번호 (step number) - 현재프로세스의고유번호 (process ID) - 현재프로세스가수행하는 proctype 이름 - 현재수행중인 Promela 모델의행번호 l -Promela 모델의 l 번째행구문예를들어, 그림 1에검증반례의 45번째단계는프로세스 1번이 proc_readdir이라는 proctype의 125번째행을실행한것이고, 그구문은 proc_subdir==1 이라는것을표현하고있다. 그리고 45번째단계에서 46번째단계로넘어가면서프로세스 1번에서프로세스 2번으로스케줄이바뀌고, 프로세스 2번이 remove_proc_entry라는 proctype의 156번째행을실행함을보이고있다. 3.2 모델추출도구 Modex Modex[1] 는 C 프로그램과변환스크립트를입력으로받아, C 프로그램을 Promela 언어로자동변환하는모델추출도구이다. Modex는 C 프로그램에서 if, while, goto와같은제어구문을그에상응하는 Promela 제어구조로자동변환한다. 그결과 Modex가생성한 Promela 모델은검증대상 C 프로그램과동일한제어구조를가지게된다. 제어구조를제외한다른 C 구문들은 Promela 모델의내장형C 구문으로표현된다. C 프로그램에서수식들은 c_expr{ } 키워드로시작하는내장형 C 수식으로표현되며, 변수대입이나함수호출등은 c_code{ } 키워드로시작하는내장형 C 구문으로표현된다. Promela명세의내장형구문들은 SPIN 모델검증도구가생성하는검증프로그램의코드에그대로복사되어사용되게된다. 사용자는변환스크립트를사용하여변환과정을조절 할수있다. Modex에서사용하는변환스크립트는변환표 (translation table) 로표현된다. 하나의변환표에는변환대상 C 프로그램의각함수에대한변환규칙 (translation rule) 이기술되어있다. 하나의변환규칙은특정문자패턴으로시작하는검증대상 C프로그램의구문이, 어떻게 Promela 구문으로변환되어야함을명세하고있다. 4. 모델기반커널테스팅프레임워크 4.1 개요모델기반커널테스팅 (MOdel-based KERnel Testing(MOKERT)) 프레임워크는모델검증기법의결과인검증반례를실제검증대상프로그램에적용함으로써, 커널코드에서의동시성오류테스팅의어려움을극복하는것을목표로한다. 모델검증단계에서의반례를실제검증대상프로그램에서재연하는것은소프트웨어산업현장에모델검증기술을적극적으로도입하는데중요한요소임에도, 대부분의모델검증프레임워크는이문제에대해적합하게논의하고있지않다. 전통적인모델기반테스팅방식은그림 2(a) 에표현된것과같이, 정형모델을사용자가수작업으로생성하고, 반례의분석도사용자가수작업으로수행한다. 이러한과정은많은시간과노력이소모된다. MOKERT 프레임워크에서의모델기반테스팅방식은그림 2(b) 에표현되어있다. MOKERT 프레임워크에서는 Modex를사용하여검증대상 C 프로그램으로부터 ( 반 ) 자동으로정형모델을추출한다. 이추출과정에서는변환스크립트 T가사용된다. 변환스크립트 T에는변환대상 C 프로그램의특정구문이 Promela의어떠한구문으로변환되어야하는지명세되어있다. 이러한 T의역인 T -1 은변환된 Promela모델의특정구문이변환대상 C 프로그램의어 (a) 사용자가제공하는모델을이용하는전통적인모델기반테스팅방법 그림 2 모델기반테스팅 (b) 모델추출도구를이용하는 ( 반 ) 자동모델기반테스팅방법

5 모델기반의커널테스팅프레임워크 527 떠한구문을변환한것인지에대한정보를나타내며, 따라서 T -1 을이용하면주어진반례가 C프로그램에서어떠한구문의실행을표현하는것인지이해할수있다. 그리고이정보를바탕으로, 검증대상프로그램이반례에서보이는것과같은형태의실행을하도록대상프로그램을수정 (instrumentation) 한다. 이렇게수정된프로그램을실행함으로써, 실제커널프로그램에서반례의재연 (replay) 이가능하다. MOKERT는반례의재연에초점을맞춘만큼, liveness property를제외한일반적인 safety property를요구명세대상으로한다. MOKERT 프레임워크가제공하는반례재연기능은다음과같은장점이있다. 그림 3 MOKERT프레임워크의구조 - 결함의원인분석용이 MOKERT는모델검증단계에서발견한반례를단계별로실행할수있는기능을제공한다. 그러므로사용자는커널코드상의오류를발생시키는결함의원인을보다편리하게분석할수있다. 이는동시성오류를찾는데장점이될수있는데, 그이유는결함의재연을위해사용자가직접스레드스케줄링을조작해야하는불편함을해결할수있기때문이다. - 모델개선 (model refinement) 모델검증과정중, 초기에생성된모델은과도하게추상화되어있을가능성이크다. 올바른검증결과를위해서는모델을점차세밀하게만드는과정을반복해서적용할필요가있다. MOKERT에서는정형모델에서반례가발견되는경우, 그반례가올바른것인지아니면과도한추상화로생긴오경보 (false alarm) 인지의여부를자동으로확인할수있는기능을제공한다. 반례가오경보인경우, 정형모델을개선하여야한다. 이러한개선과정은술어추상화 (predicate abstraction) 기술에서사용하는반례기반추상화개선기술 (counter example guided abstraction refinement: CEGAR)[15] 과 개념적으로유사하나, 추상모델의개선을수동으로수행한다는점에서차이가있다. - 결함패치검증 (validation of bug patch) 커널에서의오류는대부분프로그램코드를사람이눈으로검사하거나 (code inspection) 나토의, 혹은가상시나리오를바탕으로보고되며, 커널영역에대한테스팅의어려움으로인해, 테스팅으로실제적인오류를발견하는경우는비교적적다. 따라서리눅스의 Change- Log는실제로는불필요하거나올바르게결함을해결하지못한패치를포함하고있으며, MOKERT 프레임워크를사용함으로써결함패치가올바른지에대한여부를검증할수있다 (5.2절참조 ). 4.2 MOKERT 프레임워크의구조 MOKERT의전반적인구조는그림 3에서표현된형태와같다. MOKERT프레임워크는정적단계와동적단계로구성된다. MOKERT프레임워크의정적단계는다음과같은세부과정들로구성된다. (1) 검증대상 C 프로그램을변환스크립트를기반으로 Modex를통하여 Promela 모델로변환한다. 생성된 Promela 모델은프로세스, 환경모델, 검증요구사항명세등으로구성된다. 이과정에서, Modex의중간결과물로 Promela 모델의행번호와검증대상 C 프로그램의행번호사이의대응정보가생성된다. (2) 모델검증도구 SPIN은이전단계에서생성된 Promela 모델이검증요구사항명세를만족하는지를검사한다. 만약모델이검증요구사항명세를만족한다면모델검증도구 SPIN은검증결과를사용자에게보고하고, 그렇지않았으면반례를생성한다. (3) 검증대상 C 프로그램은 (1) 단계에서생성된 Promela 모델의행번호와검증대상 C 프로그램의행번호사이의대응정보와 (2) 단계에서생성된반례를기반으로하여검증대상프로그램이반례를재연할수있도록대상프로그램을수정 (instrumentation) 한다. 수정된검증대상 C 프로그램은, 반례의문맥전환이일어나는부분에대응하는검증대상 C 프로그램의부분에 probe가삽입된형태이다. 또한, 수정된프로그램에는 MOKERT의동적단계를지원하기위해제어스레드 (controller thread) 와모니터스레드 (monitor thread) 가포함되며, 이밖에모델검증에서의환경모델과동일한테스팅환경을구성하기위한테스트드라이버가포함된다. 수정된대상 C 프로그램은컴파일러를이용하여실행가능한형태의프로그램으로만들어진다. 동적단계에서는검증대상프로그램으로부터생성된스레드들이제어스레드, 모니터스레드와함께실행된다. 제어스레드는반례의재연을위해검증대상스레

6 528 정보과학회논문지 : 소프트웨어및응용제 36 권제 7 호 (2009.7) 드들의 probe와통신을하며그들의스케줄을조정한다. 모니터스레드는검증대상스레드들과제어스레드의상태를관찰하고반례가올바르게재연되고있는지확인하는기능을제공한다. MOKERT 프레임워크에서는, 검증반례가생성되면사용자가직접테스트드라이버를구축해야한다. 하지만, 이작업은일반적인테스트를위한테스트드라이버를구축하는작업보다간단하며, 그이유는다음과같다. 첫째, 사용자는테스트드라이버를구축할때에모델검증단계에서사용했던추상환경모델을참고할수있다 [16]. 둘째, MOKERT 프레임워크에필요한테스트드라이버는, 하나의검증반례가나타내는특정시나리오만을지원하면되므로, 범용적인테스트베드를구축하는데에필요한노력에비해적은양의노력만이요구된다. 4.3 동적 (run-time) 단계동적단계에서모니터스레드는검증대상스레드들과제어스레드의상태를관찰함으로써반례의재연이올바르게이루어지고있는지를관찰한다. 모니터스레드는검증대상프로그램의실행이반례의마지막에도달하게되면, 사용자에게재연이성공적으로이루어졌다고알린다. 이와동시에테스트드라이버는테스트결과를통해, 재연에의한실행이요구사항을만족하는지를알려주게된다. 다음은반례재연의가능한결과를나타낸다. (i) 반례의마지막에도달하면서요구사항을만족하지않는경우 (ii) 반례의마지막에도달하였지만요구사항을만족하는경우 (iii) 반례의마지막에절대도달하지않는경우첫번째경우는사용자가반례의재연을통해기대하는결과이다. 두번째와세번째는반례의재연에실패한경우를가리킨다. 만약일정시간내에반례의마지막에도달하지못하는경우, 모니터스레드는사용자에게현재검증대상스레드들의상태와함수호출스택의상태등의로그정보와함께반례재연에실패함을알린다. 반례재연의실패는다음과같은이유에기인한다. (i) 정확하지않은모델링검증대상프로그램에대한모델이과도하게추상화된경우, 실제프로그램에서반례를재연할수없다. 즉, 모델에서반영하지못한커널전체의환경설정으로반례의실행이실패할수있다. 예를들어, 커널전체적으로인터럽트가제한되어있거나, 우선순위스케줄링이진행중인경우, 제어스레드가검증대상스레드의스케줄을조절하는것은불가능하므로반례를재연할수없다. (ii) 정확하지않은테스트드라이버구축테스트드라이버가잘못작성되어검증환경을올바르게구성하지못하는경우, 반례의재연에실패하게된다. 그림 4 proc_readdir() 함수와 remove_proc_entry() 함수간의자원경쟁 5. 사례연구 : Proc 파일시스템의 proc_readdir () 와 remove_proc_entry() 간의자원경쟁오류본절에서기술하는사례연구는, 실제커널의동시성오류검출에 MOKERT 프레임워크가어떻게사용되는가를구체적으로기술함으로써, 본프레임워크의유효성을실험적으로보이고자한다. 5.1 오류설명 Proc 파일시스템은 UNIX 계열의운영체제에서사용되는가상파일시스템중하나이다. Proc 파일시스템을통하여사용자는특정프로세스의정보를열람하거나커널모듈과의통신을수행할수있다. 리눅스 Changelog 에는리눅스커널 에서발견된 proc_readdir() 함수와 remove_proc_entry() 함수사이의자원경쟁오류를보고하고있으며, 이를해결하기위한결함패치를소개하고있다. 이결함에의하여발생가능한자원경쟁상태는그림 4에설명되어있다. remove_proc_entry() 함수의 24번째행에서 de(proc파일시스템에서하나의디렉토리항목을나타내는개체 ) 를제거하기전, 23번째행에서 de의 count값을읽음으로써현재항목에대한동시사용자가없는지를확인한다. 하지만, proc_readdir() 함수에서는, de 값을읽기전에 de의 count 값을증가시키지않고있다. 따라서 remove_proc_entry() 함수에서는 proc_readdir() 함수가 de를읽으려고하는지파악하지못한채 de를제거하게되고, 결과적으로 proc_readdir() 함수의 70번째행에서는 remove_ proc_entry() 함수의수행으로이미제거작업이수행된 de 개체의내용을읽는명령을수행하게된다. 5.2 오류재연 MOKERT 프레임워크를통해 proc_readdir() ( 총 67행 ), remove_proc_entry() ( 총 35행 ) 그리고동기화관련함수등위두함수와관련된함수들이 Modex를통하여 Promela 모델로변환되었다. proc_ readdir() 함수에관한 Promela 프로세스는총 68행이고, remove_proc_entry() 함수에관한 Promela

7 모델기반의커널테스팅프레임워크 529 프로세스는총 36행이었다. 이에더하여, 검증환경 ( 총 76행 ) 은 Jan, Feb, Mar, Apr 로명명된 4개의항목을가지는하나의 proc 파일시스템디렉토리로설정하였다. 이러한환경설정은그림 5와같다. 검증환경은 proc_readdir() 함수와 remove_proc_entry() 함수에관한두프로세스를생성하며, remove_proc_ entry() 함수가 Feb 항목을지우는것과동시에 proc_readdir() 함수가같은디렉토리에존재하는모든항목을읽는작업을수행하도록설정하였다. 요구사항으로는 proc_readdir() 함수의 70번째행에서접근하는디렉토리항목은이전에제거되지않은것이어야한다는조건으로표현하였다. 이요구사항을검증하기위해각디렉토리항목에 removed라는표식을추가하였으며, 이는디렉토리항목이제거되었을때 true의값을가지게된다. 모델검증도구 SPIN은이모델로부터 59단계로이루어진반례를생성하였다. 그림 5 디렉토리항목구조의예실제운영체제커널을대상으로반례를재연하기위하여, 테스트드라이버 ( 총 98행 ) 는모델에서의환경과동일한형태의환경을생성하도록작성되었다. 커널에서반례를재연한결과, remove_proc_entry() 함수로제거한디렉토리항목은 proc_readdir() 함수의결과로출력되는반면, 제거하지않은항목들이출력되지않는증상을확인할수있었다. 다시말하여, proc_readdir() 함수는그실행결과로 Jan, Feb 만을출력하였고, Mar, Apr 은출력하지않았다. 이는그림 4에서설명하는 proc_readdir() 함수와 remove_proc_entry() 함수간의자원경쟁상태로말미암은잘못된출력결과이다. 이러한결함은리눅스 에서 proc_readdir() 함수의 68번째행에 atomic_inc(&de->count) 구문을추가함으로써해결되었다. Promela 모델에리눅스 에서추가된구문을반영하였을때, 더이상오류가발생하지않았으며, 따라서리눅스 의패치가올바름을확인할수있었다. 본사례연구는 2명의대학원생이 3일에걸쳐서수행하였으며, 그중 2일은 proc 파일시스템 C 코드를이해하기위해소요되었다. 5.3 새로운자원경쟁오류검출리눅스커널 proc 파일시스템을검증한연구를, 본논문을작성할시점에서가장최근리눅스커널인 로확장적용한결과, 새로운자원경쟁문제 로인하여커널패닉이발생되는새로운오류를발견하였으며, 관련리눅스커널코드를관리하는담당자에게보고하였다. 새로이발견된오류는, 스레드 T1이 remove_proc_entry() 를통해하나의디렉토리 d1 를삭제하려할때, 동시에다른스레드 T2가 remove_proc_entry() 를사용해하위디렉토리인 d1/d2 를삭제하면서 d1/d2 를가르키는포인터의값을 null로바꾼경우, T1이이러한변화를파악하지못하고 null 포인터를참조하기때문에커널패닉을발생시킨다. 본사례연구는리눅스의버전이높아지면서 remove_ proc_entry() 의길이가 35행에서 70행으로증가하면서, 추가적인모델링및환경을구성했어야함에도불구하고대학원생 1명이하루만에검증을완료할수있었다. 이는기존의리눅스 proc 파일시스템을위해구성한모델및재연테스트베드를재활용할수있었기때문이다. 본사례연구를통하여, MOKERT가기존에보고된오류의진위를판별할수있을뿐아니라, 새로운동시성오류를검출하는용도에효과적으로사용될수있다는것을보일수있었다. 6. 결론 본연구는운영체제커널의동시성오류를효과적으로검출하기위한 MOKERT 프레임워크를제안하고있다. MOKERT는사용자가추상화모델링작업을통해서운영체제커널의각구성요소를독립적으로분석한결과를, 검증반례재연기능을통하여실제커널코드에적용하여확증하는것을지원한다. 따라서, MOKERT 프레임워크는동시성을가지는커널의동작을모델검증을통해면밀히검사함으로써커널코드분석의신뢰성을향상시키는데에쓰일수있다. 본연구에서는리눅스커널의 proc 파일시스템을대상으로하는사례연구를통하여, 이프레임워크의실효성을확인하였다. 사례연구를통해서, 모델검증을기반으로하는테스팅기술의발전을위하여모델추출기술의추가적인개발및발전되어야함을알수있었다. Modex를포함하는현재의모델추출기술은아직사용자의높은숙련도를요구하고있기때문이다. 저자들은이번연구에서개발된 MOKERT 프레임워크를이용하여, 더많은리눅스파일시스템의컴포넌트들을분석하여신뢰성을향상시키는연구를진행하는한편, 공개 real-time OS 등의분야로적용대상을확장할예정이다. 참고문헌 [1] G. J. Holzmann and R. Joshi, "Model-driven software verification," Spin Workshop, April 2004.

8 530 정보과학회논문지 : 소프트웨어및응용제 36 권제 7 호 (2009.7) [2] G. J. Holzmann, "The Spin Model Checker," Wiley, New York, [3] K. Sen, "Effective random testing of concurrent programs," Proceedings of the twenty-second IEEE/ ACM International Conference on Automated software engineering, [4] R. H. Carver and Y. Lei, "A General Model for Reachability Testing of Concurrent Programs," IEEE International Conference on Formal Engineering Methods, [5] M. Christiens, J. D. Choi, M. Ronsse and K. Bosschere, "Record/Replay in the Presence of Benign Data Races," In International Conference on Parallel and Distributed Processing Techniques and Applications, [6] S. Artzi, S. H. Kim, and M. D. Ernst, "ReCrash: Making Software Failures Reproducible by Preserving Object States," European Conference on Object-Oriented Programming, [7] S. Narayanasamy, G. Pokam, and B. Calder, "Bug- Net: Recording application-level execution for deterministic replay debugging," IEEE Micro, 26(1): , [8] W. Visser, C. S. Pasareanu and S. Khurshid, "Test input generation with Java PathFinder," International Symposium on Software Testing and Analysis, [9] M. P. E. Heimdahl, S. Rayadurgam, W. Visser, G. Devaraj and J. Gao, "Auto-generating Test Sequences Using Model Checker: A Case Study," Formal Approaches to Software Testing, [10] A. Gargantini, E. Riccobene and S. Rinzivillo, "Using Spin to Generate Tests from ASM Specifications," Abstract State Machines, [11] M. Musuvathi, S. Qadeer and T. Ball, "Chess: A systematic testing tool for concurrent software," Microsoft Research Technical Report MSR-TR , [12] D. Beyer, T. A. Henzinger, R. Jhala, and R. Majumdar, "The software model checker BLAST: Applications to software engineering," International Journal on Software Tools for Technology Transfer, [13] E. Clarke, D. Kroening, and F. Lerda, "A tool for checking ANSI-C programs," Tools And Algorithms for Construction and Analysis of Systems, [14] P. Camara, M. Gallardo and P. Merino, "Model extraction for ARINC 653 based avionics software," Spin workshop, [15] E. Clarke, O. Grumberg, S. Jha, Y. Lu and H. Veith, "Counterexample-guided abstraction refinement," Computer Aided Verification, July [16] M. Kim, Y. Kim, Y. Choi and H. Kim, "Pre-testing flash device driver through model checking techniques," IEEE International Conference on Software Testing, Verification and Validation, April 프트웨어 김문주 1995 년 KAIST 전산학과학사 년 Univ. of Pennsylvania 박사 년 ~ 2004 년 SECUi.COM 차장 년 ~ 2006 년 POSTECH 연구원 년 ~ 현재 KAIST 전산학과조교수. 관심분야는정형검증, 소프트웨어테스팅, 내장형소 홍신 2007년 KAIST 전산학전공 ( 학사 ) 년~현재 KAIST 대학원전산학전공석사과정. 관심분야는소프트웨어검증, 모델체킹, 프로그램분석

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN

More information

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for 2003 Development of the Software Generation Method using Model Driven Software Engineering Tool,,,,, Hoon-Seon Chang, Jae-Cheon Jung, Jae-Hack Kim Hee-Hwan Han, Do-Yeon Kim, Young-Woo Chang Wang Sik, Moon

More information

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 SMV 소개 Konkuk Univ. IT 융합정보보호학과 오예원, 박선영 목차 SMV 소개 CTL NuSMV 설치방법및예시 (lift) 향후계획 SMV SMV(Symbolic Model Verifier) 는유한상태시스템 (finite state system) 이 CTL(Computation Tree Logic) 이라는논리와 BDD(Binary Decision

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

SW¹é¼Ł-³¯°³Æ÷ÇÔÇ¥Áö2013

SW¹é¼Ł-³¯°³Æ÷ÇÔÇ¥Áö2013 SOFTWARE ENGINEERING WHITE BOOK : KOREA 2013 SOFTWARE ENGINEERING WHITE BOOK : KOREA 2013 SOFTWARE ENGINEERING WHITE BOOK : KOREA 2013 SOFTWARE ENGINEERING WHITE BOOK : KOREA 2013 SOFTWARE ENGINEERING

More information

임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 시스템호출개요 리눅스에서는사용자공간과커널공간을구분 사용자프로그램은사용자모드, 운영체제는커널모드에서수행 커널공간에대한접근은커널 ( 특권, priviledged) 모드에서가능 컴퓨팅자원 (CPU, memory, I/O 등 ) 을안전하게보호 커널수행을안전하게유지

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., KOSPI200.,. * 지능정보연구제 16 권제 1 호 2010 년 3 월

지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., KOSPI200.,. * 지능정보연구제 16 권제 1 호 2010 년 3 월 지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., 2004 5 2009 12 KOSPI200.,. * 2009. 지능정보연구제 16 권제 1 호 2010 년 3 월 김선웅 안현철 社 1), 28 1, 2009, 4. 1. 지능정보연구제 16 권제 1 호 2010 년 3 월 Support

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 공개 SW 솔루션설치 & 활용가이드 시스템 SW > 가상화 제대로배워보자 How to Use Open Source Software Open Source Software Installation & Application Guide CONTENTS 1. 개요 2. 기능요약 3. 실행환경 4. 설치및실행 5. 기능소개 6. 활용예제 7. FAQ 8. 용어정리 - 3-1.

More information

<31325FB1E8B0E6BCBA2E687770>

<31325FB1E8B0E6BCBA2E687770> 88 / 한국전산유체공학회지 제15권, 제1호, pp.88-94, 2010. 3 관내 유동 해석을 위한 웹기반 자바 프로그램 개발 김 경 성, 1 박 종 천 *2 DEVELOPMENT OF WEB-BASED JAVA PROGRAM FOR NUMERICAL ANALYSIS OF PIPE FLOW K.S. Kim 1 and J.C. Park *2 In general,

More information

À±½Â¿í Ãâ·Â

À±½Â¿í Ãâ·Â Representation, Encoding and Intermediate View Interpolation Methods for Multi-view Video Using Layered Depth Images The multi-view video is a collection of multiple videos, capturing the same scene at

More information

Chapter #01 Subject

Chapter #01  Subject Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE ALTIBASE HDB 6.3.1.10.1 Patch Notes 목차 BUG-45710 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG-45730 ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG-45760 ROLLUP/CUBE 절을포함하는질의는 SUBQUERY REMOVAL 변환을수행하지않도록수정합니다....

More information

09권오설_ok.hwp

09권오설_ok.hwp (JBE Vol. 19, No. 5, September 2014) (Regular Paper) 19 5, 2014 9 (JBE Vol. 19, No. 5, September 2014) http://dx.doi.org/10.5909/jbe.2014.19.5.656 ISSN 2287-9137 (Online) ISSN 1226-7953 (Print) a) Reduction

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 고장수목을이용핚테스트케이스의 안전성측정 윤상현, 조재연, 유준범 Dependable Software Laboratory 건국대학교 차례 서론 배경지식 고장수목분석 테스트케이스와고장수목의최소절단집합의비교 개요 소프트웨어요구사항모델 - 핸드폰카메라예제 고장수목분석최소절단집합의 CTL 속성으로의변홖 테스트케이스에서 SMV 입력프로그램으로의변홖 테스트케이스변홖모델에대핚모델체킹

More information

6.24-9년 6월

6.24-9년 6월 리눅스 환경에서Solid-State Disk 성능 최적화를 위한 디스크 입출력요구 변환 계층 김태웅 류준길 박찬익 Taewoong Kim Junkil Ryu Chanik Park 포항공과대학교 컴퓨터공학과 {ehoto, lancer, cipark}@postech.ac.kr 요약 SSD(Solid-State Disk)는 여러 개의 낸드 플래시 메모리들로 구성된

More information

DE1-SoC Board

DE1-SoC Board 실습 1 개발환경 DE1-SoC Board Design Tools - Installation Download & Install Quartus Prime Lite Edition http://www.altera.com/ Quartus Prime (includes Nios II EDS) Nios II Embedded Design Suite (EDS) is automatically

More information

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information

Lab 3. 실습문제 (Single linked list)_해답.hwp

Lab 3. 실습문제 (Single linked list)_해답.hwp Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.

More information

05(533-537) CPLV12-04.hwp

05(533-537) CPLV12-04.hwp 모바일 OS 환경의 사용자 반응성 향상 기법 533 모바일 OS 환경의 사용자 반응성 향상 기법 (Enhancing Interactivity in Mobile Operating Systems) 배선욱 김정한 (Sunwook Bae) 엄영익 (Young Ik Eom) (Junghan Kim) 요 약 사용자 반응성은 컴퓨팅 시스템에서 가장 중요 한 요소 중에 하나이고,

More information

DBPIA-NURIMEDIA

DBPIA-NURIMEDIA ISSN 2383-6318(Print) / ISSN 2383-6326(Online) KIISE Transactions on Computing Practices, Vol. 21, No. 2, pp. 132-137, 2015. 2 http://dx.doi.org/10.5626/ktcp.2015.21.2.132 타임드오토마타모델기반테스팅기법분석및사례연구 (Analysis

More information

DBPIA-NURIMEDIA

DBPIA-NURIMEDIA 무선 센서 네트워크 환경에서 링크 품질에 기반한 라우팅에 대한 효과적인 싱크홀 공격 탐지 기법 901 무선 센서 네트워크 환경에서 링크 품질에 기반한 라우팅에 대한 효과적인 싱크홀 공격 탐지 기법 (A Effective Sinkhole Attack Detection Mechanism for LQI based Routing in WSN) 최병구 조응준 (Byung

More information

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우. 소프트웨어매뉴얼 윈도우드라이버 Rev. 3.03 SLP-TX220 / TX223 SLP-TX420 / TX423 SLP-TX400 / TX403 SLP-DX220 / DX223 SLP-DX420 / DX423 SLP-DL410 / DL413 SLP-T400 / T403 SLP-T400R / T403R SLP-D220 / D223 SLP-D420 / D423

More information

4S 1차년도 평가 발표자료

4S 1차년도 평가 발표자료 모바일 S/W 프로그래밍 안드로이드개발환경설치 2012.09.05. 오병우 모바일공학과 JDK (Java Development Kit) SE (Standard Edition) 설치순서 Eclipse ADT (Android Development Tool) Plug-in Android SDK (Software Development Kit) SDK Components

More information

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기 Mango-IMX6Q mfgtool 을 이용한이미지 Write 하기 http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

Microsoft PowerPoint Predicates and Quantifiers.ppt

Microsoft PowerPoint Predicates and Quantifiers.ppt 이산수학 () 1.3 술어와한정기호 (Predicates and Quantifiers) 2006 년봄학기 문양세강원대학교컴퓨터과학과 술어 (Predicate), 명제함수 (Propositional Function) x is greater than 3. 변수 (variable) = x 술어 (predicate) = P 명제함수 (propositional function)

More information

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 애플리케이션기초 애플리케이션컴포넌트 액티비티와태스크 Part 1 프로세스와쓰레드 컴포넌트생명주기 Part 2 2 Library Java (classes) aapk.apk (android package) identifiers Resource & Configuration aapk: android

More information

Frama-C/JESSIS 사용법 소개

Frama-C/JESSIS 사용법 소개 Frama-C 프로그램검증시스템소개 박종현 @ POSTECH PL Frama-C? C 프로그램대상정적분석도구 플러그인구조 JESSIE Wp Aorai Frama-C 커널 2 ROSAEC 2011 동계워크샵 @ 통영 JESSIE? Frama-C 연역검증플러그인 프로그램분석 검증조건추출 증명 Hoare 논리에기초한프로그램검증도구 사용법 $ frama-c jessie

More information

<4D F736F F F696E74202D20322DBDC7BDC3B0A320BFEEBFB5C3BCC1A6>

<4D F736F F F696E74202D20322DBDC7BDC3B0A320BFEEBFB5C3BCC1A6> 컴퓨터시스템구성 2. 실시간운영체제 1 2 운영체제의주요기능 프로세스관리 (Process management) 메모리관리 (Memory management) 인터럽트핸들링 (Interrupt handling) 예외처리 (Exception handling) 프로세스동기화 (Process synchronization) 프로세스스케쥴링 (Process scheduling)

More information

정보기술응용학회 발표

정보기술응용학회 발표 , hsh@bhknuackr, trademark21@koreacom 1370, +82-53-950-5440 - 476 - :,, VOC,, CBML - Abstract -,, VOC VOC VOC - 477 - - 478 - Cost- Center [2] VOC VOC, ( ) VOC - 479 - IT [7] Knowledge / Information Management

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

Figure 1: 현존하는 정적 분석 기술의 한계와 본 연구의 목표. 이러한 허위경보(false alarm)를 가질 수 밖에 없는데, 오탐율(전체 경보중 허위경보의 비율)이 정확도의 척도가 된다. 유용한 정적 분석기는 충분히 낮은 허위경보율을 가져야 한다. 대형 프로그

Figure 1: 현존하는 정적 분석 기술의 한계와 본 연구의 목표. 이러한 허위경보(false alarm)를 가질 수 밖에 없는데, 오탐율(전체 경보중 허위경보의 비율)이 정확도의 척도가 된다. 유용한 정적 분석기는 충분히 낮은 허위경보율을 가져야 한다. 대형 프로그 고성능 정적 프로그램 분석 기법 오학주 고려대학교 컴퓨터학과 서론 1 1.1 소프트웨어 오류 문제 소프트웨어가 모든 산업의 기반 기술이 되면서 소프트웨어의 오류로 인해 발생하는 사회경제적 비 용이 천문학적으로 증가하고 있다. 한 예로 미국의 투자금융회사인 KCG(Knight Capital Group)은 2012년 8월 1일 하루동안 2년치의 매출액에 해당하는

More information

RVC Robot Vaccum Cleaner

RVC Robot Vaccum Cleaner RVC Robot Vacuum 200810048 정재근 200811445 이성현 200811414 김연준 200812423 김준식 Statement of purpose Robot Vacuum (RVC) - An RVC automatically cleans and mops household surface. - It goes straight forward while

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

C 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 INSTALL LINUX Jo, Heeseung DOWNLOAD PROGRAMS Download VMWare player http://www.vmware.com/products/player/playerproevaluation.html Download Ubuntu iso file http://ubuntu.com - server, 64bit version http://cslab.jbnu.ac.kr/_down/ubuntu-18.04.2-live-serveramd64.iso

More information

2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 Abstract

2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 Abstract 2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 Abstract - 31 - 소스코드유사도측정도구의성능에관한비교연구 1. 서론 1) Revulytics, Top 20 Countries for Software Piracy and Licence Misuse (2017), March 21, 2017. www.revulytics.com/blog/top-20-countries-software

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Install Linux Jo, Heeseung Download Programs Download VMWare player http://www.vmware.com/products/player/playerproevaluation.html Download Ubuntu iso file http://cslab.jbnu.ac.kr/_down/ubuntu-16.04.2-desktopamd64.iso

More information

DBPIA-NURIMEDIA

DBPIA-NURIMEDIA 논문 10-35-03-03 한국통신학회논문지 '10-03 Vol. 35 No. 3 원활한 채널 변경을 지원하는 효율적인 IPTV 채널 관리 알고리즘 준회원 주 현 철*, 정회원 송 황 준* Effective IPTV Channel Control Algorithm Supporting Smooth Channel Zapping HyunChul Joo* Associate

More information

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다 이장에서사용되는 MATLAB 명령어들은비교적복잡하므로 MATLAB 창에서명령어를직접입력하지않고확장자가 m 인 text 파일을작성하여실행을한다. 즉, test.m 과같은 text 파일을만들어서 MATLAB 프로그램을작성한후실행을한다. 이와같이하면길고복잡한 MATLAB 프로그램을작성하여실행할수있고, 오류가발생하거나수정이필요한경우손쉽게수정하여실행할수있는장점이있으며,

More information

2002년 2학기 자료구조

2002년 2학기 자료구조 자료구조 (Data Structures) Chapter 1 Basic Concepts Overview : Data (1) Data vs Information (2) Data Linear list( 선형리스트 ) - Sequential list : - Linked list : Nonlinear list( 비선형리스트 ) - Tree : - Graph : (3)

More information

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 ALTIBASE HDB 6.5.1.5.10 Patch Notes 목차 BUG-46183 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG-46249 [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG-46266 [sm]

More information

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서 커알못의 커널 탐방기 2015.12 이 세상의 모든 커알못을 위해서 개정 이력 버전/릴리스 0.1 작성일자 2015년 11월 30일 개요 최초 작성 0.2 2015년 12월 1일 보고서 구성 순서 변경 0.3 2015년 12월 3일 오탈자 수정 및 글자 교정 1.0 2015년 12월 7일 내용 추가 1.1 2015년 12월 10일 POC 코드 삽입 및 코드

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

More information

À¯Çõ Ãâ·Â

À¯Çõ Ãâ·Â Network Virtualization Techniques for Future Internet Services in cloud computing are based on network virtualization that provides both flexibility and network isolation. Network virtualization consists

More information

6주차.key

6주차.key 6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running

More information

SNU =10100 =minusby by1000 ÇÁto0.03exÇÁto0.03exÇÁ=10100 =minusby by1000 ·Îto0.03ex·Îto0.03ex·Î=10100 =minusby by1000

SNU =10100 =minusby by1000 ÇÁto0.03exÇÁto0.03exÇÁ=10100 =minusby by1000 ·Îto0.03ex·Îto0.03ex·Î=10100 =minusby by1000 SNU 4190.210 프로그래밍 원리 (Principles of Programming) Part III Prof. Kwangkeun Yi 차례 1 값중심 vs 물건중심프로그래밍 (applicative vs imperative programming) 2 프로그램의이해 : 환경과메모리 (environment & memory) 다음 1 값중심 vs 물건중심프로그래밍

More information

서현수

서현수 Introduction to TIZEN SDK UI Builder S-Core 서현수 2015.10.28 CONTENTS TIZEN APP 이란? TIZEN SDK UI Builder 소개 TIZEN APP 개발방법 UI Builder 기능 UI Builder 사용방법 실전, TIZEN APP 개발시작하기 마침 TIZEN APP? TIZEN APP 이란? Mobile,

More information

제8장 자바 GUI 프로그래밍 II

제8장 자바 GUI 프로그래밍 II 제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로

More information

DBPIA-NURIMEDIA

DBPIA-NURIMEDIA 한국소음진동공학회 2015추계학술대회논문집년 Study of Noise Pattern and Psycho-acoustics Characteristic of Household Refrigerator * * ** ** Kyung-Soo Kong, Dae-Sik Shin, Weui-Bong Jeong, Tae-Hoon Kim and Se-Jin Ahn Key Words

More information

학습영역의 Taxonomy에 기초한 CD-ROM Title의 효과분석

학습영역의 Taxonomy에 기초한 CD-ROM Title의 효과분석 ,, Even the short history of the Web system, the techniques related to the Web system have b een developed rapidly. Yet, the quality of the Webbased application software has not improved. For this reason,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 NuPIC 2013 2013.11.07~11.08 충남예산 FPGA 기반제어기를위한통합 SW 개발환경구축 유준범 Dependable Software Laboratory 건국대학교 2013.11.08 발표내용 연구동기 효과적인 FPGA 기반제어기를위한통합 SW 개발환경 연구진행현황 개발프로세스 FBD Editor FBDtoVerilog 향후연구계획 맺음말 2

More information

<35335FBCDBC7D1C1A42DB8E2B8AEBDBAC5CDC0C720C0FCB1E2C0FB20C6AFBCBA20BAD0BCAE2E687770>

<35335FBCDBC7D1C1A42DB8E2B8AEBDBAC5CDC0C720C0FCB1E2C0FB20C6AFBCBA20BAD0BCAE2E687770> Journal of the Korea Academia-Industrial cooperation Society Vol. 15, No. 2 pp. 1051-1058, 2014 http://dx.doi.org/10.5762/kais.2014.15.2.1051 멤리스터의 전기적 특성 분석을 위한 PSPICE 회로 해석 김부강 1, 박호종 2, 박용수 3, 송한정 1*

More information

여행기

여행기 POPL/VMCAI 2013 ROME, ITALY 2013.01.20-2013.01.26 POPL 2013. 40 POPL VMCAI, PADL, PEPM... 1. POPL,. VMCAI(International Conference on Verification, Model Checking, and Abstract Interpretation), PADL(International

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT 2007. 2. 5 PLATFORM TEAM 정용학 차례 CONTAINER & WIDGET SPECIAL WIDGET 질의응답및토의 2 Container LCD에보여지는화면한개 1개이상의 Widget을가짐 3 Container 초기화과정 ui_init UMP_F_CONTAINERMGR_Initialize UMP_H_CONTAINERMGR_Initialize

More information

Microsoft PowerPoint - 03-Development-Environment-2.ppt

Microsoft PowerPoint - 03-Development-Environment-2.ppt 개발환경 2 임베디드시스템소프트웨어 I 차례 부트로더의기능, 컴파일방법 커널의기능, 컴파일방법 파일시스템의기능, 생성방법 Host-KIT 네트워크연결방법 (Bootp, TFTP, NFS) 개발환경 2 2 부트로더의기능 하드웨어초기화 CPU clock, Memory Timing, Interrupt, UART, GPIO 등을초기화 커널로드 커널이미지를 flash

More information

Chapter 4. LISTS

Chapter 4. LISTS C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or

More information

Observational Determinism for Concurrent Program Security

Observational Determinism for  Concurrent Program Security 웹응용프로그램보안취약성 분석기구현 소프트웨어무결점센터 Workshop 2010. 8. 25 한국항공대학교, 안준선 1 소개 관련연구 Outline Input Validation Vulnerability 연구내용 Abstract Domain for Input Validation Implementation of Vulnerability Analyzer 기존연구

More information

¼º¿øÁø Ãâ·Â-1

¼º¿øÁø Ãâ·Â-1 Bandwidth Efficiency Analysis for Cooperative Transmission Methods of Downlink Signals using Distributed Antennas In this paper, the performance of cooperative transmission methods for downlink transmission

More information

김기남_ATDC2016_160620_[키노트].key

김기남_ATDC2016_160620_[키노트].key metatron Enterprise Big Data SKT Metatron/Big Data Big Data Big Data... metatron Ready to Enterprise Big Data Big Data Big Data Big Data?? Data Raw. CRM SCM MES TCO Data & Store & Processing Computational

More information

<4D F736F F F696E74202D C465F4B6F F6E662DB8AEB4AABDBABFA1BCADC0C7BDC7BDC3B0A3C1F6BFF8>

<4D F736F F F696E74202D C465F4B6F F6E662DB8AEB4AABDBABFA1BCADC0C7BDC7BDC3B0A3C1F6BFF8> Korea Tech Conference 2005 년 5 월 14 일, 서울 2005 년 5 월 14 일 CE Linux Forum Korea Tech Conference 1 리눅스에서의실시간지원 정영준 / 임용관 2005 년 5 월 14 일 CE Linux Forum Korea Tech Conference 2 1. 개요 2. 스케줄러 목차 I. 고정스케줄링시간지원

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

리눅스 프로세스 관리

리눅스 프로세스 관리 프로세스 (Process) Process 프로그램이나명령어를실행하면메모리에적재되어실제로실행되고있는상태를의미 이러한프로세스들은프로세스가시작하면서할당받는프로세스식별번호인 PID(Process ID), 해당프로세스를실행한부모프로세스를나타내는 PPID(Parent Process ID), UID 와 GID 정보를통해해당프로세스가어느사용자에속해있는지, 프로세스가파일에대해갖는권한및프로세스가실행된터미널,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된

More information

Figure 5.01

Figure 5.01 Chapter 4: Threads Yoon-Joong Kim Hanbat National University, Computer Engineering Department Chapter 4: Multithreaded Programming Overview Multithreading Models Thread Libraries Threading Issues Operating

More information

GNU/Linux 1, GNU/Linux MS-DOS LOADLIN DOS-MBR LILO DOS-MBR LILO... 6

GNU/Linux 1, GNU/Linux MS-DOS LOADLIN DOS-MBR LILO DOS-MBR LILO... 6 GNU/ 1, qkim@pecetrirekr GNU/ 1 1 2 2 3 4 31 MS-DOS 5 32 LOADLIN 5 33 DOS- LILO 6 34 DOS- 6 35 LILO 6 4 7 41 BIOS 7 42 8 43 8 44 8 45 9 46 9 47 2 9 5 X86 GNU/LINUX 10 1 GNU/, GNU/ 2, 3, 1 : V 11, 2001

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Software Verification Junit, Eclipse 및빌드환경 Team : T3 목차 Eclipse JUnit 빌드환경 1 Eclipse e 소개 JAVA 를개발하기위한통합개발환경 주요기능 Overall 빌드환경 Code edit / Compile / Build Unit Test, Debug 특징 JAVA Code를작성하고이에대한 debugging

More information

1.장인석-ITIL 소개.ppt

1.장인석-ITIL 소개.ppt HP 2005 6 IT ITIL Framework IT IT Framework Synchronized Business and IT Business Information technology Delivers: Simplicity, Agility, Value IT Complexity Cost Scale IT Technology IT Infrastructure IT

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

Problem New Case RETRIEVE Learned Case Retrieved Cases New Case RETAIN Tested/ Repaired Case Case-Base REVISE Solved Case REUSE Aamodt, A. and Plaza, E. (1994). Case-based reasoning; Foundational

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Install Linux Jo, Heeseung Download Programs On the class web page 2 가상머신 (Virtual Machine) 의소개 지금쓰는 Windows 를그대로사용하면서도여러대의리눅스서버를운영하는효과를내는프로그램 1 대의 PC 에서추가로 3 개의가상머신을구동한화면 3 Virtual Machines Host computer

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

Level 학습 성과 내용 1수준 (이해) 1. 기본적인 Unix 이용법(명령어 또는 tool 활용)을 습득한다. 2. Unix 운영체계 설치을 익힌다. 모듈 학습성과 2수준 (응용) 1. Unix 가상화 및 이중화 개념을 이해한다. 2. 하드디스크의 논리적 구성 능력

Level 학습 성과 내용 1수준 (이해) 1. 기본적인 Unix 이용법(명령어 또는 tool 활용)을 습득한다. 2. Unix 운영체계 설치을 익힌다. 모듈 학습성과 2수준 (응용) 1. Unix 가상화 및 이중화 개념을 이해한다. 2. 하드디스크의 논리적 구성 능력 CLD 모듈 계획서 Unix Systems 운영관리기법 교과목 코드 모듈명 Unix Systems Administration 코디네이터 김두연 개설 시기 2015. 5 th term 학점/시수 3 수강 대상 1~3학년 분반 POL Type TOL Type SOS Type 유형 소프트웨어 개발 컴퓨팅 플랫폼 관리 개발 역량 분석/설계 프로그래밍

More information

Microsoft Word - [TP_3][T1]UTP.docx

Microsoft Word - [TP_3][T1]UTP.docx Unit Testing Plan for Point Of Sale System Test Plan Test Design Specification Test Cases Specification Project Team Team 1 Date 2017-11-03 Team Information 201211337 김재현 201112052 방민석 201312259 백만일 201211383

More information

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.

More information

Microsoft Word - KSR2014S042

Microsoft Word - KSR2014S042 2014 년도 한국철도학회 춘계학술대회 논문집 KSR2014S042 안전소통을 위한 모바일 앱 서비스 개발 Development of Mobile APP Service for Safety Communication 김범승 *, 이규찬 *, 심재호 *, 김주희 *, 윤상식 **, 정경우 * Beom-Seung Kim *, Kyu-Chan Lee *, Jae-Ho

More information

I

I I II III (C B ) (C L ) (HL) Min c ij x ij f i y i i H j H i H s.t. y i 1, k K, i W k C B C L p (HL) x ij y i, i H, k K i, j W k x ij y i {0,1}, i, j H. K W k k H K i i f i i d ij i j r ij i j c ij r ij

More information

Microsoft Word - PLC제어응용-2차시.doc

Microsoft Word - PLC제어응용-2차시.doc 과정명 PLC 제어응용차시명 2 차시. 접점명령 학습목표 1. 연산개시명령 (LOAD, LOAD NOT) 에대하여설명할수있다. 2. 직렬접속명령 (AND, AND NOT) 에대하여설명할수있다. 3. 병렬접속명령 (OR, OR NOT) 에대하여설명할수있다. 4.PLC의접점명령을가지고간단한프로그램을작성할수있다. 학습내용 1. 연산개시명령 1) 연산개시명령 (LOAD,

More information

untitled

untitled PMIS 발전전략 수립사례 A Case Study on the Development Strategy of Project Management Information System 류 원 희 * 이 현 수 ** 김 우 영 *** 유 정 호 **** Yoo, Won-Hee Lee, Hyun-Soo Kim, Wooyoung Yu, Jung-Ho 요 약 건설업무의 효율성

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

<353420B1C7B9CCB6F52DC1F5B0ADC7F6BDC7C0BB20C0CCBFEBC7D120BEC6B5BFB1B3C0B0C7C1B7CEB1D7B7A52E687770>

<353420B1C7B9CCB6F52DC1F5B0ADC7F6BDC7C0BB20C0CCBFEBC7D120BEC6B5BFB1B3C0B0C7C1B7CEB1D7B7A52E687770> Journal of the Korea Academia-Industrial cooperation Society Vol. 13, No. 2 pp. 866-871, 2012 http://dx.doi.org/10.5762/kais.2012.13.2.866 증강현실을 이용한 아동교육프로그램 모델제안 권미란 1*, 김정일 2 1 나사렛대학교 아동학과, 2 한세대학교 e-비즈니스학과

More information

45-51 ¹Ú¼ø¸¸

45-51 ¹Ú¼ø¸¸ A Study on the Automation of Classification of Volume Reconstruction for CT Images S.M. Park 1, I.S. Hong 2, D.S. Kim 1, D.Y. Kim 1 1 Dept. of Biomedical Engineering, Yonsei University, 2 Dept. of Radiology,

More information

Microsoft PowerPoint - 30.ppt [호환 모드]

Microsoft PowerPoint - 30.ppt [호환 모드] 이중포트메모리의실제적인고장을고려한 Programmable Memory BIST 2010. 06. 29. 연세대학교전기전자공학과박영규, 박재석, 한태우, 강성호 hipyk@soc.yonsei.ac.kr Contents Introduction Proposed Programmable Memory BIST(PMBIST) Algorithm Instruction PMBIST

More information

13 Who am I? R&D, Product Development Manager / Smart Worker Visualization SW SW KAIST Software Engineering Computer Engineering 3

13 Who am I? R&D, Product Development Manager / Smart Worker Visualization SW SW KAIST Software Engineering Computer Engineering 3 13 Lightweight BPM Engine SW 13 Who am I? R&D, Product Development Manager / Smart Worker Visualization SW SW KAIST Software Engineering Computer Engineering 3 BPM? 13 13 Vendor BPM?? EA??? http://en.wikipedia.org/wiki/business_process_management,

More information

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형 AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형 언어 변환 1.4. 기대 효과 4.4. 프로그램 Restructuring 4.5. 소스 모듈 관리 2. SeeMAGMA 적용 전략 2.1. SeeMAGMA

More information

성능 감성 감성요구곡선 평균사용자가만족하는수준 성능요구곡선 성능보다감성가치에대한니즈가증대 시간 - 1 -

성능 감성 감성요구곡선 평균사용자가만족하는수준 성능요구곡선 성능보다감성가치에대한니즈가증대 시간 - 1 - - 1 - 성능 감성 감성요구곡선 평균사용자가만족하는수준 성능요구곡선 성능보다감성가치에대한니즈가증대 시간 - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - 감각및자극 (Sensory & Information Stimuli) 개인 (a person) 감성 (Sensibility)

More information

e-spider_제품표준제안서_160516

e-spider_제품표준제안서_160516 The start of something new ECMA Based Scraping Engine CONTENTS 3 4 1 2 3 4 5 6 7 8 9 5 6 ECMA Based Scraping Engine 7 No.1 No.2 No.3 No.4 No.5 8 24 ( ) 9 ios Device (all architecture) Android Device (all

More information

Mango-AM335x LCD Type 커널 Module Parameter에서 변경하기

Mango-AM335x LCD Type 커널 Module Parameter에서 변경하기 Mango-AM335x LCD Type 커널 Module Parameter 에서 변경하기 http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology

More information

Journal of Educational Innovation Research 2018, Vol. 28, No. 3, pp DOI: NCS : * A Study on

Journal of Educational Innovation Research 2018, Vol. 28, No. 3, pp DOI:   NCS : * A Study on Journal of Educational Innovation Research 2018, Vol. 28, No. 3, pp.157-176 DOI: http://dx.doi.org/10.21024/pnuedi.28.3.201809.157 NCS : * A Study on the NCS Learning Module Problem Analysis and Effective

More information

DBPIA-NURIMEDIA

DBPIA-NURIMEDIA 김진주 김수연. 초등학생대상장애이해교육에활용된동화에나타난장애인관분석. 특수교육, 2013, 제12권, 제2호, 135-160... 20.,,. 4.,,.,..... 주제어 : 장애이해교육, 동화, 장애인관 1. ( 1 ) Incheon Munhak Elementary School ( )(, E-mail: sooyoun@ginue.ac.kr) Dept. of

More information

ESP1ºÎ-04

ESP1ºÎ-04 Chapter 04 4.1..,..,.,.,.,. RTOS(Real-Time Operating System)., RTOS.. VxWorks(www.windriver.com), psos(www.windriver.com), VRTX(www.mento. com), QNX(www.qnx.com), OSE(www.ose.com), Nucleus(www.atinudclus.

More information

untitled

untitled 시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

More information

KEY 디바이스 드라이버

KEY 디바이스 드라이버 KEY 디바이스드라이버 임베디드시스템소프트웨어 I (http://et.smu.ac.kr et.smu.ac.kr) 차례 GPIO 및 Control Registers KEY 하드웨어구성 KEY Driver 프로그램 key-driver.c 시험응용프로그램 key-app.c KEY 디바이스드라이버 11-2 GPIO(General-Purpose Purpose I/O)

More information