KR20180060544A - 복수의 운영체제에서 주변 장치를 구동시키는 방법 및 장치 - Google Patents

복수의 운영체제에서 주변 장치를 구동시키는 방법 및 장치 Download PDF

Info

Publication number
KR20180060544A
KR20180060544A KR1020160160128A KR20160160128A KR20180060544A KR 20180060544 A KR20180060544 A KR 20180060544A KR 1020160160128 A KR1020160160128 A KR 1020160160128A KR 20160160128 A KR20160160128 A KR 20160160128A KR 20180060544 A KR20180060544 A KR 20180060544A
Authority
KR
South Korea
Prior art keywords
operating system
peripheral device
driver
core
processor
Prior art date
Application number
KR1020160160128A
Other languages
English (en)
Other versions
KR101907441B1 (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 KR1020160160128A priority Critical patent/KR101907441B1/ko
Publication of KR20180060544A publication Critical patent/KR20180060544A/ko
Application granted granted Critical
Publication of KR101907441B1 publication Critical patent/KR101907441B1/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/4411Configuring for operating with peripheral devices; Loading of device drivers
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 복수의 운영체제에서 주변 장치를 구동시키는 방법 및 장치에 관한 발명이며, 본 발명의 일 실시예에 따른 장치는 제1 코어 및 제2 코어를 포함하는 프로세서 및 프로세서와 동작 가능하도록 연결된 주변 장치를 포함하고, 제1 코어는, 제1 운영체제를 실행하도록 구성되고, 제2 코어는, 제1 운영체제가 구동되는 동시에 제2 운영체제가 실행하도록 구성되고, 제1 운영체제 상에는 주변 장치의 초기화 동작을 수행시키기 위한 제1 드라이버가 설치되고, 제2 운영체제 상에는 주변 장치의 데이터의 입력 및 출력을 처리시키기 위한 제2 드라이버가 설치되도록 구성되며, 컴퓨터에 장착된 주변 장치 하나에 대한 처리를 기능에 따라 각각의 운영체제가 나누어 수행함으로써 각각의 운영체제에 포함된 드라이버의 이식성 문제를 해결하고, 프로세서의 처리 속도를 향상시킬 수 있는 복수의 운영체제에서 주변 장치를 구동시키는 방법 및 장치를 제공할 수 있는 효과가 있다.

Description

복수의 운영체제에서 주변 장치를 구동시키는 방법 및 장치{METHOD AND APPARATUS FOR EXECUTING PERIPHERAL DEVICES IN MULTIPLE OPERATING SYSTEMS}
본 발명은 복수의 운영체제에서 주변 장치를 구동시키는 방법 및 장치에 관한 것으로서, 보다 상세하게는 하나의 프로세서에 복수의 운영체제를 실행시키고, 동시에 실행되는 복수의 운영체제가 주변 장치의 기능 단위 별로 주변 장치를 구동시키는 방법 및 장치에 관한 것이다.
종래에는 하나의 프로세서가 하나의 운영체제를 실행한다. 또한, 하나의 운영체제는 처리 단말기에 포함된 주변 장치 예를 들어, 네트워크 인터페이스 장치, 비휘발성 저장장치, 그래픽 카드 등을 드라이버를 통해 구동한다. 예를 들어, 주변 장치가 네트워크 인터페이스 장치인 경우, 드라이버는 네트워크 인터페이스 장치를 초기화하고, 네트워크 인터페이스 장치의 구동에 필요한 데이터 입력 및 출력을 수행한다. 즉, 하나의 프로세서는 하나의 운영체제를 실행하고, 하나의 주변 장치는 하나의 드라이버를 통해 구동된다.
하나의 프로세서에 복수의 운영체제 각각에 코어를 할당하여 동시에 실행하는 경우, 복수의 운영체제는 동일한 종류의 복수의 주변 장치를 나누어 관리하기 위해 주변 장치의 개수에 따라 드라이버를 각각 구현해야한다.
예를 들어, 네트워크 인터페이스 장치를 두 개 장착한 처리 단말기의 프로세서에 두 개의 운영체제가 실행되는 경우, 각각의 운영체제가 네트워크 인터페이스 장치 하나씩 관리한다. 이 때, 두 개의 운영체제는 두 개의 네트워크 인터페이스 장치를 각각 관리할 두 개의 드라이버를 포함해야한다. 즉, 두 개의 운영체제는 네트워크 인터페이스 장치를 초기화하고, 네트워크 인터페이스 장치의 구동에 필요한 데이터를 입력하고 출력할 수 있는 드라이버를 각각 포함해야한다. 따라서, 드라이버의 구동 효율성은 떨어지며, 운영체제의 처리 속도 또한 느릴 수 있다.
[관련기술문헌]
복수의 운영체제가 설치된 디바이스를 제어하는 방법 및 디바이스 (공개특허 10-2016-0090230호)
본 발명이 해결하고자 하는 과제는 컴퓨터에 장착된 주변 장치 하나에 대한 처리를 동시에 실행되는 복수의 운영체제가 나누어 수행함으로써 프로세서의 처리 속도를 향상시킬 수 있는 복수의 운영체제에서 주변 장치를 구동시키는 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는 주변 장치 하나에 대한 처리를 동시에 실행되는 각각의 운영체제가 나누어 수행함으로써, 동시에 실행되는 복수의 운영체제가 하나의 주변 장치를 사용할 수 있는 구동 방법 및 장치를 제공하는 것이다.
발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 장치는 제1 코어와 제2 코어를 포함하는 프로세서 및 프로세서와 동작 가능하도록 연결된 주변 장치를 포함하고, 제1 코어는 제1 운영체제를 실행하도록 구성되고, 제2 코어는 제1 운영체제와 동시에 제2 운영체제를 실행하도록 구성되고, 제1 운영체제 상에는 주변 장치의 초기화 동작을 수행시키기 위한 제1 드라이버가 설치되고, 제2 운영체제 상에는 주변 장치의 데이터의 입력 및 출력을 처리시키기 위한 제2 드라이버가 설치되도록 구성된다.
본 발명의 다른 특징에 따르면, 제1 운영체제는, 범용 운영체제이고, 제2 운영체제는, 특수 목적용 운영체제이고, 주변 장치는, 네트워크 인터페이스 장치 또는 비휘발성 저장 장치일 수 있다.
본 발명의 다른 특징에 따르면, 제1 드라이버는, 제2 드라이버가 주변 장치의 데이터의 입력 및 출력을 처리하는 동안, 주변 장치에 대한 설정이 처리 가능하도록 구성될 수 있다.
본 발명의 다른 특징에 따르면, 초기화 동작은, 주변 장치에 전원을 공급하고, 주변 장치에 포함된 레지스터를 설정하고, 주변 장치의 속도, 규약 및 옵션 중 적어도 하나를 설정하는 동작을 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 제2 드라이버는, 주변 장치가 비휘발성 저장 장치인 경우 주변 장치의 읽기 및 쓰기를 수행하도록 구성될 수 있다.
본 발명의 또 다른 특징에 따르면, 제2 드라이버는, 주변 장치가 네트워크 인터페이스 장치인 경우 주변 장치의 패킷의 수신 및 발신을 수행하도록 구성될 수 있다.
본 발명의 또 다른 특징에 따르면, 장치는 제1 운영체제, 제2 운영체제, 제1 드라이버 및 제2 드라이버를 저장하도록 구성된 저장부를 더 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 제1 코어 및 제2 코어는, 멀티 커널 방식을 통해 제1 운영체제 및 제2 운영체제를 동시에 실행시키도록 구성될 수 있다.
본 발명의 또 다른 특징에 따르면, 제1 드라이버는, 데이터의 입력 및 출력을 처리시키도록 더 구성될 수 있다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 제1 코어 및 제2 코어를 포함하는 프로세서 및 프로세서와 동작 가능하도록 연결된 주변 장치를 포함하는 장치를 구동시키는 방법으로써, 제1 코어 및 제2 코어를 포함하는 프로세서 및 프로세서와 동작 가능하도록 연결된 주변 장치를 포함하는 장치를 구동시키는 방법에 있어서, 제1 코어를 통해 제1 운영체제를 실행하는 단계, 제2 코어를 통해 제1 운영체제가 구동되는 동시에 제2 운영체제를 실행하는 단계, 제1 운영체제 상에 설치된 제1 드라이버를 통해 주변 장치의 초기화 동작을 수행하는 단계 및 제2 운영체제 상에 설치된 제2 드라이버를 통해 주변 장치의 데이터의 입력 및 출력을 처리하는 단계를 포함한다.
본 발명의 다른 특징에 따르면, 제1 운영체제는, 범용 운영체제이고, 제2 운영체제는, 특수 목적용 운영체제이고, 주변 장치는, 네트워크 인터페이스 장치 또는 비휘발성 저장 장치일 수 있다.
본 발명의 또다른 특징에 따르면, 복수의 운영체제에서 주변 장치를 구동시키는 방법은 제2 드라이버가 주변 장치의 데이터의 입력 및 출력을 처리하는 동안, 제1 드라이버를 통해 주변 장치에 대한 설정을 처리하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 주변 장치의 초기화 동작을 수행시키는 단계는, 주변 장치에 전원을 공급하는 단계, 주변 장치에 포함된 레지스터를 설정하는 단계 및 주변 장치의 속도, 규약 또는 옵션 중 적어도 하나를 결정하는 단계를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 주변 장치가 비휘발성 저장 장치인 경우, 주변 장치의 데이터의 입력 및 출력을 처리하는 단계는, 제2 드라이버를 통해 주변 장치의 읽기 및 쓰기를 수행하는 단계일 수 있다.
본 발명의 또 다른 특징에 따르면, 주변 장치가 네트워크 인터페이스 장치인 경우, 주변 장치의 데이터의 입력 및 출력을 처리하는 단계는, 제2 드라이버를 통해 주변 장치의 패킷의 수신 및 발신을 수행하는 단계일 수 있다.
기타 실시예의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명은 컴퓨터에 장착된 주변 장치 하나에 대한 처리를 동시에 실행되는 복수의 운영체제가 나누어 수행함으로써 프로세서의 처리 속도를 향상시킬 수 있는 복수의 운영체제에서 주변 장치를 구동시키는 방법 및 장치를 제공할 수 있는 효과가 있다.
본 발명은 주변 장치 하나에 대한 처리를 동시에 실행되는 각각의 운영체제가 나누어 수행함으로써, 동시에 실행되는 복수의 운영체제가 하나의 주변 장치를 사용할 수 있는 구동 방법 및 장치를 제공할 수 있는 효과가 있다.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 복수의 운영체제 구동 장치의 개략적인 구성을 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 복수의 운영체제에서 주변 장치를 구동시키는 방법을 설명하기 위한 개략도이다.
도 3은 본 발명의 일 실시예에 따른 복수의 운영체제에서 주변 장치를 구동시키는 방법에 따라 복수의 운영체제에서 주변 장치를 구동시키는 절차를 도시한 순서도이다.
도 4a 및 도 4b는 본 발명의 일 실시예에 따라 제1 운영체제 및 제2 운영체제가 주변 장치를 기능별로 나누어 관리하는 것을 시간 기준으로 도시한 그래프이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예를 설명하기 위한 도면에 개시된 형상, 크기, 비율, 각도, 개수 등은 예시적인 것이므로 본 발명이 도시된 사항에 한정되는 것은 아니다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다. 본 명세서 상에서 언급된 '포함한다', '갖는다', '이루어진다' 등이 사용되는 경우, '~만'이 사용되지 않는 이상 다른 부분이 추가될 수 있다. 구성요소를 단수로 표현한 경우에 특별히 명시적인 기재 사항이 없는 한 복수를 포함하는 경우를 포함한다.
구성요소를 해석함에 있어서, 별도의 명시적 기재가 없더라도 오차 범위를 포함하는 것으로 해석한다.
비록 제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않는다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.
별도로 명시하지 않는 한 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 당업자가 충분히 이해할 수 있듯이 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.
도 1은 본 발명의 일 실시예에 따른 복수의 운영체제 구동 장치의 개략적인 구성을 도시한 블록도이다.
도 1을 참조하면, 복수의 운영체제 구동 장치 (100) 에서 하드웨어의 아키텍쳐는 제한되지 않으나 x86 또는 x64 아키텍쳐일 수 있다. 즉, 범용의 퍼스널 컴퓨터가 사용될 수 있다. x86 또는 x64 아키텍쳐를 사용함으로써, 확장이 용이하며, 호환성이 높은 시스템을 구현할 수 있다. 복수의 운영체제 구동 장치 (100) 는 복수의 운영체제를 구동하고, 주변 장치에 필요한 기능에 따라 알맞은 운영체제에 포함된 드라이버를 실행함으로써 주변 장치를 구동한다. 복수의 운영체제 구동 장치 (100) 는 프로세서 (110), 주변 장치 (120), 입력부 (130), 표시부 (140) 및 저장부 (150) 를 포함한다.
프로세서 (110) 는 복수의 코어를 포함한다. 여기서, 코어란, 프로세서 (110) 의 주요 처리 회로로, 복수 개로 존재할 수 있다. 예를 들어, 프로세서 (110) 는 2개의 코어인 듀얼 코어, 4개의 코어인 쿼터 코어, 8개의 코어인 옥타코어를 포함할 수 있다. 또한, 코어 각각에 대해 실행되는 운영체제가 할당될 수 있다. 프로세서 (110) 는 복수의 운영체제와 복수의 운영체제에 상에 설치된 각각의 드라이버를 실행하여 주변 장치 (120) 를 구동한다.
주변 장치 (120) 는 네트워크 인터페이스 장치, 비휘발성 저장 장치, 그래픽 처리 장치, USB 처리 장치, LAN 카드 등 다양한 기능을 하는 장치일 수 있다. 이 때, 주변 장치 (120) 는 프로세서 (110) 와 동작 가능하도록 연결된다. 주변 장치 (120) 는 복수의 운영체제 상에 설치된 각각의 드라이버를 통해 초기화될 수 있으며, 데이터의 입력 및 출력이 처리될 수 있다.
입력부 (130) 는 주변 장치 (120) 의 초기화 동작, 주변 장치 (120) 에 대한 설정, 주변 장치 (120) 의 읽기 및 쓰기, 패킷의 수신 및 발신에 필요한 설정을 입력받을 수 있다. 이 때, 입력부 (130) 는 키보드, 마우스 등일 수 있으나, 이에 제한되지 않는다.
표시부 (140) 는 운영체제 상에 설치된 드라이버를 통해 수행되는 초기화 동작 및 데이터의 입력 및 출력을 표시한다. 이 때, 표시부 (140) 는 LCD, LED, OLED, PDP, FED 등일 수 있으나, 이에 제한되지 않는다. 표시부 (140) 는 복수의 운영체제 구동 장치 (100) 에서 생략될 수 있다.
저장부 (150) 는 프로세서 (110) 를 통해 실행하는 운영체제 및 운영체제에 설치된 드라이버를 저장한다. 더 나아가, 저장부 (150) 는 초기화 동작, 입력 및 출력된 데이터를 저장할 수 있다.
이하에서는, 복수의 운영체제 구동 장치 (100) 에서의 주변 장치를 구동시키는 방법에 대한 보다 상세한 설명을 위해 도 2를 함께 참조한다.
도 2는 본 발명의 일 실시예에 따른 복수의 운영체제에서 주변 장치를 구동시키는 방법을 설명하기 위한 개략도이다. 설명의 편의를 위해 도 1을 참조하여 설명한다.
도 2를 참조하면, 복수의 운영체제 구동 장치 (100) 는 프로세서 (110) 및 주변 장치 (120) 를 포함한다. 이 때, 프로세서 (110) 는 제1 코어 (111) 및 제2 코어 (112) 를 포함한다.
제1 코어 (111) 는 제1 운영체제 (113) 를 실행하도록 구성된다. 이 때, 제1 운영체제 (113) 는 Linux, Windows와 같은 범용 운영체제일 수 있다. 또한, 제2 코어 (112) 는 제1 운영체제 (113) 가 구동되는 동시에 제2 운영체제 (114) 를 실행하도록 구성된다. 제2 운영체제 (114) 는 고속 패킷 전송에 특화된 PacketNgin™과 같은 Real Time Operating System을 포함하는 특수 목적용 운영체제일 수 있다. 이 때, 제1 코어 (111) 및 제2 코어 (112) 는 멀티 커널 방식을 통해 제1 운영체제 (113) 및 제2 운영체제 (114) 를 동시에 실행시키도록 구성된다. 복수의 운영체제를 동작시키기 위한 방식은 제한되지 않으며, 알려진 다양한 멀티 커널 방식이 사용될 수 있다.
제1 운영체제 (113) 상에는 주변 장치 (120) 의 초기화 동작을 수행시키기 위한 제1 드라이버 (114) 가 설치된다. 여기서, 초기화 동작이란, 주변 장치 (120) 에 전원을 공급하고, 주변 장치 (120) 에 포함된 레지스터를 설정하고, 주변 장치 (120) 의 속도, 규약 및 옵션 중 적어도 하나를 설정하는 동작을 의미한다. 또한, 제2 운영체제 (115) 상에는 주변 장치 (120) 의 데이터의 입력 및 출력을 처리시키기 위한 제2 드라이버 (116) 가 설치된다. 구체적으로, 제2 드라이버 (116) 는 주변 장치 (120) 가 비휘발성 저장 장치인 경우, 주변 장치 (120) 의 읽기 및 쓰기를 수행하도록 구성된다. 또한, 제2 드라이버 (116) 는 주변 장치 (120) 가 네트워크 인터페이스 장치인 경우, 주변 장치 (120) 의 패킷의 수신 및 발신을 수행하도록 구성된다. 제2 드라이버 (116) 가 주변 장치 (120) 의 데이터의 입력 및 출력을 처리하는 동안, 제1 드라이버 (114) 는 주변 장치 (120) 에 대한 설정을 처리 가능하도록 할 수 있다. 또한, 제1 드라이버 (114) 도 제2 드라이버 (116) 와 마찬가지로 데이터의 입력 및 출력을 처리 가능하도록 할 수 있다.
이하에서는 복수의 운영체제에서 주변 장치를 구동시키는 방법에 대한 보다 상세한 설명을 위해 도 3을 함께 참조한다.
도 3은 본 발명의 일 실시예에 따른 복수의 운영체제에서 주변 장치를 구동시키는 방법에 따라 복수의 운영체제에서 주변 장치를 구동시키는 절차를 도시한 순서도이다. 설명의 편의를 위해 도 2의 구성 요소들과 도면 부호를 참조하여 설명한다.
복수의 운영체제 구동 장치 (100) 에서는 프로세서 (110) 에 포함된 코어에 대한 물리적 할당이 진행될 수 있다. 구체적으로, 복수의 운영체제 구동 장치 (100) 에서는 실행할 운영체제에 따른 코어의 할당이 진행될 수 있다. 즉, 프로세서 (110) 에 포함된 제1 코어 (111) 는 제1 운영체제 (113) 에 할당되고, 제2 코어 (112) 는 제2 운영체제 (115) 에 할당될 수 있다. 도 3에서는 설명의 편의를 위해 운영체제 및 코어가 각각 2개인 것으로 도시되었으나, 이에 제한되지 않고, 운영체제는 2개 이상일 수 있으며, 하나의 프로세서 (110) 에는 2개 이상의 코어가 포함될 수 있다. 또한, 하나의 운영체제마다 1개 이상의 코어가 할당될 수 있다.
이어서, 복수의 운영체제 구동 장치 (100) 는 제1 코어 (111) 를 통해 제1 운영체제 (113) 를 실행시킨다 (S310).
즉, 복수의 운영체제 구동 장치 (100) 는 제1 코어 (111) 를 통해 범용 운영체제인 제1 운영체제 (113) 를 실행한다.
이어서, 복수의 운영체제 구동 장치 (100) 는 제2 코어 (112) 를 통해 제1 운영체제 (113) 가 구동되는 동시에 제2 운영체제 (115) 를 실행시킨다 (S320).
이 때, 복수의 운영체제 구동 장치 (100) 는 제2 코어 (112) 를 통해 특수 목적용 운영체제를 실행한다. 즉, 복수의 운영체제 구동 장치 (100) 는 제1 코어 (111) 및 제2 코어 (112) 를 통해 제1 운영체제 (113) 및 제2 운영체제 (115) 를 동시에 실행시킨다. 도 3에서는 단계 S310과 S320이 순차적인 것으로 도시하나, 단계 S310과 S320은 동시에 수행되는 것으로 이해되어야 한다.
이어서, 복수의 운영체제 구동 장치 (100) 는 제1 운영체제 (113) 상에 설치된 제1 드라이버 (114) 를 통해 주변 장치 (120) 의 초기화 동작을 수행시킨다 (S330).
구체적으로, 복수의 운영체제 구동 장치 (100) 는 제1 드라이버 (114) 를 통해 주변 장치 (120) 에 전원을 공급하고, 주변 장치 (120) 에 포함된 레지스터를 설정한다. 또한, 복수의 운영체제 구동 장치 (100) 는 제1 드라이버 (114) 를 통해 주변 장치 (120) 의 속도, 규약 또는 옵션 중 적어도 하나를 결정한다. 즉, 복수의 운영체제 구동 장치 (100) 는 제1 드라이버 (114) 를 통해 주변 장치 (120) 의 부팅시에 필요한 동작을 수행시킨다. 주변 장치 (120) 의 초기화 동작의 경우, 코드량이 많기 때문에 다양한 동작에 최적화된 범용 운영체제인 예를 들어, 리눅스의 드라이버가 초기화를 수행하는 것이 효율적이다.
제1 드라이버 (114) 를 통한 초기화 동작이 완료되는 경우, 복수의 운영체제 구동 장치 (100) 는 제2 드라이버 (115) 에 주변 장치 (120) 에 대한 제어권을 넘길 수 있다. 또는 제2 드라이버 (115) 는 제1 드라이버 (114) 와 주변 장치 (120) 에 대한 제어권을 공유할 수도 있다.
이어서, 복수의 운영체제 구동 장치 (100) 는 제2 운영체제 (115) 상에 설치된 제2 드라이버 (116) 를 통해 주변 장치 (120) 의 데이터의 입력 및 출력을 처리시킨다 (S340).
예를 들어, 주변 장치 (120) 가 비휘발성 저장 장치인 경우, 복수의 운영체제 구동 장치 (100) 는 제2 드라이버 (116) 를 통해 주변 장치 (120) 의 읽기 및 쓰기를 수행시킬 수 있다. 또한, 주변 장치 (120) 가 네트워크 인터페이스 장치인 경우, 복수의 운영체제 구동 장치 (100) 는 제2 드라이버 (116) 를 통해 주변 장치 (120) 의 패킷의 수신 및 발신을 수행시킬 수 있다.
몇몇 실시예에서, 제2 드라이버 (116) 가 주변 장치 (120) 의 데이터의 입력 및 출력을 처리하는 동안, 복수의 운영체제 구동 장치 (100) 는 제1 드라이버 (114) 를 통해 주변 장치 (120) 에 대한 설정을 처리가능하도록 할 수 있다. 예를 들어, 주변 장치 (120) 가 네트워크 인터페이스 장치인 경우, 복수의 운영체제 구동 장치 (100) 는 제1 드라이버 (114) 를 통해 패킷의 수신 및 발신에 요구되는 설정을 처리 가능하도록 할 수 있다.
이에 따라, 복수의 운영체제 구동 장치 (100) 는 범용 운영체제와 특수 목적용 운영체제를 동시에 실행하여 운영체제에 설치된 드라이버를 통해 초기화 동작과 데이터 처리를 나누어 수행함으로써, 이식성과 성능 이슈를 해결할 수 있다.
도 4a 및 도 4b는 본 발명의 일 실시예에 따라 제1 운영체제 및 제2 운영체제가 주변 장치를 기능별로 나누어 관리하는 것을 시간 기준으로 도시한 그래프이다.
도 4a를 참조하면, 제1 그래프 (410) 는 복수의 주변 장치에서 제1 운영체제와 제2 운영체제가 기능별로 나누어 실행되는 것을 시간 기준으로 나타낸다. 예를 들어, 주변 장치 #0, 주변 장치 #1 및 주변 장치 #2의 초기화 과정에서는 제1 운영체제가 실행될 수 있다. 초기화 과정이 완료된 후, 데이터의 입력 및 출력 과정에서는 제2 운영체제가 실행될 수 있다.
도 4b를 참조하면, 제2 그래프 (420) 는 복수의 주변 장치에서 기능에 따라 제1 운영체제와 제2 운영체제가 동시에 실행되는 것을 시간 기준으로 나타낸다. 예를 들어, 주변 장치 #0, 주변 장치 #1 및 주변 장치 #2의 초기화 과정에서는 제1 운영체제가 실행된다. 초기화 과정이 완료된 후, 데이터의 입력 및 출력 과정이 제2 운영체제에 의해 실행되는 동안, 제1 운영체제는 주변 장치 #1 및 주변 장치 #2에 대한 설정을 처리할 수 있다. 즉, 제1 운영체제 및 제2 운영체제는 동시에 실행됨으로써, 각각 다른 기능을 수행할 수 있다. 이 때, 복수의 운영체제 구동 장치는 멀티 커널 방식을 통해 제1 운영체제 및 제2 운영체제를 동시에 실행시킬 수 있다.
이에 따라, 복수의 운영체제 구동 장치 (100) 는 멀티 커널 방식을 통해 기능에 따라 운영체제를 실행하여 드라이버의 모든 기능을 구현하는 것이 아닌 범용에 특화된 기능에 대해서는 범용 운영체제를 통해 구동시키고, 특수한 목적을 가지는 기능에 대해서는 특수 목적용 운영체제를 통해 구동시킴으로써, 주변 장치의 처리 속도를 향상시킬 수 있다.
본 명세서에서, 각 블록 또는 각 단계는 특정된 논리적 기능 (들) 을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈 또는 그 2 개의 결합으로 직접 구현될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM 또는 당업계에 알려진 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는 프로세서에 커플링되며, 그 프로세서는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로 (ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 복수의 운영체제 구동 장치
110: 프로세서
111: 제1 코어
112: 제2 코어
113: 제1 운영체제
114: 제1 드라이버
115: 제2 운영체제
116: 제2 드라이버
120: 주변 장치
130: 입력부
140: 표시부
150: 저장부
410: 제1 그래프
420: 제2 그래프

Claims (15)

  1. 제1 코어와 제2 코어를 포함하는 프로세서; 및
    상기 프로세서와 동작 가능하도록 연결된 주변 장치를 포함하고,
    상기 제1 코어는 제1 운영체제를 실행하도록 구성되고,
    상기 제2 코어는 상기 제1 운영체제와 동시에 제2 운영체제를 실행하도록 구성되고,
    상기 제1 운영체제 상에는 상기 주변 장치의 초기화 동작을 수행시키기 위한 제1 드라이버가 설치되고,
    상기 제2 운영체제 상에는 상기 주변 장치의 데이터의 입력 및 출력을 처리시키기 위한 제2 드라이버가 설치되도록 구성된, 장치.
  2. 제1항에 있어서,
    상기 제1 운영체제는 범용 운영체제이고,
    상기 제2 운영체제는 특수 목적용 운영체제이고,
    상기 주변 장치는 네트워크 인터페이스 장치 또는 비휘발성 저장 장치인, 장치.
  3. 제1항에 있어서,
    상기 제1 드라이버는,
    상기 제2 드라이버가 상기 주변 장치의 데이터의 입력 및 출력을 처리하는 동안, 상기 주변 장치에 대한 설정이 처리 가능하도록 구성된, 장치.
  4. 제1항에 있어서,
    상기 초기화 동작은,
    상기 주변 장치에 전원을 공급하고, 상기 주변 장치에 포함된 레지스터를 설정하고, 상기 주변 장치의 속도, 규약 및 옵션 중 적어도 하나를 설정하는 동작을 포함하는, 장치.
  5. 제2항에 있어서,
    상기 제2 드라이버는,
    상기 주변 장치가 비휘발성 저장 장치인 경우 상기 주변 장치의 읽기 및 쓰기를 수행하도록 구성된, 장치.
  6. 제2항에 있어서,
    상기 제2 드라이버는,
    상기 주변 장치가 상기 네트워크 인터페이스 장치인 경우 상기 주변 장치의 패킷의 수신 및 발신을 수행하도록 구성된, 장치.
  7. 제1항에 있어서,
    상기 제1 운영체제, 상기 제2 운영체제, 상기 제1 드라이버 및 상기 제2 드라이버를 저장하도록 구성된 저장부를 더 포함하는, 장치.
  8. 제1항에 있어서,
    상기 제1 코어 및 상기 제2 코어는,
    멀티 커널 방식을 통해 상기 제1 운영체제 및 상기 제2 운영체제를 동시에 실행시키도록 구성된, 장치.
  9. 제1항에 있어서,
    상기 제1 드라이버는,
    상기 데이터의 입력 및 출력을 처리시키도록 더 구성된, 장치.
  10. 제1 코어 및 제2 코어를 포함하는 프로세서 및 상기 프로세서와 동작 가능하도록 연결된 주변 장치를 포함하는 장치를 구동시키는 방법에 있어서,
    상기 제1 코어를 통해 제1 운영체제를 실행하는 단계;
    상기 제2 코어를 통해 상기 제1 운영체제가 구동되는 동시에 제2 운영체제를 실행하는 단계;
    상기 제1 운영체제 상에 설치된 제1 드라이버를 통해 상기 주변 장치의 초기화 동작을 수행하는 단계; 및
    상기 제2 운영체제 상에 설치된 제2 드라이버를 통해 상기 주변 장치의 데이터의 입력 및 출력을 처리하는 단계를 포함하는, 복수의 운영체제에서 주변 장치를 구동시키는 방법.
  11. 제10항에 있어서,
    상기 제1 운영체제는 범용 운영체제이고,
    상기 제2 운영체제는 특수 목적용 운영체제이고,
    상기 주변 장치는 네트워크 인터페이스 장치 또는 비휘발성 저장 장치인, 복수의 운영체제에서 주변 장치를 구동시키는 방법.
  12. 제10항에 있어서,
    상기 제2 드라이버가 상기 주변 장치의 데이터의 입력 및 출력을 처리하는 동안, 상기 제1 드라이버를 통해 주변 장치에 대한 설정을 처리하는 단계를 더 포함하는, 복수의 운영체제에서 주변 장치를 구동시키는 방법.
  13. 제10항에 있어서,
    상기 주변 장치의 초기화 동작을 수행시키는 단계는,
    상기 주변 장치에 전원을 공급하는 단계;
    상기 주변 장치에 포함된 레지스터를 설정하는 단계; 및
    상기 주변 장치의 속도, 규약 또는 옵션 중 적어도 하나를 결정하는 단계를 포함하는, 복수의 운영체제에서 주변 장치를 구동시키는 방법.
  14. 제11항에 있어서,
    상기 주변 장치가 비휘발성 저장 장치인 경우,
    상기 주변 장치의 데이터의 입력 및 출력을 처리하는 단계는,
    상기 제2 드라이버를 통해 상기 주변 장치의 읽기 및 쓰기를 수행하는 단계인, 복수의 운영체제에서 주변 장치를 구동시키는 방법.
  15. 제11항에 있어서,
    상기 주변 장치가 상기 네트워크 인터페이스 장치인 경우,
    상기 주변 장치의 데이터의 입력 및 출력을 처리하는 단계는,
    상기 제2 드라이버를 통해 상기 주변 장치의 패킷의 수신 및 발신을 수행하는 단계인, 복수의 운영체제에서 주변 장치를 구동시키는 방법.
KR1020160160128A 2016-11-29 2016-11-29 복수의 운영체제에서 주변 장치를 구동시키는 방법 및 장치 KR101907441B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160160128A KR101907441B1 (ko) 2016-11-29 2016-11-29 복수의 운영체제에서 주변 장치를 구동시키는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160160128A KR101907441B1 (ko) 2016-11-29 2016-11-29 복수의 운영체제에서 주변 장치를 구동시키는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20180060544A true KR20180060544A (ko) 2018-06-07
KR101907441B1 KR101907441B1 (ko) 2018-10-12

Family

ID=62621413

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160160128A KR101907441B1 (ko) 2016-11-29 2016-11-29 복수의 운영체제에서 주변 장치를 구동시키는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101907441B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060131296A (ko) * 2005-06-15 2006-12-20 엘지전자 주식회사 다중 운영체제 지원이 가능한 컴퓨터 시스템 및 그러한시스템에서의 다중 운영체제 지원 방법
KR20100039674A (ko) * 2008-10-08 2010-04-16 엘지전자 주식회사 다중 운영체제를 지원하는 단말기 및 그 단말기에 대한시스템 자원 할당 방법
US20120278814A1 (en) * 2011-04-27 2012-11-01 Sujith Shivalingappa Shared Drivers in Multi-Core Processor
KR20140012756A (ko) * 2011-06-16 2014-02-03 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 멀티 코어 환경에서의 프로세스 관리
KR20140076185A (ko) * 2012-12-12 2014-06-20 (주)한국산업정보기술 복수의 운영체제 동시구동이 가능한 모바일 디바이스와 그 구동방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060131296A (ko) * 2005-06-15 2006-12-20 엘지전자 주식회사 다중 운영체제 지원이 가능한 컴퓨터 시스템 및 그러한시스템에서의 다중 운영체제 지원 방법
KR20100039674A (ko) * 2008-10-08 2010-04-16 엘지전자 주식회사 다중 운영체제를 지원하는 단말기 및 그 단말기에 대한시스템 자원 할당 방법
US20120278814A1 (en) * 2011-04-27 2012-11-01 Sujith Shivalingappa Shared Drivers in Multi-Core Processor
KR20140012756A (ko) * 2011-06-16 2014-02-03 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 멀티 코어 환경에서의 프로세스 관리
KR20140076185A (ko) * 2012-12-12 2014-06-20 (주)한국산업정보기술 복수의 운영체제 동시구동이 가능한 모바일 디바이스와 그 구동방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
윤범진. 멀티코어 시스템에 멀티 OS 도입. electronic science 기사. 2012.01.03. 1부. *

Also Published As

Publication number Publication date
KR101907441B1 (ko) 2018-10-12

Similar Documents

Publication Publication Date Title
CN110063051B (zh) 用于重新配置服务器的系统和方法以及服务器
US9129123B2 (en) Systems and methods of secure domain isolation involving separation kernel features
US8271707B2 (en) Method and system for PCI hybrid function
US20210096823A1 (en) Transpose operations using processing element array
US10645051B2 (en) Memory-mapped input/output (I/O) channel
WO2013123405A1 (en) Profiling and sequencing operators executable in an emulated computing system
US8558839B1 (en) Displaying critical system screens in a multiple graphics adapter environment
US7996667B2 (en) System with at least two BIOS memories for starting the system
KR20110098974A (ko) Usb 디바이스의 빠른 시동을 위한 시스템, 장치, 및 방법
CN104778066B (zh) 一种嵌入式操作系统的快速启动方法及其装置
EP3164796B1 (en) Firmware update
CN109936716B (zh) 一种显示驱动的实现方法及系统
US11144326B2 (en) System and method of initiating multiple adaptors in parallel
CN106919531B (zh) 基于非易失性存储总线协议的交互方法及设备
CN108255504A (zh) 在一储存系统中更新软件的方法及储存系统
US20100017588A1 (en) System, method, and computer program product for providing an extended capability to a system
KR101907441B1 (ko) 복수의 운영체제에서 주변 장치를 구동시키는 방법 및 장치
US11263018B2 (en) Vector processor and control method therefor
US20180143830A1 (en) Programmable linear feedback shift register
KR20090040763A (ko) 메모리 시스템 및 그 구동방법
CN107873091B (zh) 用于滑动窗口运算的方法和设备
KR20050098514A (ko) 주변 장치 초기화를 위한 부팅 시스템 및 부팅 방법
CN113849277B (zh) 网卡测试方法、装置、计算机设备及计算机可读存储介质
CN106250075A (zh) 视频适配器对准
US9229761B2 (en) Generating, at least in part, at least one packet indicating, at least in part, at least one command and/or issuing, at least in part, at least one result of execution, at least in part, of the at least one command

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)