KR20140049462A - 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법 및 시스템 - Google Patents
운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법 및 시스템 Download PDFInfo
- Publication number
- KR20140049462A KR20140049462A KR1020130112512A KR20130112512A KR20140049462A KR 20140049462 A KR20140049462 A KR 20140049462A KR 1020130112512 A KR1020130112512 A KR 1020130112512A KR 20130112512 A KR20130112512 A KR 20130112512A KR 20140049462 A KR20140049462 A KR 20140049462A
- Authority
- KR
- South Korea
- Prior art keywords
- virtual address
- address space
- operating system
- extended
- ranges
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법은 상기 프로세스에 대응하는 가상 주소 공간(virtual address space)에 포함되는 가상 주소 범위(virtual address range) 및 복수의 확장 가상 주소 범위(extended virtual address range)들의 개수를 선택하는 단계; 상기 선택된 가상 주소 범위 및 상기 선택된 복수의 확장 가상 주소 범위들의 개수를 이용하여 상기 가상 주소 공간을 다중 가상 주소 공간으로 확장하여 설정하는 단계; 상기 다중 가상 주소 공간을 상기 프로세스에 제공하는 단계를 포함한다.
Description
본 발명은 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 시스템 및 그 방법에 관한 것으로, 보다 구체적으로 프로세스의 선형 가상 주소 공간을 다중 가상 주소 공간으로 확장하는 기술에 관한 것이다. 여기서, 다중 가상 주소 공간은 복수의 선형 가상 주소 공간을 포함한다.
최근 하드웨어 공정 기술의 발전으로 인하여 메모리 용량이 증가하면서, 증가된 메모리의 사용을 극대화하는 In-Memory Computing 방식의 컴퓨팅 연산 방식이 사용되고 있다.
메모리 용량의 급격한 증가는 프로세스가 지원 가능한 선형 가상 주소 공간(linear virtual address space)보다 더 확장된 주소 공간의 필요성을 야기하고, 이에 따라, 프로세스에 할당되는 하나의 선형 가상 주소 공간을 확장하는 방안이 요구된다.
본 발명의 실시예들은 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법, 장치 및 시스템을 제공한다.
또한, 본 발명의 실시예들은 프로세스에 대응하는 가상 주소 공간을 복수의 확장 가상 주소 범위들을 포함하는 다중 가상 주소 공간으로 확장하는 방법, 장치 및 시스템을 제공한다.
또한, 본 발명의 실시예들은 다중 가상 주소 공간에 포함되는 복수의 확장 가상 주소 범위들을 프로세스에 제공하는 과정에서, 특정 가상 주소 범위를 결정하는 방법, 장치 및 시스템을 제공한다.
본 발명의 일실시예에 따른 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법은 상기 프로세스에 대응하는 가상 주소 공간(virtual address space)에 포함되는 가상 주소 범위(virtual address range) 및 복수의 확장 가상 주소 범위(extended virtual address range)들의 개수를 선택하는 단계; 상기 선택된 가상 주소 범위 및 상기 선택된 복수의 확장 가상 주소 범위들의 개수를 이용하여, 상기 가상 주소 공간을 다중 가상 주소 공간으로 확장하여 설정하는 단계; 및 상기 다중 가상 주소 공간을 상기 프로세스에 제공하는 단계를 포함한다.
상기 가상 주소 공간을 상기 다중 가상 주소 공간으로 확장하여 설정하는 단계는 상기 선택된 복수의 확장 가상 주소 범위들의 개수를 기초로, 상기 선택된 가상 주소 범위에 대응하는 상기 복수의 확장 가상 주소 범위들을 생성하는 단계; 및 상기 복수의 확장 가상 주소 범위들을 포함하는 상기 다중 가상 주소 공간을 설정하는 단계를 포함할 수 있다.
상기 가상 주소 범위 및 상기 복수의 확장 가상 주소 범위들의 개수를 선택하는 단계는 상기 가상 주소 범위 및 상기 복수의 확장 가상 주소 범위들의 개수를 선택하는 사용자 API(application programming interface)를 제공하는 단계를 더 포함할 수 있다.
상기 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법은 상기 제공된 다중 가상 주소 공간 중 상기 프로세스가 실행되는 특정 가상 주소 범위를 결정하는 단계; 및 상기 특정 가상 주소 범위를 이용하여 상기 프로세스를 실행하는 단계를 더 포함할 수 있다.
상기 특정 가상 주소 범위를 결정하는 단계는 상기 프로세스에 대응하는 가상 주소 범위의 페이지 테이블(page table)의 주소를 상기 특정 가상 주소 범위에 대응하는 페이지 테이블의 주소로 변경하는 단계를 포함할 수 있다.
상기 특정 가상 주소 범위를 결정하는 단계는 상기 제공된 다중 가상 주소 공간 중 상기 프로세스가 실행되는 상기 특정 가상 주소 범위를 결정하는 사용자 API를 제공하는 단계를 더 포함할 수 있다.
상기 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법은 상기 설정된 다중 가상 주소 공간을 해제하는 단계를 더 포함할 수 있다.
상기 설정된 다중 가상 주소 공간을 해제하는 단계는 상기 설정된 다중 가상 주소 공간을 해제하는 사용자 API를 제공하는 단계를 더 포함할 수 있다.
본 발명의 일실시예에 따른 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 시스템은 상기 프로세스에 대응하는 가상 주소 공간(virtual address space)에 포함되는 가상 주소 범위(virtual address range) 및 복수의 확장 가상 주소 범위(extended virtual address range)들의 개수를 선택하는 선택부; 상기 선택된 가상 주소 범위 및 상기 선택된 복수의 확장 가상 주소 범위들의 개수를 이용하여, 상기 가상 주소 공간을 다중 가상 주소 공간으로 확장하여 설정하는 설정부; 및 상기 다중 가상 주소 공간을 상기 프로세스에 제공하는 제공부를 포함한다.
상기 설정부는 상기 선택된 복수의 확장 가상 주소 범위들의 개수를 기초로, 상기 선택된 가상 주소 범위에 대응하는 상기 복수의 확장 가상 주소 범위들을 생성하고, 상기 복수의 확장 가상 주소 범위들을 포함하는 상기 다중 가상 주소 공간을 설정할 수 있다.
상기 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 시스템은 상기 제공된 다중 가상 주소 공간 중 상기 프로세스가 실행되는 특정 가상 주소 범위를 결정하는 결정부; 및 상기 특정 가상 주소 범위를 이용하여 상기 프로세스를 실행하는 실행부를 더 포함할 수 있다.
상기 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 시스템은 상기 설정된 다중 가상 주소 공간을 해제하는 해제부를 더 포함할 수 있다.
본 발명의 실시예들은 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법, 장치 및 시스템을 제공할 수 있다.
또한, 본 발명의 실시예들은 프로세스에 대응하는 가상 주소 공간을 복수의 확장 가상 주소 범위들을 포함하는 다중 가상 주소 공간으로 확장하는 방법, 장치 및 시스템을 제공할 수 있다.
또한, 본 발명의 실시예들은 다중 가상 주소 공간에 포함되는 복수의 확장 가상 주소 범위들을 프로세스에 제공하는 과정에서, 특정 가상 주소 범위를 결정하는 방법, 장치 및 시스템을 제공할 수 있다.
도 1은 기존의 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 나타내는 도면이다.
도 2는 본 발명의 일실시예에 따른 프로세스의 다중 가상 주소 공간을 나타내는 도면이다.
도 3은 본 발명의 일실시예에 따른 프로세스의 가상 주소 공간을 확장하는 방법을 나타내는 플로우 차트이다.
도 4는 본 발명의 일실시예에 따른 프로세스의 가상 주소 공간을 확장하는 시스템을 나타내는 블록도이다.
도 2는 본 발명의 일실시예에 따른 프로세스의 다중 가상 주소 공간을 나타내는 도면이다.
도 3은 본 발명의 일실시예에 따른 프로세스의 가상 주소 공간을 확장하는 방법을 나타내는 플로우 차트이다.
도 4는 본 발명의 일실시예에 따른 프로세스의 가상 주소 공간을 확장하는 시스템을 나타내는 블록도이다.
이하, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 기존의 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 나타내는 도면이다.
도 1을 참조하면, 프로세스의 가상 주소 공간(110)은 선형(linear) 형태의 가상 주소 공간을 가진다. 다시 말해, 기존의 운영 체제는 프로세스에 단 하나의 선형 가상 주소 공간(linear virtual address space)을 제공한다. 이 때, 가상 주소 공간(110)은 서로 다른 메모리 영역들을 나타내는 메모리 영역의 가상 주소 범위(memory area's virtual address range)(111, 112, 113)들을 다수 포함할 수 있다. 이하, 메모리 영역의 가상 주소 범위(111, 112, 113)를 가상 주소 범위(111, 112, 113)로 기재한다. 예를 들어, 하나의 프로세스에 제1 메모리 영역의 가상 주소 범위(111), 제2 메모리 영역의 가상 주소 범위(112), 그리고 제3 메모리 영역의 가상 주소 범위(113)가 제공될 수 있다.
기존의 운영 체제는 물리적 주소 공간 및 가상 주소 공간(110)을 구별하여 사용할 수 있고, CPU에 가상 주소 공간(110)을 사용하도록 설정한 경우, 프로세스를 실행 시에 가상 주소를 물리적 주소로 변환한 후에 물리적 메모리에 접근하여 메모리 연산을 수행할 수 있다. 이 때, 가상 주소를 물리적 주소로 변환하는 과정은 MMU(memory management unit)를 포함하는 하드웨어 모듈을 이용함으로써, 수행될 수 있다. 또한, 가상 주소를 물리적 주소로 변환하는 과정은 페이지 테이블(page table)을 포함하는 변환 테이블을 이용함으로써, 수행될 수 있다. 여기서, 페이지 테이블은 특정 프로세스의 가상 주소에 대하여 이에 대응하는 물리적 주소를 매핑(mapping)하는 주소 매핑 정보를 포함할 수 있다.
또한, 기존의 운영 체제는 복수의 프로세스들이 동시에 수행되는 멀티 태스킹(multi-tasking) 방식을 지원할 수 있다. 이 때, 수행되고 있는 프로세스에서 상기 프로세스와 구별되는 새로운 프로세스로 컨텍스트 스위칭(context switching)이 발생하는 경우, 새로운 프로세스에 적합한 주소 매핑 정보를 기초로 컨텍스트를 스위칭하는 과정이 수행되어야 한다. 여기서, 컨텍스트를 스위칭하는 과정은 수행되고 있는 프로세스의 컨텍스트 정보를 모두 저장하고, 새로운 프로세스의 컨텍스트 정보를 복원하는 작업을 수행해야 하므로, 오버헤드(overhead)가 발생할 수 있다.
또한, 기존의 운영 체제는 라이트 웨이트 프로세스(light weight process)인 스레드(thread)를 지원할 수 있다. 단일 프로세스에서 생성된 복수의 스레드들은 동일한 가상 주소 공간(110)을 공유하지만, 복수의 스레드들 각각의 프로세스 수행 위치가 다르므로, 스레드들 사이의 전환이 발생할 경우, 스레드들의 수행 위치를 추적해야 한다.
이에, CPU들이 접근 가능한 메모리 주소의 크기를 물리적으로 확장하는 방안이 제안되었으나, CPU의 메모리 주소 크기가 물리적으로 커지는 경우, CPU 명령(instruction) 크기 및 포인터 변수의 크기도 커지므로 프로세스 및 자료의 크기가 커지는 오버헤드가 발생할 수 있다.
따라서, 본 발명에서는 하나의 프로세스에 다중 가상 주소 공간을 제공하여, 프로세스가 사용 가능한 가상 주소 공간을 확장하는 방안을 제안한다. 이에 대한 상세한 설명은 아래에서 기재하기로 한다.
도 2는 본 발명의 일실시예에 따른 프로세스의 다중 가상 주소 공간을 나타내는 도면이다.
기존 운영 체제에서 제공하는 프로세서의 단일 가상 주소 공간과는 다르게, 도 2를 참조하면, 프로세스의 다중 가상 주소 공간(210)은 가상 주소 범위들(220, 230, 240, 260) 및 복수의 확장 가상 주소 범위들(230, 231, 232, 또는 250, 251, 252, 253, 254)을 포함할 수 있다. 여기서, 복수의 확장 가상 주소 범위들(230, 231, 232, 또는 250, 251, 252, 253, 254) 각각은 메모리 영역의 가상 주소 범위들(220, 230, 240, 250, 260) 중 선택된 가상 주소 범위(230 또는 250)로부터 생성될 수 있다.
예를 들어, 운영 체제는 확장할 가상 주소 범위(230 또는 250)를 선택하고, 생성할 확장 가상 주소 범위들(230, 231, 232 또는 250, 251, 252, 253, 254)의 개수를 선택함으로써, 다중 가상 주소 공간(210)을 생성할 수 있다.
더 구체적인 예를 들면, 확장할 가상 주소 범위(230 또는 250)를 선택하고, 생성할 확장 가상 주소 범위들(230, 231, 232 또는 250, 251, 252, 253, 254)의 개수를 선택하는 과정은 확장할 가상 주소 범위(230 또는 250) 및 생성할 확장 가상 주소 범위들(230, 231, 232 또는 250, 251, 252, 253, 254)의 개수를 선택하는 사용자 API(application programming interface)가 사용자에게 제공됨으로써, 사용자로부터 확장할 가상 주소 범위(230 또는 250) 및 생성할 확장 가상 주소 범위들(230, 231, 232 또는 250, 251, 252, 253, 254)의 개수를 선택 입력 받아 수행될 수 있다. 그 후, 운영 체제는 생성할 확장 가상 주소 범위들(230, 231, 232 또는 250, 251, 252, 253, 254)의 개수에 기초하여, 확장할 가상 주소 범위(230 또는 250)에 대응하는 확장 가상 주소 범위들(230, 231, 232 또는 250, 251, 252, 253, 254)를 생성함으로써, 확장 가상 주소 범위들(230, 231, 232 또는 250, 251, 252, 253, 254)를 포함하는 다중 가상 주소 공간(210)을 생성할 수 있다.
운영 체제는 확장된 다중 가상 주소 공간(210)을 프로세스에 제공할 수 있고, 제공된 다중 가상 주소 공간(210)에 포함되는 상기 복수의 확장 가상 주소 범위들(230, 231, 232, 250, 251, 252, 253, 254) 및 가상 주소 범위(220, 240, 260) 중 프로세스가 실행되는 특정 가상 주소 범위를 결정할 수 있다. 예를 들어, 운영 체제는 프로세스가 실행되는 특정 가상 주소 범위를 결정하는 사용자 API를 제공함으로써, 제공된 다중 가상 공간 중 프로세스가 실행되는 특정 가상 주소 범위를 결정할 수 있다. 더 구체적인 예를 들어, 특정 가상 주소 범위를 결정하는 과정은 프로세스에 대응하는 가상 주소 범위의 페이지 테이블의 주소를 특정 가상 주소 범위에 대응하는 페이지 테이블의 주소로 변경함으로써 수행될 수 있다. 예를 들어, 확장 가상 주소 범위들(230, 231, 232 또는 250, 251, 252, 253, 254) 중 프로세스가 실행될 특정 가상 주소 범위(231 또는 253)이 결정될 수 있다.
또한, 운영 체제는 결정된 특정 가상 주소 범위를 이용하여 프로세스를 실행할 수 있고, 설정된 다중 가상 주소 공간(210)을 해제할 수 있다. 예를 들어, 운영 체제는 다중 가상 주소 공간(210)을 해제하는 사용자 API를 제공함으로써, 사용자로부터 해제 입력 받아, 설정된 다중 가상 주소 공간을 해제할 수 있다.
도 3은 본 발명의 일실시예에 따른 프로세스의 가상 주소 공간을 확장하는 방법을 나타내는 플로우 차트이다.
도 3을 참조하면, 가상 주소 공간을 확장하는 시스템은 프로세스에 대응하는 가상 주소 공간(virtual address space)에 포함되는 가상 주소 범위(virtual address range) 및 복수의 확장 가상 주소 범위(extended virtual address range)들의 개수를 선택한다(310). 이 때, 가상 주소 범위 및 확장 가상 주소 범위들의 개수를 선택하는 과정은 확장할 가상 주소 범위 및 생성할 복수의 확장 가상 주소 범위들의 개수를 선택하는 사용자 API(application programming interface)를 제공하는 과정을 포함할 수 있다.
또한, 가상 주소 공간을 확장하는 시스템은 상기의 선택된 가상 주소 범위 및 선택된 복수의 확장 가상 주소 범위들의 개수를 이용하여, 가상 주소 공간을 다중 가상 주소 공간으로 확장하여 설정한다(320). 이 때, 가상 주소 공간을 다중 가상 주소 공간으로 확장하여 설정하는 과정은 선택된 복수의 확장 가상 주소 범위들의 개수를 기초로, 선택된 가상 주소 범위에 대응하는 복수의 확장 가상 주소 범위들을 생성하는 과정 및 복수의 확장 가상 주소 범위들을 포함하는 다중 가상 주소 공간을 설정하는 과정을 포함할 수 있다.
또한, 가상 주소 공간을 확장하는 시스템은 설정된 다중 가상 주소 공간을 프로세스에 제공한다(330).
또한, 가상 주소 공간을 확장하는 시스템은 제공된 다중 가상 주소 공간 중 프로세스가 실행되는 특정 가상 주소 범위를 결정한다(340). 이 때, 특정 가상 주소 범위를 결정하는 과정은 프로세스에 대응하는 가상 주소 범위의 페이지 테이블(page table)의 주소를 특정 가상 주소 범위에 대응하는 페이지 테이블의 주소로 변경하는 과정을 포함할 수 있다. 또한, 특정 선형 가상 주소 공간을 결정하는 과정은 제공된 다중 가상 주소 공간 중 프로세스가 실행되는 특정 가상 주소 범위를 결정하는 사용자 API를 제공하는 과정을 포함할 수 있다.
또한, 가상 주소 공간을 확장하는 시스템은 특정 가상 주소 범위를 이용하여 프로세스를 실행한다(350).
또한, 가상 주소 공간을 확장하는 시스템은 설정된 다중 가상 주소 공간을 해제한다(360). 이 때, 설정된 다중 가상 주소 공간을 해제하는 과정은 설정된 다중 가상 주소 공간을 해제하는 사용자 API를 제공하는 과정을 포함할 수 있다.
도 4는 본 발명의 일실시예에 따른 프로세스의 가상 주소 공간을 확장하는 시스템을 나타내는 블록도이다.
도 4를 참조하면, 프로세스의 가상 주소 공간을 확장하는 시스템은 선택부(410), 설정부(420), 제공부(430), 결정부(440), 실행부(450) 및 해제부(460)를 포함한다.
선택부(410)는 프로세스에 대응하는 가상 주소 공간(virtual address space)에 포함되는 가상 주소 범위(virtual address range) 및 복수의 확장 가상 주소 범위(extended virtual address range)들의 개수를 선택한다.
설정부(420)는 선택된 가상 주소 범위 및 선택된 복수의 확장 가상 주소 범위들의 개수를 이용하여, 가상 주소 공간을 다중 가상 주소 공간으로 확장하여 설정한다.
이 때, 설정부(420)는 선택된 복수의 확장 가상 주소 범위들의 개수를 기초로, 선택된 가상 주소 범위에 대응하는 복수의 확장 가상 주소 범위들을 생성하고, 복수의 확장 가상 주소 범위들을 포함하는 다중 가상 주소 공간을 설정할 수 있다.
제공부(430)는 다중 가상 주소 공간을 프로세스에 제공한다.
결정부(440)는 제공된 다중 가상 주소 공간 중 프로세스가 실행되는 특정 가상 주소 범위를 결정한다.
실행부(450)는 특정 가상 주소 범위를 이용하여 프로세스를 실행한다.
해제부(460)는 설정된 다중 가상 주소 공간을 해제한다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
210: 가상 주소 공간
220, 230, 240, 260: 다중 가상 주소 범위
231, 232, 251, 252, 253, 254: 확장 가상 주소 범위
220, 230, 240, 260: 다중 가상 주소 범위
231, 232, 251, 252, 253, 254: 확장 가상 주소 범위
Claims (13)
- 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법에 있어서,
상기 프로세스에 대응하는 가상 주소 공간(virtual address space)에 포함되는 가상 주소 범위(virtual address range) 및 복수의 확장 가상 주소 범위(extended virtual address range)들의 개수를 선택하는 단계;
상기 선택된 가상 주소 범위 및 상기 선택된 복수의 확장 가상 주소 범위들의 개수를 이용하여, 상기 가상 주소 공간을 다중 가상 주소 공간으로 확장하여 설정하는 단계; 및
상기 다중 가상 주소 공간을 상기 프로세스에 제공하는 단계
를 포함하는 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법. - 제1항에 있어서,
상기 가상 주소 공간을 상기 다중 가상 주소 공간으로 확장하여 설정하는 단계는
상기 선택된 복수의 확장 가상 주소 범위들의 개수를 기초로, 상기 선택된 가상 주소 범위에 대응하는 상기 복수의 확장 가상 주소 범위들을 생성하는 단계; 및
상기 복수의 확장 가상 주소 범위들을 포함하는 상기 다중 가상 주소 공간을 설정하는 단계
를 포함하는 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법. - 제1항에 있어서,
상기 가상 주소 범위 및 상기 복수의 확장 가상 주소 범위들의 개수를 선택하는 단계는
상기 가상 주소 범위 및 상기 복수의 확장 가상 주소 범위들의 개수를 선택하는 사용자 API(application programming interface)를 제공하는 단계
를 더 포함하는 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법. - 제1항에 있어서,
상기 제공된 다중 가상 주소 공간 중 상기 프로세스가 실행되는 특정 가상 주소 범위를 결정하는 단계; 및
상기 특정 가상 주소 범위를 이용하여 상기 프로세스를 실행하는 단계
를 더 포함하는 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법. - 제4항에 있어서,
상기 특정 가상 주소 범위를 결정하는 단계는
상기 프로세스에 대응하는 가상 주소 범위의 페이지 테이블(page table)의 주소를 상기 특정 가상 주소 범위에 대응하는 페이지 테이블의 주소로 변경하는 단계
를 포함하는 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법. - 제4항에 있어서,
상기 특정 가상 주소 범위를 결정하는 단계는
상기 제공된 다중 가상 주소 공간 중 상기 프로세스가 실행되는 상기 특정 가상 주소 범위를 결정하는 사용자 API를 제공하는 단계
를 더 포함하는 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법. - 제1항에 있어서,
상기 설정된 다중 가상 주소 공간을 해제하는 단계
를 더 포함하는 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법. - 제7항에 있어서,
상기 설정된 다중 가상 주소 공간을 해제하는 단계는
상기 설정된 다중 가상 주소 공간을 해제하는 사용자 API를 제공하는 단계
를 더 포함하는 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법. - 제1항 내지 제8항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
- 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 시스템에 있어서,
상기 프로세스에 대응하는 가상 주소 공간(virtual address space)에 포함되는 가상 주소 범위(virtual address range) 및 복수의 확장 가상 주소 범위(extended virtual address range)들의 개수를 선택하는 선택부;
상기 선택된 가상 주소 범위 및 상기 선택된 복수의 확장 가상 주소 범위들의 개수를 이용하여, 상기 가상 주소 공간을 다중 가상 주소 공간으로 확장하여 설정하는 설정부; 및
상기 다중 가상 주소 공간을 상기 프로세스에 제공하는 제공부
를 포함하는 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 시스템. - 제10항에 있어서,
상기 설정부는
상기 선택된 복수의 확장 가상 주소 범위들의 개수를 기초로, 상기 선택된 가상 주소 범위에 대응하는 상기 복수의 확장 가상 주소 범위들을 생성하고,
상기 복수의 확장 가상 주소 범위들을 포함하는 상기 다중 가상 주소 공간을 설정하는 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 시스템. - 제10항에 있어서,
상기 제공된 다중 가상 주소 공간 중 상기 프로세스가 실행되는 특정 가상 주소 범위를 결정하는 결정부; 및
상기 특정 가상 주소 범위를 이용하여 상기 프로세스를 실행하는 실행부
를 더 포함하는 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 시스템. - 제10항에 있어서,
상기 설정된 다중 가상 주소 공간을 해제하는 해제부
를 더 포함하는 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/056,057 US9229875B2 (en) | 2012-10-17 | 2013-10-17 | Method and system for extending virtual address space of process performed in operating system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20120115111 | 2012-10-17 | ||
KR1020120115111 | 2012-10-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140049462A true KR20140049462A (ko) | 2014-04-25 |
KR102055617B1 KR102055617B1 (ko) | 2019-12-13 |
Family
ID=50655060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130112512A KR102055617B1 (ko) | 2012-10-17 | 2013-09-23 | 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법 및 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102055617B1 (ko) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05257803A (ja) * | 1992-01-16 | 1993-10-08 | Toshiba Corp | 仮想記憶空間管理方法及びアドレス計算装置 |
KR0162759B1 (ko) * | 1995-06-23 | 1999-01-15 | 양승택 | 인텔 처리기의 메모리 관리 유니트를 이용한 확장된 가상주소공간 구축방법 |
KR20020009247A (ko) * | 2000-07-25 | 2002-02-01 | 서평원 | 다중프로세스 시스템에서 비수행 프로세스의 데이터에접근하는 방법 |
US20080177974A1 (en) * | 2007-01-20 | 2008-07-24 | Men-Chow Chiang | System and method for reducing memory overhead of a page table in a dynamic logical partitioning environment |
JP2012185609A (ja) * | 2011-03-04 | 2012-09-27 | Sony Corp | 仮想メモリシステム、仮想メモリの制御方法、およびプログラム |
-
2013
- 2013-09-23 KR KR1020130112512A patent/KR102055617B1/ko active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05257803A (ja) * | 1992-01-16 | 1993-10-08 | Toshiba Corp | 仮想記憶空間管理方法及びアドレス計算装置 |
KR0162759B1 (ko) * | 1995-06-23 | 1999-01-15 | 양승택 | 인텔 처리기의 메모리 관리 유니트를 이용한 확장된 가상주소공간 구축방법 |
KR20020009247A (ko) * | 2000-07-25 | 2002-02-01 | 서평원 | 다중프로세스 시스템에서 비수행 프로세스의 데이터에접근하는 방법 |
US20080177974A1 (en) * | 2007-01-20 | 2008-07-24 | Men-Chow Chiang | System and method for reducing memory overhead of a page table in a dynamic logical partitioning environment |
JP2012185609A (ja) * | 2011-03-04 | 2012-09-27 | Sony Corp | 仮想メモリシステム、仮想メモリの制御方法、およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
KR102055617B1 (ko) | 2019-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114816664B (zh) | Gpu虚拟化 | |
JP6716149B2 (ja) | ブロックチェーンベースのデータ処理方法および装置 | |
KR101759266B1 (ko) | 프로세서들에 걸쳐 데이터-병렬 쓰레드들을 지닌 프로세싱 로직을 매핑하는 방법 | |
US10025503B2 (en) | Autonomous dynamic optimization of platform resources | |
US10102373B2 (en) | Method and apparatus for capturing operation in a container-based virtualization system | |
US9910714B2 (en) | Scriptable dynamic load balancing in computer systems | |
US20110219207A1 (en) | Reconfigurable processor and reconfigurable processing method | |
US9043806B2 (en) | Information processing device and task switching method | |
KR102646619B1 (ko) | 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 시스템 및 방법 | |
KR20140126190A (ko) | 프로세서의 긴 라우팅 처리를 지원하는 메모리 장치, 그 메모리 장치를 이용한 스케줄링 장치 및 방법 | |
KR20140117578A (ko) | 다중스레드 컴퓨팅 | |
JP2021522593A (ja) | Gpuについてのフィードバックガイド付き分割ワークグループのディスパッチ | |
CN104391747A (zh) | 一种并行计算方法及装置 | |
US10176002B2 (en) | Quiesce handling in multithreaded environments | |
US9317340B2 (en) | Intelligent virtual machine (VM) re-location | |
US9311270B2 (en) | Scheduler and scheduling method for reconfigurable architecture | |
US10223260B2 (en) | Compiler-generated memory mapping hints | |
US20160182234A1 (en) | Hash value capable of generating one or more hash functions | |
US20150220442A1 (en) | Prioritizing shared memory based on quality of service | |
US9678752B2 (en) | Scheduling apparatus and method of dynamically setting the size of a rotating register | |
US9766948B2 (en) | Selecting processor micro-threading mode | |
KR102055617B1 (ko) | 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법 및 시스템 | |
US20140013312A1 (en) | Source level debugging apparatus and method for a reconfigurable processor | |
US9229875B2 (en) | Method and system for extending virtual address space of process performed in operating system | |
KR101907007B1 (ko) | 프로세스의 우선순위를 이용한 페이지 처리 방법 및 페이지 처리 장치 |
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 |