KR102320810B1 - 전자 장치 및 이의 제어 방법 - Google Patents

전자 장치 및 이의 제어 방법 Download PDF

Info

Publication number
KR102320810B1
KR102320810B1 KR1020150157995A KR20150157995A KR102320810B1 KR 102320810 B1 KR102320810 B1 KR 102320810B1 KR 1020150157995 A KR1020150157995 A KR 1020150157995A KR 20150157995 A KR20150157995 A KR 20150157995A KR 102320810 B1 KR102320810 B1 KR 102320810B1
Authority
KR
South Korea
Prior art keywords
sensor
application
sensor data
executing
driver
Prior art date
Application number
KR1020150157995A
Other languages
English (en)
Other versions
KR20170055162A (ko
Inventor
정복득
안톤 야코블레프
레오넨코 바실리
이성민
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020150157995A priority Critical patent/KR102320810B1/ko
Priority to PCT/KR2016/012429 priority patent/WO2017082570A1/ko
Priority to US15/773,658 priority patent/US10846100B2/en
Publication of KR20170055162A publication Critical patent/KR20170055162A/ko
Application granted granted Critical
Publication of KR102320810B1 publication Critical patent/KR102320810B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

전자 장치 및 이의 제어 방법이 제공된다. 본 전자 장치의 제어 방법은 제1 OS가 실행되는 동안 제2 OS를 실행하기 위한 사용자 명령을 입력받고, 제2 OS가 실행되면, 센서 디바이스로부터 센서 데이터를 수신하기 위한 가상 센서 드라이버를 구성하며, 구성된 가상 센서 드라이버를 이용하여 센서 디바이스로부터 센서 데이터를 수신하고, 수신된 센서 데이터를 제2 OS의 어플리케이션으로 전송한다.

Description

전자 장치 및 이의 제어 방법{ELECTRONIC DEVICE AND METHOD OF CONTROLLING THEREOF}
본 발명은 전자 장치 및 이의 제어 방법에 관한 것으로, 더욱 상세하게는 복수의 OS가 동시에 실행되는 환경에서 센서 디바이스를 공유하는 전자 장치 및 이의 제어 방법에 관한 것이다.
다양한 전자 장치가 증가함에 따라, 여러 운영 체제(operating system)이 개발되었다. 종래 대부분의 전자 장치에서 하나의 OS를 탑재하고 있었다. 그러나 최근 기존 OS를 탑재한 전자 장치와 다른 감각으로 이용할 수 있는 고유의 OS를 탑재한 전자 장치를 사용하는 소비자가 증가하고 있는 추세이다.
그러나, 다른 OS가 탑재된 전자 장치 사이에 소프트웨어 호환성이 문제된다. 따라서, 이용자가 더 많은 OS 전용으로 나오는 각종 응용프로그램을 사용하고자 하는 필요에 따라, 하나의 전자 장치에서 멀티 OS를 실행할 수 있게 되었다.
하나의 전자 장치에 탑재된 host OS 환경에서 guest OS를 실행할 수 있게 되었다. 그러나, 전자 장치에 포함된 센서 디바이스는 하드웨어 표준 스펙이 없어 제조사에 따라 하드웨어 스펙이 상이하다. 이에 따라, guest OS 환경에서는 센서 디바이스를 이용할 수 없거나 CPU 소모량이 많고 처리 속도가 느린 문제점이 대두되고 있다.
본 발명은 상술한 문제점을 해결하기 위해 안출된 것으로, 본 발명의 목적은 복수의 OS가 동시에 실행되는 환경에서 가상 센서 드라이버를 구성하여 복수의 OS에서 센서 디바이스를 이용할 수 있는 전자 장치 및 이의 제어 방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시 예에 따른, 전자 장치의 제어 방법은, 제1 OS(operating system)가 실행되는 동안 제2 OS를 실행하기 위한 사용자 명령을 입력 받는 단계; 상기 제2 OS가 실행되면, 센서 디바이스로부터 센서 데이터를 수신하기 위한 가상 센서 드라이버를 구성하는 단계; 상기 구성된 가상 센서 드라이버를 이용하여 상기 센서 디바이스로부터 상기 센서 데이터를 수신하는 단계; 상기 수신된 센서 데이터를 상기 제2 OS의 어플리케이션으로 전송하는 단계;를 포함한다.
그리고, 상기 센서 데이터를 수신하는 단계는, 상기 제2 OS 실행 환경에서 상기 센서 디바이스를 이용하는 어플리케이션을 실행하기 위한 사용자 명령을 입력 받는 단계; 상기 어플리케이션이 실행되면, 상기 어플리케이션이 상기 제2 OS로 센서 데이터를 요청하는 단계; 상기 가상 센서 드라이버가 상기 제1 OS로부터 상기 센서 데이터를 수집하는 단계; 및 상기 수집된 센서 데이터를 상기 어플리케이션에 전달하는 단계;를 더 포함할 수 있다.
또한, 상기 센서 데이터를 수신하는 단계는, 상기 센서 데이터 수신 간격 및 민감도를 바탕으로 상기 제1 OS와 상기 제2 OS 사이의 상기 센서 데이터 전달에 이용되는 공유 버퍼의 크기를 판단하는 단계;를 더 포함할 수 있다.
그리고, 상기 가상 센서 드라이버는, 상기 센서 디바이스를 이용하는 어플리케이션이 실행되는 동안에만 활성화될 수 있다.
또한, 상기 센서 디바이스를 이용하는 어플리케이션은 회전계(gyroscope), 가속도계(accelerometer), 지피에스(Global Positioning System) 중 하나를 이용하는 어플리케이션일 수 있다.
그리고, 상기 제2 OS를 실행하기 위한 사용자 명령을 입력받는 단계는, 상기 제2 OS를 실행하기 위한 아이콘을 선택하는 사용자 명령일 수 있다.
한편, 상기 목적을 달성하기 위한 본 발명의 일 실시 예에 따른, 전자 장치는, 사용자의 명령을 입력받도록구성된 입력부; 주변 환경을 감지하도록 구성된 센서 디바이스; 및 제1 OS가 실행되는 동안 제2 OS를 실행하기 위한 사용자 명령을 입력받도록 상기 입력부를 제어하고, 제2 OS가 실행되면, 상기 제1 OS로부터 상기 센서 디바이스에서 감지된 센서 데이터를 수신하기 위한 가상 센서 드라이버를 구성하고, 상기 구성된 가상 센서 드라이버를 이용하여 상기 제1 OS로부터 수신된 센서 데이터를 상기 제2 OS의 어플리케이션으로 전송하는 프로세서;를 포함한다.
그리고, 상기 프로세서는, 상기 제2 OS 실행 환경에서 상기 센서 디바이스를 이용하는 어플리케이션을 실행하기 위한 사용자 명령을 입력받도록 상기 입력부를 제어하고, 상기 어플리케이션이 실행되면, 상기 제2 OS로 센서 데이터를 요청하고, 상기 센서 데이터를 상기 제1 OS에서 상기 가상 센서 드라이버로 전송하고, 상기 전송된 센서 데이터를 상기 어플리케이션에 전달할 수 있다.
또한, 상기 프로세서는, 상기 센서 데이터 수집 간격 및 민감도를 바탕으로 상기 제1 OS와 상기 제2 OS 사이의 상기 센서 데이터 전달에 이용되는 공유 버퍼의 크기를 판단할 수 있다.
그리고, 상기 프로세서는, 상기 센서 디바이스를 이용하는 어플리케이션이 실행되는 동안에만 상기 가상 센서 드라이버를 활성화할 수 있다.
또한, 상기 센서 디바이스를 이용하는 어플리케이션은 회전계(gyroscope), 가속도계(accelerometer), 지피에스(Global Positioning System) 중 하나를 이용하는 어플리케이션일 수 있다.
그리고, 상기 프로세서는, 상기 제2 OS를 실행하기 위한 아이콘을 선택하는 사용자 명령이 입력되면, 상기 제2 OS를 실행할 수 있다.
한편, 상기 목적을 달성하기 위한 본 발명의 일 실시 예에 따른, 멀티 OS 동시 실행 환경에서 센서 디바이스 공유 방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 기록매체에서, 상기 멀티 OS 동시 실행 환경에서 센서 디바이스 공유 방법은, 제1 OS(operating system)가 실행되는 동안 제2 OS를 실행하기 위한 사용자 명령을 입력 받는 단계; 상기 제2 OS가 실행되면, 센서 디바이스로부터 센서 데이터를 수신하기 위한 가상 센서 드라이버를 구성하는 단계; 상기 구성된 가상 센서 드라이버를 이용하여 상기 센서 디바이스로부터 상기 센서 데이터를 수신하는 단계; 상기 수신된 센서 데이터를 상기 제2 OS의 어플리케이션으로 전송하는 단계;를 포함하는 멀티 OS 동시 실행 환경에서 센서 디바이스 공유 방법이다.
상술한 바와 같이, 본 발명의 다양한 실시 예에 따라, 하나의 전자 장치에서 복수의 OS가 동시에 실행되는 환경에서 센서 디바이스를 공유할 수 있게 된다.
도 1은 본 발명의 일 실시 예에 따른, 전자 장치의 구성을 간략히 도시한 블럭도,
도 2는 본 발명의 일 실시 예에 따른, 전자 장치의 구성을 상세히 도시한 블럭도,
도 3 내지 도 6은 본 발명의 다양한 실시 예에 따른, 복수의 OS가 동시에 실행되는 환경에서 센서 디바이스를 공유하는 다양한 실시 예들을 설명하기 위한 도면들, 그리고
도 7 및 도 8은 볼 발명의 일 실시 예에 따른, 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
본 발명의 실시 예에서 사용되는 용어에 대해 간략히 설명하고, 본 실시 예들에 대해 구체적으로 설명하기로 한다.
본 발명의 실시 예에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 실시 예들의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 실시 예들에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 실시 예들의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 발명의 실시 예에서, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
또한, 본 발명의 실시 예에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
또한, 본 발명의 실시 예에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 본 발명의 실시 예에서, ‘모듈’ 혹은 ‘부’는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의‘모듈’ 혹은 복수의‘부’는 특정한 하드웨어로 구현될 필요가 있는 ‘모듈’ 혹은 ‘부’를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
또한, 본 발명의 실시 예에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다.
또한, 본 발명의 실시 예에서, 사용자 입력은, 터치 입력, 벤딩 입력, 음성 입력, 버튼 입력 및 다중(multimodal) 입력 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다.
또한, 본 발명의 실시 예에서, “어플리케이션”은 특정한 업무를 수행하기 위해 고안된 일련의 컴퓨터 프로그램 집합을 말한다. 본 발명의 실시 예에서, 어플리케이션은 다양할 수 있다. 예를 들어, 게임 어플리케이션, 동영상 재생 어플리케이션, 지도 어플리케이션, 메모 어플리케이션, 캘린더 어플리케이션, 폰 북 어플리케이션, 방송 어플리케이션, 운동 지원 어플리케이션, 결제 어플리케이션, 사진 폴더 어플리케이션 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하에서는 도면을 참조하여 본 발명에 대해 설명하기로 한다. 도 1은 본 발명의 일 실시 예에 따른, 사용자 단말의 구성을 나타내는 도면이다. 도 1에 도시된 바와 같이, 사용자 단말(100)은 입력부(110), 센서 디바이스(120) 및 프로세서(130)를 포함한다. 한편, 본 발명의 일 실시 예에 따른, 사용자 단말(100)은 스마트 폰, 스마트 워치, 태블릿 PC, 노트북 PC, 데스크 탑 등과 같은 다양한 전자 장치로 구현될 수 있다.
입력부(110)는 전자 장치(100)를 제어하기 위한 사용자 명령을 입력받는다. 특히, 입력부(110)는 제2 OS를 실행하기 위한 사용자 명령, 어플리케이션을 실행하기 위한 사용자 명령을 입력받을 수 있다.
센서 디바이스(120)는 전자 장치(100)의 주변 환경을 감지한다. 특히, 센서 디바이스(120)는 전자 장치(100)의 회전 움직임을 감지할 수 있는 자이로 센서, 가속 움직임을 감지할 수 있는 가속도 센서, 위치 정보를 감지할 수 있는 GPS 센서, 압력 센서, 노이즈 센서 등과 같은 다양한 센서를 포함할 수 있다.
프로세서(130)는 전자 장치(100)의 전반적인 동작을 제어한다. 특히, 프로세서(130)는 제1 OS(operating system)가 실행되는 동안 제2 OS가 실행되면, 센서 디바이스로부터 센서 데이터를 수신하기 위한 가상 센서 드라이버를 구성할 수 있다. 그리고, 프로세서(130)는 구성된 가상 센서 드라이버를 이용하여 센서 디바이스로부터 센서 데이터를 수신하여 제2 OS에서 실행되는 어플리케이션으로 전송할 수 있다.
구체적으로, 프로세서(130)는 제1 OS가 실행되는 동안 제2 OS를 실행하기 위한 사용자 명령을 입력받도록 입력부(110)를 제어할 수 있다. 본 발명의 일 실시 예에 따르면, 제2 OS를 실행하기 위하여 아이콘을 선택하는 사용자 명령이 입력되면, 프로세서(130)는 제2 OS를 실행하기 위한 사용자 명령이 입력된 것으로 판단할 수 있다. 이때, 제1 OS는 전자 장치(100)의 host OS이고, 제2 OS는 guest OS 일 수 있다. 예를 들어, 안드로이드에서 동작하는 전자 장치에서, 제1 OS는 안드로이드일 수 있고, 제2 OS는 윈도우 등일 수 있다.
그리고, 프로세서(130)는 제2 OS가 실행되면, 센서 디바이스로부터 센서 데이터를 수신하기 위한 가상 센서 드라이버를 구성할 수 있다. 그리고, 프로세서(130)는 센서 디바이스를 이용하는 어플리케이션이 실행되는 동안에만 가상 센서 드라이버를 활성화 시킬 수 있다. 센서 디바이스를 이용하는 어플리케이션이 실행되지 않는 동안 가상 센서 드라이버가 활성화하지 않음으로써 전자 장치(100)의 전력 소모량 및 컴퓨팅 오버헤드(computing overhead)를 최소화할 수 있다.
그리고, 프로세서(130)는 구성된 가상 센서 드라이버를 이용하여 센서 데이터를 센서 디바이스로부터 제2 OS로 전달할 수 있다. 구체적으로, 프로세서(130)는 제2 OS 실행 환경에서 센서 디바이스를 이용하는 어플리케이션을 실행하기 위한 사용자 명령을 입력받도록 입력부(110)를 제어할 수 있다. 이때, 센서 디바이스를 이용하는 어플리케이션은 자이로 센서를 이용하는 어플리케이션, 가속도 센서를 이용하는 어플리케이션, GPS를 이용하는 어플리케이션 중 하나일 수 있다. 그리고, 어플리케이션을 실행하기 위한 사용자 명령이 입력되면, 프로세서(130)는 제2 OS 실행 환경에서 센서 디바이스를 이용하는 어플리케이션을 실행할 수 있다. 그리고, 프로세서(130)는 제2 OS에게 센서 데이터를 요청하는 어플리케이션의 요청을 전달할 수 있다. 어플리케이션의 요청이 전달되면, 프로세서(130)는 제1 OS로부터 센서 데이터를 가상 센서 드라이버로 전달할 수 있다. 그리고, 프로세서(130)는 센서 데이터를 어플리케이션에 전달할 수 있다.
또한, 프로세서(130)는 센서 데이터 수신 간격 및 민감도를 바탕으로 제1 OS와 제2 OS 사이의 센서 데이터 전달에 이용되는 공유 버퍼의 크기를 판단할 수 있다. 예를 들어, 높은 민감도(구체적으로, 전자 장치(100)가 기 설정된 값 이상 움직인 경우, 자이로 센서가 이동 값을 인식하는 것으로 설정된 경우, 기 설정된 값이 작을수록 민감도가 높고, 기 설정된 값이 클수록 민감도가 낮은 것일 수 있다.)가 요구되는 어플리케이션이 실행되는 경우, 프로세서(130)는 낮은 민감도가 요구되는 어플리케이션이 실행되는 경우보다 제1 OS와 제2 OS 사이의 센서 데이터 전달에 이용되는 공유 버퍼의 크기를 크게 할 수 있다. 또 다른 예로, 프로세서(130)는 어플리케이션이 요청하는 센서 데이터의 수신 간격이 좁을수록 제1 OS와 제2 OS 사이의 센서 데이터 전달에 이용되는 공유 버퍼의 크기를 크게 할 수 있다.
이하에서는 도 2 내지 도 6을 참조하여 본 발명의 다양한 실시 예에 대해 설명하기로 한다. 도 2는 본 발명의 일 실시 예에 따른, 전자 장치(200)의 구성을 자세히 도시한 블럭도이다. 도 2에 도시된 바와 같이, 전자 장치(200)는 디스플레이부(210), 오디오 출력부(220), 통신부(230), 저장부(240), 감지부(250), 입력부(260) 및 프로세서(270)를 포함한다.
한편, 도 2는 전자 장치(200)가 입력 기능, 송수신 기능, 디스플레이 기능 등과 같이 다양한 기능을 구비한 장치인 경우를 예로 들어 도시한 것으로, 각종 구성 요소들을 종합적으로 도시한 것이다. 따라서, 실시 예에 따라서는, 도 2에 도시된 구성 요소 중 일부는 생략 또는 변경될 수 있고, 다른 구성 요소가 더 추가될 수도 있다.
디스플레이부(210)는 영상 수신부(미도시)로부터 수신한 영상 데이터를 영상 처리부(미도시)에서 처리한 비디오 프레임 및 그래픽 처리부(273)에서 생성된 다양한 화면 중 적어도 하나를 디스플레이한다.
오디오 출력부(220)는 오디오 처리부(미도시)에 의해 디코딩이나 증폭, 노이즈 필터링과 같은 다양한 처리 작업이 수행된 각종 오디오 데이터뿐만 아니라 각종 알림 음이나 음성 메시지를 출력하는 구성이다. 특히, 오디오 출력부(220)는 스피커로 구현될 수 있으나, 이는 일 실시 예에 불과할 뿐, 오디오 데이터를 출력할 수 있는 출력 단자로 구현될 수 있다.
통신부(230)는 다양한 유형의 통신방식에 따라 다양한 유형의 외부 기기와 통신을 수행하는 구성이다. 통신부(230)는 와이파이 칩, 블루투스 칩, NFC칩, 무선 통신 칩 등과 같은 다양한 통신 칩을 포함할 수 있다. 이때, 와이파이 칩, 블루투스 칩, NFC 칩은 각각 WiFi 방식, 블루투스 방식, NFC 방식으로 통신을 수행한다. 이 중 NFC 칩은 135kHz, 13.56MHz, 433MHz, 860~960MHz, 2.45GHz 등과 같은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC(Near Field Communication) 방식으로 동작하는 칩을 의미한다. 와이파이 칩이나 블루투스 칩을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다. 무선 통신 칩은 IEEE, 지그비, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evoloution) 등과 같은 다양한 통신 규격에 따라 통신을 수행하는 칩을 의미한다.
저장부(240)는 전자 장치(200)를 구동하기 위한 다양한 모듈을 저장한다. 예를 들어, 저장부(240)에는 베이스 모듈, 센싱 모듈, 통신 모듈, 프리젠테이션 모듈, 웹 브라우저 모듈, 서비스 모듈을 포함하는 소프트웨어가 저장될 수 있다. 이때, 베이스 모듈은 전자 장치(200)에 포함된 각 하드웨어들로부터 전달되는 신호를 처리하여 상위 레이어 모듈로 전달하는 기초 모듈이다. 센싱 모듈은 각종 센서들로부터 정보를 수집하고, 수집된 정보를 분석 및 관리하는 모듈로서, 얼굴 인식 모듈, 음성 인식 모듈, 모션 인식 모듈, NFC 인식 모듈 등을 포함할 수도 있다. 프리젠테이션 모듈은 디스플레이 화면을 구성하기 위한 모듈로서, 멀티미디어 컨텐츠를 재생하여 출력하기 위한 멀티미디어 모듈, UI 및 그래픽 처리를 수행하는 UI 렌더링 모듈을 포함할 수 있다. 통신 모듈은 외부와 통신을 수행하기 위한 모듈이다. 웹 브라우저 모듈은 웹 브라우징을 수행하여 웹 서버에 액세스하는 모듈을 의미한다. 서비스 모듈은 다양한 서비스를 제공하기 위한 각종 어플리케이션을 포함하는 모듈이다.
상술한 바와 같이, 저장부(240)는 다양한 프로그램 모듈들을 포함할 수 있으나, 각종 프로그램 모듈들은 전자 장치(200)의 종류 및 특성에 따라 일부 생략되거나 변형 또는 추가될 수 있음은 물론이다. 가령, 상술한 전자 장치(200)가 태블릿 PC로 구현된 경우, 베이스 모듈에는 GPS 기반의 위치를 판단하기 위한 위치 판단 모듈을 더 포함하며, 센싱 모듈에는 사용자의 동작을 감지하는 센싱 모듈을 더 포함할 수 있다.
한편, 본 발명의 일 실시예에서, 저장부(240)는 프로세서(270) 내 롬(272), 램(271) 또는 전자 장치(200)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함하여 정의될 수 있다.
센서 디바이스(250)는 전자 장치(200)의 주변 환경을 감지한다. 특히, 감지부(250)는 위치 정보를 감지할 수 있는 GPS 센서, 전자 장치(200)의 움직임을 감지할 수 있는 움직임 감지 센서(예를 들어, 자이로 센서, 가속도 센서 등), 압력 센서, 노이즈 센서 등과 같은 다양한 센서를 포함할 수 있다.
입력부(260)는 전자 장치(200)를 제어하기 위한 사용자 명령을 입력받는다. 특히, 제2 OS를 실행하기 위한 사용자 명령 및 제2 OS 실행 환경에서 센서 디바이스를 이용하는 어플리케이션을 실행하기 위한 사용자 명령을 입력받는다. 한편, 입력부(260)는 사용자 명령을 입력받기 위해 터치 입력부, 버튼 입력부, 마이크 등의 음성 입력부, 모션 입력부, 키보드, 마우스 등과 같은 다양한 입력 장치를 포함할 수 있다.
프로세서(270)는 도 2에 도시된 바와 같이, RAM(271), ROM(272), 그래픽 처리부(273), 메인 CPU(274), 제1 내지 n 인터페이스(275-1 ~ 275-n), 버스(276)를 포함한다. 이때, RAM(271), ROM(272), 그래픽 처리부(273), 메인 CPU(274), 제1 내지 n 인터페이스(275-1 ~ 275-n) 등은 버스(276)를 통해 서로 연결될 수 있다.
ROM(272)에는 시스템 부팅을 위한 명령어 세트 등이 저장된다. 턴 온 명령이 입력되어 전원이 공급되면, 메인 CPU(274)는 ROM(272)에 저장된 명령어에 따라 저장부(240)에 저장된 O/S를 RAM(271)에 복사하고, O/S를 실행시켜 시스템을 부팅시킨다. 부팅이 완료되면, 메인 CPU(274)는 저장부(240)에 저장된 각종 어플리케이션 프로그램을 RAM(271)에 복사하고, RAM(271)에 복사된 어플리케이션 프로그램을 실행시켜 각종 동작을 수행한다.
그래픽 처리부(273)는 연산부(미도시) 및 렌더링부(미도시)를 이용하여 포인터, 아이콘, 이미지, 텍스트 등과 같은 다양한 객체를 포함하는 화면을 생성한다. 연산부는 입력부로부터 수신된 제어 명령을 이용하여 화면의 레이아웃에 따라 각 객체들이 표시될 좌표값, 형태, 크기, 컬러 등과 같은 속성값을 연산한다. 렌더링부는 연산부에서 연산한 속성값에 기초하여 객체를 포함하는 다양한 레이아웃의 화면을 생성한다. 렌더링부에서 생성된 화면은 디스플레이부(210)의 디스플레이 영역 내에 표시된다.
메인 CPU(274)는 저장부(240)에 액세스하여, 저장부(240)에 저장된 O/S를 이용하여 부팅을 수행한다. 그리고, 메인 CPU(274)는 저장부(240)에 저장된 각종 프로그램, 컨텐츠, 데이터 등을 이용하여 다양한 동작을 수행한다.
제1 내지 n 인터페이스(275-1 내지 275-n)는 상술한 각종 구성요소들과 연결된다. 인터페이스들 중 하나는 네트워크를 통해 외부 장치와 연결되는 네트워크 인터페이스가 될 수도 있다.
특히, 제1 OS가 실행되는 동안 제2 OS가 실행되면, 프로세서(270)는 센서 디바이스(250)로부터 센서 데이터를 수신하기 위한 가상 센서 드라이버를 구성한다. 그리고, 프로세서(270)는 구성된 가상 센서 드라이버를 이용하여 센서 디바이스로부터 제2 OS로 센서 데이터를 전달한다. 그리고, 프로세서(270)는 제2 OS로부터 제2 OS에서 실행되는 어플리케이션으로 센서 데이터를 전달한다.
구체적으로, 프로세서(270)는 제1 OS가 실행되는 동안 입력부(260)를 통해 제2 OS를 실행하기 위한 사용자 명령을 입력받는다. 예를 들어, 도 3에 도시된 바와 같이, 대기 화면에 디스플레이된 제2 OS 실행 아이콘(310)을 선택하기 위한 사용자 명령이 입력되면, 프로세서(270)는 제2 OS를 실행할 수 있다. 제2 OS를 실행하기 위하여 아이콘(310)을 선택하는 사용자 명령을 입력받는 것은 일 실시 예에 불과할 뿐, 음성 인식을 통해 제2 OS를 실행하는 등 다양한 방법을 통해 제2 OS를 실행할 수 있다.
그리고, 도 4 및 도 5에 도시된 바와 같이, 제2 OS가 실행되면, 프로세서(270)는 센서 데이터를 수신하기 위한 가상 센서 드라이버를 구성할 수 있다. 구체적으로, 프로세서(270)는 split 드라이버 기반의 가상화 방식을 이용하여 제2 OS에 가상 센서 드라이버를 구성할 수 있다. 도 4에 도시된 바와 같이, 프로세서(270)는 제1 OS(410)에 SensorHelper(420) 및 Sensors Backend(430)을 구성할 수 있다. Sensors Backend(430)는 센서 디바이스로부터 센서 데이터를 전달받을 수 있다. 센서 디바이스로부터 센서 데이터를 전달받으면, Sensors Backend(430)는 제2 OS에 구성된 VirtlO Queue Frontend로 센서 데이터를 전달할 수 있다. 또는, Sensors Backend(430)와 VirtlO Queue Frontend는 Sensors Backend(430)와 VirtlO Queue Frontend 사이의 VirtlO Queue를 통해 센서 데이터를 주고 받을 수 있다.
그리고, 도 5에 도시된 바와 같이, 프로세서(270)는 제2 OS(510)에 UMDF(user-mode driver framework) Sensors Driver(520)를 구성할 수 있다. UMMF Sensors Driver(520)는 VirtlO Queue Frontend를 이용하여 Sensors Backend(430)와 센서 데이터를 주고 받을 수 있다. 그리고, UMMF Sensors Driver(520)는 VirtlO Queue Frontend를 이용하여 제2 OS에서 실행되는 어플리케이션에 센서 데이터를 전달하는 등의 직접적인 상호 작용을 할 수 있다.
그리고, 프로세서(270)는 도 6에 도시된 바와 같이, 제1 OS(610)와 제2 OS(620) 간의 센서 데이터를 전달할 수 있다. 예를 들어, 프로세서(270)는 제1 OS가 실행되는 동안 제2 OS를 실행하기 위한 사용자 명령을 입력받도록 입력부(260)를 제어할 수 있다. 그리고, 프로세서(270)는 제2 OS가 실행되는 동안 지도 어플리케이션을 실행하기 위한 사용자 명령을 입력받도록 입력부(260)를 제어할 수 있다. 지도 어플리케이션이 실행되면, 프로세서(270)는 GPS로부터 위치 데이터를 수신하기 위한 가상 센서 드라이버를 구성할 수 있다. 그리고, 프로세서(270)는 가상 센서 드라이버를 이용하여 GPS로부터 위치 데이터를 제2 OS로 전달할 수 있으며, 제2 OS로 전달된 위치 데이터를 제2 OS에서 실행된 지도 어플리케이션으로 전달할 수 있다.
또 다른 예로, 프로세서(270)는 제1 OS가 실행되는 동안 제2 OS를 실행하기 위한 사용자 명령을 입력받도록 입력부(260)를 제어할 수 있다. 그리고, 프로세서(270)는 제2 OS가 실행되는 동안 움직임 센서(자이로 센서 및 가속도 센서 중 적어도 하나)를 이용하는 게임 어플리케이션을 실행하기 위한 사용자 명령을 입력받도록 입력부(260)를 제어할 수 있다. 게임 어플리케이션이 실행되면, 프로세서(270)는 자이로 센서 및 가속도 센서 중 적어도 하나로부터 움직임 데이터를 수신하기 위한 가상 센서 드라이버를 구성할 수 있다. 그리고, 프로세서(270)는 가상 센서 드라이버를 이용하여 자이로 센서 및 가속도 센서 중 적어도 하나로부터 움직임 데이터를 제2 OS로 전달할 수 있으며, 제2 OS로 전달된 움직임 데이터를 제2 OS에서 실행된 게임 어플리케이션으로 전달할 수 있다. 따라서, 게임 어플리케이션은 전달된 움직임 데이터를 바탕으로 자이로 센서 및 가속도 센서 중 적어도 하나를 이용한 것과 같은 결과를 제공할 수 있다.
본 발명의 일 실시 예에 따르면, 프로세서(270)는 센서 디바이스를 이용하는 어플리케이션이 실행되는 동안에만 가상 센서 드라이버를 활성화 시킬 수 있다. 센서 디바이스를 이용하는 어플리케이션이 실행되지 않는 동안 가상 센서 드라이버가 활성화하지 않음으로써 전자 장치(100)의 전력 소모량 및 컴퓨팅 오버헤드(computing overhead)를 최소화할 수 있다.
본 발명의 또 다른 실시 예에 따르면, 프로세서(270)는 센서 데이터 수신 간격 및 민감도를 바탕으로 제1 OS와 제2 OS 사이의 센서 데이터 전달에 이용되는 공유 버퍼의 크기를 판단할 수 있다. 예를 들어, 높은 민감도가 요구되는 어플리케이션이 실행되는 경우, 프로세서(130)는 낮은 민감도가 요구되는 어플리케이션이 실행되는 경우보다 제1 OS와 제2 OS 사이의 센서 데이터 전달에 이용되는 공유 버퍼의 크기를 크게 할 수 있다.
이하에서는 도 7을 참조하여 본 발명의 일 실시 예에 따른, 전자 장치(100)의 제어 방법을 설명하기로 한다.
우선, 전자 장치(100)는 제1 OS 실행 환경에서 제2 OS 실행 명령을 입력받는다(S710).
그리고, 제2 OS가 실행되어 제1 OS와 제2 OS의 동시 실행 환경이 되면, 전자 장치(100)는 센서 디바이스로부터 센서 데이터를 수신하기 위한 가상 센서 드라이버를 구성한다(S720). 이때, 전자 장치(100)는 제2 OS에서 센서 디바이스를 이용하는 어플리케이션이 실행되는 동안에만 가상 센서 드라이버를 활성화할 수 있다.
그리고, 전자 장치(100)는 가상 센서 드라이버를 이용하여 센서 디바이스로부터 제2 OS로 센서 데이터를 전달한다(S730). 그리고, 전자 장치(100)는 센서 데이터의 수신 간격 및 민감도를 바탕으로 제1 OS와 제2 OS 사이의 센서 데이터 전달에 이용되는 공유 버퍼의 크기를 판단할 수 있다. 이때, 센서 데이터는 센서 디바이스에서 감지한 전자 장치(100)의 위치, 움직임, 가속도 등을 나타내는 데이터일 수 있다.
그리고, 전자 장치(100)는 제2 OS에 전달된 센서 데이터를 제2 OS 환경에서 실행되는 어플리케이션으로 전달할 수 있다(S740).
이하에서는 도 8을 참조하여 본 발명의 일 실시 예에 따른, 가상 센서 드라이버를 이용하여 센서 디바이스로부터 제2 OS로 센서 데이터를 전달하는 방법을 설명하기로 한다.
우선, 제1 OS와 제2 OS가 동시에 실행되고 있는 동안 제2 OS 환경에서 센서 디바이스를 이용하는 어플리케이션을 실행하기 위한 사용자 명령이 입력되면, 전자 장치(100)는 제2 OS 환경에서 센서 디바이스를 이용하는 어플리케이션을 실행한다(S810).
그리고, 어플리케이션이 실행되는 동안 센서 데이터를 이용하는 동작이 수행되면, 전자 장치(100)는 어플리케이션의 센서 데이터 요청을 제2 OS로 전달한다(S820).
그리고, 전자 장치(100)는 가상 센서 드라이버를 이용하여 제1 OS로부터 제2 OS로 센서 데이터를 전달한다(S830). 이때, 센서 데이터는 센서 디바이스에서 감지한 전자 장치(100)의 위치, 움직임, 가속도 등을 나타내는 데이터일 수 있다.
그리고, 전자 장치(100)는 제2 OS에 전달된 센서 데이터를 제2 OS 환경에서 실행되는 어플리케이션으로 전달한다(S840).
상술한 바와 같은 본 발명의 다양한 실시 예에 의해, 제2 OS 실행 환경에서도 센서 디바이스를 이용할 수 있게 된다. 따라서, 복수의 OS 동시 실행 환경에서 센서 디바이스를 공유할 수 있다.
한편, 상술한 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 방법에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
본 실시 예와 관련된 기술 분야에서 통상의 지식을 가진 자는 상기된 기재의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시 방법들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100: 전자 장치
110: 입력부
120: 센서 디바이스
130: 프로세서

