DBPIA-NURIMEDIA

Size: px
Start display at page:

Download "DBPIA-NURIMEDIA"

Transcription

1 실시간 내장 멀티태스킹 커널의 개발에 재사용 가능한 객체지향 커널 프레임워크의 설계 및 구현 73 실시간 내장 멀티태스킹 커널의 개발에 재사용 가능한 객체지향 커널 프레임워크의 설계 및 구현 (Design and Implementation of An Object-Oriented Kernel Framework Reusable for the Development of Real-Time Embedded Multitasking Kernels) 이준섭 전태웅 이승룡 (Jun Seob Lee) (Taewoong Jeon) (Sungyoung Lee) 요 약 실시간 내장 시스템은 운용 환경과 용도에 따라 멀티태스킹 커널이 지원해야 할 하드웨어 플 랫폼과 자원 관리 정책이 다양하게 달라진다. 실시간 내장 시스템에 요구되는 크기와 성능 상의 제약 조 건들을 엄격하게 만족해야 하는 멀티태스킹 커널을 새로운 시스템 서비스나 하드웨어에 맞게 개조하는 것 은 쉽지 않다. 본 논문은 마이크로 프로세서 기반의 실시간 내장 멀티태스킹 커널의 구현에 재사용 가능 한 객체지향 커널 프레임워크의 프로토타입을 객체 합성과 클래스 상속 메커니즘에 의거한 프레임워크 설 계 패턴들을 적용하여 개발한 사례를 설명한다. 본 커널 프레임워크는 필요한 커널을 프레임워크의 개조와 확장을 통하여 효율적이고 일관성있게 생성할 수 있도록 하드웨어 환경과 시스템 자원 관리 정책에 의존 적인 부분들이 프레임워크의 가변 부위(hot spot)로 분리된 추상 클래스들로 설계되어 있어서 높은 이식성 과 개조성이 요구되는 마이크로 프로세서 기반 실시간 내장형 멀티태스킹 커널의 구현에 효과적으로 사용 될 수 있다. Abstract Real-time embedded systems should accommodate many kinds of hardware platforms and resource management policies that vary depending on their operating environments and purposes. It is not an easy job to adapt a multitasking kernel to new system services and hardware platforms, as the kernel must strictly satisfy constraints on its size and performance. This paper describes the design and implementation of an object-oriented multitasking framework that can be reused for implementing microprocessor-based real-time embedded multitasking kernels. In this kernel framework, those parts that can vary depending on hardware platforms and system resource management policies are separated into the hot spots and encapsulated by abstract classes. Our framework thus can be effectively used to implement microprocessor-based real-time embedded kernels that demand high portability and adaptability.. 서 론 본 논문은 한국과학재단의 특정연구개발과제(과제번호: KOSEF )와 98핵심전문연구과제(과제번호: KOSEF )의 지원에 의해서 작성되었습니다. 비 회원 종신회원 종신회원 논문접수 심사완료 : : : : : 한국전자통신연구원 표준연구센터 연구원 jslee@pec.etri.re.kr 고려대학교 자연과학부 교수 jeon@tiger.korea.ac.kr 경희대학교 전자정보학부 교수 sylee@oslab.kyunghee.ac.kr 999년 5월 일 2000년 월 6일 실시간 내장 응용 프로그램을 효율적으로 개발하기 위해서는 응용 프로그램의 하부에서 병행 태스크들의 생성, 스케줄링, 동기화, 통신 등의 일을 처리해 주는 마 이크로 커널이 필요하다[]. 이러한 실시간 내장 시스템 에서 사용되는 커널은 크기와 성능에 엄격한 제약 조건 이 따르는 반면, 커널이 지원해야 할 하드웨어 플랫폼이 나 시스템 자원 관리 정책은 운용 환경과 용도에 따라 다양하게 달라진다.

2 74 정보과학회논문지 : 컴퓨팅의 실제 제 6 권 제 2 호(2000.4) 기존의 실시간 내장 멀티태스킹 커널들은 재구성 가 능한 요소들(configurable elements)에 대한 파라미터들 의 설정을 통하여 제한된 범위의 하드웨어 플랫폼과 서 비스 정책들만을 지원하도록 설계되어 있다. 예를 들면, RTMK[2]은 우선 순위 기반의 스케줄링만을 지원하는 멀티태스킹 커널이다. 지원되지 않는 새로운 형태의 환 경이나 서비스의 제공이 커널에 필요한 경우에는, 기존 커널의 소스코드를 이에 맞도록 직접 임의로 변경해야 하거나 적합한 커널을 신규로 구입 또는 개발하여야 한 다. 본 논문에서는 멀티태스킹을 지원하지 않는 C 또는 C++언어로 작성된 실시간 내장 응용 프로그램에게 멀 티태스킹 서비스를 제공하기 위한 마이크로 커널의 구 현에 재사용 가능한 객체지향 커널 프레임워크를 프로 토타입으로 개발한 사례를 설명한다. 본 커널 프레임워 크는 상호 협동하는 추상 클래스들과 구체 클래스들로 구성된 객체지향 프레임워크 설계 패턴[3]들로 설계되 어 있으며, 하드웨어 플랫폼이나 자원 관리 정책에 의존 적인 부분과 독립적인 부분이 각각 커널 프레임워크의 가변 부위(hot spot)와 고정 부위(frozen part)[4,5]로 구분되어 있다. 새로운 멀티태스킹 커널은 본 커널 프레임워크의 가 변부위에 해당하는 클래스들을 이들이 제공하는 인터페 이스에 맞게 객체 합성과 클래스 상속과 같은 객체지향 재사용 메커니즘[4]에 따라 개조, 확장함으로써 효율적 이고 일관성있게 생성할 수 있다. 이렇게 생성된 커널은 실행 시 특정 용도에 맞게 구체화된 커널 객체들이 상 속, 다형성 및 동적 결합 메커니즘에 의해 상호 작용함 으로써 시스템 서비스를 수행한다. 본 커널 프레임워크가 지원하는 시스템 서비스는 병 행 태스크 관리, 멀티태스킹에 필요한 CPU, 메시지 및 세마포어 자원들의 스케줄링과 관리, 그리고 타이머와 인터럽트의 처리 기능 등이다. 메모리 관리, 주변장치 드라이버, 네트워킹 등은 본 커널 프레임워크에 포함되 어 있지 않다. 그러나 필요한 경우 프레임워크에 이러한 서비스들을 추가하거나 이들을 지원하는 다른 시스템 프로그램들과 상호 운용이 가능하도록 설계되어 있다. 본 논문의 구성은 다음과 같다. 2장에서는 본 커널 프 레임워크에서 개조와 확장이 고려된 가변 부위를 기술 한다. 3장에서는 본 커널 프레임워크의 아키텍쳐가 제공 하는 공통적인 제어 흐름들을 기술한다. 4장에서는 본 커널 프레임워크의 아키텍쳐를 구성하는 핵심 클래스들 의 설계 패턴들을 기술한다. 5장과 6장에서는 본 커널 프레임워크를 개조, 확장하여 커널을 생성하는 메커니즘 과 그렇게 생성된 커널의 동작을 각각 기술한다. 7장에 서는 본 커널 프레임웍을 커널로 확장한 예를 들어 연 구 결과를 설명하고 기존의 연구들과 비교한다. 그리고 8장에서 결론을 맺는다. 2. 커널 프레임워크의 가변 부위 커널 프레임워크가 보다 넓은 범위의 실시간 내장 시 스템들을 지원하기 위해서는 구현할 멀티태스킹 커널이 서로 다른 하드웨어에 이식되더라도 하드웨어에 종속적 인 부분만을 쉽게 분리하여 수정함으로써 사용이 가능 해야 하며, 응용 프로그램의 용도에 따라 시스템 자원에 대한 서로 다른 스케줄링 정책과 이에 적합한 알고리즘 을 제공할 수 있어야 한다. 예를 들면, 메시지나 세마포 어를 기다리고 있는 태스크가 여러 개인 경우에 어떤 태스크에게 메시지나 세마포어를 전달할 것인지를 결정 하는 방법을 다양하게 지원해야 한다. 즉, 태스크에게 자원을 할당할 때 FIFO 방식이나 우선순위 방식 등 중, 커널이 사용될 응용 프로그램의 요구에 맞는 스케줄링 정책을 선택하여 구현할 수 있어야 한다. 이러한 요구 조건들을 만족하는 커널 프레임워크는 멀티태스킹 커널의 알고리즘 의존적인 부분과 하드웨어 의존적인 부분을 이들과 독립적인 부분들로부터 분리하 여 프레임워크의 가변부위에 속한 클래스들로 추상화함 으로써 설계할 수 있다. 2. 표준 멀티태스킹 커널 지금까지 멀티태스킹 커널은 일반적으로 특정 하드웨 어나 목적을 위하여 만들어져 왔다. 따라서 이러한 커널 들은 다른 하드웨어에 이식될 수 없었다. 뿐만 아니라 특정 응용 프로그램을 위하여 만들어 졌기 때문에 다른 응용 프로그램이 이 커널을 사용하기가 어려웠다. 이러 한 점을 개선하기 위하여 982년 유럽의 소프트웨어 회 사들이 실시간 커널을 위한 간단하면서도 현실적인 명 령어들을 제안하였다. 이것을 Sceptre 표준이라고 한다. 요즘에 개발되는 커널은 이 표준에서 정의하는 서비스 를 제공하도록 설계되어있다. 이것은 커널을 새로운 하 드웨어에 이식했다면, 커널의 실시간 서비스를 사용하는 다른 모든 응용 프로그램이 이식될 수 있음을 의미한다. [2] 여기서는 Sceptre 표준에서 정의하고 있는 서비스와 Sceptre 표준이 포함하고 있는 요소들에 대해 설명하고 자 한다. 2.. 표준 멀티태스킹 커널의 서비스 Sceptre 커널에서 정의된 서비스는 [표 ]과 같다. [표 ]의 커널 서비스들은 사용자의 태스크가 이용할

3 실시간 내장 멀티태스킹 커널의 개발에 재사용 가능한 객체지향 커널 프레임워크의 설계 및 구현 75 표 Sceptre 커널 서비스[2] Class Operation Parameters Action Task Handling Start Task Starts the execution of the task Stop Task Stops the execution of the task Continues Task Resumes the execution of the task Terminate Terminates the task that calls this service Change priority Task, priority Gives task the new priority State Task Returns task state Priority Task Returns the task priority Current task Return the id of current executing task Signaling Send Event, task Sends an event to a task Wait Event list Waits until one of the events has arrived Arrived Event list True if all the events have arrived Clear Event list Resets all events in list to nonarrived state Communication Put Element, queue Places the element into the queue Get Element, queue Gets the element from the queue Empty Queue True if the queue is empty Full Queue True if the queue is full Mutual-exclusion Lock Region Requests exclusive property of the Region Unlock Region Release the region Task States Nonexisting No descriptor associated to task (not created) Existing A descriptor has been defined for the task Nonexecutable Task has descriptor but can t start execution Executable Task has descriptor and can start execution Not in service Task is executable but execution has not yet been started or is finished In service Task is executable and has started execution but has not finished Waiting Task is in service and waiting for a condition to become True to continue execution Active Task is in service and not waiting for anything except a free processor to execute Ready Task is active and only waiting for processor In Progress Task is active and currently executing on a processor 수 있는 커널 서비스들을 나타내고 있다. 이것은 멀티태 스킹 커널에 대한 인터페이스를 나타내며 위에서 나타 내지 않은 스케줄링에 관련된 서비스는 커널 수준에서 실행되므로 사용자 태스크는 이를 사용할 수 없다. 즉, 사용자 태스크에서 [표 ]의 서비스를 요청했을 때 멀티 태스킹 커널이 필요에 따라 스케줄링을 수행하게 된다. Sceptre 커널은 앞에서 설명한 멀티태스킹 커널의 기 본적인 서비스들 중에서 입출력과 메모리 관리를 제외 한 서비스를 제공하고 있다. 태스크 관리는 Task handling, 동기화는 Signaling, 통신은 Communication, 상호 배타성은 Mutual-exclusion에서 처리하고 있다. Sceptre 커널의 태스크는 여러 상태를 갖는다. 태스크 가 아직 생성되지 않은 상태를 나타내는 Nonexisting, 태스크의 제어 블록이 생성된 Existing, 태스크 제어 블 록은 있으나 실행될 수 없는 상태인 Nonexecutable, 태 스크는 실행 가능하나 아직 실행되지 않은 상태인 Not in service, 태스크의 수행이 아직 끝나지 않은 In service, 태스크가 In service 상태에서 수행을 계속하 기 위해 어떤 조건이 만족되기를 기다리고 있는 상태인 Waiting, In service 상태에서 어떤 이벤트를 기다리지 도 않으며 비어있는 프로세서를 기다리는 Active, Active 상태에서 프로세서를 기다리고 있는 Ready, 그 리고 Active 상태에서 프로세서에서 수행 중인 In progress 상태가 그것이다. 이 모든 태스크 상태가 모든 멀티태스킹 커널에서 사 용되는 것은 아니다. 이러한 여러 개의 상태는 필요하게 될지도 모르는 용도를 위해 정의한 것이고 각 멀티태스 킹 커널은 필요에 따라 몇 개의 상태만을 정의하고 사 용한다. 예를 들어 RTMK[5]에서 태스크는 어떤 신호 가 도착하기를 기다리는 Waiting, 필요한 모든 신호가

