[go: up one dir, main page]

KR101460451B1 - Apparatus and method for controlling process address space - Google Patents

Apparatus and method for controlling process address space Download PDF

Info

Publication number
KR101460451B1
KR101460451B1 KR1020130106995A KR20130106995A KR101460451B1 KR 101460451 B1 KR101460451 B1 KR 101460451B1 KR 1020130106995 A KR1020130106995 A KR 1020130106995A KR 20130106995 A KR20130106995 A KR 20130106995A KR 101460451 B1 KR101460451 B1 KR 101460451B1
Authority
KR
South Korea
Prior art keywords
application program
computer
information
memory
address space
Prior art date
Application number
KR1020130106995A
Other languages
Korean (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 KR1020130106995A priority Critical patent/KR101460451B1/en
Application granted granted Critical
Publication of KR101460451B1 publication Critical patent/KR101460451B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

컴퓨터 장치에서 응용 프로그램을 실행하기 위한 메모리 관리 장치 및 방법이 개시된다. 메모리 관리 장치는, 응용 프로그램에 대한 실행 요청에 따라 응용 프로그램의 실행에 필요한 컴퓨터 장치에 내재된 컴퓨터 자원에 대한 권한 정보와 컴퓨터 자원의 식별 정보를 추출하는 메모리 제어 요청부와, 컴퓨터 장치의 커널 영역 외부에서 권한 정보와 식별 정보에 기반하여 응용 프로그램과 컴퓨터 자원의 메모리 주소를 매핑한 프로세스 주소 공간을 생성하는 메모리 제어부를 포함하여 구성될 수 있다. 메모리 관리 방법은, 응용 프로그램에 대한 실행 요청에 따라 응용 프로그램의 실행에 필요한 컴퓨터 장치에 내재된 컴퓨터 자원에 대한 권한 정보와 컴퓨터 자원의 식별 정보를 추출하는 단계와, 컴퓨터 장치의 커널 영역 외부에서 권한 정보와 식별 정보에 기반하여 응용 프로그램과 컴퓨터 자원의 메모리 주소를 매핑한 프로세스 주소 공간을 생성하는 단계를 포함하여 구성될 수 있다.A memory management device and method for executing an application program on a computer device is disclosed. The memory management apparatus includes a memory control request unit that extracts authority information on computer resources and identification information of computer resources contained in a computer apparatus required for execution of an application program in response to an execution request for an application program, And a memory control unit for generating a process address space in which an application program and a memory address of a computer resource are mapped based on the external information and the identification information. The memory management method includes: extracting authorization information and computer resource identification information about a computer resource included in a computer apparatus required for execution of an application program according to an execution request for an application program; And creating a process address space mapping a memory address of the application program and the computer resource based on the information and the identification information.

Description

프로세스 주소 공간을 제어하는 장치 및 방법{APPARATUS AND METHOD FOR CONTROLLING PROCESS ADDRESS SPACE}[0001] APPARATUS AND METHOD FOR CONTROLLING PROCESS ADDRESS SPACE [0002]

본 발명은 사용자 응용 프로그램이 사용하는 프로세스 주소 공간의, 물리적인 메모리 공간에 매핑되어 표현되는 각종 컴퓨터 자원에 대한 사용을 제어하는 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for controlling use of various computer resources expressed in a physical memory space of a process address space used by a user application program.

현대의 운영체제에서는 가상 메모리 기법을 이용하여 프로세스의 관점에서 가상의 주소 공간이 만들어져, 해당 주소 공간에 자유롭게 데이터를 적재하여 수행을 하게 되며, 이 공간은 사용하는 수준에 따라 몇 부분으로 나누어져 있다. 예를 들어 32비트 리눅스 운영체제에서는 기본적으로 응용 프로그램에 4GB 의 가상 주소 공간이 주어지며, 이 중 3GB는 사용자 주소 공간이고, 나머지 1GB는 커널 주소 공간이다.In modern operating systems, a virtual address space is created from the viewpoint of the process by using the virtual memory technique, and the data is freely loaded in the corresponding address space, and this space is divided into several parts depending on the level of use. For example, on a 32-bit Linux operating system, an application is given 4 GB of virtual address space by default, 3 GB of which is the user address space and the remaining 1 GB is the kernel address space.

사용자 응용 프로그램은 필요에 따라 커널 주소 공간에 있는 코드 및 데이터 등을 접근, 실행하게 된다. 이는 주소 매핑(mapping)으로 처리되는데, 실제 물리 메모리 상에 해당 내용들이 포함된 부분이 사용자 주소 공간과 커널 주소 공간에 각각 매핑되어 있다. 여기서 응용 프로그램에 매핑된 주소 공간 중 커널 주소 공간은 모든 응용 프로그램이 공유하는 형태로 구성이 된다. 예를 들어, 32비트 리눅스 운영체제에서 1GB의 커널 주소 공간은 모든 응용 프로그램이 가지는 가상 주소 공간에서 공유되고 있다. 그러나 이러한 공유는 의도하지 않은 문제를 낳게 된다. 가령, 부정한 의도를 가진 사용자 응용 프로그램이 접근해서는 안 되는 장치의 장치 구동기로 접근하여 데이터를 훔쳐 본다거나, 의도하지 않은 실행을 통한 시스템 해킹들과 같은 문제를 일으킬 수 있다.The user application accesses and executes code and data in the kernel address space as needed. This is handled by address mapping, in which the contents of the actual physical memory are mapped to the user address space and the kernel address space, respectively. Here, among the address spaces mapped to the application program, the kernel address space is configured to be shared by all application programs. For example, on a 32-bit Linux operating system, the 1 GB kernel address space is shared in the virtual address space of all applications. This sharing, however, leads to unintended problems. For example, user applications with fraudulent intent may access device drivers of devices that should not be accessed, steal data, or cause problems such as system hacking through unintended execution.

이러한 가상 메모리 기법은 컴퓨터 장치의 메모리를 보호하고, 안정적이 컴퓨팅 환경을 제공하기 위하여 널리 사용된다. 예컨대 가상 메모리 기법을 사용하지 않고 실제 물리 메모리 공간만을 사용하는 경우, 컴퓨터의 메인 메모리의 크기보다 용량이 큰 프로세스는 메모리에 올려 놓을 수 없으므로 실행이 불가능한 단점이 있다. MS-DOS의 com 확장자 형식의 응용 프로그램이 물리 메모리만을 사용한 대표적인 예이다.This virtual memory technique is widely used to protect the memory of a computer device and provide a stable computing environment. For example, when only the actual physical memory space is used without using the virtual memory technique, a process having a capacity larger than the size of the main memory of the computer can not be loaded in the memory, and therefore, execution is impossible. A typical example of an application using the com extension of MS-DOS is physical memory only.

만약 사용자가 컴퓨터를 사용하는 도중, 컴퓨터의 메인 메모리의 크기를 초과하는 프로세스를 수행하는 경우, 사용자는 시스템 실패 화면을 만나게 될 것이다. 가상 메모리 기법은 이러한 한계를 극복하기 위해 고안된 것이다.If the user performs a process that exceeds the size of the computer's main memory while using the computer, the user will encounter a system failure screen. Virtual memory techniques are designed to overcome these limitations.

또한 가상 메모리 기법은 운영 체제에서 실행되고 있는 프로세스가 자신에게 할당되지 않은 영역의 메모리에 접근하는 것을 막고, 이를 통해 프로세스 내의 버그가 다른 프로세스의 동작에 영향을 미치는 것을 예방하며 악성 소프트웨어가 시스템에서 허가되지 않은 접근 권한을 갖고 시스템에 영향을 미치는 것을 막아주는 역할도 담당한다.In addition, the virtual memory technique prevents a process running in the operating system from accessing memory in an area not allocated to itself, thereby preventing a bug in the process from affecting the operation of another process, It is also responsible for preventing unauthorized access to the system.

가상 메모리 기법을 이용하면 프로세스의 관점에서 가상의 주소 공간이 만들어져 이를 실제 물리 메모리 공간에 매핑하게 된다. 일반적으로 응용프로그램을 실행하기 위해 생성되는 프로세스 주소 공간은 사용자 모드에서 접근하는 공간과 시스템 모드에서 접근할 수 있는 공간으로 구성된다. 프로세스 주소 공간의 설정과 관리는 전적으로 운영체제가 담당하게 된다. 따라서, 운영체제 전체는 반드시 신뢰할 수 있는 기반 (Trusted Computing Base, TCB)이 되어야 한다. 운영체제가 외부 공격에 노출이 되면 전체 시스템의 보안이 훼손되는 문제가 있다.Using the virtual memory technique, a virtual address space is created from the viewpoint of the process and is mapped to the actual physical memory space. Generally, the process address space created to execute an application consists of a space for access in user mode and a space for access in system mode. The operating system is responsible for setting up and managing the process address space entirely. Therefore, the entire operating system must be a Trusted Computing Base (TCB). If the operating system is exposed to an external attack, the security of the entire system is compromised.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 장치 구동기가 없는 환경에서 응용 프로그램을 효과적으로 실행시키는 방법을 제공하는데 있다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a method for effectively executing an application program in an environment without a device driver.

상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 장치 구동기가 없는 환경에서 응용 프로그램을 효과적으로 실행시키는 장치를 제공하는데 있다.It is another object of the present invention to provide an apparatus for effectively executing an application program in an environment without a device driver.

상기 목적을 달성하기 위한 본 발명의 실시예에 따른 장치 메모리 관리 장치는, 컴퓨터 장치에서 응용 프로그램을 실행하기 위한 메모리 주소를 관리하는 장치로서, 응용 프로그램에 대한 실행 요청에 따라 응용 프로그램의 실행에 필요한 컴퓨터 장치에 내재된 컴퓨터 자원에 대한 권한 정보와 컴퓨터 자원의 식별 정보를 추출하는 메모리 제어 요청부와, 컴퓨터 장치의 커널 영역 외부에서 권한 정보와 식별 정보에 기반하여 응용 프로그램과 컴퓨터 자원의 메모리 주소를 매핑한 프로세스 주소 공간을 생성하는 메모리 제어부를 포함하여 구성될 수 있다.According to an aspect of the present invention, there is provided an apparatus management apparatus for managing a memory address for executing an application program in a computer apparatus, the apparatus managing apparatus comprising: A memory control request unit for extracting rights information of the computer resources inherent to the computer device and identification information of the computer resources; and a memory control unit for requesting memory addresses of application programs and computer resources based on the privilege information and identification information outside the kernel area of the computer apparatus And a memory control unit for generating a mapped process address space.

여기에서, 상기 메모리 관리 장치는, 컴퓨터 장치의 커널 영역 외부에 위치하여 커널 영역에 내재된 메모리 관리 모듈의 일부 또는 전부를 대체할 수 있다.Here, the memory management device may be located outside the kernel area of the computer device and may replace part or all of the memory management module contained in the kernel area.

또한 여기에서, 상기 메모리 관리 장치는, 권한 정보와 식별 정보를 저장하는 매핑 정보 저장부를 더 포함하여 구성될 수 있다. 나아가, 상기 권한 정보는, 응용 프로그램의 실행 전에 미리 설정되어 있거나, 응용 프로그램의 실행 시 생성될 수 있다.Here, the memory management apparatus may further include a mapping information storage unit storing the authority information and the identification information. Further, the right information may be set before execution of the application program, or may be generated when the application program is executed.

여기에서, 상기 컴퓨터 자원은, 라이브러리, 커널 모듈, 장치 구동기 중 적어도 하나 이상을 포함할 수 있다.Here, the computer resources may include at least one of a library, a kernel module, and a device driver.

여기에서, 상기 권한 정보는, 컴퓨터 자원에 대한 접근, 읽기, 쓰기, 변경의 허용 여부를 나타내는 정보일 수 있다.Here, the privilege information may be information indicating whether the computer resource is permitted to access, read, write, or change.

여기에서, 상기 식별 정보는, 컴퓨터 자원의 유니크(unique)한 식별자와, 컴퓨터 자원에 할당된 물리 메모리 공간의 주소 정보를 포함할 수 있다. 나아가, 상기 식별자는, 컴퓨터 자원의 기능을 표시할 수 있다.Here, the identification information may include a unique identifier of the computer resource and address information of the physical memory space allocated to the computer resource. Further, the identifier may indicate the function of the computer resource.

여기에서, 상기 메모리 제어부는, 응용 프로그램이 사용 권한을 가진 컴퓨터 자원의 물리 메모리 공간으로만 매핑되는 프로세스 주소 공간을 생성하거나, 응용 프로그램을 컴퓨터 장치에 내재된 컴퓨터 자원 모두에 매핑한 후, 응용 프로그램이 사용 권한을 가지지 않는 컴퓨터 자원에 대한 매핑을 해제함으로써 프로세서 주소 공간을 생성할 수 있다.Here, the memory control unit may generate a process address space in which an application program is mapped only to a physical memory space of a computer resource having usage rights, or may map an application program to all the computer resources inherent in the computer apparatus, The processor address space can be created by unmapping the computer resources that do not have this use right.

또한 여기에서, 상기 메모리 제어부는, 프로세스 주소 공간의 페이지 테이블을 수정하여 컴퓨터 자원에 대한 권한 정보를 변경할 수 있다.Here, the memory control unit may modify the page information of the process address space to change the authority information on the computer resource.

상기 목적을 달성하기 위한 본 발명의 실시예에 따른 장치 메모리 방법은, 컴퓨터 장치에서 응용 프로그램을 실행하기 위한 메모리 주소를 관리하는 방법으로서, 응용 프로그램에 대한 실행 요청에 따라 응용 프로그램의 실행에 필요한 컴퓨터 장치에 내재된 컴퓨터 자원에 대한 권한 정보와 컴퓨터 자원의 식별 정보를 추출하는 단계와, 컴퓨터 장치의 커널 영역 외부에서 권한 정보와 식별 정보에 기반하여 응용 프로그램과 컴퓨터 자원의 메모리 주소를 매핑한 프로세스 주소 공간을 생성하는 단계를 포함하여 구성될 수 있다.According to an aspect of the present invention, there is provided a method for managing a memory address for executing an application program in a computer device, the method comprising: A step of extracting authorization information of a computer resource embedded in the device and identification information of the computer resource; a process address mapping a memory address of the application program and a computer resource based on the privilege information and the identification information outside the kernel area of the computer device; And creating a space.

여기에서, 상기 메모리 관리 방법이 수행되는 장치는, 컴퓨터 장치의 커널 영역 외부에 위치하여 커널 영역에 내재된 메모리 관리 모듈의 일부 또는 전부를 대체할 수 있다.Here, the device on which the memory management method is performed may replace some or all of the memory management modules located in the kernel area, which are located outside the kernel area of the computer device.

여기에서, 상기 메모리 관리 방법은, 권한 정보와 식별 정보를 추출하는 단계 이전에, 권한 정보를 저장하는 단계를 더 포함하여 구성될 수 있다. 나아가, 상기 권한 정보는, 응용 프로그램의 실행 전에 미리 설정되어 있거나, 응용 프로그램의 실행 시 생성될 수 있다.Here, the memory management method may further include storing the right information before the step of extracting the right information and the identification information. Further, the right information may be set before execution of the application program, or may be generated when the application program is executed.

여기에서, 상기 컴퓨터 자원은, 라이브러리, 커널 모듈, 장치 구동기 중 적어도 하나 이상을 포함할 수 있다.Here, the computer resources may include at least one of a library, a kernel module, and a device driver.

여기에서, 상기 권한 정보는, 컴퓨터 자원에 대한 접근, 읽기, 쓰기, 변경의 허용 여부를 나타내는 정보일 수 있다.Here, the privilege information may be information indicating whether the computer resource is permitted to access, read, write, or change.

여기에서, 상기 식별 정보는, 컴퓨터 자원의 유니크(unique)한 식별자와, 컴퓨터 자원에 할당된 물리 메모리 공간의 주소 정보를 포함할 수 있다. 나아가, 상기 식별자는, 컴퓨터 자원의 기능을 표시할 수 있다.Here, the identification information may include a unique identifier of the computer resource and address information of the physical memory space allocated to the computer resource. Further, the identifier may indicate the function of the computer resource.

여기에서, 상기 프로세스 주소 공간을 생성하는 단계는, 응용 프로그램이 사용 권한을 가진 컴퓨터 자원의 물리 메모리 공간으로만 매핑되는 프로세스 주소 공간을 생성하거나, 응용 프로그램을 컴퓨터 장치에 내재된 컴퓨터 자원 모두에 매핑한 후, 응용 프로그램이 사용 권한을 가지지 않는 컴퓨터 자원에 대한 매핑을 해제함으로써 프로세서 주소 공간을 생성할 수 있다.Here, the step of creating the process address space may include: generating an address space in which an application program is mapped only to a physical memory space of a computer resource having usage rights; or mapping an application program to all computer resources After that, the application can create a processor address space by unmapping the computer resources that do not have usage rights.

또한 여기에서, 상기 프로세스 주소 공간을 생성하는 단계는, 프로세스 주소 공간의 페이지 테이블을 수정하여 컴퓨터 자원에 대한 권한 정보를 변경할 수 있다.Also, the step of creating the process address space may modify the page information of the process address space to change the right information about the computer resource.

상기와 같은 본 발명에 따른 메모리 관리 장치 및 방법을 사용하면, 응용 프로그램을 수행함에 있어서, 해당 프로세스의 주소 공간을 동적으로 변경하여, 해당 응용 프로그램이 사용 가능한 영역만 매핑 시킴으로써, 응용 프로그램의 각종 커널 서비스, 즉 커널에서 동작되는 모듈, 장치 구동기(Device Driver) 등과 사용자 라이브러리, 다른 응용 프로그램 등에 대한 권한에 의한 사용 제어가 가능해진다는 장점이 있다.In the memory management apparatus and method according to the present invention, when executing an application program, the address space of the corresponding process is dynamically changed to map only a usable area of the application program, It is possible to control the use by a right of a service, that is, a module, a device driver, a user library, another application program, etc., operating in the kernel.

또한 프로세스 주소 공간에 대한 설정/관리를 운영체제의 커널 영역으로부터 분리한 제3의 제어기를 통하여 할 수 있으므로, 운영체제가 해킹 등 외부 공격에 노출되더라도 전체 시스템 보안이 훼손되지 않게 할 수 있다.Also, since the configuration / management of the process address space can be performed through the third controller that is separated from the kernel area of the operating system, the entire system security can be protected even if the operating system is exposed to an external attack such as hacking.

도 1은 일반적인 컴퓨터 장치의 구조를 설명하기 위한 개념도이다.
도 2는 본 발명의 실시예에 따른 컴퓨터 장치의 구조를 설명하기 위한 개념도이다.
도 3은 본 발명의 실시예에 따른 메모리 관리 장치와 구성요소를 설명하기 위한 개념도이다.
도 4는 일반적인 프로세스 주소 공간을 설명하기 위한 개념도이다.
도 5는 본 발명의 실시예에 따른 프로세스 주소 공간 제어를 통한 결과로 생성된 프로세스 주소 공간을 설명하기 위한 개념도이다.
도 6은 본 발명의 실시예에 따른 응용 프로그램의 컴퓨터 자원에 대한 권한 정보를 설명하기 위한 예시도이다.
도 7은 컴퓨터 자원의 식별 정보를 설명하기 위한 예시도이다.
도 8은 페이지 테이블을 이용한 프로세스 주소 공간 제어를 설명하기 위한 예시도이다.
도 9는 메모리 관리 방법의 각 단계를 설명하기 위한 흐름도이다.
1 is a conceptual diagram for explaining the structure of a general computer device.
2 is a conceptual diagram illustrating a structure of a computer apparatus according to an embodiment of the present invention.
3 is a conceptual diagram for explaining a memory management device and its components according to an embodiment of the present invention.
4 is a conceptual diagram for explaining a general process address space.
5 is a conceptual diagram illustrating a process address space generated as a result of process address space control according to an embodiment of the present invention.
6 is an exemplary diagram for explaining rights information on computer resources of an application program according to an embodiment of the present invention.
7 is an exemplary diagram for explaining identification information of a computer resource.
8 is an exemplary diagram for explaining process address space control using a page table.
9 is a flowchart for explaining each step of the memory management method.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. The terms first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.

먼저, 본 출원에서 사용되는 용어를 정의하면 다음과 같다. First, the terms used in the present application are defined as follows.

물리 메모리 공간이란 컴퓨터의 메인 메모리를 접근할 때 사용되는 물리 주소(Physical Address)가 주소 레지스터에 적재되는 공간으로 이러한 물리 주소로써 접근 가능한 주소 공간을 말한다. 물리 주소 공간(Physical Address Space)이라고도 하며, 컴퓨터의 실제 메모리 공간과 같다. 물리 메모리 공간을 사용하는 가장 대표적인 예는 MS-DOS의 com 확장자 형식의 프로그램을 들 수 있고, 물리 메모리 공간만으로는 컴퓨터의 메인 메모리의 크기보다 용량이 큰 프로세스를 메모리에 올려 놓을 수 없으므로 실행이 불가능한 단점이 있다. 가상 메모리 기법은 이러한 한계를 극복하기 위해 고안된 것이다.Physical memory space is the space in which the physical address used to access the main memory of the computer is loaded in the address register and is accessible as such physical address. Also called Physical Address Space, it is the same as the physical memory space of the computer. One of the most representative examples of using physical memory space is a program of the com extension type of MS-DOS. The physical memory space alone can not place a process having a capacity larger than the size of the main memory of the computer in memory, . Virtual memory techniques are designed to overcome these limitations.

커널(kernel)이란, 운영 체제(operating system)의 기능 중에서 운영 체제를 구성하는 프로세스와 운영 체제의 제어 하에 수행하는 프로그램에 대해 자원 할당(resource allocation)을 수행하는 부분을 말한다. 예를 들어, 리눅스 운영 체제의 커널은 프로세스 스케줄러, 프로세스간 통신, 동기화, 프로세스 공간 제어와 같은 프로세스 제어 블록과 파일 시스템, 구동기 장치(device driver), 전원 관리(power management) 등으로 구성되어 있다.A kernel is a part of an operating system that performs resource allocation for a process that constitutes the operating system and a program that is executed under the control of the operating system. For example, the kernel of the Linux operating system consists of process control blocks and file systems, such as process scheduler, interprocess communication, synchronization, process space control, device drivers, and power management.

한편, 이러한 운영 체제의 커널 영역과 사용자 응용 프로그램이 대화를 주고 받기 위해선 사용자가 입력한 문장을 읽어 그 문장이 요청하는 시스템 기능을 수행하도록 해 주는 명령 해석기가 필요한데, 이 역할을 담당하는 것을 쉘(shell)이라 한다. 즉, 운영 체제는 사용자 응용 프로그램과 접촉하는 쉘과 실제 하부 루틴의 집합인 커널(kernel)로 분할되어 구성될 수 있다.On the other hand, in order to communicate with the kernel area of the operating system and the user application, a command interpreter is required which reads the sentences inputted by the user and executes the system functions requested by the sentences. shell. That is, the operating system may be divided into a shell, which is in contact with the user application, and a kernel, which is a set of actual sub routines.

본 발명에서 사용하는 용어로서 권한(authority)이란 임의의 컴퓨터 자원(resource)을 사용할 수 있는 것에 대한 허용 여부를 말한다. 이 때 사용을 허용하는 것을 허가(authorization)라 한다. 여기에서 컴퓨터 자원은 컴퓨터 장치에 내재되어 있는 소프트웨어와 하드웨어를 모두 포함한다. 자세하게는 각종 라이브러리, 운영 체제의 커널 영역에 있는 각종 모듈, 장치 구동기 등을 포함할 수 있다.As the term used in the present invention, an authority refers to whether or not any computer resources can be used. Permission to use at this time is called authorization. Here, the computer resources include both the software and the hardware contained in the computer device. And may include various libraries, various modules in the kernel area of the operating system, device drivers, and the like.

이러한 권한을 관리하는 가장 큰 이유는 정당한 사용자만이 허가된 자원에 접근하여 데이터의 보안을 유지하기 위함이다. 권한 관리 기반 구조는 사용하고자 하는 컴퓨터 자원의 종류와 권한 관리의 필요에 따라 달라질 수 있다. 예를 들어, 임의의 컴퓨터 자원에 대하여 접근 허용 여부만을 관리할 수도 있고, 컴퓨터 자원에 접근하는 주체에 따라 권한을 차등 부여할 수 있도록 관리할 수도 있다.The primary reason for managing these privileges is to ensure that only authorized users access the authorized resources to secure the data. The authorization management infrastructure may vary depending on the type of computer resources to be used and the need for rights management. For example, it is possible to manage only the access permission for arbitrary computer resources, or to manage different access rights according to a subject who accesses computer resources.

페이지 테이블(page table)이란, 가상 메모리 기법 중 하나인 페이징 기법을 사용하는 경우에 쓰는 용어이다. 페이징 기법은 가상 기억 장치를 모두 같은 크기의 블록으로 편성하여 운용하는 기법인데, 이 때의 그 같은 크기의 블록을 페이지라고 한다. 하나의 프로세스는 하나의 페이지 테이블을 가지게 되는데, 페이지 테이블에는 페이지 번호와 해당 페이지에 할당된 물리 메모리의 시작 주소가 적혀 있다. 이로써 페이지 테이블을 참조하면 프로세스에 할당된 물리 메모리 주소를 알 수 있게 된다.
A page table is a term used when a paging technique, one of the virtual memory techniques, is used. The paging technique is a technique of organizing all the virtual memory devices into blocks of the same size, and the blocks of the same size are referred to as pages. One process has one page table. The page table lists the page number and the starting address of the physical memory allocated to that page. By referring to the page table, the physical memory address allocated to the process can be known.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 일반적인 컴퓨터 장치의 구조를 설명하기 위한 개념도이다.1 is a conceptual diagram for explaining the structure of a general computer device.

도 1을 참조하면, 일반적인 컴퓨터 장치(10)는 다음과 같이 구성될 수 있다. 컴퓨터 장치(10)의 하드웨어는 컴퓨터의 두뇌라고 할 수 있는 중앙 처리 장치(CPU, Central Processing Unit)와 컴퓨터가 사용하는 프로그램과 데이터를 저장하는 기억 장치(storage device), 그 밖에 디스플레이(display) 장치, 오디오(audio) 장치, 전원 공급원, 네트워크 장치 등의 주변기기로 구성될 수 있다. 기억 장치는 보통 스토리지(storage)와 메모리(memory)라는 두 가지 용어를 사용하고 있는데 일반적으로 보조 기억 장치를 가리키는 경우에는 스토리지라는 용어를 사용하고, 주기억 장치와 캐시 기억 장치를 가리키는 경우에는 메모리라는 용어를 사용한다.Referring to FIG. 1, a general computer device 10 may be configured as follows. The hardware of the computer device 10 includes a central processing unit (CPU), which is a brain of a computer, a storage device for storing programs and data used by the computer, An audio device, a power source, and a network device. Storage devices usually use two terms, storage and memory. In general, the term storage refers to an auxiliary storage device. When referring to a main storage device and a cache memory device, the term memory Lt; / RTI >

이러한 하드웨어가 가장 하부에 있는 것으로 생각하면, 하드웨어를 직접적으로 접촉하여 하드웨어를 제어하는 것이 운영 체제의 커널 영역(200)이라 할 수 있다. 따라서, 커널 영역(200)은 개념적으로 하드웨어의 바로 위에 위치한 것으로 생각할 수 있다. 커널의 주요한 기능은 크게 두 가지로 볼 수 있는데 파일 관리와 프로세스 관리가 그것이다. 프로세스 관리는 여러 프로세스간 통신, 프로세스 사이의 스케줄링, 프로세스의 메모리 관리 등의 모듈로 구성될 수 있다. 이러한 커널 모듈 간에는 서로 밀접한 관련이 있어 이들을 얼마나 유기적이고 효율적으로 관리할 수 있는가가 운영 체제의 커널 성능을 좌우하게 된다.If it is assumed that such hardware is at the bottom, it is the kernel area 200 of the operating system that directly controls the hardware to control the hardware. Thus, the kernel area 200 may be conceptually thought to be located directly above the hardware. There are two main functions of the kernel: file management and process management. Process management can consist of modules such as inter-process communication, scheduling between processes, and memory management of processes. These kernel modules are closely related to each other, and how organically and efficiently manage them will determine the kernel performance of the operating system.

이러한 커널 영역(200)에 대하여 사용자 응용 프로그램에게 통신할 수 있는 인터페이스를 제공하는 것이 쉘(shell)이라고 할 수 있다. 따라서, 쉘은 커널 영역(200)의 상부에 위치한 것으로 개념적으로 생각할 수 있으며, 사용자 응용 프로그램은 가장 상부에 위치한 것으로 생각할 수 있다.
It may be referred to as a shell to provide an interface for communicating with the user application program to the kernel area 200. Thus, the shell may be conceptually thought to be located at the top of the kernel area 200, and the user application may be considered to be at the top.

도 2는 본 발명의 실시예에 따른 컴퓨터 장치의 구조를 설명하기 위한 개념도이다.2 is a conceptual diagram illustrating a structure of a computer apparatus according to an embodiment of the present invention.

도 2를 참조하면, 일반적인 컴퓨터 장치(20)와 커널 영역(200) 외부에 메모리 관리 장치(100)가 있는 경우를 비교하여 이해할 수 있다.Referring to FIG. 2, the case where the general computer device 20 and the memory management device 100 exist outside the kernel area 200 can be understood in comparison with each other.

운영 체제의 커널 영역(200)에는 하드웨어를 제어할 수 있는 파일, 프로세스와 관련된 제어 모듈들이 있다. 리눅스 운영 체제를 예로 들면, 리눅스의 디렉터리(directory)는 트리 구조 형태를 띠고 있으며, 이 중 /usr/src/linux 디렉터리 하위에는 리눅스 커널의 소스 코드들이 들어 있다. 이러한 리눅스 커널의 소스 코드가 컴파일 된 후 컴퓨터가 부팅이 되면 리눅스 커널의 내용이 운영 체제 상에 로드 된다.In the kernel area 200 of the operating system, there are control modules related to files and processes that can control the hardware. As an example of a Linux operating system, a directory in Linux is in the form of a tree structure, which contains the source code for the Linux kernel under the / usr / src / linux directory. When the source code of these Linux kernels is compiled and the computer is booted, the contents of the Linux kernel are loaded onto the operating system.

따라서, 리눅스 커널의 소스 코드를 직접 수정하거나, 리눅스 커널 영역(200)의 메모리 관리 모듈(210)과 관련된 소스 코드 내용 일부나 전부를 수정 내지 삭제하고 리눅스 커널 소스 코드를 컴파일 할 수 있다. 이 때 수정 내지 삭제된 메모리 관리 모듈(210)의 소스 코드 일부나 전부를 대신하여 리눅스 커널 외부 영역에서 메모리 관리 모듈(210)을 직접 코딩하고 컴파일 할 수 있다. 이 경우, 메모리 관리는 리눅스 운영체제가 기본적으로 제공하는 기능을 사용하지 않고 개발자가 스스로 개발한 기능을 추가하여 사용할 수 있으며, 의도하지 않은 커널 영역(200)의 훼손에도 불구하고 개발자가 정의한 메모리 관리 부분은 훼손되지 않을 수 있다.Thus, it is possible to directly modify the source code of the Linux kernel, or to modify or delete some or all of the source code contents related to the memory management module 210 of the Linux kernel area 200 and to compile the Linux kernel source code. At this time, the memory management module 210 can be directly coded and compiled in the area outside the Linux kernel on behalf of part or all of the source code of the modified or deleted memory management module 210. In this case, the memory management can be used by the developer himself or herself without using the functions provided by the Linux operating system. Even if the unintentional kernel area 200 is damaged, the memory management part defined by the developer May not be damaged.

이 때, 커널 외부의 메모리 관리 장치(100)는 사용자 응용 프로그램과 쉘을 통하여 명령을 주고 받을 수 있으며, 이를 커널 영역(200)과 통신하거나 혹은 하드웨어와 직접 통신할 수 있다.
At this time, the memory management apparatus 100 outside the kernel can exchange commands with the user application program through the shell, and can communicate with the kernel area 200 or directly with the hardware.

도 3은 본 발명의 실시예에 따른 메모리 관리 장치(100)와 구성요소를 설명하기 위한 개념도이다.3 is a conceptual diagram for explaining a memory management apparatus 100 and components according to an embodiment of the present invention.

도 3을 참조하면, 컴퓨터 장치에서 응용 프로그램을 실행하기 위한 메모리 관리 장치(100)는, 응용 프로그램에 대한 실행 요청에 따라 응용 프로그램의 실행에 필요한 컴퓨터 장치에 내재된 컴퓨터 자원에 대한 권한 정보와 컴퓨터 자원의 식별 정보를 추출하는 메모리 제어 요청부(120)와, 컴퓨터 장치의 커널 영역(200) 외부에서 권한 정보와 식별 정보에 기반하여 응용 프로그램과 컴퓨터 자원의 메모리 주소를 매핑한 프로세스 주소 공간을 생성하는 메모리 제어부(130)를 포함하여 구성될 수 있다.Referring to FIG. 3, the memory management apparatus 100 for executing an application program in a computer device is configured to execute a program for executing an application program, A memory control request unit 120 for extracting identification information of a resource and a process address space in which a memory address of an application program and a computer resource are mapped based on the privilege information and the identification information outside the kernel area 200 of the computer apparatus And a memory controller 130 for controlling the memory controller 130.

어떠한 사용자 응용 프로그램이 컴퓨터 장치에 있는 컴퓨터 자원을 사용할 수 있는 권한은 메모리 관리 장치(100)에 의하여 관리될 수 있으며, 메모리 제어 요청부(120)는 이러한 권한 정보를 추출해 낼 수 있다. 또한 컴퓨터 자원을 유니크하게 식별하고 물리 메모리 공간(300)에 매핑된 정보를 포함한 식별 정보를 추출해낼 수 있다. 메모리 제어 요청부(120)는 이렇게 추출한 권한 정보와 식별 정보를 메모리 제어부(130)에 송신함으로써 메모리 제어를 요청할 수 있다.An authority for a certain user application to use computer resources in the computer device can be managed by the memory management device 100 and the memory control requesting part 120 can extract the right information. In addition, the computer resources can be uniquely identified and identification information including information mapped to the physical memory space 300 can be extracted. The memory control request unit 120 can request the memory control by transmitting the extracted authority information and the identification information to the memory control unit 130. [

메모리 제어부(130)는 메모리 제어 요청부(120)로부터 수신한 권한 정보와 식별 정보에 기반하여 응용 프로그램이 실행되면서 생성된 프로세스와 서브 프로세스를 컴퓨터 자원에 매핑할 수 있다. 이러한 매핑된 정보를 포함한 프로세스 주소 공간은 컴퓨터 장치의 가상 메모리 공간에 생성될 수 있다.The memory control unit 130 can map a process and a sub-process generated by executing the application program to computer resources based on the right information and the identification information received from the memory control request unit 120. [ The process address space containing this mapped information may be created in the virtual memory space of the computer device.

메모리 관리 장치(100)는, 컴퓨터 장치의 커널 영역(200) 외부에 위치하여 커널 영역(200)에 내재된 메모리 관리 모듈(210)의 일부 또는 전부를 대체할 수 있다.The memory management device 100 can replace some or all of the memory management module 210 that is located outside the kernel area 200 of the computer device and that is embedded in the kernel area 200. [

운영 체제의 일반적인 커널 영역(200)에는 프로세스 주소 공간을 컴퓨터 자원에 매핑하는 역할을 하는 메모리 관리 모듈(210)이 존재한다. 본 발명에 의한 메모리 관리 장치(100)는 커널 영역(200)의 메모리 관리 모듈(210)과 관련된 소스 코드 내용 일부나 전부를 수정 내지 삭제하고, 이를 대신하여 리눅스 커널 외부 영역에서 메모리 관리 모듈(210)을 직접 개발하여 컴파일 할 수 있다. 이 경우, 개발자가 스스로 개발한 기능을 추가하여 사용할 수 있으며, 의도하지 않은 커널 영역(200)의 훼손에도 불구하고 개발자가 정의한 메모리 관리 부분은 훼손되지 않을 수 있다.
In the general kernel area 200 of the operating system, there is a memory management module 210 that is responsible for mapping the process address space to computer resources. The memory management apparatus 100 according to the present invention may modify or delete some or all of the source code contents related to the memory management module 210 of the kernel area 200 and may instead modify or delete the contents of the memory management module 210 ) Can be directly developed and compiled. In this case, the developer can use the function developed by himself or herself, and the memory management portion defined by the developer may not be damaged even though the unintended kernel area 200 is damaged.

도 4는 일반적인 프로세스 주소 공간을 설명하기 위한 개념도이다.4 is a conceptual diagram for explaining a general process address space.

도 4를 참조하면, 물리 메모리 공간(300)에는 현재 응용 프로그램의 수행에 필요한 각종 서브 프로세스들이 적재되어 있다. 구체적으로 응용 프로그램1, 응용 프로그램2, 라이브러리1, 커널 모듈1, 커널 모듈2, 장치1 구동기, 장치2 구동기 등의 서브 프로세스가 적재되어 있는 상황이다.Referring to FIG. 4, the physical memory space 300 stores various sub-processes required for executing the current application program. Specifically, sub-processes such as application program 1, application program 2, library 1, kernel module 1, kernel module 2, device 1 driver, and device 2 driver are loaded.

제1 프로세스 주소 공간(310)은 응용 프로그램1을 구동하는 데 있어서, 물리 메모리 공간(300)에서 필요한 각종 데이터들이 매핑되어 있는데, 응용 프로그램1과 라이브러리1이 사용자 주소 영역에 매핑되어 있으며, 커널 주소 영역에는 커널 모듈1, 커널 모듈2, 장치1 구동기, 장치2 구동기 등 모든 커널 메모리 영역의 서브 프로세스가 매핑되어 있다.In the first process address space 310, various data required in the physical memory space 300 are mapped in driving the application program 1. The application program 1 and the library 1 are mapped to the user address area, In the area, subprocesses of all kernel memory areas such as kernel module 1, kernel module 2, device 1 driver, and device 2 driver are mapped.

제2 프로세스 주소 공간(320)은 응용 프로그램2를 구동하는 데 있어서, 물리 메모리 공간(300)에서 필요한 각종 데이터들이 매핑되어 있는데, 응용 프로그램2와 라이브러리1이 사용자 주소 영역에 매핑되어 있으며, 커널 주소 영역에는 커널 모듈1, 커널 모듈2, 장치1 구동기, 장치2 구동기 등 모든 커널 메모리 영역의 서브 프로세스가 매핑되어 있다.In the second process address space 320, various data necessary in the physical memory space 300 are mapped in driving the application program 2. The application program 2 and the library 1 are mapped to the user address area, In the area, subprocesses of all kernel memory areas such as kernel module 1, kernel module 2, device 1 driver, and device 2 driver are mapped.

여기서, 제1 프로세스의 커널 주소 영역과 제2 프로세스의 커널 주소 영역은 완전히 동일하게 구성이 되며, 이는 제3의 프로세스가 생성되어도 동일한 상황이 발생한다. 또한, 제1 프로세스의 사용자 주소영역 중, 라이브러리1 역시 동일한 영역이 매핑되어 있다.Here, the kernel address area of the first process and the kernel address area of the second process are configured to be completely identical, and the same situation arises even if a third process is created. Also, among the user address areas of the first process, the same area is also mapped in the library 1.

두 프로세스 주소 공간 중 X 로 표시된 구간은 실제 메모리 매핑이 이루어 지지 않은 구간이며, 해당 구간에 대한 접근 요청 시 페이지 실패(page fault)가 발생된다.
The interval indicated by X in the two process address spaces is an interval in which actual memory mapping is not performed, and a page fault occurs in the access request for the corresponding interval.

도 5는 본 발명의 실시예에 따른 프로세스 주소 공간 제어를 통한 결과로 생성된 프로세스 주소 공간을 설명하기 위한 개념도이고, 도 6은 본 발명의 실시예에 따른 응용 프로그램의 컴퓨터 자원에 대한 권한 정보를 설명하기 위한 예시도이다.FIG. 5 is a conceptual diagram illustrating a process address space generated as a result of process address space control according to an embodiment of the present invention. FIG. Fig.

도 5 내지 도 6 및 앞서 참조한 도 3을 계속 참조하면, 상기 메모리 관리 장치(100)는 권한 정보와 상기 식별 정보를 저장하는 매핑 정보 저장부(140)를 더 포함하여 구성될 수 있다.5 to 6 and FIG. 3 described above, the memory management apparatus 100 may further include a mapping information storage unit 140 for storing the right information and the identification information.

저장된 매핑 정보, 즉 저장된 권한 정보와 식별 정보가 있는 경우, 메모리 제어 요청부(120)는 매핑 정보 저장부(140)에 저장된 권한 정보와 식별 정보를 추출하여 메모리 제어부(130)에 송신함으로써 메모리 제어를 요청할 수 있다.The memory control request unit 120 extracts the right information and the identification information stored in the mapping information storage unit 140 and transmits the extracted right information and the identification information to the memory control unit 130, .

또한, 권한 정보는, 응용 프로그램의 실행 전에 미리 설정되어 있거나, 응용 프로그램의 실행 시 생성될 수 있다.The authority information may be set before execution of the application program, or may be generated when the application program is executed.

응용 프로그램이 실행되면 응용 프로그램 실행에 필요한 프로세스가 생성되는데 이러한 프로세스는 서브 프로세스로 구성된다. 응용 프로그램은 그 자체만으로 구동하는 경우도 있지만 통상의 경우는 다른 컴퓨터 자원을 사용하여 구동되는 경우가 대부분이며, 다른 컴퓨터 자원을 구동하기 위한 프로세스를 서브 프로세스라고 한다. 예를 들어, 어떠한 응용 프로그램이 데이터베이스를 읽고 업데이트하는 작업을 한다면, 데이터베이스를 오픈하고 해당 데이터베이스 인스턴스에 쓰기 작업을 할 수 있는 프로세스가 필요하게 된다. 즉 데이터베이스 프로세스가 서브 프로세스로 필요하게 된다.When an application is executed, a process necessary for executing the application is created. This process is constituted by a sub-process. In some cases, an application runs solely on its own, but in most cases it is often run using other computer resources, and the process to run other computer resources is called a subprocess. For example, if an application is to read and update a database, a process is required to open the database and write to that database instance. That is, the database process is required as a subprocess.

또한 어떠한 응용 프로그램이 이더넷(Ethernet) 카드를 통하여 자신이 속해있는 네트워크 상에 메시지를 브로드캐스팅하는 작업을 한다면, 이더넷 카드를 구동하기 위한 프로세스가 필요하게 되고, 이더넷 카드의 장치 구동기의 서브 프로세스가 필요하게 된다.In addition, if an application program broadcasts a message over a network to which it belongs via an Ethernet card, a process for driving the Ethernet card is required, and a sub-process of the device driver of the Ethernet card is required .

본 발명의 메모리 관리 장치(100)는 어떠한 응용 프로그램이 컴퓨터 자원에 대하여 어떤 권한을 가지는지를 미리 설정하여 저장하고 있을 수도 있고, 응용 프로그램이 실행되면 그 결과로 생성된 서브 프로세스를 분석하여 권한 정보를 생성해 낼 수 있다. 그리고 이러한 권한 정보는 매핑 정보 저장부(140)에 저장될 수 있다.The memory management apparatus 100 of the present invention may set and store an application program having a certain authority with respect to computer resources and may store the authority information by analyzing the generated sub- Can be generated. The authority information may be stored in the mapping information storage unit 140. [

컴퓨터 자원은, 라이브러리, 커널 모듈, 장치 구동기 중 적어도 하나 이상을 포함할 수 있다.The computer resources may include at least one of a library, a kernel module, and a device driver.

컴퓨터 자원은 실제 물리 메모리 공간(400)에 일정 영역을 할당 받아 매핑되어 있을 수 있으며, 이러한 컴퓨터 자원에는 컴퓨터 장치의 소프트웨어, 하드웨어를 모두 포함한다. 라이브러리는 어떠한 응용 프로그램이 필요에 따라 사용하는 컴퓨터 장치에 내재된 프로그램 및 서브루틴을 일컫는 것으로서, 다른 응용 프로그램은 물론 자기 자신인 응용 프로그램도 라이브러리에 포함될 수 있다. 커널 모듈은 운영 체제의 커널 영역(200)에 있는, 특성을 알고 있는 기능으로 모듈화된 일정한 단위이다. 장치 구동기는 컴퓨터 장치의 하드웨어를 제어할 수 있는 소프트웨어로서 디바이스 드라이버(device driver)라고도 한다.The computer resources may be mapped by allocating a certain area to the actual physical memory space 400. Such computer resources include software and hardware of the computer device. A library refers to a program and a subroutine contained in a computer apparatus which an application program uses as needed, and an application program itself as well as other application programs can be included in the library. A kernel module is a unit that is modularized into a function known in the kernel area 200 of the operating system. A device driver is software that can control the hardware of a computer device and is also referred to as a device driver.

응용 프로그램은 이러한 컴퓨터 자원을 권한 정보에 따라 사용할 수 있는데, 일반적인 응용 프로그램은 복수 개의 라이브러리, 커널 모듈, 장치 구동기 등을 사용하게 된다.An application can use these computer resources according to the authority information. Typical applications use multiple libraries, kernel modules, and device drivers.

권한 정보는, 컴퓨터 자원에 대한 접근, 읽기, 쓰기, 변경의 허용 여부를 나타내는 정보일 수 있다.The authority information may be information indicating whether the computer resource is allowed to access, read, write, or change.

도 5를 참조하여 보면, 제1 프로세스의 주소 공간은 물리 메모리 공간(400)에 있는 메모리가 매핑되어 구성되는데, 이때, 커널 주소 영역 중, 장치2 구동기와 커널 모듈1은 매핑이 되어 있지 않고 있으며, 제2 프로세스의 주소 공간 역시 물리 메모리 공간(400)에 있는 메모리가 매핑되어 구성되는데, 이때, 커널 주소 영역 중, 장치1 구동기와 커널 모듈2가 매핑되어 있지 않고 있다. 이는 프로세스 주소 공간의 매핑 제어에 의한 결과이다.Referring to FIG. 5, the address space of the first process is configured by mapping a memory in the physical memory space 400. At this time, among the kernel address areas, the device 2 driver and the kernel module 1 are not mapped And the address space of the second process is also configured by mapping the memory in the physical memory space 400. At this time, the device 1 driver and the kernel module 2 are not mapped in the kernel address area. This is the result of the mapping control of the process address space.

다음과 같은 프로그램 수행 제약 사항을 만족 해야 한다고 가정해 보자. 응용프로그램1에서는 커널 모듈1을 사용해서 안되며, 장치2 역시 사용해서는 안 된다. 이와 같은 제약 사항을 만족하기 위해서, 제1 프로세스 주소 공간(410)에서는 커널 모듈1과 장치2 구동기의 구동이 원천적으로 불가능 하도록 매핑이 되어 있지 않게 된다.Suppose you want to satisfy the following program execution constraints: Application 1 should not use kernel module 1, nor should device 2 be used. In order to satisfy such a restriction, the first process address space 410 is not mapped so that the kernel module 1 and the device 2 driver can not be driven at all.

이러한 권한 정보는 응용 프로그램에 따라 달리 설정될 수 있다. 도 6을 참조하여 보면, 어떠한 응용 프로그램이 컴퓨터 자원에 대한 권한 정보를 어떤 형태로 가질 수 있는지를 예로서 보여주고 있다. 도 6a의 경우는 컴퓨터 자원에 대한 접근 허용 여부만을 가지고 있는 경우이다. 장치1 구동기와 사용자 라이브러리1에 대해선 접근이 허용되지만, 장치2 구동기에 대해선 접근이 허용되지 않고 있다.This privilege information may be set differently depending on the application program. Referring to FIG. 6, there is shown an example in which an application program can have rights information about a computer resource. In the case of FIG. 6A, only the access permission to computer resources is allowed. Access is granted to the Device 1 driver and User Library 1, but not to the Device 2 driver.

한편, 권한 정보는 도 6b의 경우처럼 보다 권한이 세부화된 형태로 관리될 수 있다. 도 6b를 참조하여 보면, 어떠한 응용 프로그램은 장치1 구동기에 대해선 접근만이 허용되고, 장치2 구동기에 대해선 접근과 읽기만 허용된다. 반면 사용자 라이브러리1에 대해선 접근, 읽기, 쓰기, 변경이 허용된다.On the other hand, the authority information can be managed in a more detailed form as in the case of FIG. 6B. Referring to FIG. 6B, some application programs are allowed only for the device 1 driver, and only for the device 2 driver access and read. On the other hand, for user library 1, access, read, write, and modification are allowed.

이 경우에 있어서, 접근이란 용어는 응용 프로그램이 어떠한 컴퓨터 자원의 존재와 그 주소를 알고 있는 것으로 정의될 수 있다. 즉 도 6b에 의하면 응용 프로그램이 장치1 구동기의 존재와 물리 메모리 주소는 알고 있지만, 그 내용을 읽을 수는 없으므로 결국 장치1 구동기 자원을 사용할 수는 없다.In this case, the term access may be defined as the application knowing the existence and address of any computer resource. That is, according to FIG. 6B, although the application program knows the existence of the device 1 driver and the physical memory address but can not read the contents thereof, the device 1 driver resource can not be used eventually.

읽기, 쓰기, 변경의 경우에도 컴퓨터 자원의 종류에 따라 적절한 권한 정의를 할 수 있으며, 권한의 정의는 위 4가지 경우만으로 한정되지 않을 수 있다. 가령, 탈착, 제거 등의 권한 정의도 가능하다. 데이터베이스 백업 응용 프로그램이 백업장치 구동기를 사용하는 경우, 데이터 카트리지의 탈착, 제거와 같은 권한을 정의하여 사용할 수 있다.
In the case of read, write, and change, appropriate authority definition can be made according to the type of computer resources. The definition of authority may not be limited to the above four cases. For example, it is possible to define permissions such as desorption and removal. Database backup If your application uses a backup device driver, you can define and use permissions such as detach and remove data cartridges.

도 7은 컴퓨터 자원의 식별 정보를 설명하기 위한 예시도이다.7 is an exemplary diagram for explaining identification information of a computer resource.

도 7을 참조하면, 식별 정보는, 컴퓨터 자원의 유니크(unique)한 식별자와, 컴퓨터 자원에 할당된 물리 메모리 공간(400)의 주소 정보를 포함하는 정보일 수 있다. 또한 식별자는 컴퓨터 자원의 기능을 표시하는 것일 수 있다.Referring to FIG. 7, the identification information may be information including a unique identifier of the computer resource and address information of the physical memory space 400 allocated to the computer resource. The identifier may also be indicative of the function of the computer resource.

식별 정보의 식별자는 “장치1 구동기”와 같은 특정 기능 단위의 식별이 가능할 수 있으며, 또는 범용 단일 식별자(UUID, Universal Unique Identifier)나 MAC(Media Access Control) Address와 같이 기능적 의미가 부여되지 않는 형태의 식별자도 가능할 수 있다. 도 7a와 7b를 참조하여 보면, 각 식별자별 물리 메모리 영역이 기록되어 있으므로, 메모리 제어 요청부(120)가 요청한 식별자를 물리 메모리 영역으로 값을 확인한 후, 프로세스 주소 공간의 동적 변경이 가능해 진다.The identifier of the identification information may be a specific functional unit such as a " device 1 driver " or may be a form in which a functional meaning such as a universal unique identifier (UUID) or a MAC (Media Access Control) May also be possible. Referring to FIGS. 7A and 7B, since the physical memory area for each identifier is recorded, it is possible to dynamically change the process address space after confirming the value requested by the memory control request unit 120 to the physical memory area.

메모리 제어부(130)는, 응용 프로그램이 사용 권한을 가진 컴퓨터 자원의 물리 메모리 공간으로만 매핑되는 프로세스 주소 공간을 생성하거나, 응용 프로그램을 컴퓨터 장치에 내재된 컴퓨터 자원 모두에 매핑한 후, 응용 프로그램이 사용 권한을 가지지 않는 컴퓨터 자원에 대한 매핑을 해제함으로써 프로세스 주소 공간을 생성할 수 있다.The memory control unit 130 generates a process address space in which an application program is mapped only to a physical memory space of a computer resource having usage rights or maps an application program to all of the computer resources inherent in the computer apparatus, The process address space can be created by releasing the mapping to computer resources that do not have usage rights.

도 7과 앞서 참조한 도 5를 계속 참조하여 보면, 컴퓨터 자원에 대한 매핑을 포함하는 프로세스 주소 공간을 생성하는 방법은 두 가지가 가능하다. 첫 번째 방법은, 메모리 제어 요청부(120)가 해당 응용 프로그램이 사용해서는 안 되는 모듈, 장치 등의 식별자를 전달할 수 있으며, 이 경우, 전체 커널 영역(200) 주소 공간 중에서, 사용 권한이 있는 식별자만을 포함하는 물리 메모리 영역을 프로세스 주소 공간에 매핑할 수 있다.With continued reference to FIG. 7 and FIG. 5 referred to above, there are two possible ways to create a process address space that includes a mapping to computer resources. In the first method, the memory control request unit 120 can transmit an identifier such as a module or a device which should not be used by a corresponding application program. In this case, among the entire kernel area 200 address space, Can be mapped to the process address space.

두 번째 방법은, 메모리 제어 요청부(120)가 해당 응용 프로그램이 사용해서는 안 되는 모듈, 장치 등의 식별자를 전달하고, 이 경우, 전체 커널 영역(200) 주소 공간 중에서, 사용 권한이 있는 식별자뿐만 아니라 사용 권한이 없는 식별자를 포함하는 물리 메모리 영역을 프로세스 주소 공간에 매핑한 후, 응용 프로그램이 사용 권한을 가지지 않는 컴퓨터 자원에 대한 매핑을 해제하는 방법으로 프로세스 주소 공간을 생성할 수 있다.In the second method, the memory control request unit 120 delivers identifiers such as modules, devices, and the like that the application program should not use. In this case, Alternatively, the process address space can be created by mapping a physical memory area including an identifier having no use permission to the process address space, and then releasing the mapping of the application resource to a computer resource having no usage right.

두 번째 방법이 첫 번째 방법과 다른 점은, 해당 응용 프로그램 관점에서, 두 번째 방법에 의하면 사용 권한이 없는 식별자의 컴퓨터 자원의 존재를 알 수 있다는 점이다. 즉, 첫 번째 방법에 의하면 해당 응용 프로그램이 사용 권한이 없는 식별자의 컴퓨터 자원의 존재 자체를 모를 수 있으나, 두 번째 방법에 의하면 사용 권한이 없는 식별자의 컴퓨터 자원의 물리 메모리 주소는 알 수 없더라도 최소한 그 존재 자체는 인지할 수 있게 된다.
The second method differs from the first method in that, from the application point of view, the second way is to know the existence of computer resources of identifiers that do not have usage rights. That is, according to the first method, the application program may not know the existence of the computer resource of the identifier having no usage right. However, according to the second method, the physical memory address of the computer resource of the identifier having no usage right is unknown, The existence itself becomes recognizable.

도 8은 페이지 테이블(520)을 이용한 프로세스 주소 공간 제어를 설명하기 위한 예시도이다.FIG. 8 is an exemplary diagram for explaining process address space control using the page table 520. FIG.

도 8을 참조하면, 메모리 제어부(130)는, 프로세스 주소 공간(510)의 페이지 테이블(520)을 수정하여 컴퓨터 자원에 대한 권한 정보를 변경할 수 있다. 프로세스 주소 공간(510)의 동적 변경은 프로세스 주소 공간의 생성 기법에 따라 구현 방법이 상이할 수 있지만, 해당 기술 분야의 숙련된 당업자는 본 발명을 쉽게 이해할 수 있을 것이다. 가상 메모리 기법 중 페이징 기법을 사용하는 경우, 페이지 테이블(520)을 통한 프로세스 주소 공간(510)이 생성될 수 있는데, 접근 제어를 해야 하는 물리 메모리 공간(500)에 대해 페이지 테이블(520)을 수정하는 방법으로 프로세스 주소 공간(510)을 생성할 수 있게 된다.
Referring to FIG. 8, the memory controller 130 may modify the page information 520 of the process address space 510 to change the authority information on the computer resource. The dynamic modification of the process address space 510 may be implemented differently depending on the generation technique of the process address space, but those skilled in the art will readily understand the present invention. In the case of using the paging scheme among the virtual memory schemes, the process address space 510 through the page table 520 can be created. The page table 520 is modified for the physical memory space 500 to be access- The process address space 510 can be generated.

도 9는 메모리 관리 방법의 각 단계를 설명하기 위한 흐름도이다.9 is a flowchart for explaining each step of the memory management method.

도 9를 참조하면, 컴퓨터 장치에서 응용 프로그램을 실행하기 위한 메모리 관리 방법은, 응용 프로그램에 대한 실행 요청에 따라 응용 프로그램의 실행에 필요한 컴퓨터 장치에 내재된 컴퓨터 자원에 대한 권한 정보와 컴퓨터 자원의 식별 정보를 추출하는 단계(S910)와, 컴퓨터 장치의 커널 영역 외부에서 권한 정보와 식별 정보에 기반하여 응용 프로그램과 컴퓨터 자원의 메모리 주소를 매핑한 프로세스 주소 공간을 생성하는 단계(S920)를 포함하여 구성될 수 있다.Referring to FIG. 9, a memory management method for executing an application program in a computer device includes: a step of generating, in response to an execution request for an application program, rights information on a computer resource embedded in the computer device necessary for execution of the application program, (S910) of creating a process address space in which a memory address of an application program and a computer resource are mapped based on the privilege information and the identification information outside the kernel area of the computer device (S920) .

응용 프로그램이 실행 요청되면, 응용 프로그램 수행에 필요한 프로세스가 생성되고, 이러한 프로세스는 서브 프로세스들을 포함한다. 어떠한 사용자 응용 프로그램이 컴퓨터 장치에 있는 컴퓨터 자원을 사용할 수 있는 권한은 컴퓨터 장치에 의하여 관리될 수 있으며, 이러한 권한 정보를 추출해 낼 수 있다. 또한 컴퓨터 자원의 식별 정보를 추출해낼 수 있다. 추출된 권한 정보와 식별 정보에 기반하여 응용 프로그램이 실행되면서 생성된 프로세스와 서브 프로세스를 컴퓨터 자원에 매핑할 수 있다. 이러한 매핑 정보를 포함한 프로세스 주소 공간은 컴퓨터 장치의 가상 메모리 공간에 생성될 수 있다.When an application is requested to be executed, a process necessary for executing an application program is created, and this process includes sub-processes. The right of any user application to use the computer resources in the computer device can be managed by the computer device, and such rights information can be extracted. In addition, identification information of computer resources can be extracted. Based on the extracted credential information and the identification information, the application program can be executed and the generated processes and sub-processes can be mapped to computer resources. The process address space including this mapping information can be created in the virtual memory space of the computer device.

메모리 관리 방법이 수행되는 장치는, 컴퓨터 장치의 커널 영역 외부에 위치하여 커널 영역에 내재된 메모리 관리 모듈의 일부 또는 전부를 대체할 수 있다. 이러한 방법을 사용하면, 의도하지 않은 커널 영역의 훼손에도 불구하고 개발자가 정의한 메모리 관리 부분은 훼손되지 않을 수 있다.The device on which the memory management method is performed can replace some or all of the memory management modules located in the kernel area outside the kernel area of the computer device. Using this approach, the memory management portion defined by the developer may not be compromised despite the unintended corruption of the kernel area.

메모리 관리 방법은, 권한 정보와 식별 정보를 추출하는 단계 이전에, 권한 정보를 저장하는 단계(S930)를 더 포함하여 구성될 수 있다. 권한 정보를 저장하는 단계를 거치는 경우, 저장된 권한 정보를 추출하여 송신하는 방법으로 메모리 제어를 요청할 수 있다.The memory management method may further include storing the authority information (S930) before the step of extracting the authority information and the identification information. When the step of storing the authority information is performed, the memory control may be requested by extracting the stored authority information and transmitting the authority information.

권한 정보는, 응용 프로그램의 실행 전에 미리 설정되어 있거나, 응용 프로그램의 실행 시 생성될 수 있다. 어떠한 응용 프로그램이 컴퓨터 자원에 대하여 어떤 권한을 가지는지는 미리 설정하여 저장하고 있을 수도 있고, 응용 프로그램이 실행되면 그 결과로 생성된 서브 프로세스를 분석하여 권한 정보를 생성해 낼 수 있다. 그리고 이러한 권한 정보는 컴퓨터 장치에 저장될 수 있다.The authority information may be set before execution of the application program, or may be generated upon execution of the application program. It is possible to prescribe and store which application program has the authority for the computer resource, and when the application program is executed, the generated sub-process can be analyzed to generate the privilege information. Such authority information may be stored in a computer device.

컴퓨터 자원은, 라이브러리, 커널 모듈, 장치 구동기 중 적어도 하나 이상을 포함할 수 있다.The computer resources may include at least one of a library, a kernel module, and a device driver.

권한 정보는, 컴퓨터 자원에 대한 접근, 읽기, 쓰기, 변경의 허용 여부를 나타내는 정보일 수 있다. 권한 정보는 응용 프로그램에 따라 달리 설정될 수 있다. 도 6을 참조하여 보면, 어떠한 응용 프로그램이 컴퓨터 자원에 대한 권한 정보를 어떤 형태로 가질 수 있는지를 예로서 보여주고 있다. 도 6a의 경우는 컴퓨터 자원에 대한 접근 허용 여부만을 가지고 있는 경우이다. 장치1 구동기와 사용자 라이브러리1에 대해선 접근이 허용되지만, 장치2 구동기에 대해선 접근이 허용되지 않고 있다.The authority information may be information indicating whether the computer resource is allowed to access, read, write, or change. The authorization information can be set differently depending on the application program. Referring to FIG. 6, it is shown as an example how an application program can have rights information about a computer resource. In the case of FIG. 6A, only the access permission to computer resources is allowed. Access is granted to the Device 1 driver and User Library 1, but not to the Device 2 driver.

한편, 권한 정보는 도 6b의 경우처럼 보다 권한이 세부화된 형태로 관리될 수 있다. 도 6b를 참조하여 보면, 어떠한 응용 프로그램은 장치1 구동기에 대해선 접근만이 허용되고, 장치2 구동기에 대해선 접근과 읽기만 허용된다. 반면 사용자 라이브러리1에 대해선 접근, 읽기, 쓰기, 변경이 허용된다.On the other hand, the authority information can be managed in a more detailed form as in the case of FIG. 6B. Referring to FIG. 6B, some application programs are allowed only for the device 1 driver, and only for the device 2 driver access and read. On the other hand, for user library 1, access, read, write, and modification are allowed.

식별 정보는, 컴퓨터 자원의 유니크(unique)한 식별자와, 컴퓨터 자원에 할당된 물리 메모리 공간의 주소 정보를 포함할 수 있다. 또한, 식별자는 컴퓨터 자원의 기능을 표시하는 것일 수 있다.The identification information may include a unique identifier of the computer resource and address information of the physical memory space allocated to the computer resource. The identifier may also be indicative of the function of the computer resource.

프로세스 주소 공간을 생성하는 단계는, 응용 프로그램이 사용 권한을 가진 컴퓨터 자원의 물리 메모리 공간으로만 매핑되는 프로세스 주소 공간을 생성하거나, 응용 프로그램을 컴퓨터 장치에 내재된 컴퓨터 자원 모두에 매핑한 후, 응용 프로그램이 사용 권한을 가지지 않는 컴퓨터 자원에 대한 매핑을 해제함으로써 프로세서 주소 공간을 생성할 수 있다.The step of creating a process address space may include creating a process address space in which an application maps only to a physical memory space of a computer resource for which the application has usage rights or mapping an application program to all of the computer resources inherent in the computer device, A program can create a processor address space by unmapping computer resources that do not have usage rights.

두 번째 방법이 첫 번째 방법과 다른 점은, 해당 응용 프로그램 관점에서, 두 번째 방법에 의하면 사용 권한이 없는 식별자의 컴퓨터 자원의 존재를 알 수 있다는 점이다. 즉, 첫 번째 방법에 의하면 해당 응용 프로그램이 사용 권한이 없는 식별자의 컴퓨터 자원의 존재 자체를 모를 수 있으나, 두 번째 방법에 의하면 사용 권한이 없는 식별자의 컴퓨터 자원의 물리 메모리 주소는 알 수 없더라도 최소한 그 존재 자체는 인지할 수 있게 된다.The second method differs from the first method in that, from the application point of view, the second way is to know the existence of computer resources of identifiers that do not have usage rights. That is, according to the first method, the application program may not know the existence of the computer resource of the identifier having no usage right. However, according to the second method, the physical memory address of the computer resource of the identifier having no usage right is unknown, The existence itself becomes recognizable.

프로세스 주소 공간을 생성하는 단계는, 프로세스 주소 공간의 페이지 테이블을 수정하여 컴퓨터 자원에 대한 권한 정보를 변경할 수 있다. 가상 메모리 기법 중 페이징 기법을 사용하는 경우, 페이지 테이블을 통한 프로세스 주소 공간이 생성될 수 있는데, 접근 제어를 해야 하는 물리 메모리 주소 영역에 대해 페이지 테이블을 수정하는 방법으로 프로세스 주고 공간을 생성할 수 있게 된다.
The step of creating the process address space may modify the privilege information for the computer resource by modifying the page table of the process address space. When using the paging scheme among the virtual memory schemes, a process address space can be created through the page table. In the physical memory address area requiring access control, do.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that

10: 컴퓨터 장치 20: 컴퓨터 장치
100: 메모리 관리 장치 110: 프로세스 생성부
120: 메모리 제어 요청부 130: 메모리 제어부
140: 매핑 정보 저장부 200: 커널 영역
210: 메모리 관리 모듈 300: 물리 메모리 공간
310: 제1 프로세스 주소 공간 320: 제2 프로세스 주소 공간
400: 물리 메모리 공간 410: 제1 프로세스 주소 공간
420: 제2 프로세스 주소 공간 500: 물리 메모리 공간
510: 프로세스 주소 공간 520: 페이지 테이블
10: computer device 20: computer device
100: memory management apparatus 110: process generation unit
120: memory control request unit 130: memory control unit
140: mapping information storage unit 200: kernel area
210: memory management module 300: physical memory space
310: first process address space 320: second process address space
400: physical memory space 410: first process address space
420: second process address space 500: physical memory space
510: process address space 520: page table

Claims (20)

컴퓨터 장치에서 응용 프로그램을 실행하기 위한 메모리 주소를 관리하는 장치에 있어서,
상기 응용 프로그램에 대한 실행 요청에 따라 상기 응용 프로그램의 실행에 필요한 상기 컴퓨터 장치에 내재된 컴퓨터 자원에 대한 권한 정보와 상기 컴퓨터 자원의 식별 정보를 추출하는 메모리 제어 요청부; 및
상기 컴퓨터 장치의 커널 영역 외부에서 상기 권한 정보와 상기 식별 정보에 기반하여 상기 응용 프로그램과 상기 컴퓨터 자원의 메모리 주소를 매핑한 프로세스 주소 공간을 생성하는 메모리 제어부를 포함하는 메모리 관리 장치.
An apparatus for managing a memory address for executing an application program in a computer device,
A memory control request unit for extracting rights information of computer resources inherent to the computer apparatus necessary for execution of the application program and identification information of the computer resource according to an execution request for the application program; And
And a memory controller for generating a process address space in which a memory address of the application program and the computer resource are mapped based on the privilege information and the identification information outside a kernel area of the computer device.
청구항 1에 있어서,
상기 메모리 관리 장치는
상기 컴퓨터 장치의 커널 영역 외부에 위치하여 상기 커널 영역에 내재된 메모리 관리 모듈의 일부 또는 전부를 대체하는 것을 특징으로 하는 메모리 관리 장치.
The method according to claim 1,
The memory management apparatus
Wherein the memory management module is located outside the kernel area of the computer device and replaces a part or all of the memory management module in the kernel area.
청구항 1에 있어서,
상기 메모리 관리 장치는
상기 권한 정보와 상기 식별 정보를 저장하는 매핑 정보 저장부를 더 포함하는 것을 특징으로 하는 메모리 관리 장치.
The method according to claim 1,
The memory management apparatus
And a mapping information storage unit for storing the authorization information and the identification information.
청구항 3에 있어서,
상기 권한 정보는
상기 응용 프로그램의 실행 전에 미리 설정되어 있거나, 상기 응용 프로그램의 실행 시 생성될 수 있는 것을 특징으로 하는 메모리 관리 장치.
The method of claim 3,
The rights information
Wherein the application program is previously set before execution of the application program, or can be generated upon execution of the application program.
청구항 1에 있어서,
상기 컴퓨터 자원은
라이브러리, 커널 모듈, 장치 구동기 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 메모리 관리 장치.
The method according to claim 1,
The computer resource
A library, a kernel module, and a device driver.
청구항 1에 있어서,
상기 권한 정보는
상기 컴퓨터 자원에 대한 접근, 읽기, 쓰기, 변경의 허용 여부를 나타내는 정보인 것을 특징으로 하는 메모리 관리 장치.
The method according to claim 1,
The rights information
Wherein the information is information indicating whether the computer resource is permitted to access, read, write, or change.
청구항 1에 있어서,
상기 식별 정보는
상기 컴퓨터 자원의 유니크(unique)한 식별자; 및
상기 컴퓨터 자원에 할당된 물리 메모리 공간의 주소 정보를 포함하는 것을 특징으로 하는 메모리 관리 장치.
The method according to claim 1,
The identification information
A unique identifier of the computer resource; And
And address information of a physical memory space allocated to the computer resource.
청구항 7에 있어서,
상기 식별자는
상기 컴퓨터 자원의 기능을 표시하는 것을 특징으로 하는 메모리 관리 장치.
The method of claim 7,
The identifier
And displays the function of the computer resource.
청구항 1에 있어서,
상기 메모리 제어부는
상기 응용 프로그램이 사용 권한을 가진 상기 컴퓨터 자원의 물리 메모리 공간으로만 매핑되는 상기 프로세스 주소 공간을 생성하거나,
상기 응용 프로그램을 상기 컴퓨터 장치에 내재된 컴퓨터 자원 모두에 매핑한 후, 상기 응용 프로그램이 사용 권한을 가지지 않는 상기 컴퓨터 자원에 대한 매핑을 해제함으로써 상기 프로세스 주소 공간을 생성하는 것을 특징으로 하는 메모리 관리 장치.
The method according to claim 1,
The memory control unit
The application program creating the process address space mapped only to a physical memory space of the computer resource having usage rights,
Wherein the application program creates the process address space by mapping the application program to all of the computer resources inherent in the computer device and then releasing the mapping for the computer resource for which the application program does not have usage rights. .
청구항 1에 있어서,
상기 메모리 제어부는
상기 프로세스 주소 공간의 페이지 테이블을 수정하여 상기 컴퓨터 자원에 대한 권한 정보를 변경할 수 있는 것을 특징으로 하는 메모리 관리 장치.
The method according to claim 1,
The memory control unit
And modify the page table of the process address space to change the authority information for the computer resource.
컴퓨터 장치에서 응용 프로그램을 실행하기 위한 메모리 주소를 관리하는 방법에 있어서,
상기 응용 프로그램에 대한 실행 요청에 따라 상기 응용 프로그램의 실행에 필요한 상기 컴퓨터 장치에 내재된 컴퓨터 자원에 대한 권한 정보와 상기 컴퓨터 자원의 식별 정보를 추출하는 단계; 및
상기 컴퓨터 장치의 커널 영역 외부에서 상기 권한 정보와 상기 식별 정보에 기반하여 상기 응용 프로그램과 상기 컴퓨터 자원의 메모리 주소를 매핑한 프로세스 주소 공간을 생성하는 단계를 포함하는 메모리 관리 방법.
A method of managing a memory address for executing an application program on a computer device,
Extracting authorization information for the computer resources and identification information of the computer resources required for execution of the application program in accordance with an execution request for the application program; And
Generating a process address space in which a memory address of the application program and the computer resource are mapped based on the privilege information and the identification information outside a kernel area of the computer device.
청구항 11에 있어서,
상기 메모리 관리 방법이 수행되는 장치는
상기 컴퓨터 장치의 커널 영역 외부에 위치하여 상기 커널 영역에 내재된 메모리 관리 모듈의 일부 또는 전부를 대체하는 것을 특징으로 하는 메모리 관리 방법.
The method of claim 11,
The apparatus in which the memory management method is performed
Wherein the memory management module is located outside the kernel area of the computer device and replaces some or all of the memory management module in the kernel area.
청구항 11에 있어서,
상기 메모리 관리 방법은
상기 권한 정보와 상기 식별 정보를 추출하는 단계 이전에,
상기 권한 정보를 저장하는 단계를 더 포함하는 것을 특징으로 하는 메모리 관리 방법.
The method of claim 11,
The memory management method
Before the step of extracting the right information and the identification information,
Further comprising the step of storing the authorization information.
청구항 13에 있어서,
상기 권한 정보는
상기 응용 프로그램의 실행 전에 미리 설정되어 있거나, 상기 응용 프로그램의 실행 시 생성될 수 있는 것을 특징으로 하는 메모리 관리 방법.
14. The method of claim 13,
The rights information
Wherein the application program is previously set before execution of the application program, or can be generated when the application program is executed.
청구항 11에 있어서,
상기 컴퓨터 자원은
라이브러리, 커널 모듈, 장치 구동기 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 메모리 관리 방법.
The method of claim 11,
The computer resource
A library, a kernel module, and a device driver.
청구항 11에 있어서,
상기 권한 정보는
상기 컴퓨터 자원에 대한 접근, 읽기, 쓰기, 변경의 허용 여부를 나타내는 정보인 것을 특징으로 하는 메모리 관리 방법.
The method of claim 11,
The rights information
Wherein the information is information indicating whether the computer resource is permitted to access, read, write, or change.
청구항 11에 있어서,
상기 식별 정보는
상기 컴퓨터 자원의 유니크(unique)한 식별자; 및
상기 컴퓨터 자원에 할당된 물리 메모리 공간의 주소 정보를 포함하는 것을 특징으로 하는 메모리 관리 방법.
The method of claim 11,
The identification information
A unique identifier of the computer resource; And
And address information of a physical memory space allocated to the computer resource.
청구항 17에 있어서,
상기 식별자는
상기 컴퓨터 자원의 기능을 표시하는 것을 특징으로 하는 메모리 관리 방법.
18. The method of claim 17,
The identifier
And displaying the function of the computer resource.
청구항 11에 있어서,
상기 프로세스 주소 공간을 생성하는 단계는
상기 응용 프로그램이 사용 권한을 가진 상기 컴퓨터 자원의 물리 메모리 공간으로만 매핑되는 상기 프로세스 주소 공간을 생성하거나,
상기 응용 프로그램을 상기 컴퓨터 장치에 내재된 컴퓨터 자원 모두에 매핑한 후, 상기 응용 프로그램이 사용 권한을 가지지 않는 컴퓨터 자원에 대한 매핑을 해제함으로써 상기 프로세스 주소 공간을 생성하는 것을 특징으로 하는 메모리 관리 방법.
The method of claim 11,
The step of creating the process address space
The application program creating the process address space mapped only to a physical memory space of the computer resource having usage rights,
Mapping the application program to all of the computer resources inherent in the computer device and then creating the process address space by releasing the mapping of computer resources that do not have usage rights to the application program.
청구항 11에 있어서,
상기 프로세스 주소 공간을 생성하는 단계는
상기 프로세스 주소 공간의 페이지 테이블을 수정하여 상기 컴퓨터 자원에 대한 권한 정보를 변경할 수 있는 것을 특징으로 하는 메모리 관리 방법.
The method of claim 11,
The step of creating the process address space
And modify the page table of the process address space to change the privilege information for the computer resource.
KR1020130106995A 2013-09-06 2013-09-06 Apparatus and method for controlling process address space KR101460451B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130106995A KR101460451B1 (en) 2013-09-06 2013-09-06 Apparatus and method for controlling process address space

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130106995A KR101460451B1 (en) 2013-09-06 2013-09-06 Apparatus and method for controlling process address space

Publications (1)

Publication Number Publication Date
KR101460451B1 true KR101460451B1 (en) 2014-11-12

Family

ID=52287708

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130106995A KR101460451B1 (en) 2013-09-06 2013-09-06 Apparatus and method for controlling process address space

Country Status (1)

Country Link
KR (1) KR101460451B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160068480A (en) * 2014-12-05 2016-06-15 삼성전자주식회사 Method and apparatus for protecting resource of application program
KR20160113483A (en) * 2015-03-20 2016-09-29 한국전자통신연구원 Apparatus and Method for updating a snapshot image
KR20180066335A (en) * 2016-12-07 2018-06-19 현대오트론 주식회사 Apparatus for processing process
CN113608745A (en) * 2021-08-11 2021-11-05 平安国际智慧城市科技股份有限公司 Method for initializing user authority and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080089002A (en) * 2007-03-30 2008-10-06 삼성전자주식회사 Memory access control method
KR20080104591A (en) * 2007-05-28 2008-12-03 삼성전자주식회사 Memory protection methods and devices
KR101155123B1 (en) * 2010-10-26 2012-06-11 한국과학기술원 Apparatus and method for protecting memory of application from failure of kernel code

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080089002A (en) * 2007-03-30 2008-10-06 삼성전자주식회사 Memory access control method
KR20080104591A (en) * 2007-05-28 2008-12-03 삼성전자주식회사 Memory protection methods and devices
KR101155123B1 (en) * 2010-10-26 2012-06-11 한국과학기술원 Apparatus and method for protecting memory of application from failure of kernel code

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160068480A (en) * 2014-12-05 2016-06-15 삼성전자주식회사 Method and apparatus for protecting resource of application program
KR102297476B1 (en) * 2014-12-05 2021-09-02 삼성전자주식회사 Method and apparatus for protecting resource of application program
KR20160113483A (en) * 2015-03-20 2016-09-29 한국전자통신연구원 Apparatus and Method for updating a snapshot image
KR102011059B1 (en) * 2015-03-20 2019-08-16 한국전자통신연구원 Apparatus and Method for updating a snapshot image
KR20180066335A (en) * 2016-12-07 2018-06-19 현대오트론 주식회사 Apparatus for processing process
KR101887786B1 (en) * 2016-12-07 2018-08-13 현대오트론 주식회사 Apparatus for processing process
CN113608745A (en) * 2021-08-11 2021-11-05 平安国际智慧城市科技股份有限公司 Method for initializing user authority and storage medium

Similar Documents

Publication Publication Date Title
EP2385479B1 (en) Information flow tracking and protection
KR101477080B1 (en) Memory access security management
CN100580642C (en) Universal serial bus storage device and access control method thereof
CN108062242B (en) Computing system for securely executing secure applications in rich execution environments
CN101373441B (en) Virtual platform system based on firmware
US7975117B2 (en) Enforcing isolation among plural operating systems
KR101323858B1 (en) Apparatus and method for controlling memory access in virtualized system
EP3842973B1 (en) Security schemes for multiple trusted-execution-environments (tees) and multiple rich-execution-environments (rees)
KR20090010872A (en) Method and apparatus for managing access rights of an application in a CDC OS environment
CN105190570A (en) Memory introspection engine for integrity protection of virtual machines
US9032401B2 (en) Virtual computer system having a first virtual computer that executes a protected process, a second virtual computer that executes an unprotected process, and a hypervisor that controls the first and second virtual computers
CN101477477B (en) Kernel spacing isolation method, spacing management entity and system
KR101460451B1 (en) Apparatus and method for controlling process address space
KR20050018630A (en) Method and apparatus for physical address-based security to determine target security
JP5338435B2 (en) Information processing program, information processing apparatus, and information processing method
US20170317832A1 (en) Virtual Secure Elements in Computing Systems based on ARM Processors
CN114237817A (en) Virtual machine data reading and writing method and related device
US8689288B2 (en) Apparatus and method for protecting system in virtualized environment
CN114065257A (en) Address space protection method, protection device, equipment and storage medium
CN109753347A (en) A kind of system and method for realizing driving
CN106845174B (en) Application authority management method and system under security system
US8732811B2 (en) Systems and methods for implementing security services
Dannenberg et al. A butler process for resource sharing on spice machines
CN104298519B (en) For configuring the devices and methods therefor of operating system
KR100941743B1 (en) Method and apparatus for multi-table access of input / output devices using target security

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20130906

PA0201 Request for examination
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20141016

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20141104

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20141104

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20171024

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20171024

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20181113

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20181113

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20190925

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20190925

Start annual number: 6

End annual number: 6

PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20210815