태블릿 PC의 경우 개발의 편의성 및 다양한 기능을 제공하기 위해 모바일 운영체제인 윈도우 8을 사용하는데 윈도우 계열의 경우 실시간 처리를 보장하지 못하는 문제점이 있다. 또한 기존의 상용 솔루션과 RTiK 계열의 경우 윈도우와는 독립적인 타이머인터럽트를 생성하기 위해 사용했던 로컬 APIC 타이머 카운트 값을 얻어 올 수 없기 때문에 실시간 처리 기능을 제공하기 어려운 문제점이 있다. 따라서 본 논문에서는 태블릿 PC의 윈도우 8환경에 실시간 처리 기능을 제공하기 위해 MSR_FSB_FREQ 레지스터를 이용하여 로컬 APIC 초기 카운트 값을 설정하였다. 또한 윈도우의 저전력 기법인 C-State를 제어함으로써 생성한 타이머 인터럽트의 주기성을 보장하여 실시간 처리 기능을 제공하는 RTiK+를 설계 및 구현하였다. 구현한 RTiK+의 성능 검증 및 평가를 위해 CPU 클럭 틱의 수를 반환하는 RDTSC 명령어를 사용하여 생성된 실시간 쓰레드의 주기를 측정하였고, 1ms 주기에서 오차범위 내에서 정상 동작함을 확인하였다.
태블릿 PC의 경우 개발의 편의성 및 다양한 기능을 제공하기 위해 모바일 운영체제인 윈도우 8을 사용하는데 윈도우 계열의 경우 실시간 처리를 보장하지 못하는 문제점이 있다. 또한 기존의 상용 솔루션과 RTiK 계열의 경우 윈도우와는 독립적인 타이머 인터럽트를 생성하기 위해 사용했던 로컬 APIC 타이머 카운트 값을 얻어 올 수 없기 때문에 실시간 처리 기능을 제공하기 어려운 문제점이 있다. 따라서 본 논문에서는 태블릿 PC의 윈도우 8환경에 실시간 처리 기능을 제공하기 위해 MSR_FSB_FREQ 레지스터를 이용하여 로컬 APIC 초기 카운트 값을 설정하였다. 또한 윈도우의 저전력 기법인 C-State를 제어함으로써 생성한 타이머 인터럽트의 주기성을 보장하여 실시간 처리 기능을 제공하는 RTiK+를 설계 및 구현하였다. 구현한 RTiK+의 성능 검증 및 평가를 위해 CPU 클럭 틱의 수를 반환하는 RDTSC 명령어를 사용하여 생성된 실시간 쓰레드의 주기를 측정하였고, 1ms 주기에서 오차범위 내에서 정상 동작함을 확인하였다.
Generally in case of tablet PC's, the Windows 8 is used to support various functions or development convenience, however it cannot support real-time processing. In addition, existing commercial solutions and RTiK has a problem to support real-time processing due to impossibility of getting APIC time...
Generally in case of tablet PC's, the Windows 8 is used to support various functions or development convenience, however it cannot support real-time processing. In addition, existing commercial solutions and RTiK has a problem to support real-time processing due to impossibility of getting APIC timer count value which is used to generate timer interrupt separated from that of Windows. Thus, in this paper, we set the initial APIC count value using MSR_FSB_FREQ to support real-time processing on the Windows 8-based tablet PC's. Additionally, we deal with designing and implementing RTiK+ providing real-time processing to guarantee interrupt periods by controlling C-State which is used for low power techniques. To evaluate the performance of the proposed RTiK+, we measured the periods of generated real-time threads using RDTSC instructions which return the number of CPU clock ticks, and verified that RTiK+ operates correctly within the error ranges of 1ms.
Generally in case of tablet PC's, the Windows 8 is used to support various functions or development convenience, however it cannot support real-time processing. In addition, existing commercial solutions and RTiK has a problem to support real-time processing due to impossibility of getting APIC timer count value which is used to generate timer interrupt separated from that of Windows. Thus, in this paper, we set the initial APIC count value using MSR_FSB_FREQ to support real-time processing on the Windows 8-based tablet PC's. Additionally, we deal with designing and implementing RTiK+ providing real-time processing to guarantee interrupt periods by controlling C-State which is used for low power techniques. To evaluate the performance of the proposed RTiK+, we measured the periods of generated real-time threads using RDTSC instructions which return the number of CPU clock ticks, and verified that RTiK+ operates correctly within the error ranges of 1ms.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 RTiK+의 성능을 확인하기 위해 클럭틱의 수를 반환하는 RDTSC(Read Time Stamp Count) 명령어를 사용하여 주기를 측정하였다. [그림 11]은 실험을 위하여 실시간 쓰레드에서 구현한 코드를 나타낸 그림이다.
본 논문에서는 윈도우 8의 태블릿 PC환경에 실시간 처리 기능을 제공하기 위해 MSR_FSB_FREQ 레지스터를 제어하여 윈도우와는 독립적인 타이머 인터럽트가 발생하도록 하였다. RTiK+의 시간 결정성을 보장해 주기 위해 MSR_PKG_CST_CONFIG_CONTROL 레지스터를 이용하여 CPU의 동작모드를 제어함으로써 설정된 주기로 정상 동작하도록 설계 및 구현하였다.
본 논문에서는 이러한 문제점을 해결하기 위해 태블릿 PC의 윈도우 8환경에 실시간 처리 기능을 제공하기 위한 연구를 진행하였다. 이를 위해 CPU의 동작 주파수를 결정짓는 MSR_FSB_FREQ 레지스터를 제어하여 로컬 APIC 타이머 카운트 값 설정과 Intel에서 제공하는 CPU 전력 관리기술인 C-State를 제어함으로써 윈도우와는 독립적인 타이머 인터럽트를 발생시키는 RTiK+를 설계 및 구현하였다.
이러한 문제점을 해결하기 위해 본 논문에서는 x86기반의 모바일 운영체제인 윈도우 8에 실시간 처리 기능을 제공하기 위해 윈도우와는 독립적인 타이머 인터럽트를 통한 실시간 태스크를 생성할 수 있도록 RTiK+를 설계하였다. 이를 위해 RTiK+를 디바이스 드라이버 형태로 구현하여 별개의 HAL을 가짐으로써, 각각의 프로세서가 가지고 있는 로컬 APIC 및 커널 자원에 접근할 수 있도록 구현하였다.
현재 윈도우 운영체제에 실시간 처리 기능을 제공하기 위해 개발된 RTiK-MP에 대해 기술하고, Intel에서 윈도우에 저전력 기술을 제공하기 위한 C-State에 대해 기술한다.
제안 방법
타이머 인터럽트가 발생하면 타이머 레지스터에 설정된 벡터를 통해 해당하는 ID T의 벡터 넘버로 분기하게 된다. IDT에 저장되어 있는 인터럽트의 핸들러 주소를 참조하여 주기적으로 발생되는 타이머 인터럽트의 핸들러를 수행한다. 하지만 윈도우 8의 경우 부팅 시 초기 카운트 레지스터와 현재 카운트 레지스터의 값을 0으로 초기화하기 때문에 정확한 인터럽트 발생을 위한 주기설정 값을 얻어 올 수 없는 문제점이 있다.
본 논문에서는 윈도우 8의 태블릿 PC환경에 실시간 처리 기능을 제공하기 위해 MSR_FSB_FREQ 레지스터를 제어하여 윈도우와는 독립적인 타이머 인터럽트가 발생하도록 하였다. RTiK+의 시간 결정성을 보장해 주기 위해 MSR_PKG_CST_CONFIG_CONTROL 레지스터를 이용하여 CPU의 동작모드를 제어함으로써 설정된 주기로 정상 동작하도록 설계 및 구현하였다. 또한 사용자 영역에서 데이터의 정확성과 무결성을 보장하기 위해 실시간 쓰레드를 타이머 인터럽트가 발생되는 코어에서만 동작하도록 설계 및 구현하여, 실시간 처리 기능을 제공하도록 하였다.
[그림 8]은 데이터의 정확성과 무결성을 보장하기 위해 RTiK+에서 구현한 코드이다. 그림에서 볼 수 있듯이 실시간 쓰레드 내부에서 Process_Affinity() 함수를 호출하도록 구현하였고, 쓰레드 내부에서 윈도우 API인 SetProcessAffinityMask() 함수 호출을 통해 RTiK+가 동작하는 코어에서만 실시간 쓰레드가 동작하도록 하였다. 또한 RTiK+의 실시간 쓰레드 우선순위와 프로세스 우선순위를 가장 높은 단계로 설정하여 생성함으로써, 다른 윈도우 쓰레드들에게 CPU를 선점 받지 않도록 하였다.
[그림 9]는 RTiK+에서 사용자 영역에 실시간 처리를 제공하기 위해 구현한 코드이다. 그림에서 볼 수 있듯이 실시간 쓰레드 생성 시 윈도우에서 제공하는 가장 높은 쓰레드 우선순위인 THREAD_ PRIORITY_TIME_CRITICAL과 가장 높은 태스크 우선순위인 REALTIME_PRIORITY_CLASS로 설정하여 윈도우의 다른 쓰레드들보다 먼저 동작하도록 구현하였다.
이를 위해 RTiK+가 타이머 인터럽트를 설정하기 전에 커널 API인 MmMapIoSpace()를 사용하여 x86 아키텍처에서 제공하는 MSR_PKG_CST_ CONFIG_CONTROL 레지스터에 접근하였고, 하위 3비트의 값을 C0(000b)로 설정하여 CPU의 처리속도를 유지시킴으로써 RTiK+의 시간 결정성을 보장할 수 있도록 하였다. 더불어 RTiK+가 윈도우에서 제거되거나 비활성화 되었을 경우 이전상태로 변경되도록 구현함으로써 윈도우에 영향을 최소화하도록 설계하였다.
또한 기존의 연구했던 사용자 영역의 실시간 처리 기능을 위한 연구는 멀티코어 환경에서는 이벤트 시그널의 손실을 발생시켜 주기성 및 데이터의 정확성과 무결성을 보장하지 않는 문제점이 있다. 따라서 RTiK+는 데이터의 정확성과 무결성을 보장하기 위해 사용자 영역에서 쓰레드의 실시간 처리를 보장할 수 있도록 설계 및 구현하였다. [그림 7]은 RTiK+가 사용자 영역에 실시간 처리 기능을 제공하기 위한 동작과정을 나타낸 그림으로 사용자는 RTiK+가 제공하는 API를 이용하여 실시간 쓰레드를 생성하고, 생성된 실시간 쓰레드는 커널 영역으로부터 전달되는 주기적인 시그널을 받아 코드를 수행함으로써 쓰레드의 실시간 처리를 보장하도록 하였다[14].
이는 CPU에서 발생되는 로컬 APIC 타이머가 FSB의 동작 주파수를 통해 제어됨을 의미하고, 모바일 운영체제인 윈도우 8의 경우 하드웨어 자원인 MSR_FSB_FREQ 레지스터의 하위 3비트를 통해 CPU에 따른 FSB 동작 주파수를 제공하고 있다. 따라서 RTiK+의 로컬 APIC 타이머 인터럽트 발생 주기를 결정하기 위해 MSR_FSB_FREQ 레지스터에 접근하여 FSB의 동작 주파수 값을 구하였고, 이를 로컬 APIC 타이머를 활성화하기 전에 초기 카운트 값으로 설정하여 윈도우와는 독립적인 타이머 인터럽트를 발생시키도록 하였다. 타이머 인터럽트가 발생하게 되면 인터럽트 핸들러로 분기하게 되고 수행되는 핸들러는 지연시간을 최소화하기 위해 지연처리함수를 호출하도록 설계 및 구현하였다[13].
더불어 Idle상태나 Sleep상태의 CPU를 활성화 시키는 시간으로 인해 지연 시간이 발생함으로 시간 결정성을 보장하지 못하는 문제점이 있다. 따라서 본 논문에서는 시간 결정성을 보장하기 위해 x86 아키텍처에서 제공하는 MSR_PKG_CST_CONFIG_CONTROL 레지스터에 접근하여 C-State를 제어하도록 설계 및 구현하였다.
또한 RTiK+에서 시간 결정성이 만족됨을 보이기 위해 동일한 환경에서 C-State의 상태에 따른 주기측정을 진행하였고, 실시간 쓰레드가 윈도우의 다른 쓰레드 들에 영향을 받지 않고 CPU를 선점하여 동작함을 보이기 위해 무한으로 While문을 수행하는 워크로드를 생성하여 주기를 측정하였다.
그림에서 볼 수 있듯이 실시간 쓰레드 내부에서 Process_Affinity() 함수를 호출하도록 구현하였고, 쓰레드 내부에서 윈도우 API인 SetProcessAffinityMask() 함수 호출을 통해 RTiK+가 동작하는 코어에서만 실시간 쓰레드가 동작하도록 하였다. 또한 RTiK+의 실시간 쓰레드 우선순위와 프로세스 우선순위를 가장 높은 단계로 설정하여 생성함으로써, 다른 윈도우 쓰레드들에게 CPU를 선점 받지 않도록 하였다. [그림 9]는 RTiK+에서 사용자 영역에 실시간 처리를 제공하기 위해 구현한 코드이다.
RTiK+의 시간 결정성을 보장해 주기 위해 MSR_PKG_CST_CONFIG_CONTROL 레지스터를 이용하여 CPU의 동작모드를 제어함으로써 설정된 주기로 정상 동작하도록 설계 및 구현하였다. 또한 사용자 영역에서 데이터의 정확성과 무결성을 보장하기 위해 실시간 쓰레드를 타이머 인터럽트가 발생되는 코어에서만 동작하도록 설계 및 구현하여, 실시간 처리 기능을 제공하도록 하였다.
인터럽트 처리를 위해 IDT에 인터럽트 오브젝트를 등록함으로써 실시간 태스크를 생성할 수 있도록 설계 및 구현하였다. 또한 생성된 실시간 태스크의 시간 결정성을 보장해주기 위해 MSR_PKG_CST_CONFIG_CONTROL 레지스터를 이용하여 CPU의 동작모드를 제어함으로써 설정된 태스크 주기의 오차범위를 최소화시켜 주기성을 보장하도록 하였다[10-12].
본 논문에서는 이러한 문제점을 해결하기 위해 태블릿 PC의 윈도우 8환경에 실시간 처리 기능을 제공하기 위한 연구를 진행하였다. 이를 위해 CPU의 동작 주파수를 결정짓는 MSR_FSB_FREQ 레지스터를 제어하여 로컬 APIC 타이머 카운트 값 설정과 Intel에서 제공하는 CPU 전력 관리기술인 C-State를 제어함으로써 윈도우와는 독립적인 타이머 인터럽트를 발생시키는 RTiK+를 설계 및 구현하였다. 또한 구현한 RTiK+를 태블릿 PC에 이식하여, 최소 1ms의 주기에서 정확한 응답속도로 동작하는 것을 증명함으로써 실시간 처리 기능을 제공하는 것을 확인하였다.
[그림 6]의 (a)에서 볼 수 있듯이 C-State가 활성화되면 CPU의 사용률에 따라서 클럭이 조절됨을 알 수 있고, (b)에서 볼 수 있듯이 비활성화 상태가 되면 사용률에 상관없이 클럭값을 최대값으로 유지한다. 이를 위해 RTiK+가 타이머 인터럽트를 설정하기 전에 커널 API인 MmMapIoSpace()를 사용하여 x86 아키텍처에서 제공하는 MSR_PKG_CST_ CONFIG_CONTROL 레지스터에 접근하였고, 하위 3비트의 값을 C0(000b)로 설정하여 CPU의 처리속도를 유지시킴으로써 RTiK+의 시간 결정성을 보장할 수 있도록 하였다. 더불어 RTiK+가 윈도우에서 제거되거나 비활성화 되었을 경우 이전상태로 변경되도록 구현함으로써 윈도우에 영향을 최소화하도록 설계하였다.
이러한 문제점을 해결하기 위해 본 논문에서는 x86기반의 모바일 운영체제인 윈도우 8에 실시간 처리 기능을 제공하기 위해 윈도우와는 독립적인 타이머 인터럽트를 통한 실시간 태스크를 생성할 수 있도록 RTiK+를 설계하였다. 이를 위해 RTiK+를 디바이스 드라이버 형태로 구현하여 별개의 HAL을 가짐으로써, 각각의 프로세서가 가지고 있는 로컬 APIC 및 커널 자원에 접근할 수 있도록 구현하였다. [그림 4]는 RTiK+가 커널 자원의 접근을 통해 윈도우와는 독립적인 타이머 인터럽트를 발생시키고, 처리하기 위한 과정을 나타낸 그림이다.
멀티코어 윈도우 환경의 경우 해당 코어에서 동작하는 프로세스에게만 이벤트 발생을 알리기 때문에 이벤트 시그널 손실이 발생하게 된다. 이를 해결하기 위해 생성된 실시간 쓰레드들을 RTiK+가 이식되어 있는 코어에서만 동작함으로써 이벤트 시그널 손실을 막았다. [그림 8]은 데이터의 정확성과 무결성을 보장하기 위해 RTiK+에서 구현한 코드이다.
타이머 인터럽트를 발생시키기 전에 AP의 로컬 APIC 초기 카운트 값을 MSR_FSB_FREQ 레지스터를 이용하여 설정함으로써 윈도우와는 독립적인 타이머 인터럽트가 발생하도록 구현하였다. 인터럽트 처리를 위해 IDT에 인터럽트 오브젝트를 등록함으로써 실시간 태스크를 생성할 수 있도록 설계 및 구현하였다. 또한 생성된 실시간 태스크의 시간 결정성을 보장해주기 위해 MSR_PKG_CST_CONFIG_CONTROL 레지스터를 이용하여 CPU의 동작모드를 제어함으로써 설정된 태스크 주기의 오차범위를 최소화시켜 주기성을 보장하도록 하였다[10-12].
[그림 11]은 실험을 위하여 실시간 쓰레드에서 구현한 코드를 나타낸 그림이다. 코드에서 볼 수 있듯이 실험 방법은 1ms의 주기로 설정된 타이머 인터럽트가 발생하여 사용자 영역의 실시간 쓰레드가 수행 될 때마다 클럭 틱 값을 배열에 저장하였고, RTiK+의 수행이 완료 되었을 때 저장해 두었던 클럭 틱 값의 차이를 계산하는 방법으로 주기측정을 하였다.
그림에서 볼 수 있듯이 RTiK+는 윈도우에 실시간 처리 기능을 제공하기 위해 로컬 APIC와 커널 자원을 이용한다. 타이머 인터럽트를 발생시키기 전에 AP의 로컬 APIC 초기 카운트 값을 MSR_FSB_FREQ 레지스터를 이용하여 설정함으로써 윈도우와는 독립적인 타이머 인터럽트가 발생하도록 구현하였다. 인터럽트 처리를 위해 IDT에 인터럽트 오브젝트를 등록함으로써 실시간 태스크를 생성할 수 있도록 설계 및 구현하였다.
RTiK+가 모바일 운영체제인 윈도우 8에 정상적으로 이식되어 실시간 처리 기능을 제공함을 검증하기 위한 실험환경은 [그림 10]과 [표 2]와 같이 구성하였다. 호스트 컴퓨터에 RTiK+를 이식하였고, 호스트 컴퓨터와 타겟 컴퓨터를 USB-직렬 케이블로 연결하여 RTiK+를 디버깅 및 모니터링 하였다.
성능/효과
구현된 RTiK+의 성능을 검증하기 위해 RDTSC를 사용하였고, 생성된 실시간 쓰레드의 최소주기인 1ms를 실험 했을 경우 워크로드가 없을 때 약 3%의 오차로 동작하며, 워크로드를 적용했을 경우 약 6%의 오차로 동작하는 것을 확인하였다. 또한 워크로드를 적용했을 시 빈번한 스케줄링 인터럽트가 발생해도 윈도우의 다른 쓰레드들에 영향을 받지 않고 CPU를 선점하여 동작하는 것을 증명하였다.
표에서 볼 수 있듯이 실시간 쓰레드는 워크로드가 없을 경우 약 3%의 오차를 가지며 주기적으로 동작하는 것을 알 수 있다. 또한 10개의 워크로드를 적용했을 경우 약 6%의 오차를 가지며 주기적으로 동작함으로써 다수의 병렬 프로세스의 영향을 받지 않음을 알 수 있다.
이를 위해 CPU의 동작 주파수를 결정짓는 MSR_FSB_FREQ 레지스터를 제어하여 로컬 APIC 타이머 카운트 값 설정과 Intel에서 제공하는 CPU 전력 관리기술인 C-State를 제어함으로써 윈도우와는 독립적인 타이머 인터럽트를 발생시키는 RTiK+를 설계 및 구현하였다. 또한 구현한 RTiK+를 태블릿 PC에 이식하여, 최소 1ms의 주기에서 정확한 응답속도로 동작하는 것을 증명함으로써 실시간 처리 기능을 제공하는 것을 확인하였다.
구현된 RTiK+의 성능을 검증하기 위해 RDTSC를 사용하였고, 생성된 실시간 쓰레드의 최소주기인 1ms를 실험 했을 경우 워크로드가 없을 때 약 3%의 오차로 동작하며, 워크로드를 적용했을 경우 약 6%의 오차로 동작하는 것을 확인하였다. 또한 워크로드를 적용했을 시 빈번한 스케줄링 인터럽트가 발생해도 윈도우의 다른 쓰레드들에 영향을 받지 않고 CPU를 선점하여 동작하는 것을 증명하였다.
[표 4]는 동등한 환경에서 RTiK+의 주기를 변경하여 측정한 결과를 나타낸 표이다. 표에서 볼 수 있듯이 RTiK+의 주기를 3ms와 4ms, 5ms로 설정하여 테스트를 진행하였고, 각각의 경우 약 2%의 오차 범위 내에서 정상 동작함을 확인하였다.
[표 3]은 [그림 12]과 [그림 13]의 주기 측정결과의 최대값과 최소값을 나타낸 표이다. 표에서 볼 수 있듯이 실시간 쓰레드는 워크로드가 없을 경우 약 3%의 오차를 가지며 주기적으로 동작하는 것을 알 수 있다. 또한 10개의 워크로드를 적용했을 경우 약 6%의 오차를 가지며 주기적으로 동작함으로써 다수의 병렬 프로세스의 영향을 받지 않음을 알 수 있다.
후속연구
향후 연구과제로는 RTiK+의 높은 신뢰성을 검증하기 위해 실제 무기체계에서 사용되는 점검 장비에서의 테스트가 필요하고, 이를 바탕으로 개발자들이 RTiK+를 보다 편리하게 사용하기 위한 API 구현이 필요하다. 또한 앞으로 다양한 장비에 실시간 처리 기능을 제공하기 위하여 실시간 응용에 적용할 수 있는 확장 기능에 관한 연구진행이 필요하다.
향후 연구과제로는 RTiK+의 높은 신뢰성을 검증하기 위해 실제 무기체계에서 사용되는 점검 장비에서의 테스트가 필요하고, 이를 바탕으로 개발자들이 RTiK+를 보다 편리하게 사용하기 위한 API 구현이 필요하다. 또한 앞으로 다양한 장비에 실시간 처리 기능을 제공하기 위하여 실시간 응용에 적용할 수 있는 확장 기능에 관한 연구진행이 필요하다.
질의응답
핵심어
질문
논문에서 추출한 답변
FSB는 무엇인가?
FSB(Front-Side-Bus)는 CPU와 메모리 컨트롤러 허브간의 데이터 통로를 의미하며, CPU가 주변 장치와 통신하기 위하여 사용되는 외부버스이다. 더불어 FSB는 Multiplier를 이용하여 CPU 동작 속도를 결정짓는 기능을 제공하며, 메모리 클럭 속도에 영향을 주어 동기화를 제공한다.
기존 RTiK-MP가 윈도우 8과 같은 모바일 운영체제에서 실시간 처리 기능을 제공하는 데 문제가 있던 이유는 무엇인가?
윈도우에 실시간 처리 기능 제공을 위해 개발된 기존 RTiK-MP의 경우 앞서 언급한 바와 같이 로컬 APIC 타이머 레지스터를 이용한다. 하지만 윈도우 8과 같은 모바일 운영체제의 경우 로컬 APIC의 타이머 레지스터인 초기 카운트 레지스터가 0으로 설정되어 윈도우와 독립적인 타이머 인터럽트 발생이 불가능해졌기 때문에 실시간 처리 기능을 제공하는데 문제점이 있다.
태블릿 PC에서 모바일 운영체제인 윈도우 8을 사용하는 이유는 무엇인가?
이러한 실시간 처리 기능의 경우 무인 항공체계 및 유도 무기체계, 의료기기와 같은 다양한 분야에 적용시키기 위한 연구가 활발히 진행 중이다. 하지만 일반적으로 태블릿 PC의 경우 개발의 편의성 및 다양한 기능을 제공하기 위해 모바일 운영체제인 윈도우 8을 사용하는데, 윈도우 운영체제는 실시간 처리 기능을 제공하지 못하는 문제점이 있다. 따라서 태블릿 PC에 실시간 처리 기능을 제공하기 위해서는 상용 솔루션을 사용해야한다.
참고문헌 (14)
http://www.intervalzero.com
http://www.tenasys.com
송창인, 이승훈, 주민규, 이철훈, "멀티프로세서 윈도우즈 상에서 실시간 처리 기능 지원", 한국콘텐츠학회논문지, 제12권, 제6호, pp.68-77, 2012(6).
※ AI-Helper는 부적절한 답변을 할 수 있습니다.