4 76 정보과학회논문지 : 컴퓨팅의 실제 제 6 권 제 2 호(2000.4) 도착하고 CPU 시간을 할당 받기를 기다리는 Ready, 그리고 수행 중인 In progress를 정의하여 사용하고 있 다 표준 멀티태스킹 커널의 구성 요소 Sceptre 표준이 포함하고 있는 요소는 다음과 같다.[5] 태스크/프로세스 프로그램의 수행을 담당하는 에이전트로 이름과 속성 을 가지고 있다. 태스크의 컨텍스트는 특정 프로세서가 태스크의 명령어들을 수행하는데 필요한 최소한의 정보 를 의미한다. 인접 태스크(immediate tasks) 실시간 응용 프로그램과 환경 사이의 인터페이스를 제공하는 태스크로서 주로 인터럽트 메커니즘을 사용하 여 조작된다. 스케줄러 프로세서의 CPU 파워를 조작하고 이들을 태스크에 할당하는 소프트웨어 또는 하드웨어 모듈로 인접 태스 크의 스케줄러는 프로세서의 인터럽트 메커니즘을 사용 하고 일반 태스크의 스케줄러는 커널의 일부분으로 되 어있다. 이벤트 이벤트 객체는 어떤 조건이 만족되어졌다는 신호를 포함하고 있다. Sceptre 표준에서 이벤트는 특정 태스크 와 관련이 있으며 이는 효과적인 신호 처리를 가능하게 한다. 지역(region) 지역 객체는 CPU의 소유권의 표시이다. 어떤 지역이 아직 수행 중 일 때에는 컨텍스트 스위칭이 발생하지 않는다. 이것은 흔히 임계 영역(critical section)이라고 불리는 것으로 프로그램의 공유 자원에 접근하는 코드 를 가진 부분을 말한다. 큐(queue) FIFO 메모리처럼 작동하는 태스크간의 통신 객체이 다. 2.2 알고리즘 의존적인 커널의 구성 요소 시스템 자원에 대한 스케줄링 정책이나 스케줄링 알 고리즘이 달라지면 이에 따라 태스크 제어 블록이나 준 비 큐(ready queue)와 같이 커널의 자원을 관리하거나 이에 영향을 받는 커널의 구성 요소들의 구조가 바뀌어 야 한다. 예를 들면 우선순위 기반의 CPU 스케줄링을 사용하는 커널의 태스크는 그 속성으로 우선 순위를 가 져야 하며 마감시간 기반의 스케줄링을 사용하는 경우 에는 태스크들의 시간제약에 관련된 정보를 속성으로 가져야 한다. CPU 할당을 대기 중인 태스크들을 관리하는 준비 큐 는 일반적으로 태스크 제어 블록들에 대한 더블 링크 리스트(double linked list)의 구조로 구현되지만 성능 향상을 위해 적용하는 스케줄링 알고리즘에 따라 서로 다른 구조를 가질 수 있다. 예를 들어 C/OS[6]는 준비 큐가 비트맵(bitmap) 형태로 되어 있다. 이러한 준비 큐 의 구조는 빠른 연산 알고리즘을 통하여 최우선 순위의 태스크를 상수 시간 안에 찾아 낼 수 있도록 하고 있다. 메시지 전달 방식에 따라서도 메시지를 기다리는 태 스크들 중에서 메시지를 전달할 태스크를 찾는 서로 다 른 알고리즘이 필요하게 되며 이에 따라 이벤트 제어 블록의 구조도 함께 바뀌어야 한다. 세마포어에 대한 스 케줄링에서도 메시지의 경우와 유사하게 관련 구성 요 소들이 바뀌어야 한다. 본 커널 프레임워크에서는 스케줄링 정책과 알고리즘 에 의존적인 부분들이 Strategy 설계 패턴[7]에 따라 개조, 확장이 가능하도록 프레임워크의 가변 부위에 추 상화되어 설계되어 있다. 2.3 하드웨어 의존적인 커널의 구성 요소 멀티태스킹 커널이 탑재될 하드웨어에 따라 변경되어 야 하는 커널의 구성 요소는 태스크 제어 블록, 컨텍스 트 스위칭, 인터럽트 처리 및 시스템 초기화들이 있다. 태스크 제어 블록은 흔히 이미지라고 불리는 레지스 터들의 집합과 스택 포인터, 명령 문 포인터(instruction pointer) 등을 가지고 있다. 하드웨어마다 레지스터의 종류와 크기가 다르므로 이러한 이미지는 커널이 사용 되는 기반 하드웨어에 따라 서로 다른 구조를 가져야 한다. 어셈블리 언어로 작성되어야 하는 인터럽트 서비스 루틴이나 컨텍스트 스위칭 루틴들은 하드웨어에 따라 각기 다르게 구현되어야 한다. 또한, 하드웨어에 따라 서로 다른 구조를 초기화하거나 이용하는 함수들도 사 용되는 하드웨어에 맞게 변경 되어야 한다. 예를 들면, 하나의 태스크를 새로 생성할 때 초기화해야 하는 태스 크 제어 블록의 구조가 다르게 설계되어야 하며, 이를 초기화하는 함수의 코드도 다르게 작성 되어야 한다. 본 커널 프레임워크에서는 이러한 하드웨어 의존적인 부분들이 프레임워크의 가변 부위에 속한 클래스들로 추상화되어, 이들을 Bridge 설계 패턴[7]에 따라 개조, 확장함으로써 이들의 수정이 커널 프레임워크의 다른 부분에 영향을 미치지 않으면서 특정 하드웨어에서 작 동할 수 있는 커널을 쉽게 생성할 수 있도록 설계되어 있다.

5 실시간 내장 멀티태스킹 커널의 개발에 재사용 가능한 객체지향 커널 프레임워크의 설계 및 구현 커널 프레임워크의 제어 흐름 본 논문의 멀티태스킹 커널 프레임워크는 커널이 지 원해야 할 하드웨어 플랫폼이나 자원관리 정책에 관계 없이 모든 커널의 동작에 공통적인 제어 흐름을 프레임 워크가 제공하는 아키텍쳐로 설계되어 있다. 본 장에서 는 그러한 커널 프레임워크의 제어 흐름들 중, 태스크의 생성, 태스크의 지연, 메시지 송신, 그리고 메시지 수신 의 4가지 경우를 예로 들어 설명한다. 태스크의 생성 요청에 대한 제어의 흐름을 살펴 보면 [그림 ]과 같다. 태스크 생성 요청에 대한 서비스는 TaskManager 클래스가 처리한다. TaskManager는 TCB(태스크 제어 블록) 클래스 객체를 생성하고 이를 준비 상태로 초기화한다. 그런 후, TCB 인스턴스로 생 성된 태스크를 ReadyQueue 클래스 인터페이스를 통하 여 준비 큐에 추가하여 실행 대기시킨다. 마지막으로, TaskManager는 준비 큐에서 실행 대기 중인 태스크들 에 대한 CPU 스케줄링을 Scheduler 클래스 인터페이스 를 통하여 스케쥴러 객체에게 요청함으로써 태스크 생 성 서비스를 마친다. 생성된 TCB 객체들은 TaskManager가 보관, 관리한 다. ReadyQueue 클래스는 Scheduler가 CPU를 태스크 에게 할당하는데 필요한, 준비 상태의 태스크 정보를 저 장, 관리한다. 예를 들면, 우선 순위 기반의 선점형 스케 줄링의 경우에는 ReadyQueue에 태스크 ID와 우선 순 위가 저장되게 된다. 설정하게 된다. 그런 후 TaskManager는 ReadyQueue 클래스 인터페이스를 통하여 준비 큐에게 지연시킬 태 스크의 삭제를 요청한다. 마지막으로, 스케줄러에게 CPU스케줄링을 요청하게 된다. : atask : TaskManager : ReadyQueue : Scheduler : delay task 2: remove task 3: schedule 그림 2 태스크 지연 태스크가 메시지 큐에 어떤 메시지를 비동기적으로 전송했을 때의 제어의 흐름은 [그림 3]과 같다. [그림 3] 에 나타난 객체들 중, MessageQueue는 태스크에게 전 송할 메시지들을 관리하는 큐이고 EventQueue는 해당 MessageQueue 객체로부터 메시지 수신을 기다리고 있 는 태스크들의 큐이다. ReadyQueue는 CPU 할당을 기 다리는 준비 상태의 태스크들을 관리하는 큐이다. : atask : Message Queue : EventQueue : TaskManager : ReadyQueue : Scheduler : send a message : atask : TaskManager : TCB : ReadyQueue : Scheduler 2: is empty : create task 2: init TCB if there is any task waiting that message 3: find next task 4: find next task if find a task, delete that task from EventQueue and return it 3: add task 5: make ready 6: add task 4: schedule 7: schedule 그림 태스크 생성 태스크를 일정 시간 동안 중지시키는 제어의 흐름은 [그림 2]와 같다. TaskManager는 우선 해당 태스크의 속성 중 지연 시간을 나타내는 속성을 일정 시간으로 그림 3 메시지 송신 [그림 3]과 같이 태스크가 MessageQueue객체에게 메시지를 전송하면, 메시지 큐는 먼저 메시지 큐가 비어 있는지 검사한다. 메시지 큐가 비어 있지 않으면 아직

6 78 정보과학회논문지 : 컴퓨팅의 실제 제 6 권 제 2 호(2000.4) 이 메시지를 기다리는 태스크가 없다는 것이므로 전송 받은 메시지를 메시지 큐에 추가함으로써 모든 과정이 끝나게 되고 메시지 송신을 요청한 태스크가 계속 진행 한다. 반대로 메시지 큐가 비어 있으면 이는 해당 메시 지 큐에서 메시지를 기다리고 있는 다른 태스크가 존재 할 수 있음을 의미한다. 이 경우, 메시지 큐는 자신의 EventQueue에서 이 메시지를 기다리는 태스크를 찾는 다. EventQueue는 미리 정해진 메시지 전달 방식에 따라 메시지를 전달할 태스크를 결정한다. 메시지를 수신할 태스크가 메시지 큐에게 리턴된 경우, 메시지 큐는 Task Manager에게 메시지를 수신할 태스크에 대해 준 비 상태로의 변경을 요청한다. TaskManager는 어떤 태스크가 대기 상태에서 준비 상태로 변경되었으므로 이를 ReadyQueue에 추가하고 스케줄러에게 CPU 스케 줄링을 요청하게 된다. 4. 커널 프레임워크의 아키텍쳐 본 장에서는 구현된 커널 프레임워크의 아키텍쳐를 기술한다. 본 논문의 커널 프레임워크는 멀티태스킹 커 널의 기본적인 서비스들을 크게 태스크 관리, CPU 관 리, 메시지 관리, 세마포어 관리로 분담하여 수행하도록 설계되어 있다. 이러한 서비스들을 담당하는 주요한 클 래스들은 [그림 5]와 같다. [그림 5]에서 MessageQueue와 Semaphore는 각각, 메시지 자원과 세마포어 자원에 대한 서비스를 담당하 는 클래스들이며, 요청한 자원의 할당을 기다리는 대기 상태의 태스크들을 관리하는 EventQueue 클래스를 구 성 요소로 갖는다. Scheduler 클래스는 CPU 자원을 관 리하는 클래스로서, ReadyQueue에서 CPU 할당을 기다 리는 준비 상태의 태스크들에 대한 CPU 스케줄링을 담 당한다. MessageQueue : Message : EventQueue : TaskManager : ReadyQueue : Scheduler : atask Queue EventQueue : receive message 0..* 2: is empty Task TCB Semaphore *..* if event queue 3: add task is empty 4: make wait ReadyQueue TaskManager 5: remove task..* 6: schedule 그림 4 메시지 수신 태스크가 메시지를 전달 받고자 할 때의 제어의 흐름 은 [그림 4]와 같다. 태스크로부터 메시지 수신을 요청 받은 메시지 큐가 비어 있지 않으면 어떤 메시지가 이 미 도착해 있는 것이므로 태스크는 메시지 큐로부터 메 시지를 전달 받고 수행을 계속하게 된다. 그러나 메시지 큐가 비어 있으면 메시지 큐는 메시지 수신을 요청한 태스크를 자신의 EventQueue에 추가하고 Task Manager에게 해당 태스크에 대해 대기 상태로의 변경 을 요청한다. Task Manager는 ReadyQueue에서 해당 태스크를 삭제하고 스케줄러에게 CPU 스케줄링을 요청 한다. 위와 같은 메시지 송수신 제어 흐름은 세마포어 자원의 송수신 제어흐름에서도 유사하게 이루어진다. Scheduler Timer 그림 5 커널 프레임워크의 구성 요소들 Task는 독립된 단일 스레드 상에서 실행 중인 프로 그램 단위를 나타낸다. 생성된 태스크의 속성과 컨텍스 트는 TCB 클래스에서 해당 태스크가 소멸될 때까지 유 지, 관리된다. 태스크는 모든 작업이 끝난 후 스스로를 삭제하거나 무한 루프를 수행하는 형태이어야 한다. Timer 클래스는 타이머의 설정과 설정된 타이머의 시간 경과를 관리하고 타임아웃 시, 이를 처리해야 할 구성 요소들에게 알려주는 역할을 담당한다. 타이머는 커널이 관리하는 CPU, 메시지, 세마포어 자원들을 기다 리거나 할당받은 태스크들의 대기 시간이나 점유 시간