Claims (13)

  1. 전자 장치의 제어 방법에 있어서,
    제1 OS(operating system) 실행 중, 제2 OS를 실행하기 위한 사용자 명령을 입력 받는 단계;
    상기 제2 OS 실행 후, 센서 디바이스로부터 센서 데이터를 수신하기 위한 가상 센서 드라이버를 구성하는 단계;
    상기 구성된 가상 센서 드라이버를 이용하여 상기 센서 디바이스로부터 상기 센서 데이터를 수신하는 단계;
    상기 수신된 센서 데이터를 상기 제2 OS의 어플리케이션으로 전송하는 단계;를 포함하는 전자 장치의 제어 방법.
  2. 제1항에 있어서,
    상기 센서 데이터를 수신하는 단계는,
    상기 제2 OS 실행 환경에서 상기 센서 디바이스를 이용하는 어플리케이션을 실행하기 위한 사용자 명령을 입력 받는 단계;
    상기 어플리케이션이 실행되면, 상기 어플리케이션이 상기 제2 OS로 센서 데이터를 요청하는 단계;
    상기 가상 센서 드라이버가 상기 제1 OS로부터 상기 센서 데이터를 수집하는 단계; 및
    상기 수집된 센서 데이터를 상기 어플리케이션에 전달하는 단계;를 더 포함하는 것을 특징으로 하는 전자 장치의 제어 방법.
  3. 제1항에 있어서,
    상기 센서 데이터를 수신하는 단계는,
    상기 센서 데이터 수신 간격과 민감도 중 적어도 하나를 바탕으로 상기 제1 OS와 상기 제2 OS 사이의 상기 센서 데이터 전달에 이용되는 공유 버퍼의 크기를 판단하는 단계;를 더 포함하는 것을 특징으로 하는 전자 장치의 제어 방법.
  4. 제1항에 있어서,
    상기 가상 센서 드라이버는,
    상기 센서 디바이스를 이용하는 어플리케이션이 실행되는 동안에만 활성화 되는 것을 특징으로 하는 전자 장치의 제어 방법.
  5. 제1항에 있어서,
    상기 센서 디바이스를 이용하는 어플리케이션은 회전계(gyroscope), 가속도계(accelerometer), 지피에스(Global Positioning System) 중 하나를 이용하는 어플리케이션인 것을 특징으로 하는 전자 장치의 제어 방법.
  6. 제1항에 있어서,
    상기 제2 OS를 실행하기 위한 사용자 명령을 입력받는 단계는,
    상기 제2 OS를 실행하기 위한 아이콘을 선택하는 사용자 명령인 것을 특징으로 하는 전자 장치의 제어 방법.
  7. 전자 장치에 있어서,
    사용자의 명령을 입력받도록구성된 입력부;
    주변 환경을 감지하도록 구성된 센서 디바이스; 및
    제1 OS가 실행되는 동안 제2 OS를 실행하기 위한 사용자 명령을 입력받도록 상기 입력부를 제어하고, 제2 OS가 실행되면, 상기 제1 OS로부터 상기 센서 디바이스에서 감지된 센서 데이터를 수신하기 위한 가상 센서 드라이버를 구성하고, 상기 구성된 가상 센서 드라이버를 이용하여 상기 제1 OS로부터 수신된 센서 데이터를 상기 제2 OS의 어플리케이션으로 전송하는 프로세서;를 포함하는 전자 장치.
  8. 제7항에 있어서,
    상기 프로세서는,
    상기 제2 OS 실행 환경에서 상기 센서 디바이스를 이용하는 어플리케이션을 실행하기 위한 사용자 명령을 입력받도록 상기 입력부를 제어하고, 상기 어플리케이션이 실행되면, 상기 제2 OS로 센서 데이터를 요청하고, 상기 센서 데이터를 상기 제1 OS에서 상기 가상 센서 드라이버로 전송하고, 상기 전송된 센서 데이터를 상기 어플리케이션에 전달하는 것을 특징으로 하는 전자 장치.
  9. 제7항에 있어서,
    상기 프로세서는,
    상기 센서 데이터 수집 간격과 민감도 중 적어도 하나를 바탕으로 상기 제1 OS와 상기 제2 OS 사이의 상기 센서 데이터 전달에 이용되는 공유 버퍼의 크기를 판단하는 것을 특징으로 하는 전자 장치.
  10. 제7항에 있어서,
    상기 프로세서는,
    상기 센서 디바이스를 이용하는 어플리케이션이 실행되는 동안에만 상기 가상 센서 드라이버를 활성화하는 것을 특징으로 하는 전자 장치.
  11. 제7항에 있어서,
    상기 센서 디바이스를 이용하는 어플리케이션은 회전계(gyroscope), 가속도계(accelerometer), 지피에스(Global Positioning System) 중 하나를 이용하는 어플리케이션인 것을 특징으로 하는 전자 장치.
  12. 제7항에 있어서,
    상기 프로세서는,
    상기 제2 OS를 실행하기 위한 아이콘을 선택하는 사용자 명령이 입력되면, 상기 제2 OS를 실행하는 것을 특징으로 하는 전자 장치.
  13. 멀티 OS 동시 실행 환경에서 센서 디바이스 공유 방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 기록매체에 있어서,
    상기 멀티 OS 동시 실행 환경에서 센서 디바이스 공유 방법은,
    제1 OS(operating system) 실행 중, 제2 OS를 실행하기 위한 사용자 명령을 입력 받는 단계;
    상기 제2 OS 실행 후, 센서 디바이스로부터 센서 데이터를 수신하기 위한 가상 센서 드라이버를 구성하는 단계;
    상기 구성된 가상 센서 드라이버를 이용하여 상기 센서 디바이스로부터 상기 센서 데이터를 수신하는 단계;
    상기 수신된 센서 데이터를 상기 제2 OS의 어플리케이션으로 전송하는 단계;를 포함하는 멀티 OS 동시 실행 환경에서 센서 디바이스 공유 방법인 컴퓨터 판독가능 기록매체.
