KR20200020485A - Apparatus and Method for Managing Resource of OS System - Google Patents

Apparatus and Method for Managing Resource of OS System Download PDF

Info

Publication number
KR20200020485A
KR20200020485A KR1020180096248A KR20180096248A KR20200020485A KR 20200020485 A KR20200020485 A KR 20200020485A KR 1020180096248 A KR1020180096248 A KR 1020180096248A KR 20180096248 A KR20180096248 A KR 20180096248A KR 20200020485 A KR20200020485 A KR 20200020485A
Authority
KR
South Korea
Prior art keywords
resource
list
kernel
resource list
information
Prior art date
Application number
KR1020180096248A
Other languages
Korean (ko)
Other versions
KR102111991B1 (en
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 KR1020180096248A priority Critical patent/KR102111991B1/en
Publication of KR20200020485A publication Critical patent/KR20200020485A/en
Application granted granted Critical
Publication of KR102111991B1 publication Critical patent/KR102111991B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored

Abstract

The present invention relates to a resource management apparatus of an operating system and a method thereof. According to the present invention, the apparatus comprises a management control part that uses a resource list including information on a resource type and a resource request target for a system resource access of an application program and manages system resources by using an abstracted resource list derived from the resource list for system resource monitoring of an operating system. Therefore, the apparatus can efficiently manage resources while preventing performance degradation of the operating system by accessing system resources by using a resource list for the system resources in an application program and accessing the system resources by using the abstracted resource list derived from the resource list in the system resource monitoring.

Description

운영체제 시스템의 자원 관리 장치 및 방법{Apparatus and Method for Managing Resource of OS System}Apparatus and Method for Managing Resource of OS System

본 발명은 운영체제 시스템의 자원 관리 장치 및 방법에 관한 것으로, 보다 상세하게는 응용 프로그램의 자원 접근 영역과, 모니터링의 자원 접근 영역을 분리하여 자원을 효율적으로 사용하고 관리할 수 있는 운영체제 시스템의 자원 관리 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for managing a resource of an operating system, and more particularly, to a resource management of an operating system system capable of efficiently using and managing resources by separating a resource access area of an application program and a resource access area of a monitoring program. An apparatus and method are disclosed.

최근 들어, 여러 가지 임베디드 시스템(Embedded System)의 기능 증가로 인해 시스템이 복잡해지면서 요구되는 성능은 증가하고 있고, 이에 따라 실시간 운영체제(RTOS: Real-Time Operating System)의 설치가 일반화되고 있다. 실시간 운영체제는 우주항공 부품, 의료장비 또는 산업용 제어 시스템 등과 같이 높은 신뢰도와 안정성을 요구하는 임베디드 시스템에 적용 가능한 운영체제로, 실시간 소프트웨어를 구성하는데 필요한 기본 기능을 제공하고, 연산 및 입출력이 분명하게 정의된 시간의 한도 내에서 달성될 수 있도록 엄격하게 자원을 관리하는 기능을 수행할 수 있다.In recent years, the performance of various embedded systems has increased due to the complexity of the system. Accordingly, the installation of a real-time operating system (RTOS) has become common. A real-time operating system is an operating system that can be applied to embedded systems that require high reliability and stability, such as aerospace components, medical equipment, or industrial control systems. It provides the basic functions necessary for configuring real-time software, and has clearly defined operations and input / output. It can perform the function of managing resources strictly so that it can be achieved within the time limit.

이러한 실시간 운영체제는 시스템 전체에서 공유하는 자원과, 응용 프로그램의 독점적인 자원인 커널 자원에 대한 모니터링 기능을 제공할 수 있는데, 자원의 모니터링 기능은 현재 응용 프로그램에서 사용 중인 자원 목록과 자원 사용 내역을 표시하는 것으로, 실시간 운영체제는 커널 자원에 직접 접근하여 사용하기 때문에 커널 자원을 모니터링하는 과정이 중요하다.Such a real-time operating system can provide monitoring of resources shared throughout the system and kernel resources, which are the exclusive resources of the application. The monitoring of resources displays a list of the resources currently used by the application and the history of resource usage. As a real-time operating system directly accesses and uses kernel resources, the process of monitoring kernel resources is important.

이와 같이, 커널 자원을 모니터링하는 것은 응용 프로그램에서 어떤 종류의 자원을 얼마나 사용하였는지 등을 알 수 있기 때문에 실시간 운영체제의 성능에 큰 영향을 미치게 된다.As such, monitoring kernel resources has a great impact on the performance of a real-time operating system because it is possible to know what kind of resources are used in an application and how much.

그런데, 싱글 코어 프로세서를 가지는 실시간 운영체제에서는 프로세서가 한 번에 하나의 스레드(thread)를 실행하기 때문에 커널 자원을 모니터링하게 되면 응용 프로그램은 정지하게 되어 커널 자원에 대한 경쟁 상태가 존재하지 않지만, 멀티 코어 프로세싱 구조에서는 한 번에 프로세서의 코어 수만큼 스레드를 실행하기 때문에 모니터링과 응용 프로그램이 동시에 커널 자원에 접근하게 되면 커널 자원에 대한 경쟁 상태가 발생했다.However, in a real-time operating system having a single core processor, since the processor executes one thread at a time, when the kernel resource is monitored, the application is stopped and there is no contention state for the kernel resource. Because the processing architecture executes as many threads as there are processors at a time, there is a race for kernel resources when monitoring and applications access kernel resources at the same time.

이와 같이, 실시간 운영체제의 특성상 모니터링과 응용 프로그램이 커널 자원에 대한 경쟁 상태가 될 경우, 실시간 운영세제의 성능뿐만 아니라 무결성에도 영향을 미치는 문제점이 있었다. As such, when the monitoring and application programs are in a race for kernel resources due to the characteristics of the real-time operating system, there is a problem affecting the integrity as well as the performance of the real-time operating system.

또한, 모니터링이 커널 자원을 먼저 사용할 경우 응용 프로그램은 커널 자원을 점유하기 전까지 대기 상태를 유지하는데, 이럴 경우 많은 자원 점유 대기 비용이 발생되는 문제점이 있었다. 예컨대, 응용 프로그램은 비용이 다소 높고 요청 빈도수가 많은 읽기(read)나 쓰기(write)와 같은 커널 자원의 접근 요청이 많은데, 모니터링에 의해 응용 프로그램이 커널 자원에 접근하는 것을 방해할 경우 읽기와 쓰기 기능이 빈번하게 지연되기 때문에 많은 자원 점유 대기 비용이 발생되는 문제점이 있었다.In addition, when monitoring uses the kernel resource first, the application maintains the wait state until the kernel resource is occupied. In this case, there is a problem that a lot of resource occupancy waiting costs are incurred. For example, an application may be more expensive and require more access to kernel resources, such as reads or writes, which are frequently requested. If monitoring prevents an application from accessing kernel resources, then reads and writes Due to frequent delays in function, there is a problem that a large amount of resource occupancy waiting costs are incurred.

한국공개특허공보 제2007-0037427호(공개일 2007. 04. 04.)Korean Laid-Open Patent Publication No. 2007-0037427 (published 2007. 04. 04.) 한국공개특허공보 제2005-0033327호(공개일 2005. 04. 12)Korean Laid-Open Patent Publication No. 2005-0033327 (published 2005. 04. 12)

따라서 본 발명이 해결하고자 하는 기술적 과제는 응용 프로그램에서는 시스템 자원에 대한 자원 목록을 이용하여 시스템 자원에 접근하고, 시스템 자원 모니터링에서는 자원 목록에서 파생된 추상화된 자원 목록을 이용하여 시스템 자원에 접근함으로써 운영체제의 성능 저하를 방지하면서도 자원을 효율적으로 관리할 수 있는 운영체제 시스템의 자원 관리 장치 및 방법을 제공하는 것이다. Therefore, the technical problem to be solved by the present invention is to access the system resources using the resource list for the system resources in the application program, the system resource monitoring to access the system resources using the abstracted resource list derived from the resource list The present invention provides a resource management apparatus and method for an operating system system that can efficiently manage resources while preventing performance degradation.

또한, 본 발명은 명시적으로 언급된 목적 이외에도, 후술하는 본 발명의 구성으로부터 달성될 수 있는 다른 목적도 포함한다.In addition to the objects explicitly stated, the present invention also includes other objects that can be achieved from the configurations of the present invention described below.

상기한 기술적 과제를 해결하기 위한 본 발명의 실시예에 따른 운영체제 시스템의 자원 관리 장치는 응용 프로그램의 시스템 자원 접근에 대해서는 자원의 종류 및 자원 요청 대상에 대한 정보를 포함하는 자원 목록을 이용하고, 운영체제의 시스템 자원 모니터링에 대해서는 상기 자원 목록에서 파생된 추상화된 자원 목록을 이용하여 시스템 자원을 관리하는 관리 제어부를 포함한다.The resource management apparatus of the operating system system according to an embodiment of the present invention for solving the above technical problem uses a resource list including information on the type of resource and the resource request target for accessing the system resource of the application program, The system resource monitoring includes a management control unit that manages system resources using an abstracted resource list derived from the resource list.

상기 시스템 자원 중에서 운영체제의 모니터링 대상인 커널 자원에 대한 자원 목록을 생성하는 자원 목록 생성부를 더 포함할 수 있다.The apparatus may further include a resource list generator configured to generate a resource list for a kernel resource that is a monitoring target of an operating system among the system resources.

상기 생성된 자원 목록에 포함된 커널 자원에서 자원 정보를 추출하여 상기 추상화된 자원 목록을 생성하는 추상화 목록 생성부를 더 포함할 수 있다.The apparatus may further include an abstraction list generator for extracting resource information from the kernel resource included in the generated resource list and generating the abstracted resource list.

상기 관리 제어부는 멀티 코어로 구성된 운영체제 시스템에서 상기 응용 프로그램의 실시간성을 확보하기 위해 상기 자원 목록을 이용하여 상기 응용 프로그램의 커널 자원 요청을 처리하고, 상기 자원 목록에서 파생된 상기 추상화된 자원 목록을 이용하여 모니터링에 필요한 커널 자원 요청을 처리할 수 있다.The management controller processes a kernel resource request of the application program by using the resource list in order to secure the real-time property of the application in a multi-core operating system, and extracts the abstracted resource list derived from the resource list. It can handle kernel resource requests for monitoring.

상기 관리 제어부는 상기 응용 프로그램으로부터 커널 자원의 할당을 요청 받으면, 상기 요청에 따라 상기 자원 목록에 상기 커널 자원을 등록하는 관리를 수행하는 자원 할당 모듈, 및 상기 수행된 관리에 대한 정보를 상기 추상화된 자원 목록에 반영하는 동기화 모듈을 포함할 수 있다.When the management controller receives a request for allocation of a kernel resource from the application program, the resource control module performs management for registering the kernel resource in the resource list according to the request, and the information about the performed management is abstracted. It may include a synchronization module to reflect in the resource list.

상기 자원 할당 모듈은 상기 응용 프로그램으로부터 커널 자원의 할당을 요청 받으면, 상기 자원 목록에 상기 할당을 요청 받은 커널 자원의 종류 및 커널 자원 요청 대상에 대한 노드 정보를 추가하고, 상기 노드 정보가 추가된 상기 자원 목록을 업데이트할 수 있다.When the resource allocation module receives a request for allocation of a kernel resource from the application program, the resource allocation module adds node information on a type of kernel resource and a kernel resource request target to which the allocation is requested, to the resource list, and wherein the node information is added. You can update the resource list.

상기 동기화 모듈은 상기 수행된 관리에 대한 정보를 버퍼에 저장하여 상기 추상화된 자원 목록에 반영할 수 있다.The synchronization module may store information on the management performed in a buffer and reflect the information on the abstracted resource list.

상기 동기화 모듈은 상기 버퍼에 저장된 정보의 유무를 판단하고, 상기 버퍼에 정보가 저장되어 있는 경우, 상기 버퍼에 저장된 정보를 상기 추상화된 자원 목록에 갱신할 수 있다.The synchronization module may determine whether there is information stored in the buffer, and if the information is stored in the buffer, the synchronization module may update the information stored in the buffer to the abstracted resource list.

상기 관리 제어부는 상기 응용 프로그램으로부터 커널 자원의 해제를 요청 받으면, 상기 요청에 따라 상기 자원 목록에서 상기 커널 자원을 삭제하는 자원 해제 모듈을 더 포함할 수 있다.The management controller may further include a resource release module for deleting the kernel resource from the resource list in response to the request for release of a kernel resource from the application program.

한편, 본 발명의 실시예에 따른 운영체제 시스템의 자원 관리 방법은 시스템 자원의 종류 및 시스템 자원의 요청 대상에 대한 정보를 포함하는 자원 목록을 생성하는 단계, 상기 자원 목록에 포함된 시스템 자원에서 자원 정보를 추출하여 상기 추상화된 자원 목록을 생성하는 단계, 및 응용 프로그램의 시스템 자원 접근에 대해서는 상기 자원 목록을 이용하고, 운영체제의 시스템 자원 모니터링에 대해서는 상기 자원 목록에서 파생된 상기 추상화된 자원 목록을 이용하여 시스템 자원을 관리하는 단계를 포함한다.On the other hand, in the resource management method of the operating system according to an embodiment of the present invention, generating a resource list including information on the type of system resources and the request target of the system resources, resource information from the system resources included in the resource list Generating the abstracted resource list by using the extracted resource list; and using the resource list for system resource access of an application program, and using the abstracted resource list derived from the resource list for system resource monitoring of an operating system. Managing system resources.

상기 자원 목록을 생성하는 단계는 상기 시스템 자원 중에서 운영체제의 모니터링 대상인 커널 자원에 대한 자원 목록을 생성할 수 있다.The generating of the resource list may generate a resource list of a kernel resource that is a monitoring target of an operating system among the system resources.

상기 추상화된 자원 목록을 생성하는 단계는 상기 생성된 자원 목록에 포함된 커널 자원에서 자원 정보를 추출하여 상기 추상화된 자원 목록을 생성할 수 있다.The generating of the abstracted resource list may generate the abstracted resource list by extracting resource information from a kernel resource included in the generated resource list.

상기 시스템 자원을 관리하는 단계는 상기 응용 프로그램으로부터 커널 자원의 할당을 요청 받으면, 상기 요청에 따라 상기 자원 목록에 상기 커널 자원을 등록하는 관리를 수행하는 단계, 및 상기 수행된 관리에 대한 정보를 상기 추상화된 자원 목록에 반영하는 단계를 포함할 수 있다.The managing of the system resource may include: performing management to register the kernel resource in the resource list according to the request when receiving a request for allocation of a kernel resource from the application program; and receiving information about the performed management. And reflecting the abstracted resource list.

상기 추상화된 자원 목록에 반영하는 단계는 버퍼에 저장된 정보의 유무를 판단하고, 상기 버퍼에 정보가 저장되어 있는 경우, 상기 버퍼에 저장된 정보를 상기 추상화된 자원 목록에 갱신할 수 있다.The reflecting of the abstracted resource list may determine whether there is information stored in the buffer, and when the information is stored in the buffer, the information stored in the buffer may be updated to the abstracted resource list.

상기 시스템 자원을 관리하는 단계는 상기 응용 프로그램으로부터 커널 자원의 해제를 요청 받으면, 상기 요청에 따라 상기 자원 목록에서 상기 커널 자원을 삭제하는 단계를 더 포함할 수 있다.The managing of the system resource may further include deleting the kernel resource from the resource list in response to the request for the release of the kernel resource from the application program.

이와 같이 본 발명의 실시예에 따른 운영체제 시스템의 자원 관리 장치 및 방법에 따르면, 응용 프로그램에서는 시스템 자원에 대한 자원 목록을 이용하여 시스템 자원에 접근하고, 시스템 자원 모니터링에서는 자원 목록에서 파생된 추상화된 자원 목록을 이용하여 시스템 자원에 접근함으로써 운영체제의 성능 저하를 방지하면서도 시스템 자원을 효율적으로 관리할 수 있는 장점이 있다.As described above, according to an apparatus and method for managing a resource of an operating system according to an embodiment of the present invention, an application accesses a system resource using a resource list of system resources, and in a system resource monitoring, an abstracted resource derived from a resource list By accessing system resources using a list, it is possible to efficiently manage system resources while preventing performance degradation of the operating system.

이와 같이, 응용 프로그램이 시스템 자원에 접근하여 시스템 자원을 이용하는 기능과, 시스템 자원을 모니터링하기 위해 시스템 자원에 접근하여 시스템 자원을 이용하는 기능을 분리하여 운영체제에 구현함으로써 시스템 자원을 효율적으로 관리함과 동시에 시스템 자원에 대한 무결성을 보장하여 운영체제의 신뢰성을 향상시킬 수 있는 장점이 있다.As such, the application program separates the function of accessing the system resource to use the system resource and the function of accessing the system resource to access the system resource and uses the system resource to implement the system resource to efficiently manage the system resource. There is an advantage to improve the reliability of the operating system by ensuring the integrity of resources.

한편, 본 발명의 효과는 상술된 것에 국한되지 않고 후술하는 본 발명의 구성으로부터 도출될 수 있는 다른 효과도 본 발명의 효과에 포함된다.On the other hand, the effects of the present invention are not limited to those described above, and other effects that can be derived from the configuration of the present invention described below are also included in the effects of the present invention.

도 1은 본 발명의 일 실시예에 따른 운영체제 시스템의 개략적인 구성도이다.
도 2는 도 1에 도시한 자원 관리 장치의 세부적인 구성도이다.
도 3은 본 발명의 일 실시예에 따른 운영체제 시스템의 자원 관리 과정을 보여주는 동작 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 자원 목록을 이용한 자원의 처리 과정을 보여주는 동작 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 추상화된 자원 목록을 이용한 자원의 모니터링 과정을 보여주는 동작 흐름도이다.
1 is a schematic structural diagram of an operating system system according to an embodiment of the present invention.
FIG. 2 is a detailed configuration diagram of the resource management apparatus shown in FIG. 1.
3 is an operation flowchart illustrating a resource management process of an operating system system according to an embodiment of the present invention.
4 is a flowchart illustrating a process of processing a resource using a resource list according to an embodiment of the present invention.
5 is a flowchart illustrating a process of monitoring a resource using an abstracted resource list according to an embodiment of the present invention.

그러면 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention.

도 1은 본 발명의 일 실시예에 따른 운영체제 시스템의 개략적인 구성도 및 도 2는 도 1에 도시한 자원 관리 장치의 세부적인 구성도를 나타낸다.FIG. 1 is a schematic configuration diagram of an operating system system according to an embodiment of the present invention, and FIG. 2 is a detailed configuration diagram of a resource management apparatus shown in FIG.

도 1 및 도 2에 도시한 바와 같이, 운영체제 시스템(1)은 응용 프로그램(50)의 실행을 위한 기반 환경을 제공하고, 하드웨어 장치를 제어하여 응용 프로그램(50)과 하드웨어 장치 간의 인터페이스 역할을 수행하는 운영체제가 구현될 수 있다. 여기서, 응용 프로그램(50)은 운영체제에서 제공하는 사용자 인터페이스를 통해 하드웨어 장치를 사용하는 사용자의 특정 요구를 수행할 수 있도록 작성된 어플리케이션뿐만 아니라 운영체제에서 실행될 수 있는 모든 소프트웨어를 포함할 수 있다.As shown in FIG. 1 and FIG. 2, the operating system system 1 provides a base environment for the execution of the application program 50 and controls a hardware device to serve as an interface between the application program 50 and the hardware device. An operating system can be implemented. Here, the application program 50 may include not only an application written to perform a specific request of a user who uses a hardware device through a user interface provided by the operating system, but also all software that may be executed in the operating system.

또한, 운영체제 시스템(1)은 응용 프로그램(50)의 실행에 요구되는 중앙 처리 장치, 입출력 장치, 네트워크 장치 또는 저장 장치 등과 같은 시스템 자원을 관리하는 자원 관리 장치(100)를 포함할 수 있다.In addition, the operating system system 1 may include a resource management apparatus 100 that manages system resources such as a central processing unit, an input / output device, a network device, or a storage device required for the execution of the application program 50.

자원 관리 장치(100)는 자원 목록 생성부(110), 추상화 목록 생성부(120) 및 관리 제어부(130)를 포함하여 구성된다. The resource management apparatus 100 includes a resource list generator 110, an abstraction list generator 120, and a management controller 130.

자원 목록 생성부(110)는 시스템 자원의 종류 및 시스템 자원의 요청 대상에 대한 정보를 포함하는 자원 목록을 생성할 수 있다. 즉, 자원 목록 생성부(110)는 응용 프로그램(50)이 접근하여 사용할 수 있는 중앙 처리 장치, 입/출력 장치, 네트워크 장치 또는 저장 장치 등과 같은 시스템 자원의 종류 및 시스템 자원을 요청한 대상에 대한 정보(예컨대, 시스템 자원을 요청한 응용 프로그램의 식별 정보)가 나열되어 있는 자원 목록을 생성할 수 있다. 특히, 자원 목록 생성부(110)는 시스템 자원 중에서 운영체제의 모니터링 대상인 커널(kernal) 자원에 대한 자원 목록을 생성할 수 있는데, 여기서, 커널이란 컴퓨터 운영체제의 가장 중요한 핵심이 되는 부분으로서, 윈도우, 리눅스 또는 유닉스 등과 같은 운영체제가 부팅할 경우, 기존의 설정 파일을 기반으로 하드웨어 장치를 제어할 수 있으며, 이외에 프로세스 관리, 메모리 관리, 태스크 관리 또는 시스템 관리 등을 수행할 수 있다. 그리고 커널 자원의 종류로는 메모리(Memory), 세마포어(Semaphore) 또는 IPC(Inter-Processor Communication) 등을 포함할 수 있다.The resource list generator 110 may generate a resource list including information on the type of system resource and a request target of the system resource. That is, the resource list generation unit 110 may provide information on the types of system resources such as a central processing unit, an input / output device, a network device, or a storage device, which can be accessed and used by the application program, and the targets of requesting system resources. (Eg, identification information of an application program requesting system resources) may generate a resource list. In particular, the resource list generator 110 may generate a resource list for a kernel resource, which is a monitoring target of the operating system, from among system resources. Here, the kernel is the most important core of the computer operating system, and is a Windows or Linux. Alternatively, when an operating system such as Unix boots, the hardware device can be controlled based on an existing configuration file, and process management, memory management, task management, or system management can be performed. Types of kernel resources may include memory, semaphores, or inter-processor communication (IPC).

추상화 목록 생성부(120)는 자원 목록에서 파생된 추상화된 자원 목록을 생성할 수 있다. The abstraction list generator 120 may generate an abstracted resource list derived from the resource list.

보다 자세하게는, 추상화 목록 생성부(120)는 자원 목록 생성부(110)에서 생성된 자원 목록에 포함된 커널 자원에서 모니터링에 필요한 커널 자원의 정보를 추출하여 추상화된 자원 목록을 생성할 수 있다. 여기서, 추상화란 주어진 시스템에서 중요하고 관계있는 부분만을 분리하여 간결하고 이해하기 쉽게 만드는 작업으로서, 추상화된 자원 목록이라 함은 커널 자원에 대한 자원 목록 중에서 모니터링에 필요한 커널 자원 정보를 추출하여 별도의 목록으로 만든 것을 말한다. 이와 같이, 추상화 목록 생성부(120)는 자원 목록에서 모니터링에 관계있는 커널 자원의 정보를 추출하는 추상화 작업을 통해 추상화된 자원 목록을 생성할 수 있다. In more detail, the abstraction list generating unit 120 may generate an abstracted resource list by extracting information of kernel resources necessary for monitoring from kernel resources included in the resource list generated by the resource list generating unit 110. Here, abstraction is a task that separates only important and relevant parts of a given system to make it simple and easy to understand, and abstracted resource list is a separate list by extracting kernel resource information necessary for monitoring from the resource list for kernel resources. Say what made it. As such, the abstraction list generation unit 120 may generate an abstracted resource list through an abstraction operation of extracting information of kernel resources related to monitoring from the resource list.

관리 제어부(130)는 응용 프로그램(50)의 시스템 자원 접근에 대해서는 자원 목록을 이용하도록 하고, 운영체제의 시스템 자원 모니터링에 대해서는 자원 목록에서 파생된 추상화된 자원 목록을 이용하도록 하여 시스템 자원의 관리를 제어할 수 있다.The management controller 130 controls the management of system resources by using a resource list for accessing system resources of the application 50 and using an abstracted resource list derived from the resource list for monitoring system resources of the operating system. can do.

보다 자세하게는, 관리 제어부(130)는 멀티 코어로 구성된 운영체제 시스템에서 응용 프로그램(50)의 실시간성을 확보하기 위해 자원 목록을 이용하여 응용 프로그램(50)의 커널 자원 요청을 처리하고, 추상화된 자원 목록을 이용하여 모니터링에 필요한 커널 자원 요청을 처리할 수 있다. 실시간 운영체제는 범용 운영체제와는 다르게 임베디드 시스템 내에서 동작하므로 전원이 인가됨과 동시에 동작을 시작하여야 한다. 특히, 차량 비행기 또는 의료 기기 등과 같이 전원 인가 후 빠른 동작이 매우 중요한 시스템일수록 시간의 제한에 더욱 엄격해지므로 멀티 코어로 이루어진 실시간 운영체제에서 응용 프로그램(50)의 자원 사용과, 자원 모니터링을 위해 동시에 커널 자원에 접근할 경우, 응용 프로그램(50)의 동작이 지연되는 경우가 발생하여 운영체제의 성능에 큰 영향을 미칠 수 있다. 따라서, 관리 제어부(130)는 응용 프로그램(50)으로부터 커널 자원을 요청받으면, 응용 프로그램(50)이 자원 목록에 접근하여 커널 자원을 이용하도록 하고, 커널 자원의 모니터링에서는 추상화된 자원 목록에 접근하여 커널 자원을 이용하도록 하여 응용 프로그램(50)의 접근 영역과 커널 자원의 모니터링에 대한 접근 영역을 분리함으로써 응용 프로그램(50)에서는 시간의 지연 없이 커널 자원을 바로 이용할 수 있으며, 응용 프로그램(50)이 커널 자원을 사용하더라도 커널 자원을 모니터링할 수 있다.In more detail, the management controller 130 processes the kernel resource request of the application program 50 by using the resource list in order to secure the real time of the application program 50 in the multi-core operating system system, and abstracted resources. The list can be used to handle kernel resource requests for monitoring. Unlike a general-purpose operating system, a real-time operating system operates in an embedded system. Therefore, the real-time operating system should start operating when power is applied. In particular, the more critical the fast operation after power-up, such as vehicle airplanes or medical devices, the more stringent the time limit, the kernel simultaneously for resource usage and resource monitoring of the application 50 in a multi-core real-time operating system When accessing a resource, an operation of the application program 50 may be delayed, which may greatly affect the performance of an operating system. Therefore, when the management controller 130 receives a kernel resource request from the application 50, the application 50 accesses the resource list to use the kernel resource, and in monitoring the kernel resource, the management resource 130 accesses the abstracted resource list. By using the kernel resources to separate the access area of the application program 50 and the access area for monitoring the kernel resources, the application 50 can use the kernel resources immediately without time delay, the application 50 is You can monitor kernel resources even if you use kernel resources.

여기서, 커널 자원의 모니터링 시 커널 자원의 종류에 따라 모니터링하는 데이터가 다른데, 예컨대, 커널 자원이 메모리인 경우, 메모리를 얼마나 할당하고 해제하는지에 대한 할당(allocation) 사이즈 또는 해제(free) 사이즈를 모니터링할 수 있고, 커널 자원이 세마포어(Semaphore)의 경우 락(lock)/언락(unlock), 락 카운트(lock count)를 모니터링할 수 있으며, 커널 자원이 IPC의 경우, 최대 메시지 크기(maximum message size), 대기 메시지 개수(queued message count), 송신 메시지 개수(sent message count) 등을 모니터링할 수 있다.Here, when monitoring the kernel resource, the data to be monitored differs according to the type of kernel resource. For example, when the kernel resource is a memory, an allocation size or a free size of how much memory is allocated and released is monitored. Kernel resources can monitor lock / unlock, lock count for semaphores, and maximum message size if kernel resources are IPC. The number of queued messages, the number of sent messages, and the number of sent messages can be monitored.

이와 같이, 운영체제 시스템(1)은 응용 프로그램(50)이 커널 자원을 사용할 수 있도록 하면서도 커널 자원에 대한 모니터링 기능을 제공할 수 있기 때문에 멀티 코어를 가지는 실시간 운영체제에서는 응용 프로그램(50)에서 어떤 종류의 커널 자원을 얼마나 사용하였는지 등을 확인할 수 있게 되어 실시간 운영체제의 성능 저하를 방지하면서도 커널 자원을 효율적으로 관리할 수 있다.As such, the operating system system 1 may provide a monitoring function for the kernel resources while allowing the application 50 to use the kernel resources. By checking how much kernel resources are used, you can manage kernel resources efficiently while preventing performance degradation of the real-time operating system.

보다 구체적으로는, 관리 제어부(130)는 자원 할당 모듈(131), 동기화 모듈(133) 및 자원 해제 모듈(135)을 포함할 수 있다.More specifically, the management controller 130 may include a resource allocation module 131, a synchronization module 133, and a resource release module 135.

자원 할당 모듈(131)은 응용 프로그램(50)으로부터 커널 자원의 할당을 요청 받으면, 요청에 따라 자원 목록에 커널 자원을 등록하는 관리를 수행할 수 있다. 즉, 자원 할당 모듈(131)은 응용 프로그램(50)이 특정 커널 자원에 대한 할당을 위해 접근을 요청하면, 할당을 요청한 커널 자원을 자원 목록에 추가하여 커널 자원에 대한 접근을 허용할 수 있도록 한다. When the resource allocation module 131 receives a request for allocation of a kernel resource from the application program 50, the resource allocation module 131 may perform management of registering the kernel resource in the resource list according to the request. That is, when the application 50 requests access to allocate a specific kernel resource, the resource allocation module 131 adds the kernel resource that requested the allocation to the resource list to allow access to the kernel resource. .

그리고 자원 할당 모듈(131)은 응용 프로그램(50)으로부터 커널 자원의 할당을 요청 받으면, 자원 목록에 할당 받은 커널 자원의 종류 및 커널 자원 요청 대상에 대한 노드 정보를 추가하고, 노드 정보가 추가된 자원 목록을 업데이트할 수 있다. 즉, 자원 할당 모듈(131)은 응용 프로그램(50)으로부터 커널 자원의 할당을 요청 받으면, 어느 응용 프로그램(50)이 어떤 종류의 커널 자원을 할당 요청하였는지 알 수 있도록 커널 자원의 종류 및 커널 자원 요청 대상에 대한 정보가 저장되어 있는 노드 정보를 추가할 수 있다.When the resource allocation module 131 receives a request for allocating a kernel resource from the application program 50, the resource allocation module 131 adds node information about the type of the kernel resource allocated to the resource list and a target of the kernel resource request, and adds node information. You can update the list. That is, when the resource allocation module 131 receives a request for allocating a kernel resource from the application 50, the type of the kernel resource and the kernel resource request are recognized so that the application 50 knows what kind of kernel resource has been allocated. You can add node information that stores information about the target.

한편, 자원 할당 모듈(131)은 응용 프로그램(50)으로부터 커널 자원의 할당을 요청 받으면, 커널 자원의 할당을 요청한 응용 프로그램(50)에서만 자원 목록을 업데이트할 수 있도록 잠금 설정할 수 있다. 이때, 자원 할당 모듈(131)은 커널 자원의 할당 또는 해제를 요청 받으면, 할당 또는 해제를 요청한 응용 프로그램(50)에서만 자원 목록에 접근하여 업데이트할 수 있고, 다른 응용 프로그램에서는 자원 목록에 접근할 수 없도록 통제할 수 있다. 예컨대, 할당을 요청한 응용 프로그램(50)에서 자원 목록을 업데이트하기 전에 다른 응용 프로그램(50)이 자원 목록에 접근하여 사용할 경우, 운영체제 시스템의 내부 구조가 깨질 수 있기 때문에 커널 자원의 업데이트가 모두 완료되기 전까지 다른 응용 프로그램(50)이 자원 목록에 접근할 수 없도록 잠금 설정하고, 해당 자원 목록의 업데이트가 완료되면 자원 목록의 잠금 설정을 해제할 수 있다. 이와 같이, 자원 목록의 잠금 설정 또는 해제를 통해 복수의 응용 프로그램에서 자원 목록을 사용하더라도 자원 목록의 동기화를 유지할 수 있도록 한다.On the other hand, when the resource allocation module 131 receives a kernel resource allocation request from the application program 50, the resource allocation module 131 may lock the resource list so that only the application program 50 that requests the kernel resource allocation may be updated. In this case, when the resource allocation module 131 is requested to allocate or release a kernel resource, the resource list may be accessed and updated only by the application 50 requesting the allocation or release, and the resource list may be accessed by another application. Can be controlled so that For example, if another application 50 accesses and uses the resource list before updating the resource list in the application 50 requesting the allocation, the internal structure of the operating system may be broken, and thus all kernel resource updates are completed. Until another application 50 locks the access to the resource list, and when the update of the corresponding resource list is completed, the lock of the resource list may be released. In this way, by locking or unlocking the resource list, the resource list can be kept synchronized even if the plurality of applications use the resource list.

동기화 모듈(133)은 자원 할당 모듈(131)에서 수행된 관리에 대한 정보를 추상화된 자원 목록에 반영할 수 있다. 즉, 동기화 모듈(133)은 자원 목록에 저장된 커널 자원의 상태가 변경되면, 변경된 커널 자원의 상태 정보를 추상화된 자원 목록에 동일하게 반영할 수 있다.The synchronization module 133 may reflect information on management performed by the resource allocation module 131 in the abstracted resource list. That is, when the state of the kernel resource stored in the resource list is changed, the synchronization module 133 may equally reflect the changed state information of the kernel resource in the abstracted resource list.

이를 위하여 동기화 모듈(133)은 수행된 관리에 대한 정보(예컨대, 변경된 커널 자원의 상태 정보)를 버퍼(70)에 저장하여 추상화된 자원 목록에 반영할 수 있는데, 이때 버퍼(70)에 저장된 정보의 유무를 판단하고, 버퍼(70)에 정보가 저장되어 있는 경우, 버퍼(70)에 저장된 정보를 추상화된 자원 목록에 갱신할 수 있다. 즉, 커널 자원의 모니터링이 요청되는 경우, 먼저 추상화된 자원 목록에 적용할 정보가 있는지를 버퍼(70)에 저장된 정보의 유무를 통해 확인하고, 추상화된 자원 목록에 적용할 정보가 있으면 해당 정보를 추상화된 자원 목록에 갱신할 수 있다. 그 다음, 추상화된 자원 목록에서 모니터링 대상 데이터를 추출하여 모니터링 기능을 수행할 수 있다. To this end, the synchronization module 133 may store the information on the management (for example, the changed kernel resource state information) in the buffer 70 and reflect the information on the abstracted resource list. If information is stored in the buffer 70, the information stored in the buffer 70 may be updated to an abstracted resource list. That is, when monitoring of kernel resources is requested, first, whether there is information to be applied to the abstracted resource list is checked through the presence or absence of information stored in the buffer 70, and if there is information to be applied to the abstracted resource list, the information is provided. You can update the abstracted resource list. Then, the monitoring function can be performed by extracting the monitored data from the abstracted resource list.

이와 같이, 수행된 관리에 대한 정보를 버퍼(70)에 저장하는 방식을 사용할 경우, 수행된 관리에 대한 정보를 추상화된 자원 목록에 직접 반영하는 방식에 비해 소비되는 시간을 줄일 수 있기 때문에 커널 자원의 추상화에 따른 비용을 감소시킬 수 있다.As such, when using the method of storing the information about the management performed in the buffer 70, compared to the method of directly reflecting the information on the management performed in the abstracted list of resources, the time required to save kernel resources The cost of abstraction can be reduced.

한편, 도 2에서는 버퍼(70)가 자원 관리 장치(100)의 내부에 설치되어 것으로 도시하고 있으나, 이에 한정되지 않으며 버퍼(70)는 자원 관리 장치(100)의 외부에 설치될 수 있다. In FIG. 2, the buffer 70 is illustrated as being installed inside the resource management apparatus 100, but the present invention is not limited thereto. The buffer 70 may be installed outside the resource management apparatus 100.

자원 해제 모듈(135)은 응용 프로그램(50)으로부터 커널 자원의 해제를 요청 받으면, 요청에 따라 자원 목록에서 커널 자원을 삭제할 수 있다.When the resource release module 135 is requested to release the kernel resource from the application program 50, the resource release module 135 may delete the kernel resource from the resource list according to the request.

즉, 응용 프로그램(50)에서 커널 자원에 대한 해제를 요구하면 자원 해제 모듈(135)을 통해 자원 목록에 있는 커널 자원에 대한 정보를 삭제할 수 있다. 여기서, 커널 자원을 해제하는 것은 응용 프로그램(50)에서 커널 자원에 대한 사용이 완료되거나, 우선순위가 높은 다른 응용 프로그램(50)을 실행하기 위해 운영체제에서 커널 자원을 의도적으로 회수하는 과정을 의미할 수 있으나, 이에 한정되지는 않는다.That is, when the application 50 requests the release of the kernel resource, the resource release module 135 may delete the information on the kernel resource in the resource list. Here, releasing the kernel resource may mean a process in which the kernel resource is intentionally reclaimed by the operating system to complete the use of the kernel resource in the application 50 or to execute another application 50 having a high priority. It may be, but is not limited thereto.

이하에서는 본 발명의 실시예에 따른 운영체제 시스템의 자원 관리 방법에 대하여 설명하도록 한다.Hereinafter, a resource management method of an operating system system according to an embodiment of the present invention will be described.

도 3은 본 발명의 일 실시예에 따른 운영체제 시스템의 자원 관리 과정을 보여주는 동작 흐름도를 나타낸다.3 is an operation flowchart illustrating a resource management process of an operating system system according to an embodiment of the present invention.

도 3을 참조하면, 시스템 자원의 종류 및 시스템 자원의 요청 대상에 대한 정보를 포함하는 자원 목록을 생성할 수 있다(S100).Referring to FIG. 3, a resource list including information on types of system resources and request targets of system resources may be generated (S100).

즉, 응용 프로그램이 접근하여 사용할 수 있는 중앙 처리 장치, 입/출력 장치, 네트워크 장치 또는 저장 장치 등과 같은 시스템 자원의 종류 및 시스템 자원을 요청한 대상에 대한 정보(예컨대, 시스템 자원을 요청한 응용 프로그램의 식별 정보)가 나열되어 있는 자원 목록을 생성할 수 있다. 특히, 시스템 자원 중에서 운영체제의 모니터링 대상인 커널(kernal) 자원에 대한 자원 목록을 생성할 수 있는데, 여기서, 커널이란 컴퓨터 운영체제의 가장 중요한 핵심이 되는 부분으로서, 윈도우, 리눅스 또는 유닉스 등과 같은 운영체제가 부팅할 경우, 기존의 설정 파일을 기반으로 하드웨어 장치를 제어할 수 있으며, 이외에 프로세스 관리, 메모리 관리, 태스크 관리 또는 시스템 관리 등을 수행할 수 있다. 그리고 커널 자원의 종류로는 메모리(Memory), 세마포어(Semaphore) 또는 IPC(Inter-Processor Communication) 등을 포함할 수 있다.That is, the type of system resources such as a central processing unit, an input / output device, a network device, or a storage device that an application can access and use, and information about the target of the system resource request (for example, identification of the application requesting the system resource). Information list) can be created. In particular, it is possible to generate a resource list of kernel resources that are monitored by the operating system among the system resources, where the kernel is the most important part of the computer operating system, and the operating system such as Windows, Linux or Unix can boot. In this case, the hardware device may be controlled based on an existing configuration file, and in addition, process management, memory management, task management, or system management may be performed. Types of kernel resources may include memory, semaphores, or inter-processor communication (IPC).

다음으로, 자원 목록에 포함된 시스템 자원에서 자원 정보를 추출하여 추상화된 자원 목록을 생성할 수 있다(S200).Next, resource information may be extracted from system resources included in the resource list to generate an abstracted resource list (S200).

보다 자세하게는, 100단계에서 생성된 자원 목록에 포함된 커널 자원에서 모니터링에 필요한 커널 자원의 정보를 추출하여 추상화된 자원 목록을 생성할 수 있다. 여기서, 추상화란 주어진 시스템에서 중요하고 관계있는 부분만을 분리하여 간결하고 이해하기 쉽게 만드는 작업으로서, 추상화된 자원 목록이라 함은 커널 자원에 대한 자원 목록 중에서 모니터링에 필요한 커널 자원 정보를 추출하여 별도의 목록으로 만든 것을 말한다. 이와 같이, 커널 자원에 대한 자원 목록에서 모니터링과 관련 있는 커널 자원의 정보를 추출하는 추상화 작업을 통해 추상화된 자원 목록을 생성할 수 있다. In more detail, the abstracted resource list may be generated by extracting information of kernel resources required for monitoring from the kernel resources included in the resource list generated in step 100. Here, abstraction is a task that separates only important and relevant parts of a given system to make it simple and easy to understand, and abstracted resource list is a separate list by extracting kernel resource information necessary for monitoring from the resource list for kernel resources. Say what made it. As such, an abstracted resource list may be generated through an abstraction operation of extracting information of kernel resources related to monitoring from a resource list of kernel resources.

그런 후, 응용 프로그램의 시스템 자원 접근에 대해서는 자원 목록을 이용하고, 운영체제의 시스템 자원 모니터링에 대해서는 자원 목록에서 파생된 추상화된 자원 목록을 이용하여 시스템 자원을 관리할 수 있다(S300).Thereafter, the system resource may be managed using the resource list for accessing the system resource of the application program and the abstracted resource list derived from the resource list for the system resource monitoring of the operating system (S300).

보다 자세하게는, 멀티 코어로 구성된 운영체제 시스템에서 응용 프로그램의 실시간성을 확보하기 위해 자원 목록을 이용하여 응용 프로그램의 커널 자원 요청을 처리하고, 추상화된 자원 목록을 이용하여 모니터링에 필요한 커널 자원 요청을 처리할 수 있다. 즉, 멀티 코어로 이루어진 실시간 운영체제에서 응용 프로그램의 자원 사용과, 자원 모니터링을 위해 동시에 커널 자원에 접근할 경우, 응용 프로그램의 동작이 지연되는 경우가 발생하여 운영체제의 성능에 큰 영향을 미칠 수 있으므로 관리 제어부(130)는 응용 프로그램(50)으로부터 커널 자원을 요청받으면, 응용 프로그램(50)이 자원 목록에 접근하여 커널 자원을 이용하도록 하고, 커널 자원의 모니터링에서는 추상화된 자원 목록에 접근하여 커널 자원을 이용하도록 하여 응용 프로그램(50)의 접근 영역과 커널 자원의 모니터링에 대한 접근 영역을 분리할 수 있다.More specifically, in order to secure real-time application of a multi-core operating system, the resource list is used to process the kernel resource request of the application, and the abstracted resource list is used to process the kernel resource request for monitoring. can do. In other words, when accessing kernel resources simultaneously for resource usage and resource monitoring in a multi-core real-time operating system, the operation of the application may be delayed, which may greatly affect the performance of the operating system. When the controller 130 receives a kernel resource request from the application program 50, the control unit 130 accesses the resource list to use the kernel resource. In the monitoring of the kernel resource, the controller 130 accesses the abstracted resource list to access the kernel resource. By using it, the access area of the application program 50 and the access area for monitoring the kernel resource can be separated.

이하에서는 본 발명의 실시예에 따른 응용 프로그램의 자원 할당 또는 해제 요청에 따라 자원을 처리하는 방법에 대하여 설명하도록 한다.Hereinafter, a method of processing a resource according to a resource allocation or release request of an application program according to an embodiment of the present invention will be described.

도 4는 본 발명의 일 실시예에 따른 자원 목록을 이용한 자원의 처리 과정을 보여주는 동작 흐름도를 나타낸다.4 is a flowchart illustrating an operation of processing a resource using a resource list according to an embodiment of the present invention.

도 4를 참조하면, 응용 프로그램으로부터 커널 자원의 접근 요청을 받으면, 해당 요청이 커널 자원의 할당 또는 해제 요청인지 판단할 수 있다(S400).Referring to FIG. 4, upon receiving an access request of a kernel resource from an application program, it may be determined whether the request is an allocation or release request of a kernel resource (S400).

만약, 해당 요청이 커널 자원의 할당 또는 해제 요청일 경우(S400-Y), 자원 목록에 대한 잠금을 설정할 수 있다(S401). 이때, 커널 자원의 할당 또는 해제를 요청 받으면, 할당 또는 해제를 요청한 응용 프로그램에서만 자원 목록에 접근하여 업데이트할 수 있고, 다른 응용 프로그램에서는 자원 목록에 접근할 수 없도록 통제할 수 있다. 예컨대, 할당을 요청한 응용 프로그램에서 자원 목록을 업데이트하기 전에 다른 응용 프로그램이 자원 목록에 접근하여 사용할 경우, 운영체제 시스템의 내부 구조가 깨질 수 있기 때문에 커널 자원의 업데이트가 모두 완료되기 전까지 다른 응용 프로그램이 자원 목록에 접근할 수 없도록 잠금 설정하고, 해당 자원 목록의 업데이트가 완료되면 자원 목록의 잠금 설정을 해제할 수 있다. 이와 같이, 자원 목록의 잠금 설정 또는 해제를 통해 복수의 응용 프로그램에서 자원 목록을 사용하더라도 자원 목록의 동기화를 유지할 수 있다.If the request is a kernel resource allocation or release request (S400-Y), a lock on the resource list may be set (S401). At this time, when a kernel resource allocation or release request is made, only the application program requesting the allocation or release can access and update the resource list, and control the access to the resource list from other applications. For example, if another application accesses and uses the resource list before updating the resource list, the application requesting the allocation may break the internal structure of the operating system system. You can lock the list so that it is inaccessible and release the lock of the resource list when the update of the corresponding resource list is completed. As such, even when the resource list is used by a plurality of applications through locking or unlocking the resource list, synchronization of the resource list may be maintained.

그런 다음, 커널 자원의 할당 요청 여부를 판단(S402)하여 커널 자원의 할당 요청일 경우, 요청에 따라 자원 목록에 커널 자원을 등록할 수 있다(S403).Then, it is determined whether the kernel resource allocation request (S402), and in the case of the allocation request of the kernel resource, the kernel resource may be registered in the resource list according to the request (S403).

즉, 응용 프로그램이 특정 커널 자원에 대한 할당을 위해 접근을 요청하면, 할당을 요청한 커널 자원을 자원 목록에 추가하여 커널 자원에 대한 접근을 허용할 수 있도록 한다. That is, when an application program requests access to allocate a specific kernel resource, it adds the requested kernel resource to the resource list to allow access to the kernel resource.

그리고 응용 프로그램으로부터 커널 자원의 할당을 요청 받으면, 자원 목록에 할당 받은 커널 자원의 종류 및 커널 자원 요청 대상에 대한 노드 정보를 추가하고, 노드 정보가 추가된 자원 목록을 업데이트할 수 있다. 예컨대, 응용 프로그램으로부터 커널 자원의 할당을 요청 받으면, 어느 응용 프로그램이 어떤 종류의 커널 자원을 할당 요청하였는지 알 수 있도록 커널 자원의 종류 및 커널 자원 요청 대상에 대한 정보가 저장되어 있는 노드 정보를 추가할 수 있다.When a kernel resource allocation request is received from an application program, node information about a kernel resource type and a kernel resource request target allocated to the resource list may be added, and the resource list to which the node information is added may be updated. For example, when a request is made to allocate a kernel resource from an application, node information containing information on the type of kernel resource and the target of the kernel resource request is stored so that the application knows what kind of kernel resource is requested. Can be.

다음으로, 자원 목록에 대한 잠금 설정을 해제(S404)하고, 커널 자원의 등록에 대한 정보를 추상화된 자원 목록에 반영할 수 있다(S405). 즉, 자원 목록에 저장된 커널 자원의 상태가 변경되면, 변경된 커널 자원의 상태 정보가 추상화된 자원 목록에도 동일하게 반영되도록 제어할 수 있다.Next, the lock setting for the resource list may be released (S404), and information on registration of the kernel resource may be reflected on the abstracted resource list (S405). That is, when the state of the kernel resource stored in the resource list is changed, the changed state information of the kernel resource may be controlled to be reflected in the abstracted resource list in the same manner.

보다 자세하게는, 수행된 관리에 대한 정보(예컨대, 변경된 커널 자원의 상태 정보)를 버퍼에 저장하여 추상화된 자원 목록에 반영할 수 있는데, 이때 버퍼에 저장된 정보의 유무를 판단하고, 버퍼에 정보가 저장되어 있는 경우, 버퍼에 저장된 정보를 추상화된 자원 목록에 갱신할 수 있다. 즉, 커널 자원의 모니터링이 요청되는 경우, 먼저 추상화된 자원 목록에 적용할 정보가 있는지를 버퍼에 저장된 정보의 유무를 통해 확인하고, 추상화된 자원 목록에 적용할 정보가 있으면 해당 정보를 추상화된 자원 목록에 갱신할 수 있다. 그 다음, 추상화된 자원 목록에서 모니터링 대상 데이터를 추출하여 모니터링 기능을 수행할 수 있다. More specifically, information about the management performed (for example, the status information of the changed kernel resource) may be stored in a buffer and reflected in the abstracted resource list. At this time, it is determined whether information is stored in the buffer, and the information is stored in the buffer. If so, you can update the information stored in the buffer to an abstracted resource list. In other words, when monitoring of kernel resources is requested, first check whether there is information to be applied to the abstracted resource list through the presence or absence of information stored in the buffer, and if there is information to be applied to the abstracted resource list, the information is abstracted. You can update the list. Then, the monitoring function can be performed by extracting the monitored data from the abstracted resource list.

한편, 400단계에서 해당 요청이 커널 자원의 할당 또는 해제 요청이 아닐 경우(S400-N), 자원 목록에서 요청 자원이 존재하는지 판단할 수 있다(S406). 즉, 응용 프로그램에서 요청한 커널 자원이 자원 목록에 있는지 하고, 자원 목록에 응용 프로그램에서 요청한 자원이 존재하는 경우(S406-Y), 자원에 대한 요청을 처리할 수 있다(S407).On the other hand, if the request is not an allocation or release request for kernel resources in step 400 (S400-N), it may be determined whether a request resource exists in the resource list (S406). That is, if the kernel resource requested by the application is in the resource list, and if the resource requested by the application exists in the resource list (S406-Y), the request for the resource may be processed (S407).

또 한편, 402단계에서 해당 요청이 커널 자원의 할당 요청이 아닐 경우(S402-N), 커널 자원의 해제 요청인지 판단(S408)하여 커널 자원의 해제 요청이면(S408-Y), 요청에 따라 자원 목록에서 커널 자원을 삭제할 수 있다(S409).On the other hand, if the request is not an allocation request for kernel resources in step 402 (S402-N), it is determined whether the release of the kernel resources (S408), and if the request for release of kernel resources (S408-Y), resources according to the request The kernel resource may be deleted from the list (S409).

즉, 응용 프로그램에서 커널 자원에 대한 해제를 요구하면 자원 목록에 있는 커널 자원에 대한 정보를 삭제할 수 있는데, 여기서, 커널 자원을 해제하는 것은 응용 프로그램에서 커널 자원에 대한 사용이 완료되거나, 우선순위가 높은 다른 응용 프로그램을 실행하기 위해 운영체제에서 커널 자원을 의도적으로 회수하는 과정을 의미할 수 있다.In other words, if an application requires the release of a kernel resource, it can delete information about the kernel resource in the resource list, where releasing the kernel resource is such that the application has finished using the kernel resource, or This can mean the deliberate reclaiming of kernel resources from the operating system to run other applications.

도 5는 본 발명의 일 실시예에 따른 추상화된 자원 목록을 이용한 자원의 모니터링 과정을 보여주는 동작 흐름도를 나타낸다.5 is a flowchart illustrating an operation of monitoring a resource using an abstracted resource list according to an embodiment of the present invention.

도 5를 참조하면, 커널 자원의 모니터링이 요청될 경우, 버퍼에 정보가 저장되어 있는지의 여부를 판단할 수 있다(S500). 여기서, 버퍼에 저장되는 정보는 추상화된 자원 목록에 적용할 정보로서, 예컨대, 변경된 커널 자원의 상태에 대한 정보를 포함할 수 있다.Referring to FIG. 5, when monitoring of kernel resources is requested, it may be determined whether information is stored in a buffer (S500). Here, the information stored in the buffer is information to be applied to the abstracted resource list, and may include, for example, information about the changed kernel resource state.

500단계에서 버퍼에 정보가 저장되어 있는 경우(S500-Y), 버퍼에 저장된 정보를 추상화된 자원 목록에 반영할 수 있다(S501).If the information is stored in the buffer (S500-Y) in step 500, the information stored in the buffer may be reflected in the abstracted resource list (S501).

보다 자세하게는, 커널 자원의 모니터링이 요청되면, 추상화된 자원 목록에 적용할 정보가 있는지를 버퍼에 저장된 정보의 유무를 통해 확인하고, 추상화된 자원 목록에 적용할 정보가 있으면 해당 정보를 추상화된 자원 목록에 갱신할 수 있다. 이와 같이, 수행된 관리에 대한 정보를 버퍼에 저장하는 방식을 사용할 경우, 수행된 관리에 대한 정보를 추상화된 자원 목록에 직접 반영하는 방식에 비해 소비되는 시간을 줄일 수 있기 때문에 커널 자원의 추상화에 따른 비용을 감소시킬 수 있다.More specifically, when the monitoring of kernel resources is requested, whether there is information to be applied to the abstracted resource list is checked through the presence or absence of information stored in the buffer, and if there is information to be applied to the abstracted resource list, the information is abstracted. You can update the list. As such, when the information on the management performed is stored in a buffer, the time required for the management can be reduced compared to the method of directly reflecting the management performed on the abstracted resource list. The cost can be reduced.

다음으로, 추상화된 자원 목록에서 모니터링 대상 데이터를 추출(S502)하고, 모니터링 대상 데이터를 전송하여 모니터링을 수행할 수 있다(S503).Next, the monitoring target data may be extracted from the abstracted resource list (S502), and the monitoring target data may be transmitted to perform monitoring (S503).

한편, 500단계에서 버퍼에 정보가 저장되어 있지 않은 경우, 502단계로 넘어가서 추상화된 자원 목록에서 모니터링 대상 데이터를 추출(S502)하고, 모니터링 대상 데이터를 전송하여 모니터링을 수행할 수 있다(S503).On the other hand, if the information is not stored in the buffer in step 500, the process proceeds to step 502 to extract the monitoring target data from the abstracted resource list (S502), and transmits the monitoring target data to perform the monitoring (S503). .

그 다음, 모니터링의 종료 여부를 판단(S504)하여 자원에 대한 모니터링을 종료할 수 있다.Then, it may be determined whether or not the monitoring is terminated (S504) to terminate the monitoring of the resource.

본 발명의 실시예는 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터로 읽을 수 있는 매체를 포함한다. 이 매체는 앞서 설명한 운영체제 시스템의 자원 관리 방법을 실행시키기 위한 프로그램을 기록한다. 이 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 이러한 매체의 예에는 하드디스크, 플로피디스크 및 자기 테이프와 같은 자기 매체, CD 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 자기-광 매체, 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 구성된 하드웨어 장치 등이 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.Embodiments of the invention include a computer readable medium containing program instructions for performing various computer-implemented operations. This medium records a program for executing the resource management method of the operating system described above. The media may include, alone or in combination with the program instructions, data files, data structures, and the like. Examples of such media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CDs and DVDs, floppy disks and program commands such as magnetic-optical media, ROM, RAM, flash memory, and the like. Hardware devices configured to store and perform such operations. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.

이상에서 본 발명의 바람직한 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the preferred embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements of those skilled in the art using the basic concepts of the present invention defined in the following claims are also provided. It belongs to the scope of rights.

1: 운영체제 시스템
100: 자원 관리 장치
110: 자원 목록 생성부
120: 추상화 목록 생성부
130: 관리 제어부
131: 자원 할당 모듈
133: 동기화 모듈
135: 자원 해제 모듈
1: operating system
100: resource management device
110: resource list generation unit
120: abstraction list generator
130: management control unit
131: resource allocation module
133: synchronization module
135: resource release module

Claims (15)

응용 프로그램의 시스템 자원 접근에 대해서는 자원의 종류 및 자원 요청 대상에 대한 정보를 포함하는 자원 목록을 이용하고, 운영체제의 시스템 자원 모니터링에 대해서는 상기 자원 목록에서 파생된 추상화된 자원 목록을 이용하여 시스템 자원을 관리하는 관리 제어부
를 포함하는 운영체제 시스템의 자원 관리 장치.
For accessing system resources of an application, a resource list including information on resource types and resource request targets is used. For monitoring system resources of an operating system, an abstract resource list derived from the resource list is used for system resources. Management control unit to manage
Resource management apparatus of the operating system system including a.
제 1 항에서,
상기 시스템 자원 중에서 운영체제의 모니터링 대상인 커널 자원에 대한 자원 목록을 생성하는 자원 목록 생성부를 더 포함하는 운영체제 시스템의 자원 관리 장치.
In claim 1,
The resource management device of the operating system system further comprises a resource list generating unit for generating a list of resources for the kernel resource that is the monitoring target of the operating system among the system resources.
제 2 항에서,
상기 생성된 자원 목록에 포함된 커널 자원에서 자원 정보를 추출하여 상기 추상화된 자원 목록을 생성하는 추상화 목록 생성부를 더 포함하는 운영체제 시스템의 자원 관리 장치.
In claim 2,
And an abstraction list generator for extracting resource information from the kernel resources included in the generated resource list and generating the abstracted resource list.
제 1 항에서,
상기 관리 제어부는,
멀티 코어로 구성된 운영체제 시스템에서 상기 응용 프로그램의 실시간성을 확보하기 위해 상기 자원 목록을 이용하여 상기 응용 프로그램의 커널 자원 요청을 처리하고,
상기 자원 목록에서 파생된 상기 추상화된 자원 목록을 이용하여 모니터링에 필요한 커널 자원 요청을 처리하는 운영체제 시스템의 자원 관리 장치.
In claim 1,
The management control unit,
In the multi-core operating system to process the kernel resource request of the application using the resource list to secure the real-time of the application,
A resource management apparatus of an operating system system that processes a kernel resource request for monitoring by using the abstracted resource list derived from the resource list.
제 4 항에서,
상기 관리 제어부는,
상기 응용 프로그램으로부터 커널 자원의 할당을 요청 받으면, 상기 요청에 따라 상기 자원 목록에 상기 커널 자원을 등록하는 관리를 수행하는 자원 할당 모듈, 및
상기 수행된 관리에 대한 정보를 상기 추상화된 자원 목록에 반영하는 동기화 모듈을 포함하는 운영체제 시스템의 자원 관리 장치.
In claim 4,
The management control unit,
A resource allocation module for performing management for registering the kernel resource in the resource list according to the request when a request for allocation of a kernel resource is received from the application program;
Device for managing an operating system system including a synchronization module for reflecting the information on the management performed in the abstracted resource list.
제 5 항에서,
상기 자원 할당 모듈은,
상기 응용 프로그램으로부터 커널 자원의 할당을 요청 받으면, 상기 자원 목록에 상기 할당을 요청 받은 커널 자원의 종류 및 커널 자원 요청 대상에 대한 노드 정보를 추가하고, 상기 노드 정보가 추가된 상기 자원 목록을 업데이트하는 운영체제 시스템의 자원 관리 장치.
In claim 5,
The resource allocation module,
When the kernel resource allocation request is received from the application program, node information about a kernel resource request object and a type of the kernel resource requested to be allocated is added to the resource list, and the resource list to which the node information is added is updated. Resource management device of the operating system.
제 5 항에서,
상기 동기화 모듈은,
상기 수행된 관리에 대한 정보를 버퍼에 저장하여 상기 추상화된 자원 목록에 반영하는 운영체제 시스템의 자원 관리 장치.
In claim 5,
The synchronization module,
Device for managing an operating system system to store the information on the management performed in the buffer to reflect the abstracted resource list.
제 7 항에서,
상기 동기화 모듈은,
상기 버퍼에 저장된 정보의 유무를 판단하고,
상기 버퍼에 정보가 저장되어 있는 경우, 상기 버퍼에 저장된 정보를 상기 추상화된 자원 목록에 갱신하는 운영체제 시스템의 자원 관리 장치.
In claim 7,
The synchronization module,
Determine whether there is information stored in the buffer,
And when information is stored in the buffer, updating the information stored in the buffer to the abstracted resource list.
제 5 항에서,
상기 관리 제어부는,
상기 응용 프로그램으로부터 커널 자원의 해제를 요청 받으면, 상기 요청에 따라 상기 자원 목록에서 상기 커널 자원을 삭제하는 자원 해제 모듈을 더 포함하는 운영체제 시스템의 자원 관리 장치.
In claim 5,
The management control unit,
And a resource release module to delete the kernel resource from the resource list in response to the request for release of a kernel resource from the application program.
시스템 자원의 종류 및 시스템 자원의 요청 대상에 대한 정보를 포함하는 자원 목록을 생성하는 단계,
상기 자원 목록에 포함된 시스템 자원에서 자원 정보를 추출하여 상기 추상화된 자원 목록을 생성하는 단계, 및
응용 프로그램의 시스템 자원 접근에 대해서는 상기 자원 목록을 이용하고, 운영체제의 시스템 자원 모니터링에 대해서는 상기 자원 목록에서 파생된 상기 추상화된 자원 목록을 이용하여 시스템 자원을 관리하는 단계
를 포함하는 운영체제 시스템의 자원 관리 방법.
Generating a resource list including information on the type of system resource and a request target of the system resource,
Extracting resource information from a system resource included in the resource list to generate the abstracted resource list, and
Managing system resources using the resource list for accessing system resources of an application program and using the abstracted resource list derived from the resource list for system resource monitoring of an operating system;
Resource management method of the operating system system comprising a.
제 10 항에서,
상기 자원 목록을 생성하는 단계는,
상기 시스템 자원 중에서 운영체제의 모니터링 대상인 커널 자원에 대한 자원 목록을 생성하는 운영체제 시스템의 자원 관리 방법.
In claim 10,
Generating the resource list,
A method of managing a resource of an operating system, which generates a resource list of kernel resources that are an object of monitoring of an operating system among the system resources.
제 11 항에서,
상기 추상화된 자원 목록을 생성하는 단계는,
상기 생성된 자원 목록에 포함된 커널 자원에서 자원 정보를 추출하여 상기 추상화된 자원 목록을 생성하는 운영체제 시스템의 자원 관리 방법.
In claim 11,
Generating the abstracted resource list,
And extracting resource information from a kernel resource included in the generated resource list to generate the abstracted resource list.
제 12 항에서,
상기 시스템 자원을 관리하는 단계는,
상기 응용 프로그램으로부터 커널 자원의 할당을 요청 받으면, 상기 요청에 따라 상기 자원 목록에 상기 커널 자원을 등록하는 관리를 수행하는 단계, 및
상기 수행된 관리에 대한 정보를 상기 추상화된 자원 목록에 반영하는 단계를 포함하는 운영체제 시스템의 자원 관리 방법.
In claim 12,
Managing the system resources,
Performing a management of registering the kernel resource in the resource list in response to the request for allocation of a kernel resource from the application program, and
And reflecting the information on the management performed in the abstracted resource list.
제 13 항에서,
상기 추상화된 자원 목록에 반영하는 단계는,
버퍼에 저장된 정보의 유무를 판단하고,
상기 버퍼에 정보가 저장되어 있는 경우, 상기 버퍼에 저장된 정보를 상기 추상화된 자원 목록에 갱신하는 운영체제 시스템의 자원 관리 방법.
In claim 13,
Reflecting in the abstracted resource list,
Determine the existence of information stored in the buffer,
And when information is stored in the buffer, updating the information stored in the buffer to the abstracted resource list.
제 13 항에서,
상기 시스템 자원을 관리하는 단계는,
상기 응용 프로그램으로부터 커널 자원의 해제를 요청 받으면, 상기 요청에 따라 상기 자원 목록에서 상기 커널 자원을 삭제하는 단계를 더 포함하는 운영체제 시스템의 자원 관리 방법.
In claim 13,
Managing the system resources,
And deleting the kernel resource from the resource list when the kernel resource is requested to be released from the application program.
KR1020180096248A 2018-08-17 2018-08-17 Apparatus and Method for Managing Resource of OS System KR102111991B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180096248A KR102111991B1 (en) 2018-08-17 2018-08-17 Apparatus and Method for Managing Resource of OS System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180096248A KR102111991B1 (en) 2018-08-17 2018-08-17 Apparatus and Method for Managing Resource of OS System

Publications (2)

Publication Number Publication Date
KR20200020485A true KR20200020485A (en) 2020-02-26
KR102111991B1 KR102111991B1 (en) 2020-05-18

Family

ID=69637676

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180096248A KR102111991B1 (en) 2018-08-17 2018-08-17 Apparatus and Method for Managing Resource of OS System

Country Status (1)

Country Link
KR (1) KR102111991B1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050033327A (en) 2003-10-06 2005-04-12 엘지전자 주식회사 Memory management system over the real time operating system
KR20070037427A (en) 2005-09-30 2007-04-04 코웨어, 인코포레이티드 Scheduling in a multicore architecture
KR20090081749A (en) * 2008-01-25 2009-07-29 삼성전자주식회사 The device and method of resource monitoring for application
JP2010521034A (en) * 2007-03-09 2010-06-17 マイクロソフト コーポレーション How to abstract an operating environment from an operating system
KR20130119862A (en) * 2012-04-24 2013-11-01 삼성전자주식회사 Scalable and secure application resource management and access control for multicore operating systems
KR20130137503A (en) * 2012-06-07 2013-12-17 주식회사 엘지씨엔에스 Apparatus for dynamic data processing using resource monitoring and method thereof
KR20150010095A (en) * 2013-07-18 2015-01-28 포항공과대학교 산학협력단 Apparatus for configuring operating system and method thereof

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050033327A (en) 2003-10-06 2005-04-12 엘지전자 주식회사 Memory management system over the real time operating system
KR20070037427A (en) 2005-09-30 2007-04-04 코웨어, 인코포레이티드 Scheduling in a multicore architecture
JP2010521034A (en) * 2007-03-09 2010-06-17 マイクロソフト コーポレーション How to abstract an operating environment from an operating system
KR20090081749A (en) * 2008-01-25 2009-07-29 삼성전자주식회사 The device and method of resource monitoring for application
KR20130119862A (en) * 2012-04-24 2013-11-01 삼성전자주식회사 Scalable and secure application resource management and access control for multicore operating systems
KR20130137503A (en) * 2012-06-07 2013-12-17 주식회사 엘지씨엔에스 Apparatus for dynamic data processing using resource monitoring and method thereof
KR20150010095A (en) * 2013-07-18 2015-01-28 포항공과대학교 산학협력단 Apparatus for configuring operating system and method thereof

Also Published As

Publication number Publication date
KR102111991B1 (en) 2020-05-18

Similar Documents

Publication Publication Date Title
US10228737B2 (en) Affinity-aware parallel zeroing of memory for initialization of large pages in non-uniform memory access (NUMA) servers
EP3701377B1 (en) Method and apparatus for updating shared data in a multi-core processor environment
US9378069B2 (en) Lock spin wait operation for multi-threaded applications in a multi-core computing environment
JPH03161859A (en) Request control method and access control system
US8458396B2 (en) Sharing resources within a robotic media library amongst a plurality of connected servers
EP3485375B1 (en) Workflow-based object destruction
US7574439B2 (en) Managing a nested request
US10445096B2 (en) Managing lock and unlock operations using traffic prioritization
JP5492731B2 (en) Virtual machine volume allocation method and computer system using the method
AU2011229395B2 (en) Dual mode reader writer lock
US9274819B2 (en) Performing garbage collection using a virtual thread in operating system without kernel thread support
US20230054696A1 (en) User-level services for multitenant isolation
KR102111991B1 (en) Apparatus and Method for Managing Resource of OS System
CN114327769B (en) Operating system event recording method and device and computer system
Zhu et al. Interactive transaction processing for in-memory database system
US8353013B2 (en) Authorized application services via an XML message protocol
EP4044058A1 (en) Capability management method and computer device
US11907176B2 (en) Container-based virtualization for testing database system
US20230236906A1 (en) Information processing device, information processing method, and program
US20240095148A1 (en) Automatic assignment of changed permissions for diagnostic purposes for work container instances that have already been started
CN110879747B (en) Resource management method and device
CN117609268A (en) Data management method, device and storage medium
CN115543364A (en) Kernel upgrading method and device
CN116974488A (en) Data indexing method, device, equipment and storage medium
CN114675968A (en) Thread running method, system and device and readable storage medium

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