7 실시간 내장 멀티태스킹 커널의 개발에 재사용 가능한 객체지향 커널 프레임워크의 설계 및 구현 79 을 감시 제어하는데 사용된다. 타이머는 또한 태스크들 이 요청한 특정 시각, 지연 시간, 또는 반복 주기를 설 정하여 추적하고, 도달 시점에서 이를 알려주는 타이밍 서비스를 제공하는데도 사용된다. 4. 태스크 관리 설계 패턴 본 커널 프레임워크에서 태스크의 생성에서 소멸에 이르기까지 태스크들에 대한 라이프사이클의 관리는 TaskManager 클래스를 중심으로 이루어진다. Task- Manager 클래스는 생성된 태스크들에 대한 정보를 TCB 클래스를 사용하여 저장하고 있으며 태스크의 생 성, 소멸 시 이에 대응하는 TCB 객체를 추가 또는 제 거한다. 또한 TCB, Scheduler 및 ReadyQueue 클래스 객체들을 제어하여 태스크들의 실행 상태와 속성 값들 을 변경, 유지, 관리한다. TCB 클래스는 커널이 CPU 스케줄링과 컨텍스트 스 위칭을 수행할 때 필요한 태스크 제어 정보를 저장하는 객체의 타입을 정의한 클래스이다. 생성된 하나의 태스 크마다 이에 대응하는 하나의 TCB 인스턴스가 생성된 다. TCB가 저장해야 할 태스크 제어 정보의 구성 요소 들은 커널에 사용될 CPU의 종류와 스케줄링 알고리즘 에 따라 달라진다. 따라서 TCB 클래스는 특정 하드웨 어나 스케줄링 정책에 관계없이 커널에 공통적으로 필 요한 인터페이스와 태스크 제어 정보만을 제공하며 커 널의 구현 시 사용될 하드웨어와 스케줄링 정책에 따라 이에 적합한 구체적인 서브클래스로 개조, 확장된다. 이와 같이 태스크 관리에는 스케줄링 정책에 따라 가 변적인 부분들이 존재한다. 예를 들면, 우선 순위 기반 의 스케줄링을 사용하는 경우에는 태스크의 우선 순위 를, 시분할 스케줄링을 사용하는 경우에는 CPU 할당 시간을 설정 또는 변경하는 서비스를 지원하는 것이 필 요하다. 이를 위해서 TaskManager 클래스는 모든 스 케줄링 정책에 공통적인 인터페이스만을 제공하고, 사용 되는 스케줄링 알고리즘에 따라 달라지는 서비스 요청 들에 대해서는 서브클래스에서 추가적인 인터페이스를 제공하도록 설계되어 있다. [그림 6]은 태스크 관리에 관여한 클래스들을 나타낸 것이다. [그림 6]에서 TaskManager클래스는 자신의 인터페이스인,, setstate() 등 을 통하여 ReadyQueue와 Scheduler 클래스들이 지원 하는 서비스들을 외부에 제공하고 이들의 개별적인 인 터페이스들은 커널의 다른 구성 요소들로부터 은닉한 Facade 패턴[7] 구조로 설계되어 있다. TaskManager 클래스는 또한 ReadyQueue와 Scheduler 사이에 필요 한 상호작용을 중재하고 제어하는 Mediator 행위 패턴 [7]을 갖는다. TaskManager와 Scheduler 클래스는 각 각 특정 커널에 한개의 인스턴스만이 존재하는 singleton[7] 클래스이다. PriorityTaskManager changepriority() TaskManager TCBTbl[] setstate() TimeSlicedTas kmanager setquantum()..* 그림 6 태스크 관리 설계 패턴 ReadyQueue Scheduler Schedule() ContextSwitch() TaskManager, Scheduler, ReadyQueue, 그리고 TCB 클래스는 모두 적용할 스케줄링 정책과 알고리즘 에 따라 이에 적합한 서브클래스들로 확장되어 사용된 다. 예를 들면, [그림 6]에서와 같이 TaskManager 클 래스가 우선순위 기반과 시분할 기반 스케줄링 정책을 각각 지원하는 서브클래스들로 확장될 수 있다. 4.2 CPU 스케줄링 설계 패턴 시스템 자원에 대한 서비스 요청이나 타이머 등으로 부터 인터럽트가 발생하면 커널 수준에서 이를 처리하 는 과정에서 자원의 (재)할당에 필요한 스케줄링이 일어 나게 된다. 특히, CPU 자원이 새로운 태스크에게 할당 되어야 할 경우 CPU 스케줄링과 이에 따른 컨텍스트 스위칭이 일어나게 된다. 본 커널 프레임워크는 이러한 CPU 스케줄링을 Scheduler 클래스가 ReadyQueue 클 래스를 사용하여 수행하도록 설계되어 있다. [그림 7]은 CPU 스케줄링에 관여한 클래스들의 설계 패턴을 보여 준다. Scheduler 클래스는 TaskManager로부터의 CPU 스 케줄링 요청에 응하여 CPU를 할당 받을 다음 태스크를 결정하고 그 결과, 실행할 다음 태스크가 현재 실행 상 태인 태스크와 다르면 이에 따른 CPU 컨텍스트 스위칭 을 수행하는 역할을 한다. Scheduler 클래스는 Schedule() 멤버 함수를 인터페이스로 제공하며, 알고리 즘에 의존적인 CPU 스케줄링과 하드웨어에 의존적인 컨텍스트 스위칭을 각각 Strategy 설계 패턴[7]과

8 80 정보과학회논문지 : 컴퓨팅의 실제 제 6 권 제 2 호(2000.4) Bridge 설계 패턴[7]에 따라 ReadyQueue클래스와 자 신의 서브클래스에 위임한 클래스이다. ReadyQueue->; ContextSwitch(); Scheduler Schedule() ContextSwitch() ConcreteScheduler Schedule() ContextSwitch() ReadyQueue Conc retereadyqueue Different ContextSwitching routine for different hardware 그림 7 CPU 스케줄링 설계 패턴 Scheduler 클래스의 인터페이스인 Schedule() 멤버함 수는 ReadyQueue 클래스의 멤버함수인 와 자신의 멤버함수인 ContextSwitch()를 후크 메소드[4,7 ]들로 사용하여 구현된 템플릿 메소드[4,7]이다. Schedule()은 CPU를 할당 받아 다음에 수행되어야 할 태스크를 ReadyQueue클래스의 멤버함수를 호출하여 찾는다. 컨텍스트 스위칭은 Scheduler클래스의 서브클래스에서 정의되는 가상 멤버 함수인 Context- Switch()를 호출함으로써 이루어진다. ReadyQueue 클래스는 CPU 할당을 기다리는 준비 상태 태스크들의 추가, 삭제 및 스케줄링에 필요한 인터 페이스를 Scheduler 클래스에게 후크 메소드들로 제공 하는 추상 클래스이다. ReadyQueue클래스의 인터페이 스는 이를 상속받은 서브클래스에서, 사용될 CPU스케 줄링 정책을 효율적으로 지원하는 자료 구조와 알고리 즘으로 구현된다. 예를 들어, 우선 순위 방식의 선점형 스케줄링을 사용한다면 ReadyQueue 클래스의 서브클래 스에서 ReadyQueue의 자료구조는 히프(heap) 구조를 갖는 우선순위큐로 구현하고, 멤버 함수는 우선순위큐에서 가장 높은 우선순위를 갖는 태스크를 상수 시간으로 빠르게 찾아내어 반환하도록 구현한다. Scheduler 클래스의 ContextSwitch() 멤버 함수는 커널이 동작하는 하드웨어의 구조에 따라 달라지는 CPU 컨텍스트의 구성 요소와 스위칭 메커니즘을 자신 의 서브클래스에 위임한 가상함수로서, 자신이 속한 클 래스의 Schedule() 멤버함수에서 후크 메소드로 사용된 다. [그림 7]에서 Scheduler의 서브클래스들인 ConcreteScheduler와 ConcreteReadyQueue가 각각 특정한 컨텍스트 스위칭과 스케줄링 정책을 구현한 구체 클래 스들이라고 가정하였을 때 커널 프레임워크의 스케줄링 수행 메커니즘은 다음과 같다. Scheduler클래스의 클라 이언트인 TaskManager 객체가 Scheduler클래스의 인 터페이스인 Schedule()을 호출하여 CPU스케줄링을 요 청하면 동적 결합에 의해 ConcreteScheduler 클래스의 Schedule() 멤버함수가 호출된다. 호출된 Schedule() 멤 버함수는 다시 동적결합에 의해 후크 메소드들인 ConcreteReadyQueue 클래스의 멤버함수와 ConcreteScheduler 클래스의 ContextSwitch() 멤버함 수를 호출하여 CPU 스케줄링과 이에 따른 컨텍스트 스 위칭을 수행한다. 4.3 메시지 관리 설계 패턴 태스크들 사이의 통신을 지원하기 위한 메시지 전송 서비스는 MessageQueue 클래스가 관리한다. MessageQueue 클래스는 sendmessage()와 receive- Message()를 인터페이스로 제공하며, 전송할 메시지들 을 보관하는 MessageContainer 클래스와 메시지를 기 다리는 태스크들을 보관하는 EventQueue클래스를 사용 하여 메시지 전송 서비스를 수행한다. [그림 8]은 메시 지 전송에 관여한 클래스들의 설계 패턴을 보여준다. MessageContainer putmessage() getmessage() ConcreteMessageContainer putmessage() getmessage() MessageQueue sendmessage() receivemessage() 그림 8 메시지 전송 설계 패턴 EventQueue ConcreteEventQueue MessageQueue 클래스는 태스크로부터 메시지의 송 신이나 수신 요청 시 이에 응하여 메시지들을 태스크에 게 전달하고 전송될 때까지 대기 중인 메시지들과 수신 할 메시지를 대기 중인 태스크들을 관리, 스케줄링한다. MessageQueue 클래스는 태스크에게 전달할 메시지들 과 메시지를 전달받을 태스크들에 대한 스케줄링을 각 각 MessageContainer 클래스와 EventQueue 클래스에