KR1020150157995A 2015-11-11 2015-11-11 전자 장치 및 이의 제어 방법 KR102320810B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150157995A KR102320810B1 (ko) 2015-11-11 2015-11-11 전자 장치 및 이의 제어 방법
PCT/KR2016/012429 WO2017082570A1 (ko) 2015-11-11 2016-11-01 전자 장치 및 이의 제어 방법
US15/773,658 US10846100B2 (en) 2015-11-11 2016-11-11 Electronic device and method for controlling same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150157995A KR102320810B1 (ko) 2015-11-11 2015-11-11 전자 장치 및 이의 제어 방법

Publications (2)

Publication Number Publication Date
KR20170055162A KR20170055162A (ko) 2017-05-19
KR102320810B1 true KR102320810B1 (ko) 2021-11-02

Family

ID=58695599

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150157995A KR102320810B1 (ko) 2015-11-11 2015-11-11 전자 장치 및 이의 제어 방법

Country Status (3)

Country Link
US (1) US10846100B2 (ko)
KR (1) KR102320810B1 (ko)
WO (1) WO2017082570A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11153376B2 (en) * 2017-02-23 2021-10-19 Centurylink Intellectual Property Llc Systems and methods for an internet of things computing shell

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012044792A2 (en) 2010-10-01 2012-04-05 Imerj, Llc Cross-environment user interface mirroring
US20140317185A1 (en) 2013-04-19 2014-10-23 LivingTree Systems and Methods for a Contextual Social Network
US20140366025A1 (en) 2013-06-07 2014-12-11 American Megatrends, Inc. Methods, Devices and Computer Readable Storage Devices for Emulating Rotation Events in a Guest Operating System from a Host Operating System
US20150317185A1 (en) 2014-05-05 2015-11-05 Pegatron Corporation Method for switching operating system and electronic device using the method

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020103996A1 (en) * 2001-01-31 2002-08-01 Levasseur Joshua T. Method and system for installing an operating system
US8166349B2 (en) 2008-12-18 2012-04-24 Vmware, Inc. Communicating with USB devices after a computer system crash
US9354900B2 (en) * 2011-04-28 2016-05-31 Google Technology Holdings LLC Method and apparatus for presenting a window in a system having two operating system environments
KR20130014203A (ko) 2011-07-29 2013-02-07 주식회사 핑거 스마트 기기에서의 다중 운영체제 플랫폼
US9547509B2 (en) 2012-02-23 2017-01-17 Samsung Electronics Co., Ltd. System and method for information acquisition of wireless sensor network data as cloud based service
CN102662646B (zh) 2012-03-01 2015-09-23 华为技术有限公司 传感数据处理方法及计算节点
US9158564B2 (en) * 2012-04-30 2015-10-13 American Megatrends, Inc. Virtual service processor stack
US20140366021A1 (en) 2013-06-07 2014-12-11 American Megatrends, Inc. Methods, Devices and Computer Readable Storage Devices for Emulating an Accelerometer in a Guest Operating System from a Host Operating System
US9378038B2 (en) 2013-06-07 2016-06-28 American Megatrends, Inc. Methods, devices and computer readable storage devices for emulating a gyroscope in a guest operating system from a host operating system
KR102033009B1 (ko) 2013-09-13 2019-10-16 한국전자통신연구원 가상 물리 시스템 및 그의 가상 머신 모니터링 방법
US9924006B2 (en) * 2014-10-31 2018-03-20 Hand Held Products, Inc. Adaptable interface for a mobile computing device
CN104484229A (zh) * 2014-12-29 2015-04-01 宇龙计算机通信科技(深圳)有限公司 切换操作***的方法、装置及终端
WO2016137105A1 (en) * 2015-02-27 2016-09-01 Samsung Electronics Co., Ltd. Device and method of running multiple operating systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012044792A2 (en) 2010-10-01 2012-04-05 Imerj, Llc Cross-environment user interface mirroring
US20140317185A1 (en) 2013-04-19 2014-10-23 LivingTree Systems and Methods for a Contextual Social Network
US20140366025A1 (en) 2013-06-07 2014-12-11 American Megatrends, Inc. Methods, Devices and Computer Readable Storage Devices for Emulating Rotation Events in a Guest Operating System from a Host Operating System
US20150317185A1 (en) 2014-05-05 2015-11-05 Pegatron Corporation Method for switching operating system and electronic device using the method

