KR102055617B1 - Method and system for extending virtual address space of process performed in operating system - Google Patents
Method and system for extending virtual address space of process performed in operating system Download PDFInfo
- Publication number
- KR102055617B1 KR102055617B1 KR1020130112512A KR20130112512A KR102055617B1 KR 102055617 B1 KR102055617 B1 KR 102055617B1 KR 1020130112512 A KR1020130112512 A KR 1020130112512A KR 20130112512 A KR20130112512 A KR 20130112512A KR 102055617 B1 KR102055617 B1 KR 102055617B1
- Authority
- KR
- South Korea
- Prior art keywords
- virtual address
- address space
- extended
- operating system
- ranges
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
A method of extending a virtual address space of a process performed by an operating system includes a virtual address range and a plurality of extended virtual addresses included in a virtual address space corresponding to the process. selecting the number of ranges; Expanding and setting the virtual address space into multiple virtual address spaces using the selected virtual address range and the number of the selected plurality of extended virtual address ranges; Providing the multiple virtual address spaces to the process.
Description
The present invention relates to a system and method for extending a virtual address space of a process performed in an operating system, and more particularly to a technique for extending a linear virtual address space of a process into multiple virtual address spaces. Here, the multiple virtual address spaces include a plurality of linear virtual address spaces.
Recently, as the memory capacity increases due to the development of hardware process technology, an in-memory computing operation method of maximizing the use of the increased memory is being used.
The rapid increase in memory capacity leads to the need for an address space that is more extended than the linear virtual address space that a process can support, and therefore, a way to expand one linear virtual address space allocated to a process is needed. Required.
Embodiments of the present invention provide a method, apparatus, and system for extending the virtual address space of a process performed in an operating system.
In addition, embodiments of the present invention provide a method, apparatus and system for extending a virtual address space corresponding to a process into multiple virtual address spaces comprising a plurality of extended virtual address ranges.
In addition, embodiments of the present invention provide a method, apparatus, and system for determining a particular virtual address range in the process of providing a plurality of extended virtual address ranges included in a multiple virtual address space to a process.
A method of extending a virtual address space of a process performed by an operating system according to an embodiment of the present invention includes a plurality of virtual address ranges and a plurality of virtual address ranges included in a virtual address space corresponding to the process. Selecting the number of extended virtual address ranges; Expanding and setting the virtual address space into multiple virtual address spaces by using the selected virtual address range and the number of the selected plurality of extended virtual address ranges; And providing the multiple virtual address spaces to the process.
The setting and extending the virtual address space into the multiple virtual address spaces may include generating the plurality of extended virtual address ranges corresponding to the selected virtual address range based on the number of the selected plurality of extended virtual address ranges. ; And setting the multiple virtual address spaces including the plurality of extended virtual address ranges.
Selecting the virtual address range and the number of the plurality of extended virtual address ranges further comprises providing a user application programming interface (API) for selecting the virtual address range and the number of the plurality of extended virtual address ranges. can do.
The method of extending a virtual address space of a process performed in the operating system includes determining a specific virtual address range in which the process is executed among the provided multiple virtual address spaces; And executing the process using the specific virtual address range.
The determining of the specific virtual address range may include changing an address of a page table of a virtual address range corresponding to the process to an address of a page table corresponding to the specific virtual address range.
The determining of the specific virtual address range may further include providing a user API for determining the specific virtual address range in which the process is executed among the provided multiple virtual address spaces.
The method of extending a virtual address space of a process performed by the operating system may further include releasing the set multiple virtual address spaces.
The releasing the set multiple virtual address space may further include providing a user API for releasing the set multiple virtual address space.
A system for extending a virtual address space of a process performed by an operating system according to an embodiment of the present invention includes a plurality of virtual address ranges and a plurality of virtual address ranges included in a virtual address space corresponding to the process. A selection unit for selecting a number of extended virtual address ranges; A setting unit configured to expand and set the virtual address space into multiple virtual address spaces by using the selected virtual address range and the number of the selected plurality of extended virtual address ranges; And a providing unit for providing the multiple virtual address spaces to the process.
The setting unit generates the plurality of extended virtual address ranges corresponding to the selected virtual address range based on the number of the selected plurality of extended virtual address ranges, and includes the plurality of extended virtual address ranges. You can set the space.
A system for extending a virtual address space of a process performed by the operating system includes: a determination unit to determine a specific virtual address range in which the process is executed among the provided multiple virtual address spaces; And an execution unit that executes the process using the specific virtual address range.
The system for expanding a virtual address space of a process performed by the operating system may further include a release unit for releasing the set multiple virtual address spaces.
Embodiments of the present invention may provide a method, apparatus, and system for extending the virtual address space of a process performed in an operating system.
In addition, embodiments of the present invention may provide a method, apparatus and system for extending a virtual address space corresponding to a process into multiple virtual address spaces comprising a plurality of extended virtual address ranges.
In addition, embodiments of the present invention may provide a method, apparatus, and system for determining a specific virtual address range in the process of providing a plurality of extended virtual address ranges included in a multiple virtual address space to a process.
1 is a diagram illustrating a virtual address space of a process performed in an existing operating system.
2 is a diagram illustrating multiple virtual address spaces of a process according to an embodiment of the present invention.
3 is a flowchart illustrating a method of expanding a virtual address space of a process according to an embodiment of the present invention.
4 is a block diagram illustrating a system for extending a virtual address space of a process according to an embodiment of the present invention.
Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited or limited by the embodiments. Also, like reference numerals in the drawings denote like elements.
1 is a diagram illustrating a virtual address space of a process performed in an existing operating system.
Referring to FIG. 1, the
Existing operating systems can distinguish between the physical address space and the
In addition, the existing operating system may support a multi-tasking method in which a plurality of processes are executed at the same time. At this time, when context switching occurs to a new process that is distinct from the process in the process being performed, the process of switching the context based on address mapping information suitable for the new process should be performed. In this case, since the context switching process requires storing all the context information of the process being executed and restoring the context information of the new process, overhead may occur.
In addition, existing operating systems may support threads, which are light weight processes. A plurality of threads created in a single process share the same
Therefore, a method of physically extending the size of a memory address accessible to CPUs has been proposed, but when the size of a CPU memory address is physically increased, the size of a process and data is increased because the size of a CPU instruction and a pointer variable are also increased. The overhead may increase.
Accordingly, the present invention proposes a method of extending a virtual address space available to a process by providing multiple virtual address spaces in one process. Detailed description thereof will be described below.
2 is a diagram illustrating multiple virtual address spaces of a process according to an embodiment of the present invention.
Unlike a single virtual address space of a processor provided by an existing operating system, referring to FIG. 2, the multiple
For example, the operating system selects the
As a more specific example, the process of selecting the
The operating system may provide an extended multiple
In addition, the operating system may execute the process using the determined specific virtual address range and release the established multiple
3 is a flowchart illustrating a method of expanding a virtual address space of a process according to an embodiment of the present invention.
Referring to FIG. 3, a system for extending a virtual address space includes a virtual address range and a plurality of extended virtual address ranges included in a virtual address space corresponding to a process. The number of pieces is selected (310). In this case, the process of selecting the virtual address range and the number of extended virtual address ranges includes providing a user application programming interface (API) for selecting the virtual address range to be extended and the number of the plurality of extended virtual address ranges to be created. can do.
In addition, the system for expanding the virtual address space may be configured to expand and set the virtual address space into multiple virtual address spaces by using the selected virtual address range and the selected number of extended virtual address ranges (320). In this case, the process of extending and setting the virtual address space into the multiple virtual address spaces may include generating a plurality of extended virtual address ranges corresponding to the selected virtual address range based on the number of the selected plurality of extended virtual address ranges and the plurality of virtual address spaces. The method may include setting a multiple virtual address space including the extended virtual address ranges of.
In addition, the system for extending the virtual address space provides a set multiple virtual address space to the process (330).
In addition, the system that extends the virtual address space determines a particular virtual address range in which a process is executed among the provided multiple virtual address spaces (340). In this case, the determining of the specific virtual address range may include changing the address of the page table of the virtual address range corresponding to the process to the address of the page table corresponding to the specific virtual address range. In addition, determining the specific linear virtual address space may include providing a user API for determining a specific virtual address range in which a process is executed among the provided multiple virtual address spaces.
In addition, the system extending the virtual address space executes the process using a particular virtual address range (350).
In addition, the system extending the virtual address space releases the established multiple virtual address space (360). In this case, releasing the set multiple virtual address space may include providing a user API for releasing the set multiple virtual address space.
4 is a block diagram illustrating a system for extending a virtual address space of a process according to an embodiment of the present invention.
Referring to FIG. 4, a system for expanding a virtual address space of a process includes a selecting
The
The
At this time, the
The
The
The
The
The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the devices and components described in the embodiments may include, for example, processors, controllers, arithmetic logic units (ALUs), digital signal processors, microcomputers, field programmable arrays (FPAs), It may be implemented using one or more general purpose or special purpose computers, such as a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to the execution of the software. For convenience of explanation, one processing device may be described as being used, but one of ordinary skill in the art will appreciate that the processing device includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as parallel processors.
The software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device. Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. Or may be permanently or temporarily embodied in a signal wave to be transmitted. The software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner. Software and data may be stored on one or more computer readable recording media.
Method according to the embodiment is implemented in the form of program instructions that can be executed by various computer means may be recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. 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. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
Although the embodiments have been described by the limited embodiments and the drawings as described above, various modifications and variations are possible to those skilled in the art from the above description. For example, the described techniques may be performed in a different order than the described method, and / or components of the described systems, structures, devices, circuits, etc. may be combined or combined in a different form than the described method, or other components. Or even if replaced or substituted by equivalents, an appropriate result can be achieved.
Therefore, other implementations, other embodiments, and equivalents to the claims are within the scope of the claims that follow.
210: virtual address space
220, 230, 240, 260: Multiple virtual address ranges
231, 232, 251, 252, 253, 254: extended virtual address range
Claims (13)
The selector selects a virtual address range to be extended from among a plurality of virtual address ranges included in a virtual address space corresponding to the process, and selects a plurality of extensions to be generated for the selected virtual address range. Selecting a number of extended virtual address ranges;
A setting unit configured to expand and set the virtual address space into multiple virtual address spaces by using the selected virtual address range and the number of the selected plurality of extended virtual address ranges; And
Providing, by the provider, the multiple virtual address spaces to the process
How to extend the virtual address space of the process performed on the operating system, including.
Expanding and setting the virtual address space to the multiple virtual address spaces
Generating the plurality of extended virtual address ranges corresponding to the selected virtual address range based on the number of the selected plurality of extended virtual address ranges; And
Establishing the multiple virtual address spaces including the plurality of extended virtual address ranges
How to extend the virtual address space of the process performed on the operating system, including.
Selecting the virtual address range and the plurality of extended virtual address ranges
Providing a user application programming interface (API) for selecting the virtual address range and the number of the plurality of extended virtual address ranges
How to extend the virtual address space of the process performed by the operating system further comprising.
Determining, by the determining unit, a specific virtual address range in which the process is executed among the provided multiple virtual address spaces; And
An execution unit executing the process using the specific virtual address range
How to extend the virtual address space of the process performed by the operating system further comprising.
The determining of the specific virtual address range
Changing an address of a page table of a virtual address range corresponding to the process to an address of a page table corresponding to the specific virtual address range
How to extend the virtual address space of the process performed on the operating system, including.
The determining of the specific virtual address range
Providing a user API for determining the specific virtual address range in which the process is executed of the provided multiple virtual address spaces
How to extend the virtual address space of the process performed by the operating system further comprising.
A release unit releasing the set virtual address space
How to extend the virtual address space of the process performed by the operating system further comprising.
The step of releasing the set virtual address space is
Providing a user API for releasing the set multiple virtual address space
How to extend the virtual address space of the process performed by the operating system further comprising.
Selecting a virtual address range to be extended from among a plurality of virtual address ranges included in a virtual address space corresponding to the process, and a plurality of extended virtual addresses to be generated for the selected virtual address range A selection unit for selecting a number of extended virtual address ranges;
A setting unit configured to expand and set the virtual address space into multiple virtual address spaces by using the selected virtual address range and the number of the selected plurality of extended virtual address ranges; And
Providing unit for providing the multiple virtual address space to the process
A system that extends a virtual address space of a process performed by an operating system including a.
The setting unit
Generate the plurality of extended virtual address ranges corresponding to the selected virtual address range based on the number of the selected plurality of extended virtual address ranges,
And extend a virtual address space of a process performed by an operating system that establishes the multiple virtual address space including the plurality of extended virtual address ranges.
A determining unit to determine a specific virtual address range in which the process is executed among the provided multiple virtual address spaces; And
Execution unit for executing the process using the specific virtual address range
The system further extends the virtual address space of the process performed by the operating system.
A release unit for releasing the set virtual address space
The system further extends the virtual address space of the process performed by the operating system.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/056,057 US9229875B2 (en) | 2012-10-17 | 2013-10-17 | Method and system for extending virtual address space of process performed in operating system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120115111 | 2012-10-17 | ||
KR20120115111 | 2012-10-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140049462A KR20140049462A (en) | 2014-04-25 |
KR102055617B1 true KR102055617B1 (en) | 2019-12-13 |
Family
ID=50655060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130112512A KR102055617B1 (en) | 2012-10-17 | 2013-09-23 | Method and system for extending virtual address space of process performed in operating system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102055617B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080177974A1 (en) | 2007-01-20 | 2008-07-24 | Men-Chow Chiang | System and method for reducing memory overhead of a page table in a dynamic logical partitioning environment |
JP2012185609A (en) | 2011-03-04 | 2012-09-27 | Sony Corp | Virtual memory system, control method of virtual memory, and program |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5826057A (en) * | 1992-01-16 | 1998-10-20 | Kabushiki Kaisha Toshiba | Method for managing virtual address space at improved space utilization efficiency |
KR0162759B1 (en) * | 1995-06-23 | 1999-01-15 | 양승택 | Extended virtual address space implementation method |
KR20020009247A (en) * | 2000-07-25 | 2002-02-01 | 서평원 | Method for data access of idle process in multi processing system |
-
2013
- 2013-09-23 KR KR1020130112512A patent/KR102055617B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080177974A1 (en) | 2007-01-20 | 2008-07-24 | Men-Chow Chiang | System and method for reducing memory overhead of a page table in a dynamic logical partitioning environment |
JP2012185609A (en) | 2011-03-04 | 2012-09-27 | Sony Corp | Virtual memory system, control method of virtual memory, and program |
Also Published As
Publication number | Publication date |
---|---|
KR20140049462A (en) | 2014-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114816664B (en) | GPU virtualization | |
US10025503B2 (en) | Autonomous dynamic optimization of platform resources | |
US10877757B2 (en) | Binding constants at runtime for improved resource utilization | |
US10102373B2 (en) | Method and apparatus for capturing operation in a container-based virtualization system | |
US9009703B2 (en) | Sharing reconfigurable computing devices between workloads | |
KR20140002048A (en) | Combined virtual graphics device | |
Kwon et al. | {DC-Store}: Eliminating noisy neighbor containers using deterministic {I/O} performance and resource isolation | |
CN112035397B (en) | Electronic system including FPGA and method of operating the same | |
US10048886B2 (en) | Method and system providing file system for an electronic device comprising a composite memory device | |
CN108139937B (en) | Multi-root I/O virtualization system | |
CN104516769A (en) | Verification of dynamic logical partitioning | |
US20190377612A1 (en) | VCPU Thread Scheduling Method and Apparatus | |
US10025608B2 (en) | Quiesce handling in multithreaded environments | |
US9317340B2 (en) | Intelligent virtual machine (VM) re-location | |
KR101740317B1 (en) | Method and apparatus for memory management | |
CN109791510B (en) | Managing data flows in heterogeneous computing | |
US20180157605A1 (en) | Configuration of a memory controller for copy-on-write | |
US10223260B2 (en) | Compiler-generated memory mapping hints | |
US9189405B2 (en) | Placement of data in shards on a storage device | |
US20150220442A1 (en) | Prioritizing shared memory based on quality of service | |
KR20140103805A (en) | Method for distributing data and apparatus therefor | |
US20150186180A1 (en) | Systems and methods for affinity dispatching based on network input/output requests | |
JP2010205208A (en) | Host computer, multipath system, and method and program for allocating path | |
US9678752B2 (en) | Scheduling apparatus and method of dynamically setting the size of a rotating register | |
KR102055617B1 (en) | Method and system for extending virtual address space of process performed in operating system |
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 |