9 실시간 내장 멀티태스킹 커널의 개발에 재사용 가능한 객체지향 커널 프레임워크의 설계 및 구현 8 게 위임한 Strategy 패턴[7]으로 설계되어 있다. MessageContainer 클래스는 전송을 요청받은 메시지 의 추가, 삭제 및 스케줄링에 필요한 인터페이스를 MessageQueue 클래스에게 후크 메소드들로 제공하는 추상 클래스이다. MessageContainer 클래스의 인터페 이스는 이를 상속받은 서브클래스에서, 사용될 메시지 전달 방식에 적합한 자료구조와 스케줄링 알고리즘으로 구현된다. 예를 들면 FIFO 기반의 스케줄링에서는 가장 오랫동안 보관된 메시지가, 우선순위 기반의 스케줄링에 서는 가장 우선 순위가 높은 메시지가 먼저 수신할 태 스크에게 효율적으로 전달되도록 메시지 큐의 자료구조 와 멤버함수들을 서브클래스에서 정의한다. EventQueue 클래스는 메시지를 기다리고 있는 태스 크들의 추가, 삭제 및 스케줄링에 필요한 인터페이스를 MessageQueue 클래스에게 후크 메소드들로 제공하는 추상 클래스이다. EventQueue 클래스의 인터페이스는 이를 상속받은 서브클래스에서, 사용될 메시지 전달 방 식에 적합한 자료 구조와 스케줄링 알고리즘으로 구현 된다. 예를 들면 FIFO 기반의 스케줄링 정책에서는 메 시지를 가장 오래 기다린 태스크에게, 우선순위 기반의 스케줄링에서는 가장 우선순위가 높은 태스크에게 메시 지를 효율적으로 전달할 수 있도록 서브클래스에서 태 스크 큐의 자료구조와 멤버함수들을 정의한다. MessageQueue 클래스는 태스크에게 전달할 다음 메 시지를 선택하는 스케줄링 정책과 메시지를 수신할 다 음 태스크를 선택하는 스케줄링 정책이 각각 Message- Container 클래스와 EventQueue 클래스를 통하여 서로 독립적으로 구현될 수 있도록 설계되어 있다. 예를 들면 전달할 다음 메시지의 선택은 FIFO에 의해, 메시지를 수신할 다음 태스크의 선택은 우선순위 기반에 의해 이 루어지도록 커널을 구현할 수 있다. [표 2]는 MessageQueue 클래스의 인터페이스인 sendmessage()와 receivemessage() 멤버함수의 구현 코드를 요약하여 보여준다. [표 2]에서와 같이, MessageQueue 클래스의 인터페이스는 Message- Container 클래스와 EventQueue 클래스가 인터페이스 로 제공하는 후크 메소드들과 TaskManager 클래스가 제공하는 후크 메소드들을 사용하여 구현된 템플릿 메 소드들이다. [그림 8]에서 ConcreteMessageContainer와 ConcreteEventQueue가 각각 특정한 메시지 스케줄링 정책 을 구현한 구체적인 서브클래스들이라고 가정하였을 때 커널 프레임워크의 메시지 전송 메커니즘은 다음과 같 다. 어떤 태스크가 특정 메시지 큐 객체의sendMessage() 멤버 함수를 호출하면, 호출된 MessageQueue 클래스 객체는 EventQueue 클래스의 인터페이스를 통하여 함수를 호출한다. 그러면 동적 결합에 의해 ConcreteEventQueue 클래스의 함수가 호출 되어 현재 메시지를 기다리고 있는 태스크가 있는지를 확인하게 된다. 메시지를 기다리 태스크가 있으면 EventQueue 클래스의 인터페이스를 통하여 ConcreteEventQueue 객체에게 함수를 호출하 여 사용되는 메시지 전달 방식에 따라 메시지를 전달할 다음 태스크를 찾는다. 그런 후 TaskManager를 통하 여 찾은 태스크의 상태를 준비 상태로 바꾸면 모든 작 업이 끝나게 된다. 메시지를 기다리고 있는 태스크가 없 는 경우에는 MessageContainer 클래스의 인터페이스를 통하여 ConcreteMessageContainer 객체에게 put- Message() 함수를 호출하여 메시지를 저장하고 작업을 끝내게 된다. 태스크가 특정 메시지 큐 객체의receiveMessage() 멤 버 함수를 호출하면 호출된 MessageQueue 클래스 객 체는 MessageContainer 클래스의 인터페이스를 통하여 함수를 호출하여 도착한 메시지가 있는지 확 인한다. 메시지가 있으면 MessageContainer 클래스의 표 2 sendmessage()와 receivemessage() sendmessage(m) if (eventqueue-> ) messagecontainer->putmessage(m); else { taskid = eventqueue->; taskmanager->setstate(taskid, Ready); } receivemessage() if ( messagecontainer-> ) return messagecontainer->getmessage(); else eventqueue->;

10 82 정보과학회논문지 : 컴퓨팅의 실제 제 6 권 제 2 호(2000.4) 인터페이스를 통하여 ConcreteMessageContainer 객체 에게 getmessage() 함수를 호출하여 메시지를 태스크 에게 전달하고 모든 작업을 끝낸다. 도착한 메시지가 없 을 경우에는 EventQueue 클래스의 인터페이스를 통하 여 ConcreteEventQueue 객체에게 멤버 함 수를 호출하여 메시지 수신을 요청한 태스크를 큐에 대 기시키고 TaskManager를 통하여 태스크의 상태를 대 기 상태로 바꿈으로써 작업을 끝내게 된다. 메시지 송수 신 서비스의 결과로서 태스크의 상태 변화가 발생하면 컨텍스트 스위칭에 의해 다음에 수행할 태스크가 바뀔 수 있다. 4.4 세마포어 관리 설계 패턴 태스크들 사이의 동기화 서비스는 Semaphore 클래스 를 통하여 이루어진다. 세마포어 관리는 메시지 관리와 유사한 설계 패턴을 갖는다. 다만, 메시지 관리에서는 메시지 자원을 보관하는 MessageContainer 클래스가 사용된 반면, 세마포어 클래스에서는 이에 대응하는 세 마포어의 가용한 동기화 자원의 수를 나타내는 count가 세마포어 클래스의 속성으로 사용된다. 세마포어 관리에 관여한 클래스들의 설계 패턴은 [그림 9]와 같다. Semaphore count post() pend() EventQueue fi ndnext () isem pty () rem ovetask() ConcreteEventQueue 그림 9 세마포어 설계 패턴 각각 메시지 관리 클래스의 EventQueue와 세마포어 관 리 클래스의 EventQueue의 독립적인 확장을 통하여 서 로 다른 스케줄링 정책을 지원하도록 구현할 수 있다. Semaphore count : int post() : void pend() : void EventQueue : int : int addtask(taskid : int) : int removetask(taskid : int) : int MessageQueue sendmessage(msg : void*) : int receivemessage() : void* TCB 0..* stkptr : Regs* * state : int ReadyQueue : int..* addtask(taskid : int) : int removetask(taskid : int) : int MessageContainer putmessage(msg : void*) : int getmessage() : void* : int..* TCBTbl[] : TCB* Schedule() : void TaskManager addtask(newtask : TCB*) : int : void setstate(taskid : int, state : int) : int Scheduler ContextSwitch(oldTask : Regs*, newtask : Regs*) : void 그림 0 커널 프레임워크의 설계 패턴 5. 커널 프레임워크의 확장을 통한 멀티태스 킹 커널의 생성 4장에서 다룬 본 논문의 커널 프레임워크 설계 패턴 들을 종합하여 이에 관여한 핵심 클래스들의 인터페이 스와 이들의 상호관계로 요약하면 [그림 0]과 같다. [ 그림 0]의 클래스들은 커널이 관리하는 시스템 자원에 대한 스케줄링 정책과 커널이 작동될 하드웨어 환경에 따라 가변적인 부분들이 객체 합성과 클래스 상속을 통 하여 개조와 확장이 용이하도록 설계되어 있다. [그림 9]에서 EventQueue는 세마포어에서 동기화 자 원의 할당을 기다리는 태스크들의 정보를 관리하는 클 래스로서, Semaphore 클래스에게 스케줄링에 필요한 인터페이스를 후크 메소드들로 제공한다. 즉, Semaphore 클래스의 동기화 스케줄링 알고리즘은 Event- Queue의 서브클래스에서 구체적으로 정의된다. 또한, 메시지 큐에서 메시지를 전달 받을 태스크의 선정과 세 마포어에서 동기화 자원을 전달 받을 태스크의 선정은 [그림 0]의 커널 프레임워크 클래스들 중, Semaphore와 MessageQueue를 제외한 나머지 클래스들 은 프레임워크의 고정 부위와 확장 부위 사이의 인터페 이스를 제공하는 가변 부위에 해당한다. 예를 들면, ReadyQueue, MessageContainer, TaskManager, 그리 고 EventQueue 클래스는 특정 커널에서 사용하고자 하 는 스케줄링 정책을 구현한 서브 클래스들로 확장된다. 또한, TCB와 Scheduler 클래스는 커널이 사용되어질 하드웨어에 따라 변경되어야 하는 부분을 포함하고 있 다. 이들은 사용할 하드웨어에 맞는 레지스터 구조나 컨 텍스트 스위칭 코드로 재정의한 서브 클래스들로 확장 된다. 본 커널 프레임워크에 고정되어 설계된 부분과 본 커 널 프레임워크를 사용하여 용도에 맞는 멀티태스킹 커 널을 생성하기 위해서 확장, 추가되는 부분들은 [그림 ]과 같다. [그림 ]에서 확장 부위에 속한 클래스들의 상위 클 래스들이 프레임워크의 가변 부위를 형성한다. 프레임워

11 실시간 내장 멀티태스킹 커널의 개발에 재사용 가능한 객체지향 커널 프레임워크의 설계 및 구현 83 크로부터 확장되는 부분은 Strategy 패턴[7]과 Bridge 패턴[7]의 설계 구조로 이루어져 있다. 프레임워크가 이 와 같이 확장되어 생성된 커널에서 제어의 흐름은 프레 임워크의 템플릿 메소드들이 가변 부위의 클래스 인터 페이스가 제공하는 후크 메소드들을 사용하여 확장된 서브 클래스의 멤버 함수들을 동적 결합에 의해 호출함 으로써 이루어진다. Semaphore count : int post() pend() EventQueue MessageContainer MessageQueue putmessage() sendmessage() getmessage() receivemessage() Framework TaskManager TCB TCBTbl[] : TCB* 0..* stkptr : Regs* * state : int setstate()..*..* ReadyQueue Scheduler Schedule() ContextSwitch() ConcreteEventQueue fi ndnext() PriorityTCB TimeSlicedTCB ConcreteReadyQueue priority quantum ConcreteMessageContainer putmessage() getmessage() TimeSlicedTaskManager setquantum() PriorityTaskManager changepriority() ConcreteScheduler Schedule() ContextSwitch() Extension 그림 커널 프레임워크의 고정, 가변 및 확장 부위 6. 확장된 멀티태스킹 커널의 동작 본 장에서는 본 논문의 커널 프레임워크가 확장된 커 널에서의 제어흐름을 우선 순위 기반의 스케줄링 정책 을 지원하는 멀티태스킹 커널로 확장된 경우의 객체들 의 상호작용들을 예로 들어 설명한다. 먼저 태스크 생성 에 관한 제어의 흐름은 [그림 2]와 같다. [그림 2]에서 atask객체가 TaskManager 클래스 인터페이스를 통하여 멤버함수를 호출하여 태스크의 생성을 요청하면 동적 결합에 의해 PriorityTaskManager 클래스 객체의 가 호 출된다. 호출된 PriorityTaskManager 객체는 TCB, ReadyQueue, Scheduler 클래스 인터페이스를 통하여 동적 결합된 PriorityTCB, ConcreteReadyQueue, CondreteScheduler 클래스 객체들을 [그림 2]에서와 같이 순차적으로 호출한다. 예를 들면, PriorityTaskManager 객체가 ReadyQueue 클래스 인터페이스를 통하여 addtask(int)를 호출하면 동적 결합에 의하여 ConcreteReadyQueue 클래스의 addtask(int) 멤버 함수가 호출된다. ConcreteReadyQueue 클래스는 확장된 커널 프레임워크에서 사용하고자 하는 스케줄링 알고리즘에 필요한 준비 리스트의 구조를 갖도록 정의되어야 한다. 즉, TaskManager, ReadyQueue 그리고 Scheduler 클 래스들은 Strategy 패턴에 따라 특정한 스케줄링 알고 리즘을 구현한 서브 클래스들로 확장, 합성된다. ConcreteReadyQueue 클래스의 addtask(int)는 ConcreteReadyQueue 클래스의 구조에 맞게 준비 리스 트에 태스크 정보를 삽입하는 역할을 한다. : atask : addtask(tcb*) : Priority TCB 2: init TCB : PriorityTask Manager : Concrete ReadyQueue 3: addtask(int) 4: Schedule( ) : Concrete Scheduler 그림 2 확장된 멀티태스킹 커널에서의 태스크 생성 [그림 3]은 메시지를 기다리는 태스크가 존재하는 메시지 큐에 메시지를 전송할 경우의 제어 흐름의 일부 을 나타낸 것이다. 여기서도 [그림 2]의 경우와 마찬가지로 Strategy 패턴이 적용되었다. 태스크들 사이의 메시지 전달을 담 당하는 메시지 큐의 인터페이스의 sendmessage(void *) 호출을 통하여 ConcreteMessageQueue 클래스 객체 가 메시지송신 요청을 받으면 ConcreteMessage- Container 클래스 객체에 현재 저장되어 있는 메시지가 있는지 확인하게 된다. MessageContainer 클래스의 서 브 클래스인 ConcreteMessageContainer 클래스는 사 용자가 필요로 하는 메시지 전달 방식을 지원할 수 있 도록 메시지 큐의 구조를 정의하고 있다. 의 결과, 메시지 큐가 비어 있으면 이는 현재 메시지를 기 다리고 있는 태스크가 존재할 수 있으므로 ConcreteEventQueue 객체에 등록되어 있는 태스크들 중에 서 메시지를 전달 할 태스크를 찾게 된다. 이는 find- Next() 메시지에 의해 이루어 지며 이는 동적 결합에 의하여 ConcreteEventQueue 클래스의 멤버 함수를 호출한다. ConcreteEventQueue 클래스는 메시 지 전달 방식에 맞도록 설계되어 있는 EventQueue의 서브 클래스이다. 이처럼 멀티태스킹 커널의 기본적인 제어의 흐름은 커널 프레임워크에 모두 고정되어 있고 변화가 필요한 부분에 있어서는 객체 합성과 클래스 상속에 의해 필요

12 84 정보과학회논문지 : 컴퓨팅의 실제 제 6 권 제 2 호(2000.4) 한 부분만을 개조, 합성하여 사용할 수 있도록 함으로써 커널의 다른 부분에 영향을 주지 않고 커널을 확장할 수 있다. 링에 필요한 태스크 정보를 반환하는 함수, Scheduler 클래스, 그리고 인터럽트 관련 서비스를 수정 또는 추가 하는 것이다. : atask : sendmessage(void*) 2: isempty( ) : Concrete EventQueue 3: findnext( ) 4: removetask(int) : Message Queue 5: setstate(int, int) : PriorityTask Manager : Concrete Scheduler : ConcreteMessage Container 6: addtask(int) 7: Schedule( ) : Concrete ReadyQueue 그림 3 확장된 멀티태스킹 커널에서의 메시지 전송 7. 연구 결과 본 절에서는 본 논문에서 연구된 멀티태스킹 커널 프 레임워크가 커널의 효율적인 구현에 재사용될 수 있음 을 확인하기 위하여 5절과 6절에 기술한 프레임워크 확 장 방법에 따라 본 논문의 커널 프레임워크를 Intel 80x86 플랫폼을 지원하는 멀티태스킹 커널로 확장한 사 례를 설명한다. 커널 프레임워크를 확장하여 구현된 커 널은 ucos[6]와 동등한 기능과 성능을 갖도록 하였다. μc/os[6]의 경우에는 우선 순위 기반의 멀티태스킹 커널로 약 000 NCSL로 이루어져 있다. 본 논문에서 설계한 프레임워크는 600NCSL로 이루어졌으며, 이를 확장하여 Intel 80x86 계열의 마이크로 프로세서에서 동 작하며 메시지 큐만을 사용하고, 우선 순위의 변경이나 시스템 시간을 읽어 오는 등의 서비스는 제공하지 않지 만 μc/os와 같이 우선 순위 기반의 스케줄링을 지원 하고 우선 순위 기반으로 메시지 및 세마포어를 전달하 도록 확장했을 때, 00 NCSL의 멀티태스킹 커널을 생 성할 수 있다. 00NCSL의 코드에서 600NCSL은 이미 개발된 프레임워크를 재사용했으므로 500NCSL만이 새 로 개발된 것이다. 즉, 54.5%의 코드를 재사용한 것이 다. 이러한 확장을 위해서 커널 설계자가 해야 하는 일 은, 사용하고자 하는 알고리즘에 따라 자료 구조를 정의 하고 그에 필요한 연산을 정의해야 하는 ReadyQueue, EventQueue, 그리고 MessageContainer 클래스와 Task 클래스의 일부분을 재정의하고, 사용될 하드웨어 에 따라 변경되어지는 Task 클래스의 생성자와 스케줄 표 3 μc/os와 본 논문의 프레임워크의 비교 μc/os 본 논문의 프레임워크 CPU 스케줄링 고정(우선 순위 기반) 변경 가능 메시지 전달 방식 고정(우선 순위 기반) 변경 가능 세마포어 전달 방식 고정(우선 순위 기반) 전체 라인수 (8086, 우선순위 기반) 000NCSL 변경 가능 00NCSL (600NCSL 재사용) 기존의 실시간 커널들[8, 9]은 시스템 파라미터들이 허용하는 범위 내에서 재구성 가능하도록 설계되어 있 다. 커널의 그 밖의 부분을 용도에 맞게 변경하기 위해 서는 커널의 소스코드를 임의로 수정하여야 한다. 이에 비하여 본 논문의 커널 프레임워크는 커널 구현자가 객 체 합성에 의한 블랙박스 재사용 방식과 클래스 상속에 의한 화이트박스 재사용 방식[0]을 병용하여 효율적이 고 일관성있게 커널을 개조, 확장할 수 있도록 설계되었 다. 본 커널 프레임워크를 확장하여 구현된 커널은 응용 프로그래머에 의해 객체 합성과 시스템 파라미터 설정 을 통한 블랙박스 방식으로 실시간 내장 응용 시스템의 개발에 사용될 수 있다. 한편, 재사용성이나 재구성성이 고려된 멀티태스킹 클 래스 라이브러리[, 2]나 객체지향 프레임워크로 설계 된 운영체제[3]들도 소개되어 있다. []이나 [2]의 멀티태스킹 클래스 라이브러리의 경우에는 일반적으로 한가지 태스크 스케줄링 방식만을 지원하도록 되어 있 으며 특정 용도로의 수정이 불가능하도록 되어 있다. 또 한 사용될 하드웨어에 따른 변경 또한 불가능하다. 객체 지향 운영체제의 경우에는 용도에 따른 변경이나 다른 하드웨어로의 이식은 자유로우나 내장형으로 사용하기 에는 너무 규모가 크다는 단점이 있다. 반면 본 논문에 서 구현한 프레임워크 형태의 커널은 사용될 하드웨어 나 알고리즘에 따라 일부를 수정함으로써 쉽게 새로운 커널을 생성할 수 있도록 하였다 본 커널 프레임워크는 객체지향 프레임워크 설계 패 턴들[4, 7]을 기반으로 하여 설계되었다. 특히, 커널의 가변 부위들을 고정 부위로부터 분리하여 확장 가능한 추상 클래스들로 설계하는데 유용한 설계 패턴들이 주

13 실시간 내장 멀티태스킹 커널의 개발에 재사용 가능한 객체지향 커널 프레임워크의 설계 및 구현 85 로 적용되었다. 하드웨어 환경에 의존적인 부분은 Bridge 설계 패턴에 따라 설계되었다. 스케줄링 정책에 따라 가변적인 부분은 Strategy 패턴에 따라 설계되었 다. 긴밀한 상호 작용을 해야 하는 커널 클래스들의 결 합 구조는 Facade 패턴과 Mediator 패턴에 따라 설계 하여 클래스들의 상호 의존도와 결합도들 완화하였다. 본 커널 프레임워크는 커널이 사용하는 메모리 영역 이 정적으로 할당되도록 설계되었다. 즉, 본 프레임워크 로부터 만들어진 커널에서의 클래스 생성자(constructor)들은 객체의 생성에 컴파일러에 의해 할당된 메모리 영역을 사용하며 생성된 객체에 필요한 초기화 작업들을 추가적으로 수행하게 된다. 그러나 생성된 객 체들에 대한 참조에는 포인터가 사용되었다. 따라서, 실 행 시 상호 작용하는 커널 객체들의 바인딩은 동적으로 이루어진다. 이와 같이 정적 메모리 할당과 동적 바인딩 방식을 함께 사용함으로써 본 프레임워크로부터 생성되 는 커널의 효율성과 유연성에 균형을 유지하도록 하였 다. 커널이 사용할 메모리 영역의 크기는 커널에 포함될 클래스들의 선택과 선택된 각 커널 클래스의 인스턴스 최대 개수를 지정하는 시스템 파라미터들을 통하여 컴 파일러에 의해 결정된다. 8. 결론 및 향후 연구 과제 본 논문에서는 실시간 내장 응용 프로그램의 개발에 필요한 멀티태스킹 커널로 쉽게 개조, 확장할 수 있는 커널 프레임워크의 프로토타입을 개발한 사례를 소개하 였다. 본 논문에서는 내장 멀티태스킹 커널을 쉽게 변 경, 확장 할 수 있도록 함으로써 커널의 재사용성을 높 이고자 하였다. 즉, 커널의 복잡한 제어 흐름을 고정적 인 부분에 한하여 프레임워크로 구성함으로써 일부 소 스 코드뿐만 아니라 제어의 흐름 등과 같은 커널 도메 인의 분석 결과를 재사용할 수 있도록 하였다. 본 커널 프레임워크는 멀티태스킹 커널들에 고정적인 부분들과 새로운 커널을 생성할 때 변경되어야 하는 부 분들이 추상 클래스들로 분리된 객체지향 프레임워크 설계 패턴으로 설계되었다. 따라서 상속과 동적 바인딩 의 개념을 이용하여 하드웨어 의존적인 부분과 알고리 즘 의존적인 부분을 커널의 용도에 맞도록 쉽게 수정할 수 있다. 커널의 설계자는 복잡한 커널의 제어 흐름과 구조를 고려 할 필요 없이 CPU 스케줄링이나 메시지 전달 방식과 같은 특정 부분만을 고려함으로써 쉽게 원 하는 기능을 수행하는 커널을 생성해 낼 수 있게 된다. 본 논문에서 개발한 커널 프레임워크는 스케줄링 정 책과 하드웨어 환경에 의존적인 부분들이 객체 합성과 클래스 상속 메커니즘에 따라 효율적이고 일관성있게 개조, 확장될 수 있다. 따라서 본 커널 프레임워크는 기 존의 상용 멀티태스킹 커널들보다 작은 규모를 가져야 하면서 높은 이식성과 개조성이 요구되는 응용 분야의 마이크로 프로세서 기반의 실시간 내장형 멀티태스킹 커널의 효율적인 구현에 효과적으로 사용될 수 있을 것 으로 기대된다. 본 논문의 커널 프레임워크에서는 TCB를 사용하는 클래스들이 TCB의 friend 클래스로 선언되어 있어서 TCB에 대한 직접적이고 빠른 접근을 허용한다. TCB는 하드웨어 플랫폼과 스케줄링 정책에 따라 가변적인 클 래스이다. 따라서 TCB는 커널의 생성 시 특정 하드웨 어와 스케줄링 정책에 적합한 서브클래스로 확장, 변경 된다. 이 때, 이에 영향을 받는 TCB의 friend 클래스들 도 확장된 TCB와 상호 일관성있는 서브클래스들로 함 께 확장되어야 한다. 현재는 TCB와 관련된 일부 클래 스의 확장이 이러한 사항을 충분히 반영하지 못하고 있 다. 따라서 본 커널 프레임워크를 Abstract Factory[7] 와 같은 유연한 객체 생성 설계 패턴들을 적용하여 커 널 객체들이 특정 하드웨어 플랫폼과 스케줄링 정책에 따라 상호 일관성있게 생성될 수 있도록 설계할 필요가 있다. 본 커널 프레임워크가 지원하는 시스템 서비스는 경 량 멀티스레딩(lightweight multi-threading)과 이에 필 요한 CPU, 타이머, 메시지, 세마포어 자원의 관리, 그리 고 인터럽트의 처리이다. 메모리 관리, 디바이스 드라이 버, 네트워킹 등은 본 프레임워크에 포함되어 있지 않 다. 향후, 본 커널 프레임워크는 메모리 관리와 네트워 킹 서비스를 선택적으로 추가할 수 있도록 확장할 예정 이다. 특히, Corba와 인터넷 웹 분산 환경에서 작동 가 능한 실시간 내장 멀티태스킹 커널의 구현에도 재사용 가능하도록 확장할 예정이다. 참 고 문 헌 [] R. Moore, How to Use Real-Time Multitasking Kernel In Embedded Systems, Micro Digital Associates, Inc., 995 [2] J. F. Bortolotti, et al., RTMK : A Real-Time MicroKernel, Dr. Dobb s Journal, May 994 [3] R. E. Johnson, Frameworks = (Components + Patterns), Communications of the ACM, Oct. 997, pp [4] W. Pree, Design Patterns for Object-Oriented Software Development, Addison-Wesley, 995 [5] H. A. Schmid, Systematic Framework Design by Generalization, Communications of the ACM, Oct.