Also Published As

Publication number Publication date
WO2017082570A1 (ko) 2017-05-18
US20180329715A1 (en) 2018-11-15
US10846100B2 (en) 2020-11-24
KR20170055162A (ko) 2017-05-19

Similar Documents

Publication Publication Date Title
KR102191971B1 (ko) 모바일 사용자 경험 개선을 위한 가상 머신 마이그레이션 방법 및 이를 위한 장치
JP6478181B2 (ja) 携帯端末と外部表示装置の連結運用方法及びこれを支援する装置
US10502580B2 (en) Method and apparatus for providing augmented reality function in electronic device
US20170024121A1 (en) Operating method for contents searching function and electronic device supporting the same
KR20170096408A (ko) 어플리케이션을 표시하는 방법 및 이를 지원하는 전자 장치
KR102080146B1 (ko) 휴대단말과 외부 표시장치 연결 운용 방법 및 이를 지원하는 장치
US10254883B2 (en) Electronic device for sensing pressure of input and method for operating the electronic device
WO2021196970A1 (zh) 一种创建应用快捷方式的方法、电子设备及***
WO2018223558A1 (zh) 数据处理方法及电子设备
KR20140033561A (ko) 데이터 표시 방법 및 장치
CN111602107B (zh) 一种应用退出时的显示方法及终端
CN111602381A (zh) 一种图标切换方法、显示gui的方法及电子设备
KR102327205B1 (ko) 콘텐트를 공유하는 방법 및 콘텐트 공유 시스템
EP3336675A1 (en) Electronic device and input method of electronic device
KR20110138543A (ko) 스마트 사용자 식별 모듈을 이용한 다중 운영체제 시스템 및 그 제어 방법
CN107239245B (zh) 用于输出屏幕的方法和支持该方法的电子设备
KR102319234B1 (ko) 디스플레이 장치 및 이의 제어 방법
CN112771489A (zh) 控制异构操作***和电子设备的执行的方法及其存储介质
CN108780400B (zh) 数据处理方法及电子设备
CN108351698B (zh) 用于控制电子设备中执行的应用的可穿戴电子设备和方法
KR102320810B1 (ko) 전자 장치 및 이의 제어 방법
KR102464911B1 (ko) Ui 제공 방법 및 이를 적용한 디스플레이 장치
WO2020000276A1 (zh) 一种快捷按键的控制方法及终端
US11526558B2 (en) System and method of providing accessibility to visualization tools
US11240108B1 (en) End-to-end configuration assistance for cloud services

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant