WO2013128492A1 - 計算機、プログラム及びメモリ管理方法 - Google Patents
計算機、プログラム及びメモリ管理方法 Download PDFInfo
- Publication number
- WO2013128492A1 WO2013128492A1 PCT/JP2012/001432 JP2012001432W WO2013128492A1 WO 2013128492 A1 WO2013128492 A1 WO 2013128492A1 JP 2012001432 W JP2012001432 W JP 2012001432W WO 2013128492 A1 WO2013128492 A1 WO 2013128492A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- storage area
- held
- program
- area
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0269—Incremental or concurrent garbage collection, e.g. in real-time systems
- G06F12/0276—Generational garbage collection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Definitions
- the present invention relates to a computer, a program, and a memory management method, and more particularly to a computer, a program, and a memory management method for managing a data reference relationship.
- a technique for stopping processing on data is used.
- Such a data reference relationship investigation is used, for example, in a garbage collection that automatically manages the necessity of data, and in a garbage collector used in a Java (registered trademark) virtual machine,
- a stop-the-world method is used that completely stops the operation of an operating application (hereinafter referred to as “AP” or “program”).
- the reason why the processing for data is stopped in the data reference relation investigation is to prevent the reference relation from being rewritten due to data update or deletion during the reference investigation.
- This method is similar to the Java garbage collector. There are many things that investigate the reference relationship between data using. When the reference relationship investigation time increases, the stop time of program execution (processing for data) also increases, and processing delay occurs.
- Non-Patent Document 1 discloses a technique for limiting a reference investigation area for a system that does not update data such as a functional language. According to this technique, memory areas are first divided into an area for storing old generation data and an area for storing new generation data in the order in which data is generated. And, by preferentially executing unnecessary area collection processing for areas that store new generation data, the number of unnecessary data collection processes required to collect a certain amount of areas is reduced. It has become. As a result, this technique can reduce the stop time of processing such as application.
- Non-Patent Document 2 discloses a technique for limiting the reference survey area by increasing the number of generations in generational garbage collection.
- this technique at the time of recovery processing of a memory area for storing unnecessary data, only one area divided by generation is targeted for reference source investigation. As a result, the data amount (area) to be the reference source investigation target is reduced as compared with the case where all the old generation areas are set as the collection processing target. As a result, this technique can shorten the processing stop time for data in a single unnecessary data area collection process.
- Non-Patent Document 1 since the technology disclosed in Non-Patent Document 1 is based on the assumption that a functional language is used as described above, the old generation data may refer to the new generation data that did not exist when the old generation data was generated. It can be applied only in a specific environment where no special event occurs. Updates other than deletion of data (Note that data deletion refers to a state in which the data is not referred to by specific data. That is, a new reference source is added to new generation or old generation data by deletion. This cannot be applied to a system using a language that generates an event that refers to the new generation data from the old generation data regardless of the data generation time.
- the memory area for storing the old generation data is divided by generation, and the areas divided in the data generation order are the first generation, second generation,... Nth generation. Then, since the reference source of the Nth generation data can be limited to the data after the Nth generation, it can be said that the reference investigation range can be limited.
- Non-Patent Document 2 if the data of the generation before the Nth generation is updated, the reference relationship is not completely investigated, and the survival data (along with the memory release process) is stored. There remains a problem of inadvertent deletion. That is, it can be said that it is insufficient to apply to a language in which data once generated is updated.
- Non-Patent Documents 1 and 2 can only be applied to a system in which data stored in the past is not updated, and even if the number of generations is increased, a reference survey for each generation is performed. As such, it is not a fundamental solution to shorten the time of reference survey because it must be done regularly.
- the first and second storage areas that allow change to held data and the third memory that makes change to held data impossible a control unit that executes access to data held in the second and third storage areas in response to a request from the program.
- the control unit holds the second and third storage areas.
- specific data for accessing data is set in the first storage area, the specific data includes reference information to the data held in the third storage area If the program accesses the data held in the third storage area during the process of moving the data having a reference relationship with the specific data to the second storage area, It is determined whether or not the data to be accessed has been moved to the second storage area.
- the reference information included in the specific data is corrected to the destination data and accessed, and the third memory is stored.
- This is a computer that corrects all references from specific data having a reference relationship with the data held in the area and releases the third storage area after correcting all the references.
- the time flow which shows the relationship with the program execution in this embodiment, a release determination / data movement process, a reference destination correction process, and the block
- the schematic diagram which shows the example of a storage area and a data reference relationship before execution of release determination and data movement processing in the present embodiment.
- the schematic diagram which shows the example of a storage area and a data reference relationship immediately before execution of the block
- Figure 1 shows the configuration of the computer system.
- the computer system includes a CPU 102, a memory 103 as a main storage device, an external storage device 109 as an auxiliary storage device, an input device (not shown) that receives user operations, and a display device (not shown) that outputs various information.
- the external storage device 109 may be provided in the computer system 101.
- a Java VM (Virtual Machine) 105 is configured in cooperation with the program and the CPU 102 in order to provide an operating environment as a Java virtual machine.
- the Java program 104 is, for example, at least one user application (AP) that can be executed by the Java VM 105.
- Data for example, an object generated by executing the Java program 104 is first held in a temporary area 130 of the memory 103 or a closing waiting area 150 described later.
- the temporary area 130 is a storage area that temporarily holds data generated and used by the Java program 104. Data generated by the execution of the Java program 104 is held in the temporary area 130 or the blocking waiting area 150. Data placement in the block waiting area is performed by a specific API (Application interface), and data in the temporary area that can be referred to from the data placed in the same area is also moved to the block waiting area 150 at the time of garbage collection. .
- a specific API Application interface
- the closed area 140 is a storage area in which the data held in the temporary area 130 can be moved at an arbitrary timing.
- the closed area 140 is provided with two types of storage areas, that is, one or more closed waiting areas 150 and one or more closed areas 160.
- the occlusion waiting area 150 is an area to which data from the temporary area 130 is moved, and is a storage area in which new data can be additionally stored or updated data can be overwritten.
- the blocked area 160 is an area that is not a destination of the data stored in the temporary area 130 and the waiting-for-closure area 150, and is a storage area in which new data can not be added or stored data cannot be changed. is there.
- the relationship between the blocking waiting area 150 and the blocked area 160 is such that the blocking waiting area 150 becomes the blocked area 160 when the usage amount of the blocking waiting area 150 reaches a predetermined amount.
- the blocked area 160 is a storage area that can guarantee that the reference from the data held in the temporary area 130 does not change once it is closed.
- the reference investigation area can be limited, and the thread of the Java program 104 can be limited at the time of garbage collection. There is an effect that the time to stop can be shortened.
- the reference relationship with the temporary area 130 is lost means that the reference is explicitly deleted by executing the program or the data movement to the blocking waiting area 150 is completed as will be described later. Whether or not all the references to the temporary area 130 are actually lost can be determined at the time of garbage collection.
- the blocked area 160 is an area that cannot be changed with respect to data held in itself, and can only be referred to. However, if a change occurs, the data to be changed is stored in the waiting area for blocking. The data can be changed by moving it to 150. More specifically, a copy-on-write method is applied in which the data is copied to the blocking waiting area 150 and the copied data is updated. As a result, the data changeable area and the impossible area can be set without affecting the programming by the user.
- the Java program 104 has a closed area access data generation API.
- the block area access data generation API designates a storage location of data generated by the Java program 104 by various declarations.
- FIG. 2A shows a statement showing a specific example of the data generation API for the closed area.
- a statement 201 is an API usage example for generating target data from class information.
- the put method 202 of the closed area management class “Cache” is called, and “TargetClass” is taken as a data class to be created (hereinafter also referred to as “target class”) as an argument 203, and the closed area is used as a return value.
- the specific data 204 (“TargetClass po”) generated by the access data generation unit 110 is returned.
- the specific data 204 looks as if it is a target class similar to the class 203.
- the statement 205 shown in FIG. 2B is an API usage example for moving existing data to the blockage waiting area 160.
- the argument 203 of the put method 202 in the statement 201 becomes the existing data 206 (“TargetObject”) in the temporary area 130.
- the specific data is generated in the temporary area 130
- the target data generated based on the target class 203 is generated in the blocking waiting area 150
- the target data is referred to from the specific data. It becomes the form to do.
- the specific data and the target data have a one-to-one correspondence, and when accessing the target data 204 generated in the blockage waiting area 150, the specific data is in the temporary area 130.
- the existing data in the temporary area 130 is moved to the blocking waiting area 150 and takes the same reference form.
- FIG. 3 schematically shows the storage areas of the memory 103 described above, the arrangement of data, and the reference relationship.
- specific data 311a, 311b, and 311c are arranged in the temporary area 130.
- target data 322a, 322b, and 322c are arranged in the blocking waiting area 150.
- target data 333a, 333b, 333c, and 333d are arranged in the closed area 160.
- the specific data 311c refers to the target data 322a of the blocking waiting area 150 by reference 350, and the target data 332b and 332c also refer to the target data 322a by reference 351 and 352, respectively.
- the specific data 311b or 311c refers to the target data 333b or 333c by the reference 353 or 354 of the closed area 160, respectively.
- the target data 333a of the closed area 160 is referred to by the reference 355 from the target data 333a of the same closed area 160, and the target data 333d has no reference relationship with any data.
- the Java VM 105 includes a blocked area access data generation unit 110, a release determination / data movement unit 111, and a blocked area release unit 113 as functional units.
- the blocked area access data generation unit 110 is a functional unit that generates specific data 311 (a to c) indicating target data held in the blocking waiting area 150 and the blocked area 160.
- specific data 311 a to c
- the Java program 104 accesses the target data 322a in the blocking waiting area 150 or the target data 333b and 333c in the blocked area 160, the Java program 104 accesses through the specific data 311a to 311c, respectively.
- the release determination / data movement unit 111 is a functional unit that selects a storage area to be released from the blocked area 160 of the blocked area 140 and performs a part of the “closed area release process”. Specifically, the release determination / data movement unit 111 uses various selection criteria, for example, when the area usage amount exceeds a preset threshold, every predetermined time, or after the completion of predetermined processing in the Java program 104. Based on this, the closed area 160 to be released is selected. Then, when there is a direct or indirect reference relationship from the data in all the non-release target areas to the data stored in the closed area 160 selected as the release target, the release determination / data movement unit 111 converts the data into It is moved (for example, copied) to the blocking waiting area 150.
- various selection criteria for example, when the area usage amount exceeds a preset threshold, every predetermined time, or after the completion of predetermined processing in the Java program 104. Based on this, the closed area 160 to be released is selected. Then, when there is a direct or indirect
- the reference destination correction unit 112 applies a blocking waiting area to data that has a reference relationship with the specific data held in the temporary area 113 before being moved to the blocking waiting area 150 by the release determination / data moving unit 111.
- the function unit changes the reference to the moved data.
- One of the features of this functional unit is that it is executed in parallel with the “blocked area releasing process”.
- the blocked area releasing unit 113 releases the storage area when there is no reference from the data held in the non-release target area to the data held in the closed area 160 selected as the release target. It is a functional part to be executed.
- the processing by the release determination / data movement unit 111, the reference destination correction unit 112, and the closed area release unit 113 is executed in parallel with the normal processing by the Java application 104.
- Can raise things Conventionally, in order to release a storage area, it has been necessary to temporarily stop the processing of the Java program 104 in order to avoid the occurrence of a change in the data stored in the target storage area during the release process. .
- the stop time of the Java application 104 can be reduced. There is an effect.
- FIG. 4 shows a flow of “release determination / data movement processing” by the release determination / data movement unit 111.
- the release determination / data movement unit 111 determines whether it is necessary to release the blocked area 140.
- the determination criterion for example, a case where the memory usage exceeds a preset threshold value, or after a certain process in the Java program 104 is finished every predetermined time can be considered.
- the release determination / data movement unit 111 selects a release target area from the blocked area 160 in S403.
- the selection criteria include, for example, the order of low access frequency to a series of blocked areas 160, the order of time after generation, and data that is known not to be used after the end of certain processing in the Java program 104. It is conceivable to select a certain area until a desired release amount is reached.
- the release determination / data movement unit 111 checks the reference to the blocked area 160 selected as the release target from all the areas that are not the release target, and all the data that can be directly and indirectly referred to the block waiting area 150. Move to finish the process.
- the predetermined processing of the Java program 104 continues to operate in parallel even while a series of release processing is being executed, so that the data in the blocked region 160 that is the release target is not the release target region (for example, the temporary region 130). If the data is referred to, and the data is moved to the blocking waiting area 150, it is impossible to refer to the data in the area not to be released. More specifically, as described above, when accessing data in the blocked area 140 from the Java program 104, it is necessary to pass through the specific data arranged in the temporary area 130. If the target data exists in the blocked area 160, there is a possibility that the target data has been moved to the blocking waiting area 150 by the above-described data movement executed in parallel.
- reference correction processing is performed to keep the reference destination from the specific data up-to-date.
- FIG. 5 shows a flow of “reference destination correction processing” by the reference destination correction unit 112.
- the reference destination correction unit 112 determines whether the data access from the Java program 104 is access through specific data. If the access is via specific data (S501: Yes), the process proceeds to S503.
- the reference destination correcting unit 112 determines whether the target data that is the reference destination from the specific data is the blocked area 160 to be released. When the target data is the closed area 160 to be released (S503: Yes), the process proceeds to S505.
- step S ⁇ b> 505 the reference destination correction unit 112 determines whether the target data has been moved to the blocking waiting area 150. If it has been moved (S505: Yes), the process proceeds to S507. In S507, the reference destination correcting unit 112 changes the reference destination from the specific data to the target data after movement.
- the above reference correction processing is executed in parallel with the release determination / data movement processing, thereby preventing normal processing of the Java program 104 from stopping.
- the release processing unit 113 executes the release process of the blocked area 160 when there is no reference to the blocked area 160 to be released.
- FIG. 6 shows a flow of “closed area release processing” by the closed area release unit 113.
- the blocked area releasing unit 113 checks whether or not there is an unexamined reference investigation for the specific data in the temporary area 130.
- S601: Yes the process proceeds to S603
- S601: No the process proceeds to S607.
- the closed area release processing unit 113 selects one unexamined specific data, and determines whether or not the reference destination data from the specific data is held in the closed area 160 to be released.
- the closed area 160 is marked (checked), and the process returns to S601.
- the reference destination data is not held in the blocked area 160 (S603: No)
- the process returns to S601.
- the closed area 160 that is not marked is released, and the process ends.
- the blocked area 160 that is not marked has no data reference held by the area from data held outside the area. This guarantees that there is no data required for execution of the Java program 104, and therefore means that the normal execution of the Java program 104 is not affected even if the entire area is released.
- FIG. 7 schematically shows a flow of a series of processes when releasing the closed area 160.
- the drawing shows, from left to right, the normal Java program 104 processing, specific data reference correction processing, release determination / data movement processing, and closed region 160 release processing are executed in time series.
- the “release determination / data movement process (FIG. 4)” is executed. Specifically, the release determination / data movement processing unit 111 determines whether or not the closed area 140 needs to be released (S401), selects the closed area 160 to be released (S403), and sets the selected release target area. A reference investigation for the held data from the data held in the non-release target area and a process of moving the referenced data to the block waiting area 150 are performed (S405).
- the “reference destination correction process” for the specific data is executed. Specifically, it is determined whether or not the data access from the Java program 104 is access via specific data (S501). If the data access is access via specific data, the target data is the blocked area 160 to be released. (S503), if it is held in the release target area, it is determined whether the target data has been moved to the blocking waiting area 150 (S505). The reference destination from the data is changed to the target data after movement (S507).
- the blocked area releasing unit 113 executes the “blocked area releasing process”. In parallel with this, the Java program 104 enters a state in which normal program execution is executed in parallel.
- the reference destination correction processing from the specific data shown in S501 to S507 is performed in accordance with the execution of the Java program 104, and therefore it is expected that specific data that is not accessed will appear depending on the degree of progress of the program. . If such specific data exists, the blocked area release processing in S601 to 607 may be delayed and may not be released. In such a case, at any time after the end of the data movement process in S405, all threads that execute the Java program 104 are temporarily stopped, and the reference destination correction process from the specific data is forcibly executed. Good.
- FIG. 8A shows a memory image at time 701
- FIG. 8B shows a memory image at time 702.
- specific data 311a, 311b, and 311c are arranged in the temporary area 130.
- the target data corresponding to each is 322a, 333b, and 333c.
- 333b and 333c are directly referred to by the reference data 353b and 311c by reference 353 and reference 354, and 333a is indirectly referenced.
- the data 333b, 333c, and 333a are moved (copied) to the blocking waiting area 150 to become data 334b, 334c, and 334a.
- references 353, 354, and 355 are also changed to references 370, 380, and 390. Thereafter, the closed area 160 is released.
- One of the features of this embodiment is that an area that holds only data that does not have such a reference in the storage area while making it possible to refer to data necessary for normal execution of the Java program 104, that is, data having a reference relationship. (For example, the closed area 160 to be released) can be secured. With this configuration, it is possible to limit the scope of the reference survey and to reduce the time required for the reference survey.
- the Java program 104 has access to the data being moved while consolidating the reference-related data in a specific storage area (for example, the blocking waiting area 150).
- a specific storage area for example, the blocking waiting area 150.
- the reference destination correction process for the data is executed in parallel, so that it is not necessary to provide a separate processing time for the reference correction, and the normal execution of the Java program 104 needs to be stopped. It has the effect of disappearing.
- various programs described in this embodiment can be partly or wholly stored in an electronic / electromagnetic and / or optical recording medium and installed in a computer, or can be installed in a wired or wireless manner such as the Internet. It is also possible to download via a communication network.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
なお、ステートメント205の場合、一時領域130内の既存データが閉塞待ち領域150に移動させられ、同様の参照形態をとるようになる。
JavaVM105は、その機能部として、閉塞領域アクセスデータ生成部110と、解放判定・データ移動部111と、閉塞済み領域解放部113とを有する。
S401で、解放判定・データ移動部111は、閉塞領域140の解放が必要かどうかを判断する。判断基準としては、例えば、メモリ使用量があらかじめ設定した閾値を超えた場合や、一定時間ごと、Javaプログラム104でのある処理終了後といったものが考えられる。
S501で、参照先補正部112は、Javaプログラム104からのデータアクセスが、特定データを介したアクセスかどうかを判定する。特定データを介したアクセスである場合(S501:Yes)、S503に進む。
S507で、参照先補正部112は、当該特定データからの参照先を移動後の目的データに変更する。
S601で、閉塞済み領域解放部113は、一時領域130の特定データについて、参照調査が未調査のものがあるか否かをチェックする。未調査の特定データが有る場合(S601:Yes)、S603に進み、無い場合(S601:No)は、S607の処理に進む。
印がついていない閉塞済み領域160には、当該領域外に保持されたデータから当該領域が保持するデータ参照が全くない。このことは、Javaプログラム104の実行で必要なデータが存在しないことを保障することから、領域全域を解放してもJavaプログラム104の通常の実行に何ら影響を与えないことを意味する。
閉塞済み領域160に保持されたデータのうち、333b及び333cは、参照353及び参照354によって、特定データ311b及び311cに直接的に参照されており、333aは、間接的に参照されている。
参照先補正処理では、参照353、354、355も、新たに参照370、380、390に変更される。その後、閉塞済み領域160は、解放される。
104 Javaプログラム
105 JavaVM
110 閉塞領域アクセスデータ生成部
111 解放判定・データ移動部
112 参照先補正部
113 閉塞済み領域解放部
130 一時領域
140 閉塞領域
150 閉塞待ち領域
160 閉塞済み領域
Claims (10)
- 保持するデータへの変更を可能とする第1及び第2記憶領域と、保持するデータへの変更を不可能とする第3記憶領域と、プログラムからの要求により、前記第2及び第3記憶領域が保持するデータに対するアクセスを実行する制御部と、を有する計算機であって、 前記制御部は、
前記第2及び第3記憶領域に保持するデータにアクセスする為の特定データを前記第1記憶領域に生成し、
前記特定データに第3記憶領域が保持するデータへの参照情報を含ませ、
解放対象である前記第3記憶領域が保持するデータのうち、前記特定データと参照関係のあるデータを前記第2記憶領域に移動する処理の実行中に、前記プログラムから、前記第3記憶領域が保持するデータに対する特定データを介したアクセスが発生した場合、アクセス対象であるデータが前記第2記憶領域に移動済みか否かを判定し、
移動していた場合は、該特定データに含まれる参照情報を移動先のデータに補正してアクセスすると共に前記第3記憶領域が保持するデータに参照関係を有する特定データからの参照を全て補正し、
前記参照を全て補正した後に、前記第3記憶領域を解放する
ことを特徴とする計算機。 - 請求項1に記載の計算機であって、
前記制御部は、
前記特定データと参照関係のある前記第3記憶領域が保持するデータの前記第2記憶領域への移動及び前記アクセスが発生したデータに対する参照の補正を、前記プログラムの通常の処理と並行して実行する
ことを特徴とする計算機。 - 請求項1又は2に記載の計算機であって、
前記制御部は、
前記第3記憶領域が保持するデータと参照関係がある前記特定データの参照がすべて補正される前に該第3記憶領域を解放する場合、前記第3記憶領域が保持するデータに対する前記プログラムからのアクセスを停止し、
前記第3記憶領域が保持するデータと参照関係を持つ特定データからの参照を補正することを特徴とする計算機。 - 請求項3に記載の計算機であって、
前記制御部は、
特定データをスレッドローカルデータとし、該スレッドローカルデータを扱うスレッドのデータ操作処理のみを停止し、前記参照を補正する
ことを特徴とする計算機。 - 請求項1~4の何れか一項に記載の計算機であって、
前記制御部は、
前記特定データと参照関係にある前記第3記憶領域が保持するデータへの参照調査及び調査によって参照関係が検出された該データの前記第2記憶領域への移動を、当該データへのアクセス要求を行ったプログラムによって実行し、
前記参照関係のある全てのデータを前記第2記憶領域に移動後、前記第3記憶領域を解放する
ことを特徴とする計算機。 - 保持するデータへの変更を可能とする第1及び第2記憶領域と、保持するデータへの変更を不可能とする第3記憶領域と、プログラムからの要求により、前記第2及び第3記憶領域が保持するデータに対するアクセスを実行する制御部と、を有する計算機に、
前記第2及び第3記憶領域に保持するデータにアクセスする為の特定データを前記第1記憶領域に設定する手順と、
前記特定データに第3記憶領域が保持するデータへの参照情報を含ませる手順と、
解放対象である前記第3記憶領域が保持するデータのうち、前記特定データと参照関係のあるデータを前記第2記憶領域に移動する手順と、
前記移動させる手順の実行中に、前記プログラムから、前記第3記憶領域が保持するデータに対する特定データを介したアクセスが発生した場合、アクセス対象であるデータが前記第2記憶領域に移動済みか否かを判定する手順と、
移動済みの場合に、該特定データに含まれる参照情報を移動先のデータに補正してアクセスすると共に前記第3記憶領域が保持するデータに参照関係を有する特定データからの参照を全て補正する手順と、
前記参照を全て補正した後に、前記第3記憶領域を解放する手順と、
を実行させるプログラム。 - 請求項6に記載のプログラムであって、
前記特定データと参照関係のある前記第3記憶領域が保持するデータを前記第2記憶領域に移動する手順及び前記アクセスが発生したデータの参照を補正する手順を、前記プログラムの通常の処理と並行して実行させる
ことを特徴とするプログラム。 - 請求項6又は7に記載のプログラムであって、
前記第3記憶領域が保持するデータと参照関係がある前記特定データの参照がすべて補正される前に該第3記憶領域を解放する場合、前記第3記憶領域が保持するデータに対する前記プログラムからのアクセスを停止する手順と、
前記第3記憶領域が保持するデータと参照関係を持つ特定データからの参照を補正する手順と
を実行させることを特徴とするプログラム。 - 請求項8に記載のプログラムであって、
前記特定データをスレッドローカルデータとする手順と、
該スレッドローカルデータを扱うプログラムのデータ操作処理のみを停止する手順と、 前記参照を補正する手順と
を実行させることを特徴とするプログラム。 - 保持するデータへの変更を可能とする第1及び第2記憶領域と、保持するデータへの変更を不可能とする第3記憶領域と、プログラムからの要求により、前記第2及び第3記憶領域が保持するデータに対するアクセスを実行する制御部と、を有する計算機のメモリ管理方法であって、
前記制御部が、
前記第2及び第3記憶領域に保持するデータにアクセスする為の特定データを前記第1記憶領域に設定し、
前記特定データに第3記憶領域が保持するデータへの参照情報を含ませ、
解放対象である前記第3記憶領域が保持するデータのうち、前記特定データと参照関係のあるデータを前記第2記憶領域に移動する処理の実行中に、前記プログラムから、前記第3記憶領域が保持するデータに対する特定データを介したアクセスが発生した場合、アクセス対象であるデータが前記第2記憶領域に移動済みか否かを判定し、
移動していた場合は、該特定データに含まれる参照情報を移動先のデータに補正してアクセスすると共に前記第3記憶領域が保持するデータに参照関係を有する特定データからの参照を全て補正し、
前記参照を全て補正した後に、前記第3記憶領域を解放する
ことを含むメモリ管理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/359,325 US20140337597A1 (en) | 2012-03-02 | 2012-03-02 | Computer, program, and memory management method |
PCT/JP2012/001432 WO2013128492A1 (ja) | 2012-03-02 | 2012-03-02 | 計算機、プログラム及びメモリ管理方法 |
JP2014501826A JP5657169B2 (ja) | 2012-03-02 | 2012-03-02 | 計算機、プログラム及びメモリ管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/001432 WO2013128492A1 (ja) | 2012-03-02 | 2012-03-02 | 計算機、プログラム及びメモリ管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013128492A1 true WO2013128492A1 (ja) | 2013-09-06 |
Family
ID=49081759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2012/001432 WO2013128492A1 (ja) | 2012-03-02 | 2012-03-02 | 計算機、プログラム及びメモリ管理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20140337597A1 (ja) |
JP (1) | JP5657169B2 (ja) |
WO (1) | WO2013128492A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011027626A1 (ja) * | 2009-09-01 | 2011-03-10 | 株式会社日立製作所 | メモリ管理方法、計算機システム及びコンピュータ可読媒体 |
WO2011104889A1 (ja) * | 2010-02-25 | 2011-09-01 | 株式会社日立製作所 | 計算機システム、メモリ管理方法及びメモリ管理プログラム |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3939975B2 (ja) * | 2001-12-14 | 2007-07-04 | 松下電器産業株式会社 | ガベージコレクション装置、ガベージコレクション方法及びガベージコレクションプログラム |
US7165160B2 (en) * | 2004-09-08 | 2007-01-16 | Hitachi, Ltd. | Computing system with memory mirroring and snapshot reliability |
JP5031470B2 (ja) * | 2007-07-19 | 2012-09-19 | 株式会社日立製作所 | メモリ管理方法、情報処理装置及びメモリ管理プログラム |
JP5064134B2 (ja) * | 2007-08-03 | 2012-10-31 | 株式会社日立製作所 | メモリ管理方法およびその方法を用いるコンピュータ |
JP5153539B2 (ja) * | 2008-09-22 | 2013-02-27 | 株式会社日立製作所 | メモリ管理方法およびその方法を用いるコンピュータ |
JP5281452B2 (ja) * | 2009-03-25 | 2013-09-04 | 株式会社日立製作所 | メモリ管理方法、コンピュータ、及び、メモリ管理プログラム |
US9223793B1 (en) * | 2009-06-03 | 2015-12-29 | American Megatrends, Inc. | De-duplication of files for continuous data protection with remote storage |
-
2012
- 2012-03-02 JP JP2014501826A patent/JP5657169B2/ja not_active Expired - Fee Related
- 2012-03-02 US US14/359,325 patent/US20140337597A1/en not_active Abandoned
- 2012-03-02 WO PCT/JP2012/001432 patent/WO2013128492A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011027626A1 (ja) * | 2009-09-01 | 2011-03-10 | 株式会社日立製作所 | メモリ管理方法、計算機システム及びコンピュータ可読媒体 |
WO2011104889A1 (ja) * | 2010-02-25 | 2011-09-01 | 株式会社日立製作所 | 計算機システム、メモリ管理方法及びメモリ管理プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20140337597A1 (en) | 2014-11-13 |
JP5657169B2 (ja) | 2015-01-21 |
JPWO2013128492A1 (ja) | 2015-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8612493B2 (en) | Allocation cache premarking for snap-shot-at-the-beginning concurrent mark-and-sweep collector | |
Joshi et al. | Dhtm: Durable hardware transactional memory | |
EP1805630B1 (en) | Cache eviction | |
US20220276991A1 (en) | Database lock management with cache-optimized hash table | |
US10013326B2 (en) | Propagating a prefetching profile bit from a prefetch queue to a data cache to indicate that a line was prefetched in response to an instruction within a code region | |
KR101677900B1 (ko) | 데이터 처리장치 내부의 로컬 캐시 구조에 발행된 액세스 연산을 처리하는 장치 및 방법 | |
US20120005684A1 (en) | Priority rollback protocol | |
US9355029B2 (en) | Thread-based memory management with garbage collection | |
US8495107B2 (en) | System and method for use with garbage collected languages for enabling the allocated heap memory to be updated at runtime | |
US20140059093A1 (en) | Information processing method and apparatus for garbage collection | |
US9411638B2 (en) | Application startup page fault management in a hardware multithreading environment | |
JP2012198657A (ja) | 命令処理方法、命令処理装置、及び命令処理プログラム | |
WO2011027626A1 (ja) | メモリ管理方法、計算機システム及びコンピュータ可読媒体 | |
US8806138B1 (en) | Dynamic dependencies and parameterizations for execution and caching | |
US9740597B2 (en) | Transactional execution of native methods | |
CN104750637A (zh) | 用于加速器的可扩展输入/输出数据机制 | |
US11775527B2 (en) | Storing derived summaries on persistent memory of a storage device | |
JP2008003882A (ja) | コンパイラプログラム,リストベクトルの領域割当て最適化方法,コンパイル処理装置およびコンパイラプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP5657169B2 (ja) | 計算機、プログラム及びメモリ管理方法 | |
JP2019530074A (ja) | 処理回路による命令実行を示すトレースストリームを生成し処理するための装置および方法 | |
US20080313623A1 (en) | Changing metadata without invalidating cursors | |
Zhou et al. | Efficient atomic durability on eadr-enabled persistent memory | |
US8589621B2 (en) | Object persistency | |
JP2017142670A (ja) | メモリ管理装置およびメモリ管理方法 | |
Han et al. | SyncGC: a synchronized garbage collection technique for reducing tail latency in Cassandra |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12869642 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2014501826 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14359325 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 12869642 Country of ref document: EP Kind code of ref document: A1 |