14 86 정보과학회논문지 : 컴퓨팅의 실제 제 6 권 제 2 호(2000.4) 997, pp [6] J. J. Labrosse, μc/os The Real-Time Kernel, R&D Publications, 992 [7] E. Gamma, et al., Design Patterns : Elements of Reusable Object-Oriented Software, Addison- Wesley, 995 [8] RTOS Buyer Guide, encyc/market/rtos/rtos.htm [9] rtos free or must have resources, eg3.com/real/freertos.htm [0] M. E. Fayad and D. C. Schmidt, Object-Oriented Application Frameworks, Communications of the ACM, Oct. 997, pp [] K. Gibson, C++ Multitasking Class Library, Dr. Dobb s Journal, May 994, pp [2] J. A. Joins, Multitasking Classes, eos.ncsu.edu/eos/info/ie/ie307_info/www/guide.dir/n ode42.html [3] R.H. Campbell, N. Islam, P. Madany, Choices, Frameworks and Refinement, Computing Systems, 5(3), 992 [4] T. Quatrani, Visual Modeling with Rational ROSE and UML, Addison Wesley Longman, Inc., 998 [5] J. Rumbaugh, et al., The Unified Modeling Language Reference Manual, Addison-Wesley, 999 이 승 룡 978년 고려대학교 재료공학과 학사. 987년 2월 Illinois Institute of Technology 전산학 석사. 99년 2월 Illinois Institute of Technology 전산학 박사. 992년 ~ 993년 Governors Srtate University 조교수. 993년 ~ 현 재 경희대학교 전자정보학부 (전자계산공학 전공) 부교수. 관심분야는 실시간 컴퓨팅, 멀티미디어 시스템 XML/ EDI 등. 이 준 섭 997년 고려대학교 전산학과 학사. 999 년 고려대학교 대학원 전산학과 석사. 999년 3월 ~ 현재 한국전자통신연구원 연구원. 관심분야는 객체지향 소프트웨어 공학, 소프트웨어 프레임워크, 디자인 패 턴, 웹 어플리케이션 개발 방법론, 전 태 웅 98년 서울대학교 계산통계학과 학사. 983년 서울대학교 계산통계학과 석사. 992년 Illinois Institute of Technology 전산과학 박사. 983년 ~ 987년 금성 통신 연구소 주임연구원. 992년 ~ 995년 LG산전 연구소 책임연구원. 995년 ~ 현재 고려대학교 자연과학부(전산학 전공) 부교 수. 관심분야는 소프트웨어 테스팅, 소프트웨어 아키텍쳐, 객체지향 프레임워크, 실시간 소프트웨어 공학

untitled

untitled Embedded System Lab. II Embedded System Lab. II 2 RTOS Hard Real-Time vs Soft Real-Time RTOS Real-Time, Real-Time RTOS General purpose system OS H/W RTOS H/W task Hard Real-Time Real-Time System, Hard

More information

10주차.key

10주차.key 10, Process synchronization (concurrently) ( ) => critical section ( ) / =>, A, B / Race condition int counter; Process A { counter++; } Process B { counter ;.. } counter++ register1 = counter register1

More information

untitled

untitled - -, (insert) (delete) - - (insert) (delete) (top ) - - (insert) (rear) (delete) (front) A A B top A B C top push(a) push(b) push(c) A B top pop() top A B D push(d) top #define MAX_STACK_SIZE 100 int

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

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

UML

UML Introduction to UML Team. 5 2014/03/14 원스타 200611494 김성원 200810047 허태경 200811466 - Index - 1. UML이란? - 3 2. UML Diagram - 4 3. UML 표기법 - 17 4. GRAPPLE에 따른 UML 작성 과정 - 21 5. UML Tool Star UML - 32 6. 참조문헌

More information

Something that can be seen, touched or otherwise sensed

Something that can be seen, touched or otherwise sensed Something that can be seen, touched or otherwise sensed Things about an object Weight Height Material Things an object does Pen writes Book stores words Water have Fresh water Rivers Oceans have

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

학습영역의 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

04-다시_고속철도61~80p

04-다시_고속철도61~80p Approach for Value Improvement to Increase High-speed Railway Speed An effective way to develop a highly competitive system is to create a new market place that can create new values. Creating tools and

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

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

歯3이화진

歯3이화진 http://www.kbc.go.kr/ Abstract Terrestrial Broadcasters Strategies in the Age of Digital Broadcasting Wha-Jin Lee The purpose of this research is firstly to investigate the

More information

11¹Ú´ö±Ô

11¹Ú´ö±Ô A Review on Promotion of Storytelling Local Cultures - 265 - 2-266 - 3-267 - 4-268 - 5-269 - 6 7-270 - 7-271 - 8-272 - 9-273 - 10-274 - 11-275 - 12-276 - 13-277 - 14-278 - 15-279 - 16 7-280 - 17-281 -

More information

Chap06(Interprocess Communication).PDF

Chap06(Interprocess Communication).PDF Interprocess Communication 2002 2 Hyun-Ju Park Introduction (interprocess communication; IPC) IPC data transfer sharing data event notification resource sharing process control Interprocess Communication

More information

Ⅱ. Embedded GPU 모바일 프로세서의 발전방향은 저전력 고성능 컴퓨팅이다. 이 러한 목표를 달성하기 위해서 모바일 프로세서 기술은 멀티코 어 형태로 발전해 가고 있다. 예를 들어 NVIDIA의 최신 응용프 로세서인 Tegra3의 경우 쿼드코어 ARM Corte

Ⅱ. Embedded GPU 모바일 프로세서의 발전방향은 저전력 고성능 컴퓨팅이다. 이 러한 목표를 달성하기 위해서 모바일 프로세서 기술은 멀티코 어 형태로 발전해 가고 있다. 예를 들어 NVIDIA의 최신 응용프 로세서인 Tegra3의 경우 쿼드코어 ARM Corte 스마트폰을 위한 A/V 신호처리기술 편집위원 : 김홍국 (광주과학기술원) 스마트폰에서의 영상처리를 위한 GPU 활용 박인규, 최호열 인하대학교 요 약 본 기고에서는 최근 스마트폰에서 요구되는 다양한 멀티미 디어 어플리케이션을 embedded GPU(Graphics Processing Unit)를 이용하여 고속 병렬처리하기 위한 GPGPU (General- Purpose

More information

°í¼®ÁÖ Ãâ·Â

°í¼®ÁÖ Ãâ·Â Performance Optimization of SCTP in Wireless Internet Environments The existing works on Stream Control Transmission Protocol (SCTP) was focused on the fixed network environment. However, the number of

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 4 (Object) (Class) (Instance) (Method) (Constructor) Memory 1 UML 1 @ & 1 (Real World) (Software World) @ &.. () () @ & 2 (Real World) (Software World) OOA/ Modeling Abstraction Instantiation

More information

강의10

강의10 Computer Programming gdb and awk 12 th Lecture 김현철컴퓨터공학부서울대학교 순서 C Compiler and Linker 보충 Static vs Shared Libraries ( 계속 ) gdb awk Q&A Shared vs Static Libraries ( 계속 ) Advantage of Using Libraries Reduced

More information

<30362E20C6EDC1FD2DB0EDBFB5B4EBB4D420BCF6C1A42E687770>

<30362E20C6EDC1FD2DB0EDBFB5B4EBB4D420BCF6C1A42E687770> 327 Journal of The Korea Institute of Information Security & Cryptology ISSN 1598-3986(Print) VOL.24, NO.2, Apr. 2014 ISSN 2288-2715(Online) http://dx.doi.org/10.13089/jkiisc.2014.24.2.327 개인정보 DB 암호화

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Reasons for Poor Performance Programs 60% Design 20% System 2.5% Database 17.5% Source: ORACLE Performance Tuning 1 SMS TOOL DBA Monitoring TOOL Administration TOOL Performance Insight Backup SQL TUNING

More information

도비라

도비라 광고학연구 : 제24권 5호(2013년) The Korean Journal of Advertising, Vol.24, No.5 (2013). pp.99 116 대학생 광고공모전이 광고업계 취업에 미치는 영향: 대학생과 실무자의 인식 비교를 중심으로 차 유 철 우석대학교 광고이벤트학과 교수, 언론학박사 이 희 복 상지대학교 언론광고학부 교수, 언론학박사* 신

More information

Domino Designer Portal Development tools Rational Application Developer WebSphere Portlet Factory Workplace Designer Workplace Forms Designer

Domino Designer Portal Development tools Rational Application Developer WebSphere Portlet Factory Workplace Designer Workplace Forms Designer Domino, Portal & Workplace WPLC FTSS Domino Designer Portal Development tools Rational Application Developer WebSphere Portlet Factory Workplace Designer Workplace Forms Designer ? Lotus Notes Clients

More information

¹Ìµå¹Ì3Â÷Àμâ

¹Ìµå¹Ì3Â÷Àμâ MIDME LOGISTICS Trusted Solutions for 02 CEO MESSAGE MIDME LOGISTICS CO., LTD. 01 Ceo Message We, MIDME LOGISTICS CO., LTD. has established to create aduance logistics service. Try to give confidence to

More information

SK IoT IoT SK IoT onem2m OIC IoT onem2m LG IoT SK IoT KAIST NCSoft Yo Studio tidev kr 5 SK IoT DMB SK IoT A M LG SDS 6 OS API 7 ios API API BaaS Backend as a Service IoT IoT ThingPlug SK IoT SK M2M M2M

More information

13주-14주proc.PDF

13주-14주proc.PDF 12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float

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

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

11강-힙정렬.ppt

11강-힙정렬.ppt 11 (Heap ort) leejaku@shinbiro.com Topics? Heap Heap Opeations UpHeap/Insert, DownHeap/Extract Binary Tree / Index Heap ort Heap ort 11.1 (Priority Queue) Operations ? Priority Queue? Priority Queue tack

More information

........pdf 16..

........pdf 16.. Abstract Prospects of and Tasks Involving the Policy of Revitalization of Traditional Korean Performing Arts Yong-Shik, Lee National Center for Korean Traditional Performing Arts In the 21st century, the

More information

untitled

untitled SAS Korea / Professional Service Division 2 3 Corporate Performance Management Definition ý... is a system that provides organizations with a method of measuring and aligning the organization strategy

More information

Here is a "PLDWorld.com"... // EXCALIBUR... // Additional Resources // µc/os-ii... Page 1 of 23 Additional Resources: µc/os-ii Author: Source: HiTEL D

Here is a PLDWorld.com... // EXCALIBUR... // Additional Resources // µc/os-ii... Page 1 of 23 Additional Resources: µc/os-ii Author: Source: HiTEL D Page 1 of 23 Additional Resources: µc/os-ii Author: Source: HiTEL Digital Sig Date: 2004929 µ (1) uc/os-ii RTOS uc/os-ii EP7209 uc/os-ii, EP7209 EP7209,, CPU ARM720 Core CPU ARM7 CPU wwwnanowitcom10 '

More information

0125_ 워크샵 발표자료_완성.key

0125_ 워크샵 발표자료_완성.key WordPress is a free and open-source content management system (CMS) based on PHP and MySQL. WordPress is installed on a web server, which either is part of an Internet hosting service or is a network host

More information

,.,..,....,, Abstract The importance of integrated design which tries to i

,.,..,....,, Abstract The importance of integrated design which tries to i - - The Brand Touchpoint Analysis through Corporate Identity Typeface of Mobile Telecommunication Companies - Focusing on and - : Lee, Ka Young Dept. Lifestyle Design, Dankook University : Kim, Ji In Dept.

More information

Vol.257 C O N T E N T S M O N T H L Y P U B L I C F I N A N C E F O R U M

Vol.257 C O N T E N T S M O N T H L Y P U B L I C F I N A N C E F O R U M 2017.11 Vol.257 C O N T E N T S 02 06 38 52 69 82 141 146 154 M O N T H L Y P U B L I C F I N A N C E F O R U M 2 2017.11 3 4 2017.11 6 2017.11 1) 7 2) 22.7 19.7 87 193.2 160.6 83 22.2 18.4 83 189.6 156.2

More information

06_ÀÌÀçÈÆ¿Ü0926

06_ÀÌÀçÈÆ¿Ü0926 182 183 184 / 1) IT 2) 3) IT Video Cassette Recorder VCR Personal Video Recorder PVR VCR 4) 185 5) 6) 7) Cloud Computing 8) 186 VCR P P Torrent 9) avi wmv 10) VCR 187 VCR 11) 12) VCR 13) 14) 188 VTR %

More information

001지식백서_4도

001지식백서_4도 White Paper on Knowledge Service Industry Message Message Contents Contents Contents Contents Chapter 1 Part 1. Part 2. Part 3. Chapter

More information

Intro to Servlet, EJB, JSP, WS

Intro to Servlet, EJB, JSP, WS ! Introduction to J2EE (2) - EJB, Web Services J2EE iseminar.. 1544-3355 ( ) iseminar Chat. 1 Who Are We? Business Solutions Consultant Oracle Application Server 10g Business Solutions Consultant Oracle10g

More information

훈련교재 목록-내지-0520.indd

훈련교재 목록-내지-0520.indd 1 2 HRD Book HUMAN RESOURCES DEVELOPMENT SERVICE OF KOREA 3 4 5 03 01 02 04 2015 HRD Book CONTENTS Section 01 Section 02 10 20 HRD Book Section 03 60 Section 04 70 Section 05 80 Section 06 86 Section 07

More information

30이지은.hwp

30이지은.hwp VR의 가상광고에 나타난 그래픽영상 연구 -TV 스포츠 방송을 중심으로- A study of the graphic image that is presented in Virtual Advertising of VR(Virtual Reality) - Focused on TV Sports broadcasts - 이지은(Lee, ji eun) 조일산업(주) 디자인 실장

More information

untitled

untitled 15 Patterns of Creative Process Redesign J. Ray Cho Abstract Process Innovation (PI) is a fundamental rethinking and redesign of business processes to achieve improvements in critical contemporary measures

More information

레이아웃 1

레이아웃 1 i g d e d mod, t d e d e d mod, t e,0 e, n s,0 e,n e,0 Division of Workers' Compensation (2009). Iowa workers' compensation manual. Gamber, E. N. & Sorensen, R. L. (1994). Are net discount rates stationary?:

More information

휠세미나3 ver0.4

휠세미나3 ver0.4 andromeda@sparcs:/$ ls -al dev/sda* brw-rw---- 1 root disk 8, 0 2014-06-09 18:43 dev/sda brw-rw---- 1 root disk 8, 1 2014-06-09 18:43 dev/sda1 brw-rw---- 1 root disk 8, 2 2014-06-09 18:43 dev/sda2 andromeda@sparcs:/$

More information

03.Agile.key

03.Agile.key CSE4006 Software Engineering Agile Development Scott Uk-Jin Lee Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2018 Background of Agile SW Development

More information

歯M991101.PDF

歯M991101.PDF 2 0 0 0 2000 12 2 0 0 0 2000 12 ( ) ( ) ( ) < >. 1 1. 1 2. 5. 6 1. 7 1.1. 7 1.2. 9 1.3. 10 2. 17 3. 25 3.1. 25 3.2. 29 3.3. 29. 31 1. 31 1.1. ( ) 32 1.2. ( ) 38 1.3. ( ) 40 1.4. ( ) 42 2. 43 3. 69 4. 74.

More information

04_오픈지엘API.key

04_오픈지엘API.key 4. API. API. API..,.. 1 ,, ISO/IEC JTC1/SC24, Working Group ISO " (Architecture) " (API, Application Program Interface) " (Metafile and Interface) " (Language Binding) " (Validation Testing and Registration)"

More information

<BFA9BAD02DB0A1BBF3B1A4B0ED28C0CCBCF6B9FC2920B3BBC1F62E706466>

<BFA9BAD02DB0A1BBF3B1A4B0ED28C0CCBCF6B9FC2920B3BBC1F62E706466> 001 002 003 004 005 006 008 009 010 011 2010 013 I II III 014 IV V 2010 015 016 017 018 I. 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 III. 041 042 III. 043

More information

http://www.kbc.go.kr/ Abstract Competition and Concentration in the Market for the Multichannel Video Programming G h e e - Young Noh ( P r o f e s s o, rschool of Communication,

More information

제19권 제3호 Ⅰ. 문제제기 온라인을 활용한 뉴스 서비스 이용은 이제 더 이 상 새로운 일이 아니다. 뉴스 서비스는 이미 기존의 언론사들이 개설한 웹사이트를 통해 이루어지고 있으 며 기존의 종이신문과 방송을 제작하는 언론사들 외 에 온라인을 기반으로 하는 신생 언론사

제19권 제3호 Ⅰ. 문제제기 온라인을 활용한 뉴스 서비스 이용은 이제 더 이 상 새로운 일이 아니다. 뉴스 서비스는 이미 기존의 언론사들이 개설한 웹사이트를 통해 이루어지고 있으 며 기존의 종이신문과 방송을 제작하는 언론사들 외 에 온라인을 기반으로 하는 신생 언론사 연구논문 제19권 제3호, 2012년 가을호, pp.19~35 포털 뉴스의 연성화와 의제설정의 탐색* 조 화 순**, 장 우 영***, 오 소 현**** 인터넷 이용자들이 포털을 활용해 뉴스 콘텐츠를 소비하는 경우가 늘어나면서 포털이 뉴스의 연성화를 촉진해 요약 여론형성에 문제가 있다는 비판을 받고 있다. 이러한 비판에 대응하기 위해 일부 포털은 기존의 뉴스배치모델과

More information

대한한의학원전학회지24권6호-전체최종.hwp

대한한의학원전학회지24권6호-전체최종.hwp 小兒藥證直訣 의 五臟辨證에 대한 小考 - 病證과 處方을 중심으로 1 2 慶熙大學校大學校 韓醫學科大學 原典學敎室 ㆍ 韓醫學古典硏究所 白裕相1,2*1)2) A study on The Diagnosis and Treatment Using The Theory of Five Organs in Soayakjeungjikgyeol(小兒藥證直訣) 1 Dept. of Oriental

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

Main Title

Main Title GE Peter S. Pande,, Robert P. Neuman, Ronald R. Cavanagh The SIX SIGMA WAY April 29, 2005 Jin-Ho Jeong,, Ph.D. Competitiveness Valuation International, Inc. Korea Partner of IMD WCY jeong@cvikorea.net

More information

Social Network

Social Network Social Network Service, Social Network Service Social Network Social Network Service from Digital Marketing Internet Media : SNS Market report A social network service is a social software specially focused

More information

강의지침서 작성 양식

강의지침서 작성 양식 정보화사회와 법 강의지침서 1. 교과목 정보 교과목명 학점 이론 시간 실습 학점(등급제, P/NP) 비고 (예:팀티칭) 국문 정보화사회와 법 영문 Information Society and Law 3 3 등급제 구분 대학 및 기관 학부(과) 전공 성명 작성 책임교수 법학전문대학원 법학과 최우용 2. 교과목 개요 구분 교과목 개요 국문 - 정보의 디지털화와 PC,

More information

Chap04(Signals and Sessions).PDF

Chap04(Signals and Sessions).PDF Signals and Session Management 2002 2 Hyun-Ju Park (Signal)? Introduction (1) mechanism events : asynchronous events - interrupt signal from users : synchronous events - exceptions (accessing an illegal

More information

목차 1. 서론 1.1. 연구의 배경 및 목적 1.2. 연구의 내용 및 방법 2. 제품스타일 분석 2.1. 제품이미지 2.2. 미래지향적 스타일 3. 신세대 감성분석 3.1. 라이프스타일 3.2. 광고전략 3.3. 색채에 따른 제품구매 분석 4. 결론 *참고문헌 ( )

목차 1. 서론 1.1. 연구의 배경 및 목적 1.2. 연구의 내용 및 방법 2. 제품스타일 분석 2.1. 제품이미지 2.2. 미래지향적 스타일 3. 신세대 감성분석 3.1. 라이프스타일 3.2. 광고전략 3.3. 색채에 따른 제품구매 분석 4. 결론 *참고문헌 ( ) 신세대 지향적 제품개발과 전략에 관한 연구 A Study on the Product Development and Strategy of New Generation Oriented 곽 희 준 (Hee-Joon, Kwak) 협성대학교 예술대학 제품디자인학과 본 연구는 협성대학교 교내학술연구비 지원에 의한 논문임 목차 1. 서론 1.1. 연구의 배경 및 목적 1.2.

More information

歯1.PDF

歯1.PDF 200176 .,.,.,. 5... 1/2. /. / 2. . 293.33 (54.32%), 65.54(12.13%), / 53.80(9.96%), 25.60(4.74%), 5.22(0.97%). / 3 S (1997)14.59% (1971) 10%, (1977).5%~11.5%, (1986)

More information

No Slide Title

No Slide Title Copyright, 2001 Multimedia Lab., CH 3. COM object (In-process server) Eun-sung Lee twoss@mmlab.net Multimedia Lab. Dept. of Electrical and Computer Eng. University of Seoul Seoul, Korea 0. Contents 1.

More information

04서종철fig.6(121~131)ok

04서종철fig.6(121~131)ok Development of Mobile Applications Applying Digital Storytelling About Ecotourism Resources Seo, Jongcheol* Lee, Seungju**,,,. (mobile AIR)., 3D.,,.,.,,, Abstract : In line with fast settling trend of

More information

No Slide Title

No Slide Title J2EE J2EE(Java 2 Enterprise Edition) (Web Services) :,, SOAP: Simple Object Access Protocol WSDL: Web Service Description Language UDDI: Universal Discovery, Description & Integration 4. (XML Protocol

More information

# Old State Mew State Trigger Actions 1 - TCP/IP NOT CONNECTED Initialization 2 TCP/IP NOT HSMS NOT TCP/IP Connect Succeeds: CONNECTED SELECTED 1. TCP/IP "accecpt" succeeds. Start T7 timeout 1. Cancel

More information

<32382DC3BBB0A2C0E5BED6C0DA2E687770>

<32382DC3BBB0A2C0E5BED6C0DA2E687770> 논문접수일 : 2014.12.20 심사일 : 2015.01.06 게재확정일 : 2015.01.27 청각 장애자들을 위한 보급형 휴대폰 액세서리 디자인 프로토타입 개발 Development Prototype of Low-end Mobile Phone Accessory Design for Hearing-impaired Person 주저자 : 윤수인 서경대학교 예술대학

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

<C0DAB7E120C7D5BABB2E687770>

<C0DAB7E120C7D5BABB2E687770> 제5회 SW공학 Technical 세미나 패턴 저자와 함께하는 패턴이야기 세부 프로그램 시 간 내 용 강사진 13:30 ~ 14:00 등 록 14:00 ~ 14:05 인사말 14:05 ~ 15:00 15:00 ~ 15:30 15:30 ~ 17:00 o 미워도 다시 보는 패턴이야기 - SW 설계의 패턴과 다양한 패턴의 주제 소개 - 패턴의 3박자와 패턴으로

More information

( )부록

( )부록 A ppendix 1 2010 5 21 SDK 2.2. 2.1 SDK. DevGuide SDK. 2.2 Frozen Yoghurt Froyo. Donut, Cupcake, Eclair 1. Froyo (Ginger Bread) 2010. Froyo Eclair 0.1.. 2.2. UI,... 2.2. PC 850 CPU Froyo......... 2. 2.1.

More information

PCServerMgmt7

PCServerMgmt7 Web Windows NT/2000 Server DP&NM Lab 1 Contents 2 Windows NT Service Provider Management Application Web UI 3 . PC,, Client/Server Network 4 (1),,, PC Mainframe PC Backbone Server TCP/IP DCS PLC Network

More information

3. 클라우드 컴퓨팅 상호 운용성 기반의 서비스 평가 방법론 개발.hwp

3. 클라우드 컴퓨팅 상호 운용성 기반의 서비스 평가 방법론 개발.hwp 보안공학연구논문지 Journal of Security Engineering Vol.11, No.4 (2014), pp.299-312 http://dx.doi.org/10.14257/jse.2014.08.03 클라우드 컴퓨팅 상호 운용성 기반의 서비스 평가 방법론 개발 이강찬 1), 이승윤 2), 양희동 3), 박철우 4) Development of Service

More information

untitled

untitled Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.

More information

소프트웨어개발방법론

소프트웨어개발방법론 사용사례 (Use Case) Objectives 2 소개? (story) vs. 3 UC 와 UP 산출물과의관계 Sample UP Artifact Relationships Domain Model Business Modeling date... Sale 1 1..* Sales... LineItem... quantity Use-Case Model objects,

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

K7VT2_QIG_v3

K7VT2_QIG_v3 1......... 2 3..\ 4 5 [R] : Enter Raid setup utility 6 Press[A]keytocreateRAID RAID Type: JBOD RAID 0 RAID 1: 2 7 " RAID 0 Auto Create Manual Create: 2 RAID 0 Block Size: 16K 32K

More information

vm-웨어-앞부속

vm-웨어-앞부속 VMware vsphere 4 This document was created using the official VMware icon and diagram library. Copyright 2009 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright

More information

SchoolNet튜토리얼.PDF

SchoolNet튜토리얼.PDF Interoperability :,, Reusability: : Manageability : Accessibility :, LMS Durability : (Specifications), AICC (Aviation Industry CBT Committee) : 1988, /, LMS IMS : 1997EduCom NLII,,,,, ARIADNE (Alliance

More information

푸른21탄소중립행사내지확정

푸른21탄소중립행사내지확정 Carbon Neutral Events / Carbon Free Events Contents 3 11 31 41 47 51 2 01 Part 1 Part. 01 4 Part 1 5 Part 1 6 Part 1 7 Part 1 8 Part 1 9 02 Part 2 Part. 02 12 Part 2 13 Part 2 14 Part 2 15 Part 2 16 Part

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 EBC (Equipment Behaviour Catalogue) - ISO TC 184/SC 5/SG 4 신규표준이슈 - 한국전자통신연구원김성혜 목차 Prologue: ISO TC 184/SC 5 그룹 SG: Study Group ( 표준이슈발굴 ) WG: Working Group ( 표준개발 ) 3 EBC 배경 제안자 JISC (Japanese Industrial

More information

10송동수.hwp

10송동수.hwp 종량제봉투의 불법유통 방지를 위한 폐기물관리법과 조례의 개선방안* 1) 송 동 수** 차 례 Ⅰ. 머리말 Ⅱ. 종량제봉투의 개요 Ⅲ. 종량제봉투의 불법유통사례 및 방지대책 Ⅳ. 폐기물관리법의 개선방안 Ⅴ. 지방자치단체 조례의 개선방안 Ⅵ. 결론 국문초록 1995년부터 쓰레기 종량제가 시행되면서 각 지방자치단체별로 쓰레기 종량제 봉투가 제작, 판매되기 시작하였는데,

More information

10방송통신서비스_내지최종

10방송통신서비스_내지최종 Contents KOREA COMMUNICATIONS COMMISSION Chorus Wholesale & lnternational Retail Gen-i AAPT Technology & Shared Services Corporate Centre

More information

¨ìÃÊÁ¡2

¨ìÃÊÁ¡2 2 Worldwide Converged Mobile Device Shipment Share by Operating System, 2005 and 2010 Paim OS (3.6%) BiackBerry OS (7.5%) 2005 Other (0.3%) Linux (21.8%) Symbian OS (60.7%) Windows Mobile (6.1%) Total=56.52M

More information

공급 에는 3권역 내에 준공된 프라임 오피스가 없었다. 4분기에는 3개동의 프라임 오피스가 신규로 준공 될 예정이다.(사옥1개동, 임대용 오피스 2개동) 수요와 공실률 2014년 10월 한국은행이 발표한 자료에 따르면 한국의 2014년 경제성장률 예측치는 3.5%로 지

공급 에는 3권역 내에 준공된 프라임 오피스가 없었다. 4분기에는 3개동의 프라임 오피스가 신규로 준공 될 예정이다.(사옥1개동, 임대용 오피스 2개동) 수요와 공실률 2014년 10월 한국은행이 발표한 자료에 따르면 한국의 2014년 경제성장률 예측치는 3.5%로 지 Savills World Research 브리핑 서울 프라임 오피스 사진 : Yeouido, Seoul 개요 삼성SDS가 지난 2분기 준공한 잠실 사옥 주변으로의 이전을 지속하고 증권업계의 임차면적 감소가 계속되어 GBD와 YBD 의 수요는 감소하였고 에서는 소폭의 수요 증가가 나타났다. 의 수요 회복에도 불구하고 GBD, YBD의 수요 감소로 서울프라임오피스의

More information

DocsPin_Korean.pages

DocsPin_Korean.pages Unity Localize Script Service, Page 1 Unity Localize Script Service Introduction Application Game. Unity. Google Drive Unity.. Application Game. -? ( ) -? -?.. 준비사항 Google Drive. Google Drive.,.. - Google

More information

- 2 -

- 2 - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - - 14 - - 15 - - 16 - - 17 - - 18 - - 19 - - 20 - - 21 - - 22 - - 23 - - 24 - - 25 - - 26 - - 27 - - 28 - - 29 - - 30 -

More information

지적장애 _1

지적장애 _1 PART. 1 PART. 2 Empolyment Development Institute EDI PART. 1 PART.1 8 9 PART.1 1 지적장애인에게 범용 프로그램 적용 10 11 PART.1 12 13 PART.1 14 15 PART.1 2 프로그램개선방안도출 3 예비 프로그램 구성과 내용 16 17 PART.1 4 예비 프로그램 적용 및 보완 18

More information

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Nov.; 25(11),

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Nov.; 25(11), THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE. 2014 Nov.; 25(11), 11351141. http://dx.doi.org/10.5515/kjkiees.2014.25.11.1135 ISSN 1226-3133 (Print)ISSN 2288-226X (Online)

More information

, N-. N- DLNA(Digital Living Network Alliance).,. DLNA DLNA. DLNA,, UPnP, IPv4, HTTP DLNA. DLNA, DLNA [1]. DLNA DLNA DLNA., [2]. DLNA UPnP. DLNA DLNA.

, N-. N- DLNA(Digital Living Network Alliance).,. DLNA DLNA. DLNA,, UPnP, IPv4, HTTP DLNA. DLNA, DLNA [1]. DLNA DLNA DLNA., [2]. DLNA UPnP. DLNA DLNA. http://dx.doi.org/10.5909/jeb.2012.17.1.37 DLNA a), a), a) Effective Utilization of DLNA Functions in Home Media Devices Ki Cheol Kang a), Se Young Kim a), and Dae Jin Kim a) DLNA(Digital Living Network

More information

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Jun.; 27(6),

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Jun.; 27(6), THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE. 2016 Jun.; 27(6), 495 503. http://dx.doi.org/10.5515/kjkiees.2016.27.6.495 ISSN 1226-3133 (Print) ISSN 2288-226X (Online) Design

More information

Journal of Educational Innovation Research 2018, Vol. 28, No. 4, pp DOI: A Study on Organizi

Journal of Educational Innovation Research 2018, Vol. 28, No. 4, pp DOI:   A Study on Organizi Journal of Educational Innovation Research 2018, Vol. 28, No. 4, pp.441-460 DOI: http://dx.doi.org/10.21024/pnuedi.28.4.201812.441 A Study on Organizing Software Education of Special Education Curriculum

More information

OMA Bcast Service Guide ATSC 3.0 (S33-2) T-UHDTV 송수신정합 Part.1 Mobile Broadcast (Open Mobile Alliance) 기반 Data Model ATSC 3.0 을위한확장 - icon, Channel No.

OMA Bcast Service Guide ATSC 3.0 (S33-2) T-UHDTV 송수신정합 Part.1 Mobile Broadcast (Open Mobile Alliance) 기반 Data Model ATSC 3.0 을위한확장 - icon, Channel No. Special Report_Special Theme UHDTV 지상파 UHD ESG 및 IBB 표준기술 이동관 MBC 기술연구소차장 2.1 개요 2.2 표준구성 TTA Journal Vol.167 l 63 OMA Bcast Service Guide ATSC 3.0 (S33-2) T-UHDTV 송수신정합 Part.1 Mobile Broadcast (Open Mobile

More information

3 Local Government Officials Development Institute 4 2006 Local Government Officials Development Institute 5 6 2006 Local Government Officials Development Institute 7 8 2006 Local Government Officials

More information

4 5 4. Hi-MO 애프터케어 시스템 편 5. 오비맥주 카스 카스 후레쉬 테이블 맥주는 천연식품이다 편 처음 스타일 그대로, 부탁 케어~ Hi-MO 애프터케어 시스템 지속적인 모발 관리로 끝까지 스타일이 유지되도록 독보적이다! 근데 그거 아세요? 맥주도 인공첨가물이

4 5 4. Hi-MO 애프터케어 시스템 편 5. 오비맥주 카스 카스 후레쉬 테이블 맥주는 천연식품이다 편 처음 스타일 그대로, 부탁 케어~ Hi-MO 애프터케어 시스템 지속적인 모발 관리로 끝까지 스타일이 유지되도록 독보적이다! 근데 그거 아세요? 맥주도 인공첨가물이 1 2 On-air 3 1. 이베이코리아 G마켓 용평리조트 슈퍼브랜드딜 편 2. 아모레퍼시픽 헤라 루즈 홀릭 리퀴드 편 인쇄 광고 올해도 겨울이 왔어요. 당신에게 꼭 해주고 싶은 말이 있어요. G마켓에선 용평리조트 스페셜 패키지가 2만 6900원! 역시 G마켓이죠? G마켓과 함께하는 용평리조트 스페셜 패키지. G마켓의 슈퍼브랜드딜은 계속된다. 모바일 쇼핑 히어로

More information

03¼ºÅ°æ_2

03¼ºÅ°æ_2 102 103 R&D closed innovation strategy open innovation strategy spin-off Chesbrough technology marketing IBM Intel P&G IBM Dell Apple Nintendo Acer http //www ibm com/ibm/licensing MIT 1) 104 Bucher et

More information

Microsoft Word - 1-차우창.doc

Microsoft Word - 1-차우창.doc Journal of the Ergonomics Society of Korea Vol. 28, No. 2 pp.1-8, May 2009 1 하이브리드 환경하의 인간기계시스템 제어실 평가에 관한 연구 차 우 창 김 남 철 금오공과대학교 산업시스템공학과 A Study of the Evaluation for the Control Room in Human Machine

More information

DBPIA-NURIMEDIA

DBPIA-NURIMEDIA 방송통신연구 2011년 봄호 연구논문 64 98 PD수첩 관련 판례에서 보이는 사법부의 사실성에 대한 인식의 차이 연구* 1)2) 이승선 충남대학교 언론정보학과 부교수** Contents 1. 문제제기와 연구문제 2. 공적인물에 대한 명예훼손 보도의 면책 법리 3. 분석결과의 논의 4. 마무리 본 이른바 PD수첩 광우병 편 에 대해 다양한 법적 대응이 이뤄졌다.

More information

Remote UI Guide

Remote UI Guide Remote UI KOR Remote UI Remote UI PDF Adobe Reader/Adobe Acrobat Reader. Adobe Reader/Adobe Acrobat Reader Adobe Systems Incorporated.. Canon. Remote UI GIF Adobe Systems Incorporated Photoshop. ..........................................................

More information

0.1-6

0.1-6 HP-19037 1 EMP400 2 3 POWER EMP400 4 5 6 7 ALARM CN2 8 9 CN3 CN1 10 24V DC CN4 TB1 11 12 Copyright ORIENTAL MOTOR CO., LTD. 2001 2 1 2 3 4 5 1.1...1-2 1.2... 1-2 2.1... 2-2 2.2... 2-4 3.1... 3-2 3.2...

More information

슬라이드 1

슬라이드 1 IT Driving Your Business Innovation-Accelerating ILM Driving Your Business Innovation-Accelerating ILM I. I (Social Responsibility Chain) () (),,.. 3 I 4 I.. - -,. - -.. - - 5 I Enron: ranked 6th in 02

More information

UNIST_교원 홈페이지 관리자_Manual_V1.0

UNIST_교원 홈페이지 관리자_Manual_V1.0 Manual created by metapresso V 1.0 3Fl, Dongin Bldg, 246-3 Nonhyun-dong, Kangnam-gu, Seoul, Korea, 135-889 Tel: (02)518-7770 / Fax: (02)547-7739 / Mail: contact@metabrain.com / http://www.metabrain.com

More information

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Feb.; 29(2), IS

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Feb.; 29(2), IS THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE. 2018 Feb.; 29(2), 93 98. http://dx.doi.org/10.5515/kjkiees.2018.29.2.93 ISSN 1226-3133 (Print) ISSN 2288-226X (Online) UHF-HF

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

½Éº´È¿ Ãâ·Â

½Éº´È¿ Ãâ·Â Standard and Technology of Full-Dimension MINO Systems in LTE-Advances Pro Massive MIMO has been studied in academia foreseeing the capacity crunch in the coming years. Presently, industry has also started

More information

Interstage5 SOAP서비스 설정 가이드

Interstage5 SOAP서비스 설정 가이드 Interstage 5 Application Server ( Solaris ) SOAP Service Internet Sample Test SOAP Server Application SOAP Client Application CORBA/SOAP Server Gateway CORBA/SOAP Gateway Client INTERSTAGE SOAP Service

More information