JP5660386B2 - Memory location management device, a memory location management method, a memory location management program, and a program creating system - Google Patents

Memory location management device, a memory location management method, a memory location management program, and a program creating system Download PDF

Info

Publication number
JP5660386B2
JP5660386B2 JP2011117975A JP2011117975A JP5660386B2 JP 5660386 B2 JP5660386 B2 JP 5660386B2 JP 2011117975 A JP2011117975 A JP 2011117975A JP 2011117975 A JP2011117975 A JP 2011117975A JP 5660386 B2 JP5660386 B2 JP 5660386B2
Authority
JP
Grant status
Grant
Patent type
Prior art keywords
segment
number
object code
segments
object
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2011117975A
Other languages
Japanese (ja)
Other versions
JP2012247908A (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
Grant date

Links

Images

Description

本発明は、メモリ配置管理装置、メモリ配置管理方法、メモリ配置管理プログラム、およびプログラム作成システムに関し、特にOS(Operating System:オペレーティングシステム)のオブジェクトコードのメモリ配置を管理するメモリ配置管理装置、メモリ配置管理方法、メモリ配置管理プログラム、およびプログラム作成システムに関する。 The present invention is a memory location management device, a memory location management method, a memory location management program, and a program creating system, in particular OS: memory layout management apparatus for managing the memory arrangement of the object code (Operating System Operating System), a memory arrangement management method, a memory location management program, and a program creation system.

OSの障害解析のための情報採取方法として、OSの処理に、その障害解析のための情報採取処理(以下、「プローブ」とも呼ぶ。)を埋め込む方法がある。 As the information collecting process for the OS of the failure analysis, the OS processing, the information collection processing for the fault analysis (hereinafter, also referred to as a "probe".) There is a method of embedding. この方法に関連する技術について、図5を参照して説明する。 For technology related to this method will be described with reference to FIG.

図5に示す関連技術に係る方法では、コンピュータ100によるOS101の処理でその障害解析のための情報採取処理が必要な箇所(プローブ)に、あらかじめNOP(No Operation)命令を埋め込んでおく。 In the method according to the related art shown in FIG. 5, the information collection processing is required locations for the failure analysis in the process of OS101 by computer 100 (probe) is embedded in advance NOP (No Operation) instruction. そして、USB(Universal Serial Bus)メモリ等の外部記憶媒体110をコンピュータ100に挿入することを契機に、解析プログラム102が以下の処理をコンピュータに実行させることにより、情報採取が行われる。 Then, in response to inserting a USB (Universal Serial Bus) memory or the like the external storage medium 110 of the computer 100, by analyzing program 102 to execute the following processing in a computer, the information collection is carried out.

(1)インタプリタ103が、外部記憶媒体上の解析スクリプトに記載されているプローブアドレス、情報採取処理のアドレス、情報採取処理を読み込む。 (1) the interpreter 103 reads the probe address described in the analysis script on the external storage medium, address information collection processing, information extraction processes.

(2)情報採取処理を、パッチ領域に書き込む。 (2) the information collection process, write to the patch area.

(3)プローブ箇所のNOP命令を、情報採取処理のアドレスへのブランチ(分岐)命令に変更する。 (3) NOP instructions probe locations, branch (branch) to the address of the information collection process to change the instruction.

次に、解析プログラム102の上記処理が完了した後の、情報採取の流れを以下に示す。 Next, after the above-described processing of the analysis program 102 is completed, the flow of information collected below.

(4)OS101の処理がプローブアドレスまでくると、ブランチ命令に従い、パッチ領域の情報採取処理へブランチする。 (4) When the processing of the OS101 comes to the probe address, in accordance with a branch instruction, the branch to the information collection process of the patch area.

(5)情報採取処理が実行され、ログ出力処理が呼び出される。 (5) information collection processing is executed, a log output process is invoked.

(6)ログ出力処理が実行され、(5)の情報採取処理で採取した情報が外部記憶媒体上のログファイル112に出力される。 (6) log output process is executed, the information collected by the information collection process (5) is output to the log file 112 on the external storage medium.

このように、通常運用時はプローブをNOP命令にしておき、情報採取時のみ情報採取処理へのブランチ命令に変更することで、通常運用時のオーバヘッドを抑えることができる。 In this way, during normal operation is leave the probe to the NOP instruction, by changing the time information collected only to the branch instruction to the information collection process, it is possible to suppress the overhead at the time of normal operation.

上記の関連技術に係る方法では、外部記憶媒体上の解析スクリプトに記載されているプローブアドレスは、マップファイルおよび逆アセンブルファイルの情報を元に計算する。 In the method according to the related art, a probe address described in the analysis script on the external storage medium is calculated based on information in the map file and the disassembly file. マップファイルは、オブジェクトファイルのリンク時に生成されるファイルで、オブジェクトコードの先頭アドレスを特定できるものである。 Map file is a file generated when linking the object files, are those that can identify the start address of the object code. 逆アセンブルファイルは、オブジェクトファイルを逆アセンブルすることにより生成されるファイルで、オブジェクトコードの先頭アドレスからの相対アドレスを特定できるものである。 Disassembly file is a file generated by disassembling object files are those that can identify the relative address from the start address of the object code.

この場合、バージョンアップ等でOSのソースコードを修正すると、これに対応するオブジェクトコードが変わってしまうため、解析スクリプトに記載されているプローブアドレスを修正する必要がある。 In this case, modifying the source code for OS version up or the like, since the object code corresponding to this would change, it is necessary to modify the probe address described in the analysis script.

上記に関連して、特許文献1には、複数のオブジェクトモジュールを結合して1つの実行可能プログラムを生成するリンカ装置において、複数のオブジェクトモジュールの配置対象セグメント毎に所定サイズの空き領域を割り当て、オブジェクトモジュールの変更があった配置対象セグメントのみを再度リンクし、その対象配置セグメントの終わりに所定サイズの空き領域を付加するものが記載されている。 In connection with the above, Patent Document 1, the linker unit to generate one executable program by combining a plurality of object modules, allocates a free area of ​​a predetermined size for each arrangement the segment of the plurality of object modules, again linked only layout target segments that have changed object modules, have been described that adds an empty area of ​​a predetermined size at the end of the target arrangement segment.

特開2000−155673号公報 JP 2000-155673 JP

上記の関連技術に係る方法では、バージョンアップ等でOSのソースコードを修正した場合、修正したソースコードに対応するオブジェクトコードのサイズが変わることにより、メモリ配置が変わる。 In the method according to the related art, if you modify the OS source code in version upgrade, by changes the size of the object code corresponding to the modified source code, the memory arrangement is changed. このため、プローブのアドレスが変わってしまい、解析スクリプトに記載したプローブアドレスを大幅に修正する必要が生じる。 For this reason, the address of the probe will be changes, it is necessary to modify significantly the probe address described in the analysis script. この例を図6(a)、(b)に示す。 This example FIG. 6 (a), the shown (b).

図6(a)、(b)の例では、オブジェクト名がオブジェクト1のオブジェクトコードのサイズと、オブジェクト名がオブジェクト2のオブジェクトコードのサイズとがいずれも大きくなったことにより、変更のないオブジェクト名がオブジェクト3のオブジェクトコード内のプローブのアドレスが変わっている。 FIG 6 (a), in the example of (b), and the size of the object code for the object names are the object 1, by the object name is increased both the size of the object code of the object 2, no change object name There has changed the address of the probe in the object code of the object 3. さらに、オブジェクト名がオブジェクト3のオブジェクトコードより高位のアドレスにプローブが埋め込まれていた場合、すべてのプローブのアドレスが変わってしまう。 Further, if the object name is the probe is embedded in the address of the higher than object code of the object 3, the addresses of all the probes will change.

一方、特許文献1に記載のリンカ装置は、コードサイズの比率等を用いて、ユーザまたはシステムが空き領域のサイズを指定するため、空き領域の指定が必要となる。 On the other hand, the linker apparatus described in Patent Document 1, using the ratio of the code size such as, for the user or the system to specify the size of the free space, it is necessary to specify the free space.

本発明の目的は、上記課題を解決し、オブジェクトコードの変更によりそのサイズが変わる場合でも、メモリ配置上のオブジェクトコードのアドレスの修正を最小限にできるメモリ配置管理装置、メモリ配置管理方法、メモリ配置管理プログラム、およびプログラム作成システムを提供することにある。 An object of the present invention, the above problem is solved, even if the size is changed by changing the object code, a memory location management device capable of minimizing the modification of the address of the object code in the memory arrangement, the memory location management method, a memory location management program, and to provide a program creation system.

本発明の第1の観点によれば、メモリ領域を予め設定された固定長サイズのセグメントに分割し、分割したセグメントにオブジェクトコードを割り当てて配置したときの当該オブジェクトコードが割り当てられたセグメントの先頭セグメント番号およびセグメント数を、当該オブジェクトコードが割り当てられていない空き領域となるセグメントの先頭セグメント番号およびセグメント数と共に管理するメモリ配置管理テーブルと、前記オブジェクトコードが更新される際、更新後のオブジェクトコードのオブジェクトサイズから変更後のオブジェクトコードに割り当てられるセグメントのセグメント数を計算し、変更後のセグメント数が変更前のセグメント数よりも大きいとき、変更後のオブジェクトコードを変更後のセグメント数以上の According to a first aspect of the present invention, is divided into segments of preset fixed-length size memory area, the head of the segment to which the object code is assigned when arranged allocated the object code to the divided segments segment number and the number of segments, when the memory location management table which manages with the top segment number and the number of segments of the segments of a free area where the object code has not been assigned, wherein the object code is updated, the object code after update the calculated number of segments segments assigned from the object size in the object code after the change, before the change the number of segments after the change is greater than the segment number, the higher the number of segments after changing the object code of the modified き領域となるセグメントに移動し、変更後のセグメント数が変更前のセグメント数以下のとき、変更後のオブジェクトコードをその変更前のセグメント内に収めるように前記メモリ配置管理テーブルを更新する管理テーブル更新部と、更新された前記メモリ配置管理テーブルから、前記オブジェクトコードのメモリ配置を設定するためのオブジェクトアドレスを含むメモリ配置設定ファイルを生成する設定ファイル生成部とを有することを特徴とするメモリ配置管理装置が提供される。 Navigate to the segment to be come region, when the following number of segments before the change the number of segments after the change management table for updating the memory location management table so as accommodate the object code after the change in the change previous segment an update unit, from said memory location management table updated, a memory arrangement and having a setting file generation unit which generates a memory layout configuration file that contains the object address to set the memory arrangement of the object code management apparatus is provided.

本発明の第2の観点によれば、メモリ配置管理テーブルが、メモリ領域を固定長サイズのセグメントに分割し、分割したセグメントにオブジェクトコードを割り当てて配置したときの当該オブジェクトコードが割り当てられたセグメントの先頭セグメント番号およびセグメント数を、当該オブジェクトコードが割り当てられていない空き領域となるセグメントの先頭セグメント番号およびセグメント数と共に管理し、管理テーブル更新部が、前記オブジェクトコードが更新される際、更新後のオブジェクトコードのオブジェクトサイズから変更後のオブジェクトコードに割り当てられるセグメントのセグメント数を計算し、変更後のセグメント数が変更前のセグメント数よりも大きいとき、変更後のオブジェクトコードを変更後のセグメント According to a second aspect of the present invention, the memory location management table, divides the memory area into segments of a fixed length size, the object code when placed divided segments assigned object code is allocated segment leading segment number and the number of segments, when managed with leading segment number and the number of segments of the segments of a free area where the object code is not assigned, the management table updating unit, wherein the object code is updated, the updated segment of the number of segments the object segments to be assigned to the object code after the change from the object code size was calculated, when the number of the changed segment is greater than the number of segments before the change, the changed object code after the change 以上の空き領域となるセグメントに移動し、変更後のセグメント数が変更前のセグメント数以下のとき、変更後のオブジェクトコードをその変更前のセグメント内に収めるように前記メモリ配置管理テーブルを更新し、設定ファイル生成部が、更新された前記メモリ配置管理テーブルから、前記オブジェクトコードのメモリ配置を設定するためのオブジェクトアドレスを含むメモリ配置設定ファイルを生成することを特徴とするメモリ配置管理方法が提供される。 Navigate to the segment to be more free space, when the following number of segments before the change the number of segments after the change, and updates the memory location management table so as accommodate the object code after the change in the change previous segment , provides setting file generation unit, from said memory location management table updated, a memory location management method characterized by generating a memory arrangement configuration file that contains the object address to set the memory arrangement of the object code It is.

本発明の第3の観点によれば、コンピュータを、メモリ領域を固定長サイズのセグメントに分割し、分割したセグメントにオブジェクトコードを割り当てて配置したときの当該オブジェクトコードが割り当てられたセグメントの先頭セグメント番号およびセグメント数を、当該オブジェクトコードが割り当てられていない空き領域となるセグメントの先頭セグメント番号およびセグメント数と共に管理するメモリ配置管理テーブルと、前記オブジェクトコードが更新される際、更新後のオブジェクトコードのオブジェクトサイズから変更後のオブジェクトコードに割り当てられるセグメントのセグメント数を計算し、変更後のセグメント数が変更前のセグメント数よりも大きいとき、変更後のオブジェクトコードを変更後のセグメント数以上 According to a third aspect of the present invention, the top segment of the segment to which the object code is assigned when computer to divide the memory area into segments of fixed length size, was placed in assigned object code to the divided segments the number and segment number, the memory location management table which manages with the top segment number and the number of segments of the segment becomes a free area not the object code is assigned, when the object code is updated, the updated object code calculate the number of segments the segments assigned to the object code after the change from the object size, when the number of the changed segment is greater than the number before the change segments, or the number of segments after changing the object code of the modified 空き領域となるセグメントに移動し、変更後のセグメント数が変更前のセグメント数以下のとき、変更後のオブジェクトコードをその変更前のセグメント内に収めるように前記メモリ配置管理テーブルを更新する管理テーブル更新部と、更新された前記メモリ配置管理テーブルから、前記オブジェクトコードのメモリ配置を設定するためのオブジェクトアドレスを含むメモリ配置設定ファイルを生成する設定ファイル生成部として機能させることを特徴とするメモリ配置管理プログラムが提供される。 Management table to move to the segment to be a free area, updating said memory location management table as when the following number of segments before the change the number of segments after the change, keep the object code after the change in the change previous segment an update unit, from said memory location management table updated, a memory arrangement, characterized in that to function as a setting file generation unit which generates a memory layout configuration file that contains the object address to set the memory arrangement of the object code management program is provided.

本発明の第4の観点によれば、上記に記載のメモリ配置管理装置と、オブジェクトコードをリンクして実行ファイルを生成し、当該オブジェクトコードのリンク時に前記メモリ配置管理装置により生成されたメモリ配置設定ファイルを用いて前記オブジェクトコードのメモリ配置を設定するリンカとを有することを特徴とするプログラム作成システムが提供される。 According to a fourth aspect of the present invention, a memory location management apparatus described above, generating an executable by linking the object code, a memory arrangement produced by the memory location management device when linking the object code programming system; and a linker to set the memory arrangement of the object code using the configuration file is provided.

本発明によれば、オブジェクトコードの変更によりそのサイズが変わる場合でも、メモリ配置上のオブジェクトコードのアドレスの修正を最小限にできる。 According to the present invention, even if the change is that size by changing the object code, it can be minimized modification of the address of the object code in memory arrangement.

本発明の実施の形態に係るメモリ配置管理装置の構成を示すブロック図である。 The configuration of the memory layout management apparatus according to an embodiment of the present invention is a block diagram showing. 図1に示すメモリ配置管理装置において、オブジェクトコード変更前後のメモリ配置管理テーブルを示す図である。 Memory allocation management apparatus shown in FIG. 1 is a diagram showing a memory location management table before and after the object code changes. 図1に示すメモリ配置管理装置の動作を示すフローチャートである。 Is a flowchart showing the operation of the memory layout management apparatus shown in FIG. 図1に示すメモリ配置管理装置を用いた場合のオブジェクトコード変更前後のメモリ配置を示す図である。 It is a diagram showing a memory arrangement before and after the object code changes when using the memory layout management apparatus shown in FIG. 関連技術に係るOSの障害解析のための情報採取方法を説明するブロック図である。 Information collection method for fault analysis of OS according to the related art is a block diagram for explaining the. 関連技術を用いた場合のオブジェクトコード変更前後のメモリ配置を示す図である。 Is a diagram showing a memory arrangement before and after the object code changes in the case of using the related art.

以下、本発明に係るメモリ配置管理装置、メモリ配置管理方法、メモリ配置管理プログラム、およびプログラム作成システムの実施の形態について、図面を参照して詳細に説明する。 Hereinafter, the memory location management apparatus according to the present invention, the memory location management method, a memory location management program, and the embodiments of the programming system will be described in detail with reference to the accompanying drawings.

図1は、本実施の形態に係るメモリ配置管理装置の構成を説明するものである。 Figure 1 is a diagram for explaining the configuration of a memory layout management apparatus according to the present embodiment.

図1に示すメモリ配置管理装置50は、コンパイラ10、リンカ20、逆アセンブラ40と共にプログラムの作成及び修正を行うシステム(プログラム作成システム)を構成し、プログラミング言語で記述されたソースコード1をコンパイラ10によりコンパイルしてオブジェクトファイル2を生成し、生成したオブジェクトファイル2をリンカ20によりリンクして実行ファイル3を生成する際に用いられる。 Memory location management device shown in FIG. 1 50, compiler 10, linker 20, to configure the system (program creation system) for performing program creation and modification with disassembler 40, a source code 1, which is written in a programming language compiler 10 by generating an object file 2 to compile, it used the generated object file 2 in generating the executable 3 linked by the linker 20. 具体的には、メモリ配置管理ツール5と、メモリ配置設定ファイル6とを含む。 Specifically, it includes a memory location management tool 5, and a memory arrangement configuration file 6.

メモリ配置設定ファイル6は、オブジェクトコードのメモリ配置を設定するための全オブジェクトコードのオブジェクト名と、オブジェクトアドレスとを記載したファイルである。 Memory arrangement configuration file 6 is a file that lists and object names of all object code and the object address to set the memory arrangement of the object code. リンカ20は、オブジェクトファイル2のリンク時にメモリ配置設定ファイル6を参照して、オブジェクトコードのメモリ配置を設定する。 The linker 20 refers to the memory arrangement configuration file 6 when linking the object file 2, sets the memory arrangement of the object code. このため、メモリ配置設定ファイル6は、リンカ20が指定するフォーマットにする必要がある。 Therefore, the memory arrangement configuration file 6, it is necessary to format the linker 20 specifies. 例えば、ARMプロセッサ向けのコンパイラRVCTを使用する場合、メモリ配置設定ファイル6は、「スキャッタローディング記述ファイル」のフォーマットにする必要がある。 For example, when using a compiler RVCT for ARM processors, memory arrangement configuration file 6, it is necessary to format the "scatter-loading description file".

メモリ配置管理ツール5は、メモリ領域を固定長サイズのセグメントに分割し、オブジェクトファイル2のオブジェクトコードをセグメント境界に割り当てて配置することにより、オブジェクトコードのメモリ配置を管理するためのツールである。 Memory allocation managing tool 5 divides the memory area into segments of a fixed length size, by arranging assign the object code of the object file 2 into segments boundaries, which is a tool for managing the memory arrangement of the object code.

このメモリ配置管理ツール5は、ソースコード1を変更したときに、変更後のソースコード1に対応するオブジェクトファイル2を逆アセンブラ40により逆アセンブルして得られる、変更したオブジェクトコードの逆アセンブルリスト4の情報(オブジェクト名41、オブジェクトサイズ42)から、メモリ配置設定ファイル6を生成する。 This memory allocation managing tool 5, when you change the source code 1, obtained by disassembling the disassembler 40 an object file 2 corresponding to the source code 1 after the change, disassemble list of object code changed 4 from the information (object name 41, object size 42), to generate a memory arrangement configuration file 6.

具体的に、メモリ配置管理ツール5は、管理テーブル更新部51、設定ファイル生成部52、およびメモリ配置管理テーブル53を含む。 Specifically, the memory location management tool 5 includes a management table updating unit 51, setting file generation unit 52 and a memory location management table 53,.

メモリ配置管理テーブル53は、図2(a)、(b)に示すように、メモリ領域を予め設定された固定長サイズのセグメントに分割し、分割したセグメントにオブジェクトコードを割り当てて配置したときのオブジェクトコードの「オブジェクト名」、オブジェクトコードが割り当てられるセグメントの「先頭セグメント番号」、オブジェクトコードに割り当てられたセグメントの「セグメント数」を管理するための表である。 Memory location management table 53, FIG. 2 (a), the (b), the split into segments of fixed length size set a memory area in advance, divided segments when arranged assign an object code object "object name" code, "leading segment number" of the segment object code is assigned, a table for managing the "number of segments" in the segment allocated to the object code.

具体的には、メモリ配置管理テーブル53は、オブジェクトコードが割り当てられたセグメントの場合、オブジェクトコードのオブジェクト名に対応付けて、先頭セグメント番号およびセグメント数を管理すると共に、空き領域となるセグメントの場合、オブジェクトコードのオブジェクト名をnullとし、nullに対応付けて、先頭セグメント番号およびセグメント数を管理する。 Specifically, the memory location management table 53, when the segment object code is assigned, in association with the object name of the object code manages the leading segment number and the number of segments, when the segment of the free space , and null object name of the object code, in association with the null, to manage the leading segment number and the number of segments.

管理テーブル更新部51は、オブジェクトコードが更新された際に、変更後のオブジェクトコードの逆アセンブルリスト4のオブジェクト名41およびオブジェクトサイズ42から、メモリ配置管理テーブル53のオブジェクト名、先頭セグメント番号、およびセグメント数を更新する。 Management table updating unit 51, when the object code is updated, the object name 41 and the object size 42 Disassemble list 4 of the object code after the change, the object name of the memory location management table 53, the top segment number, and to update the number of segments.

具体的には、管理テーブル更新部51は、更新後のオブジェクトコードのオブジェクトサイズから変更後のオブジェクトコードに割り当てられるセグメントのセグメント数を計算し、変更後のセグメント数が変更前のセグメント数よりも大きいとき、変更後のオブジェクトコードを変更後のセグメント数以上の空き領域となるセグメントに移動し、変更後のセグメント数が変更前のセグメント数以下のとき、変更後のオブジェクトコードをその変更前のセグメント内に収めるようにメモリ配置管理テーブル53を更新する。 Specifically, the management table updating unit 51, the number of segments the segments assigned to the object code after the change from the object size of the object code after update is calculated, than the number of segments before the change the number of segments after change big time, go to the segment of the segment number of free area after changing the object code after the change, when the following number of segments before the change the number of segments after the change, before the change the object code after the change update memory location management table 53 so as fit in the segment.

また、管理テーブル更新部51は、変更後のセグメント数が変更前のセグメント数より小さいとき、変更後のオブジェクトコードを、変更前のセグメントの内、先頭セグメントから変更後のセグメント数分のセグメントに収め、その残りのセグメントを空き領域とするようにメモリ配置管理テーブル53を更新する。 The management table updating unit 51, when the number of the changed segment is smaller than the number of segments before the change, the object code after the change of the pre-change segment, the segment number of segments minutes after the change from the first segment videos, and updates the memory location management table 53 so as to the remaining segments and free space.

管理テーブル生成部52は、オブジェクトコードが更新された際に、メモリ配置管理テーブル53のオブジェクト名、先頭セグメント番号、およびセグメント数を参照して、メモリ配置設定ファイル6を生成する。 Management table generation unit 52 when the object code is updated, the object name of the memory location management table 53, the top segment number, and with reference to the number of segments to generate a memory arrangement configuration file 6.

次に、本実施の形態の動作について説明する。 Next, the operation of this embodiment.

図3は、オブジェクト名Aのオブジェクトコードを変更した時のメモリ配置管理テーブル53の更新処理を示すフローチャートである。 Figure 3 is a flowchart showing a process of updating the memory location management table 53 when changing the object code of the object name A. 以下、図3を参照して、オブジェクト名Aのオブジェクトコードが更新されたときの管理テーブル更新部51の動作について説明する。 Referring to FIG. 3, the operation of the management table updating unit 51 when the object code of the object name A has been updated.

まず、管理テーブル更新部51は、メモリ配置管理テーブル53からオブジェクトコードのオブジェクト名がAに対応する行Tを検索し(ステップA1)、検索された行Tのセグメント数を取得して変数S1に代入する(ステップA2)。 First, the management table updating unit 51 searches the line T to the object name of the object code from the memory location management table 53 corresponds to A (step A1), the variable S1 to obtain the number of segments retrieved rows T substitution (step A2).

次に、管理テーブル更新部51は、オブジェクトファイル2の逆アセンブルにより生成された逆アセンブルリスト4からオブジェクト名Aのオブジェクトコードのオブジェクトサイズ42を取得し(ステップA3)、取得したオブジェクトサイズ42から、オブジェクトコードの変更後のセグメント数を計算し、変数S2に代入する(ステップA4)。 Next, the management table updating unit 51, from the acquired object size 42 object code disassembly object name A from disassembly list 4 generated by the object file 2 (step A3), object size 42 acquired, calculate the number of segments after the change of the object code, into a variable S2 (step A4). セグメント数は、逆アセンブルリスト4から取得したオブジェクトサイズ42を、あらかじめ定義したセグメントサイズで割ることによって計算することができる。 Number of segments, the object size 42 obtained from the disassembled list 4 can be calculated by dividing the segment size defined in advance.

次に、管理テーブル更新部51は、S1<S2か否か判定し(ステップA5)、その結果、S1<S2の場合(変更後のオブジェクトコードのセグメント数が行Tのセグメント数より大きい場合)(ステップA5:Yes)、以下の処理を行う。 Next, the management table updating unit 51 determines whether S1 <S2 (step A5), as a result, S1 <(if the number of segments the object code after the change is greater than the number of segments rows T) For S2 (step A5: Yes), the following processing is performed.

すなわち、管理テーブル更新部51は、行Tのオブジェクト名をAからnullに変更し(ステップA6)、行Tの次行のオブジェクト名がnullか否か判定し(ステップA7)、その結果、行Tの次行のオブジェクト名がnullの場合(ステップA7:YES)、行Tと行Tの次行とを結合するため、行Tのセグメント数に行Tの次行のセグメント数を加算し、行Tの次行を削除する(ステップA8)。 That is, the management table updating unit 51 is changed to null the object name line T from A (step A6), the object name of the next line after the line T is determined whether null (step A7), as a result, the line If the object name of the next line of the T is null (step A7: YES), in order to couple the next line after the line T and line T, by adding the number of segments the line following T to the number of segments lines T, to delete the following line of line T (step A8).

次に、管理テーブル更新部51は、メモリ配置管理テーブル53の先頭からセグメント数がS2以上、オブジェクト名がnullの行(この行を新たなTとする)を検索し(ステップA9)、検索された行Tのオブジェクト名をnullからAに変更し(ステップA10)、行Tのセグメント数を取得して変数S1に代入する(ステップA11)。 Next, the management table updating unit 51, the number of segments from the beginning of the memory location management table 53 is S2 above, the object name is searched for null line (this line as a new T) (step A9), the search change the name of the object Tagyo T from null to a (step A10), into a variable S1 to obtain the number of segments lines T (step A11).

次に、管理テーブル更新部51は、S1=S2か否か判定し(ステップA12)、その結果、S1=S2でない場合(変更後のオブジェクトコードのセグメント数が行Tのセグメント数より小さい場合)(ステップA12:No)、以下の処理を行う。 Next, the management table updating unit 51 determines whether or not S1 = S2 (step A12), the result (if the number of segments the object code after the change is smaller than the number of segments rows T) if not S1 = S2 (step A12: No), the following process is performed.

すなわち、管理テーブル更新部51は、行Tのセグメント数をS2に変更し(ステップA13)、行Tの次行のオブジェクト名がnullか否か判定し(ステップA14)、その結果、Tの次行のオブジェクト名がnullでない場合(ステップA14:No)、行Tの次行に、オブジェクト名がnull、先頭セグメント番号が0、セグメント数が0の行を追加する(ステップA15)。 That is, the management table updating unit 51 changes the number of segments lines T in S2 (step A13), the object name of the next line after the line T is determined whether null (step A14), as a result, the next T If the object name line is not null (step A14: no), the next line of the line T, the object name is not null, the top segment number 0, the number of segments to add a line 0 (step A15).

最後に、管理テーブル更新部51は、行Tの次行の先頭セグメント番号に「行Tのセグメント番号+S2」を代入し、セグメント数に「S2−S1」を加算する(ステップA16)。 Finally, the management table updating unit 51, the leading segment number of the next line of the line T substitutes "segment number + S2 line T" adds "S2-S1" to the number of segments (step A16).

次に、図2のようにオブジェクト名がオブジェクト2のオブジェクトコードのセグメント数が1から2に変更された場合の管理テーブル更新部51の動作を、図3を参照して説明する。 Next, the operation of the management table updating unit 51 in the case where the number of object name of the object 2 object code segments as in FIG. 2 is changed from 1 to 2, will be described with reference to FIG.

まず、管理テーブル更新部51は、メモリ配置管理テーブル53からオブジェクト名がオブジェクト2の行(この行をTとする)を検索し(ステップA1)、検索された行Tのセグメント数1を取得してS1=1とする(ステップA2)。 First, the management table updating unit 51 retrieves from the memory location management table 53 object name of the object 2 rows (the rows and T) (step A1), to obtain the number segments 1 of retrieved rows T Te S1 = 1 to to (step A2).

次に、管理テーブル更新部51は、逆アセンブルリスト4からオブジェクト2のオブジェクトサイズ42を取得し(ステップA3)、オブジェクトコードの変更後のセグメント数2を計算し、S2=2とする(ステップA4)。 Next, the management table updating unit 51 obtains the object size 42 Object 2 from disassembly Listing 4 (step A3), calculates the segment number 2 after the change of the object code, and S2 = 2 (step A4 ).

次に、管理テーブル更新部51は、S1<S2か否か判定し(ステップA5)、その結果、S1<S2となるため(ステップA5:Yes)、以下の処理を行う。 Next, the management table updating unit 51 determines whether S1 <S2 (step A5), as a result, since the S1 <S2 (step A5: Yes), the following processing is performed.

すなわち、管理テーブル更新部51は、行Tのオブジェクト名をオブジェクト2からnullに変更し(ステップA6)、行Tの次行のオブジェクト名がnullか否か判定する(ステップA7)。 That is, the management table updating unit 51 is changed to null the object name line T from the object 2 (step A6), the object name of the next line after the line T determines whether null (step A7). その結果、行Tの次行のオブジェクト名はオブジェクト3であり、nullではないため(ステップA7:No)、管理テーブル更新部51は、メモリ配置管理テーブル53の先頭から、セグメント数S2(=2)以上、かつ、オブジェクト名がnullの行(この行を新たなTとする)を検索する(ステップA9)。 As a result, the object name of the next line after the line T is an object 3, not a null (step A7: No), the management table updating unit 51, from the beginning of the memory location management table 53, the number segment S2 (= 2 ) or more, and the object name to search for null line (this line as a new T) (step A9).

次に、管理テーブル更新部51は、行Tのオブジェクト名をnullからオブジェクト2に変更し(ステップA10)、行Tのセグメント数2を取得してS1=2とする(ステップA11)。 Next, the management table updating unit 51 changes the object name line T from null to an object 2 (step A10), to obtain the number of segments 2 of the row T and S1 = 2 (step A11).

次に、管理テーブル更新部51は、S1=S2か否か判定し(ステップA12)、その結果、S1=S2となるため(ステップA12:Yes)、メモリ配置管理テーブル53の更新処理を終了する。 Next, the management table updating unit 51 determines whether or not S1 = S2 (step A12), as a result, since the S1 = S2 (Step A12: Yes), terminates the process of updating the memory location management table 53 .

以上のように、本実施の形態によれば、メモリ領域を固定長サイズのセグメントに分割し、オブジェクトコードをセグメント境界に配置する。 As described above, according to this embodiment, by dividing the memory area into segments of fixed length size, place the object code to the segment boundaries. そして、オブジェクトコードの変更により、割り当てられたセグメント内にオブジェクトコードが収まらなくなった場合は、オブジェクトコードを空き領域に移動し、割り当てられたセグメント内に収まる場合は、オブジェクトコードは移動しない。 Then, by changing the object code, if it no longer fits the object code into the assigned segment, to move the object code in the free space, when falling within the assigned segment, the object code is not moved. オブジェクトコードが移動するのは、オブジェクトコードが変更され、かつ、割り当てられたセグメント内に収まらない場合のみであり、その移動を最小限にすることができる。 The object code is moved, the object code is changed, and, only if it does not fit in the allotted segment, it is possible to minimize the movement.

これにより、OSのソースコード1の修正によってオブジェクトコードが変更された場合に、変更の前後で、変更のない他のオブジェクトコード、例えばプローブ(障害解析のためOSに埋め込んだ情報採取処理)のアドレスが変わらないようにするメモリ配置を実現することができる。 Thus, when it is changed object encoded by the modified source code 1 OS, before and after the change, the address of the other object code unchanged, for example, a probe (information collection processing embedded in the OS for fault analysis) it is possible to realize a memory arranged to make no change.

図4(a)、(b)は、前述した図6(a)、(b)と同じオブジェクトコードに対して、本実施の形態を適用した場合の例を示す。 Figure 4 (a), (b) is, FIG. 6 described above (a), showing an example of applying the same to an object code, the present embodiment and (b). 図6(a)、(b)の例では、オブジェクト名がオブジェクト2のオブジェクトコードは割り当てられたセグメント内に収まらなくなったため、空き領域に移動しており、オブジェクト名がオブジェクト1のオブジェクトコードは割り当てられたセグメント内に収まるため、移動しない。 FIG 6 (a), in the example of (b), because the object name is no longer fits in the segment object code object 2 is allocated, has moved in the free space, the object code of the object name object 1 Assignment since that fall was the segment, it does not move. 変更のないオブジェクト名がオブジェクト3のオブジェクトコード内のプローブのアドレスは変わっていない。 Change with no object name is the address of the probe in the object code of the object 3 is not changed.

従って、本実施の形態によれば、OSの処理を変更した際、解析スクリプトに記載されているプローブアドレスの修正を最小限にできる。 Therefore, according to this embodiment, when changing the processing of OS, it can be minimized to correct the probe address described in the analysis script. その理由は、オブジェクトの変更により、変更後のオブジェクトコードが割り当てられたセグメントに収まらなくなった場合は、変更後のオブジェクトコードを空き領域に移動し、他のオブジェクトコードのアドレスが変わらないようにするためである。 The reason is that by changing the object, if the object code after the change is no longer fit in the allocated segments, move the object code after the change in the free space, so as not to change the address of other object code This is because.

なお、オブジェクトコードをセグメント境界に配置することにより、オブジェクトコード間に空き領域ができるため、キャッシュメモリの利用効率が低くなる可能性がある。 Incidentally, by arranging the object code segment boundaries, since it is free space between the object code, there is a possibility that the use efficiency of the cache memory is reduced. しかし、キャッシュラインサイズのセグメントに分割し、オブジェクトコードをキャッシュライン境界に配置することで、オブジェクトコードの先頭部分がセグメント境界を跨ぐことがなくなるため、キャッシュメモリの利用効率が高くなると考えられる。 However, divided into segments of the cache line size, by arranging the object code to a cache line boundary, the leading portion of the object code for eliminating it across segment boundaries, is considered to use efficiency of the cache memory increases.

すなわち、本実施の形態では、セグメントのサイズをキャッシュラインのサイズとすることで、コードがキャッシュライン境界を跨ることがなくなり、キャッシュメモリの利用効率が高くなる。 That is, in this embodiment, by making the size of the segment size of the cache line, code prevents across cache line boundaries, the higher utilization efficiency of the cache memory.

また、本実施の形態では、メモリ領域を固定長のセグメントに分割し、セグメント境界にコードを割り当てるだけで、自動的に空き領域のサイズが決まるため、空き領域の指定は不要である。 Further, in the present embodiment, by dividing the memory area into fixed-length segments, only assign codes to segment boundaries, to automatically size of the free space is determined, specification of free space is not required.

上記のメモリ配置管理装置は、ハードウェア、ソフトウェア又はこれらの組合せにより実現することができる。 Additional memory layout management device can be realized by hardware, software, or a combination thereof. この場合のハードウェア、ソフトウェア又はこれらの組合せによる構成は特に限定されるものではなく、上述した機能を実現可能なものであれば、いずれの形態でも適用可能である。 Hardware In this case, software configurable, or a combination thereof are not particularly limited, as long as it can realize the function described above, can be applied in any form.

上記の実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限定されない。 Some or all of the above-described embodiment, can be described as the following notes, not limited to the following.

(付記1)メモリ領域を予め設定された固定長サイズのセグメントに分割し、分割したセグメントにオブジェクトコードを割り当てて配置したときの当該オブジェクトコードが割り当てられたセグメントの先頭セグメント番号およびセグメント数を、当該オブジェクトコードが割り当てられていない空き領域となるセグメントの先頭セグメント番号およびセグメント数と共に管理するメモリ配置管理テーブルと、前記オブジェクトコードが更新される際、更新後のオブジェクトコードのオブジェクトサイズから変更後のオブジェクトコードに割り当てられるセグメントのセグメント数を計算し、変更後のセグメント数が変更前のセグメント数よりも大きいとき、変更後のオブジェクトコードを変更後のセグメント数以上の空き領域となるセグ (Supplementary Note 1) is divided into segments of preset fixed-length size memory area, the number of leading segment number and segment of the segment to which the object code is assigned when arranged allocated the object code to the divided segments, a memory location management table which manages with the top segment number and the number of segments of the segments of a free area where the object code is not assigned, when the object code is updated, the changed from the object size of the object code after update calculate the number of segments the segments assigned to the object code, when the number of the changed segment is greater than the number of segments before the change, segment comprising a segment number of free area after changing the object code of the modified ントに移動し、変更後のセグメント数が変更前のセグメント数以下のとき、変更後のオブジェクトコードをその変更前のセグメント内に収めるように前記メモリ配置管理テーブルを更新する管理テーブル更新部と、更新された前記メモリ配置管理テーブルから、前記オブジェクトコードのメモリ配置を設定するためのオブジェクトアドレスを含むメモリ配置設定ファイルを生成する設定ファイル生成部とを有することを特徴とするメモリ配置管理装置。 Go to cement, when: the number of segments before the change the number of segments after the change, the management table updating unit for updating the memory location management table so as accommodate the object code after the change in the change previous segment, from the memory location management table updated, a memory location management device characterized by having a setting file generation unit which generates a memory layout configuration file that contains the object address to set the memory arrangement of the object code.

(付記2)前記管理テーブル更新部は、変更後のセグメント数が変更前のセグメント数より小さいとき、変更後のオブジェクトコードを、変更前のセグメントの内、先頭セグメントから変更後のセグメント数分のセグメントに収め、その残りのセグメントを空き領域とするように前記メモリ配置管理テーブルを更新することを特徴とする付記1に記載のメモリ配置管理装置。 (Supplementary Note 2) The management table updating unit, when the number of the changed segment is smaller than the number of segments before the change, the object code after the change of the pre-change segment, the number of segments after the change from the first segment fraction contained in the segment, the memory location management device according to the remaining segments to note 1, wherein updating the memory location management table so as to free space.

(付記3)前記メモリ配置管理テーブルは、前記オブジェクトコードが割り当てられたセグメントの場合、当該オブジェクトコードのオブジェクト名に対応付けて、前記先頭セグメント番号およびセグメント数を管理すると共に、前記空き領域となるセグメントの場合、前記オブジェクトコードのオブジェクト名をnullとし、当該nullに対応付けて、前記先頭セグメント番号およびセグメント数を管理することを特徴とする付記1又は2に記載のメモリ配置管理装置。 (Supplementary Note 3) The memory location management table, if a segment where the object code has been assigned, the association with the object name of the object code, manages the leading segment number and segment number, serving as the free area for segment, said the object name of the object code and null, in association with the null, an in-memory location management device according to note 1 or 2, characterized in that managing the leading segment number and the number of segments.

(付記4)前記セグメントの固定長サイズは、キャッシュメモリのキャッシュラインサイズに予め設定されることを特徴とする付記1から3のいずれかに記載のメモリ配置管理装置。 (Supplementary Note 4) fixed length size of the segment, the memory location management apparatus according to any one of Supplementary Note 1, characterized in that it is preset in the cache line size of the cache memory 3.

(付記5)前記オブジェクトコードは、オペレーティングシステムを構成するオブジェクトコードであることを特徴とする付記1から4のいずれかに記載のメモリ配置管理装置。 (Supplementary Note 5) The object code, a memory location management device according to any one of annexes 1, wherein 4 of that the object code constituting the operating system.

(付記6)前記オブジェクトコードは、前記オペレーティングシステムの障害解析のための情報採取処理を行うプローブが埋め込まれていることを特徴とする付記5に記載のメモリ配置管理装置。 (Supplementary Note 6) The object code, a memory location management apparatus according to note 5, wherein the probe to perform the information collection process for fault analysis of the operating system is embedded.

(付記7)メモリ配置管理テーブルが、メモリ領域を固定長サイズのセグメントに分割し、分割したセグメントにオブジェクトコードを割り当てて配置したときの当該オブジェクトコードが割り当てられたセグメントの先頭セグメント番号およびセグメント数を、当該オブジェクトコードが割り当てられていない空き領域となるセグメントの先頭セグメント番号およびセグメント数と共に管理し、管理テーブル更新部が、前記オブジェクトコードが更新される際、更新後のオブジェクトコードのオブジェクトサイズから変更後のオブジェクトコードに割り当てられるセグメントのセグメント数を計算し、変更後のセグメント数が変更前のセグメント数よりも大きいとき、変更後のオブジェクトコードを変更後のセグメント数以上の空き領域と (Supplementary Note 7) memory location management table, divides the memory area into segments of fixed length size, leading segment number and the number of segments of the segment in which the object code is assigned when arranged allocated the object code to the divided segments the manages with leading segment number and the number of segments of the segment serving as a free area not the object code is assigned, the management table updating unit, when the object code is updated, the object size of the object code after update calculate the number of segments the segments assigned to the object code after the change, when the number of the changed segment is greater than the number of segments before the change, and the segment number of free area after changing the object code of the modified るセグメントに移動し、変更後のセグメント数が変更前のセグメント数以下のとき、変更後のオブジェクトコードをその変更前のセグメント内に収めるように前記メモリ配置管理テーブルを更新し、設定ファイル生成部が、更新された前記メモリ配置管理テーブルから、前記オブジェクトコードのメモリ配置を設定するためのオブジェクトアドレスを含むメモリ配置設定ファイルを生成することを特徴とするメモリ配置管理方法。 Go to segments that, when the following number of segments before the change the number of segments after the change, and updates the memory location management table so as accommodate the object code after the change in the change previous segment, setting file generation unit but from the memory location management table updated, a memory location management method characterized by generating a memory arrangement configuration file that contains the object address to set the memory arrangement of the object code.

(付記8)前記管理テーブル更新部が、変更後のセグメント数が変更前のセグメント数より小さいとき、変更後のオブジェクトコードを、変更前のセグメントの内、先頭セグメントから変更後のセグメント数分のセグメントに収め、その残りのセグメントを空き領域とするように前記メモリ配置管理テーブルを更新することを特徴とする付記7に記載のメモリ配置管理方法。 (Supplementary Note 8) The management table updating unit, when the number of the changed segment is smaller than the number of segments before the change, the object code after the change of the pre-change segment, the number of segments after the change from the first segment fraction contained in the segment, the memory location management method according to appendix 7, wherein updating the memory location management table to the remaining segments and free space.

(付記9)前記メモリ配置管理テーブルが、前記オブジェクトコードが割り当てられたセグメントの場合、当該オブジェクトコードのオブジェクト名に対応付けて、前記先頭セグメント番号およびセグメント数を管理すると共に、前記空き領域となるセグメントの場合、前記オブジェクトコードのオブジェクト名をnullとし、当該nullに対応付けて、前記先頭セグメント番号およびセグメント数を管理することを特徴とする付記7又は8に記載のメモリ配置管理方法。 (Supplementary Note 9) The memory location management table, if a segment where the object code has been assigned, in association with the object name of the object code, as well as managing the leading segment number and segment number, serving as the free area for segment, the object name of the object code and null, in association with the null, an in-memory location management method according to appendix 7 or 8, characterized in that managing the leading segment number and the number of segments.

(付記10)前記セグメントの固定長サイズは、キャッシュメモリのキャッシュラインサイズに予め設定されることを特徴とする付記7から9のいずれかに記載のメモリ配置管理方法。 Fixed length size (Note 10) The segment memory location management method according to any one of annexes 7, characterized in that it is preset in the cache line size of the cache memory 9.

(付記11)前記オブジェクトコードは、オペレーティングシステムを構成するオブジェクトコードであることを特徴とする付記7から10のいずれかに記載のメモリ配置管理方法。 (Supplementary Note 11) The object code is a memory location management method according to any one of annexes 7, wherein 10 to be an object code constituting the operating system.

(付記12)前記オブジェクトコードは、前記オペレーティングシステムの障害解析のための情報採取処理を行うプローブが埋め込まれていることを特徴とする付記11に記載のメモリ配置管理方法。 (Supplementary Note 12) The object code is a memory location management method according to supplementary note 11, wherein the probe to perform the information collection process for fault analysis of the operating system is embedded.

(付記13)コンピュータを、メモリ領域を固定長サイズのセグメントに分割し、分割したセグメントにオブジェクトコードを割り当てて配置したときの当該オブジェクトコードが割り当てられたセグメントの先頭セグメント番号およびセグメント数を、当該オブジェクトコードが割り当てられていない空き領域となるセグメントの先頭セグメント番号およびセグメント数と共に管理するメモリ配置管理テーブルと、前記オブジェクトコードが更新される際、更新後のオブジェクトコードのオブジェクトサイズから変更後のオブジェクトコードに割り当てられるセグメントのセグメント数を計算し、変更後のセグメント数が変更前のセグメント数よりも大きいとき、変更後のオブジェクトコードを変更後のセグメント数以上の空き領域となる The (Supplementary Note 13) computers, dividing a memory area into segments of a fixed length size, the number of leading segment number and segment of the segment to which the object code is assigned when arranged allocated the object code to the divided segment, the a memory location management table which manages with the top segment number and the number of segments of the segment to be the free space object code is not assigned, when the object code is updated, the object after the change from the object size of the object code after update calculate the number of segments the segments assigned to the code, when the number of the changed segment is greater than the number of segments before the change, the number of segments of free area after changing the object code of the modified グメントに移動し、変更後のセグメント数が変更前のセグメント数以下のとき、変更後のオブジェクトコードをその変更前のセグメント内に収めるように前記メモリ配置管理テーブルを更新する管理テーブル更新部と、更新された前記メモリ配置管理テーブルから、前記オブジェクトコードのメモリ配置を設定するためのオブジェクトアドレスを含むメモリ配置設定ファイルを生成する設定ファイル生成部として機能させることを特徴とするメモリ配置管理プログラム。 Go to segment, when the number of the changed segment of the following number of segments before the change, a management table updating unit for updating the memory location management table so as accommodate the object code after the change in the change previous segment, from the memory location management table updated, a memory location management program for causing to function as a setting file generation unit which generates a memory layout configuration file that contains the object address to set the memory arrangement of the object code.

(付記14)前記管理テーブル更新部は、変更後のセグメント数が変更前のセグメント数より小さいとき、変更後のオブジェクトコードを、変更前のセグメントの内、先頭セグメントから変更後のセグメント数分のセグメントに収め、その残りのセグメントを空き領域とするように前記メモリ配置管理テーブルを更新することを特徴とする付記13に記載のメモリ配置管理プログラム。 (Supplementary Note 14) The management table updating unit, when the number of the changed segment is smaller than the number of segments before the change, the object code after the change of the pre-change segment, the number of segments after the change from the first segment fraction contained in the segment, the memory location management program according to note 13, wherein updating the memory location management table to the remaining segments and free space.

(付記15)前記メモリ配置管理テーブルは、前記オブジェクトコードが割り当てられたセグメントの場合、当該オブジェクトコードのオブジェクト名に対応付けて、前記先頭セグメント番号およびセグメント数を管理すると共に、前記空き領域となるセグメントの場合、前記オブジェクトコードのオブジェクト名をnullとし、当該nullに対応付けて、前記先頭セグメント番号およびセグメント数を管理することを特徴とする付記13又は14に記載のメモリ配置管理プログラム。 (Supplementary Note 15) The memory location management table, if a segment where the object code has been assigned, the association with the object name of the object code, manages the leading segment number and segment number, serving as the free area for segment, said the object name of the object code and null, the association to null, which memory location management program according to note 13 or 14, characterized in that managing the leading segment number and the number of segments.

(付記16)前記セグメントの固定長サイズは、キャッシュメモリのキャッシュラインサイズに予め設定されることを特徴とする付記13から15のいずれかに記載のメモリ配置管理プログラム。 Fixed length size (Note 16) The segment memory location management program according to any one of annexes 13, characterized in that it is preset in the cache line size of the cache memory 15.

(付記17)前記オブジェクトコードは、オペレーティングシステムを構成するオブジェクトコードであることを特徴とする付記13から16のいずれかに記載のメモリ配置管理プログラム。 (Supplementary Note 17) The object code, a memory location management program according to any one of annexes 13, characterized in that the object code constituting the operating system 16.

(付記18)前記オブジェクトコードは、前記オペレーティングシステムの障害解析のための情報採取処理を行うプローブが埋め込まれていることを特徴とする付記17に記載のメモリ配置管理プログラム。 (Supplementary Note 18) The object code, a memory location management program according to supplementary note 17, wherein the probe to perform the information collection process for fault analysis of the operating system is embedded.

(付記19)付記1から6のいずれかに記載のメモリ配置管理装置と、オブジェクトコードをリンクして実行ファイルを生成し、当該オブジェクトコードのリンク時に前記メモリ配置管理装置により生成されたメモリ配置設定ファイルを用いて前記オブジェクトコードのメモリ配置を設定するリンカとを有することを特徴とするプログラム作成システム。 (Supplementary Note 19) and the memory location management device according to any one of Appendixes 1 6, generating an executable by linking the object code, a memory arrangement settings generated by the memory location management device when linking the object code programming system; and a linker to set the memory arrangement of the object code with a file.

(付記20)ソースコードをコンパイルして前記オブジェクトコードを生成するコンパイラと、前記オブジェクトコードを逆アセンブルして当該オブジェクトコードのオブジェクト名およびオブジェクトサイズを含む逆アセンブルリストを生成する逆アセンブラとをさらに有することを特徴とする付記19に記載のプログラム作成システム。 Further comprising a compiler to generate the object code by compiling (Supplementary Note 20) source code, and disassemble the object code and disassembler for generating a disassembly list including object name and object size of the object code programming system of statement 19, wherein the.

以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。 Although the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiment. 本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。 Configuration and details of the present invention, it is possible to make various modifications that those skilled in the art can understand within the scope of the present invention.

以上説明したように、本発明は、OSのオブジェクトコードのメモリ配置を管理するメモリ配置管理装置、メモリ配置管理方法、メモリ配置管理プログラム、およびプログラム作成システムの用途に利用可能である。 As described above, the present invention is a memory layout management apparatus for managing the memory arrangement of the object code of OS, a memory location management methods are available memory location management program, and a program creation system applications.

1 ソースコード2 オブジェクトコード3 実行ファイル4 逆アセンブルリスト5 メモリ配置管理ツール6 メモリ配置設定ファイル10 コンパイラ20 リンカ40 逆アセンブラ41 オブジェクト名42 オブジェクトサイズ50 メモリ配置管理装置51 管理テーブル更新部52 設定ファイル生成部53 メモリ配置管理テーブル100 コンピュータ101 OS 1 Source Code 2 object code 3 executable 4 disassemble Listing 5 memory allocation managing tool 6 Memory arrangement setting file 10 compiler 20 linker 40 disassembler 41 an object name 42 Object Size 50 memory layout management apparatus 51 managing table update unit 52 setting file generation part 53 memory location management table 100 computer 101 OS
102 解析プログラム103 インタプリタ110 外部記憶媒体111 解析スクリプト112 ログファイル 102 analysis program 103 interpreter 110 external storage medium 111 analyzes the script 112 log file

Claims (10)

  1. メモリ領域を予め設定された固定長サイズのセグメントに分割し、分割したセグメントにオブジェクトコードを割り当てて配置したときの当該オブジェクトコードが割り当てられたセグメントの先頭セグメント番号およびセグメント数を、当該オブジェクトコードが割り当てられていない空き領域となるセグメントの先頭セグメント番号およびセグメント数と共に管理するメモリ配置管理テーブルと、 Divided into segments of preset fixed-length size memory area, the number of leading segment number and segment of the segment to which the object code is assigned when arranged allocated the object code to the divided segment, the object code a memory location management table which manages with the top segment number and the number of segments of the segments of the free space is not allocated,
    前記オブジェクトコードが更新される際、更新後のオブジェクトコードのオブジェクトサイズから変更後のオブジェクトコードに割り当てられるセグメントのセグメント数を計算し、変更後のセグメント数が変更前のセグメント数よりも大きいとき、変更後のオブジェクトコードを変更後のセグメント数以上の空き領域となるセグメントに移動し、変更後のセグメント数が変更前のセグメント数以下のとき、変更後のオブジェクトコードをその変更前のセグメント内に収めるように前記メモリ配置管理テーブルを更新する管理テーブル更新部と、 Wherein when the object code is updated, the number of segments the segments assigned to the object code after the change from the object size of the object code after update is calculated, when the number of the changed segment is greater than the number of segments before the change, Go to the segment of the segment number of free area after changing the object code after the change, when the following number before the change is the number of segments after the change segment within its pre changing the object code of the modified segment a management table updating unit for updating the memory location management table as fit,
    更新された前記メモリ配置管理テーブルから、前記オブジェクトコードのメモリ配置を設定するためのオブジェクトアドレスを含むメモリ配置設定ファイルを生成する設定ファイル生成部とを有することを特徴とするメモリ配置管理装置。 From the memory location management table updated, a memory location management device characterized by having a setting file generation unit which generates a memory layout configuration file that contains the object address to set the memory arrangement of the object code.
  2. 前記管理テーブル更新部は、変更後のセグメント数が変更前のセグメント数より小さいとき、変更後のオブジェクトコードを、変更前のセグメントの内、先頭セグメントから変更後のセグメント数分のセグメントに収め、その残りのセグメントを空き領域とするように前記メモリ配置管理テーブルを更新することを特徴とする請求項1に記載のメモリ配置管理装置。 The management table updating unit, when the number of the changed segment is smaller than the number of segments before the change, the object code after the change of the pre-change segments, contained in the segment of the segment number of the changed from the head segment, the remainder of the segment memory location management apparatus according to claim 1, characterized in that updating the memory location management table so as to free space a.
  3. 前記メモリ配置管理テーブルは、前記オブジェクトコードが割り当てられたセグメントの場合、当該オブジェクトコードのオブジェクト名に対応付けて、前記先頭セグメント番号およびセグメント数を管理すると共に、前記空き領域となるセグメントの場合、前記オブジェクトコードのオブジェクト名をnullとし、当該nullに対応付けて、前記先頭セグメント番号およびセグメント数を管理することを特徴とする請求項1又は2に記載のメモリ配置管理装置。 The memory location management table, if a segment where the object code has been assigned, in association with the object name of the object code, manages the number of the leading segment number and segment, if the segment to be the free space, wherein the object name of the object code and null, in association with the null, an in-memory location management apparatus according to claim 1 or 2, characterized in that managing the leading segment number and the number of segments.
  4. 前記セグメントの固定長サイズは、キャッシュメモリのキャッシュラインサイズに予め設定されることを特徴とする請求項1から3のいずれかに記載のメモリ配置管理装置。 Fixed length size of the segment, the memory location management apparatus according to any one of claims 1, characterized in that it is pre-set to the cache line size of the cache memory 3.
  5. 前記オブジェクトコードは、オペレーティングシステムを構成するオブジェクトコードであることを特徴とする請求項1から4のいずれかに記載のメモリ配置管理装置。 The object code is a memory location management apparatus according to any one of claims 1 to 4, characterized in that the object code constituting the operating system.
  6. 前記オブジェクトコードは、前記オペレーティングシステムの障害解析のための情報採取処理を行うプローブが埋め込まれていることを特徴とする請求項5に記載のメモリ配置管理装置。 The object code is a memory location management apparatus according to claim 5, characterized in that the probe performing information collection processing for the failure analysis of the operating system is embedded.
  7. メモリ配置管理テーブルが、メモリ領域を固定長サイズのセグメントに分割し、分割したセグメントにオブジェクトコードを割り当てて配置したときの当該オブジェクトコードが割り当てられたセグメントの先頭セグメント番号およびセグメント数を、当該オブジェクトコードが割り当てられていない空き領域となるセグメントの先頭セグメント番号およびセグメント数と共に管理し、 Memory location management table, divides the memory area into segments of a fixed length size, the number of leading segment number and segment of the segment to which the object code is assigned when arranged allocated the object code to the divided segment, the object managed with leading segment number and the number of segments of the segment code becomes a free area not assigned,
    管理テーブル更新部が、前記オブジェクトコードが更新される際、更新後のオブジェクトコードのオブジェクトサイズから変更後のオブジェクトコードに割り当てられるセグメントのセグメント数を計算し、変更後のセグメント数が変更前のセグメント数よりも大きいとき、変更後のオブジェクトコードを変更後のセグメント数以上の空き領域となるセグメントに移動し、変更後のセグメント数が変更前のセグメント数以下のとき、変更後のオブジェクトコードをその変更前のセグメント内に収めるように前記メモリ配置管理テーブルを更新し、 Management table updating unit, when the object code is updated, the number of segments the segments assigned to the object code after the change from the object size of the object code after update is calculated, before the change the number of segments after the change segment when greater than the number, go to the segment of the segment number of free area after changing the object code after the change, when the following number of segments before the change the number of segments after the change, the object code after the change that It updates the memory location management table as fall within the pre-change segment,
    設定ファイル生成部が、更新された前記メモリ配置管理テーブルから、前記オブジェクトコードのメモリ配置を設定するためのオブジェクトアドレスを含むメモリ配置設定ファイルを生成することを特徴とするメモリ配置管理方法。 Configuration file generation unit, from said memory location management table updated, a memory location management method characterized by generating a memory arrangement configuration file that contains the object address to set the memory arrangement of the object code.
  8. コンピュータを、 The computer,
    メモリ領域を固定長サイズのセグメントに分割し、分割したセグメントにオブジェクトコードを割り当てて配置したときの当該オブジェクトコードが割り当てられたセグメントの先頭セグメント番号およびセグメント数を、当該オブジェクトコードが割り当てられていない空き領域となるセグメントの先頭セグメント番号およびセグメント数と共に管理するメモリ配置管理テーブルと、 Dividing the memory area into segments of a fixed length size, the number of leading segment number and segment of the segment to which the object code is assigned when arranged allocated the object code to the divided segments, not the object code is assigned a memory location management table which manages with the top segment number and the number of segments of the segment to be a free area,
    前記オブジェクトコードが更新される際、更新後のオブジェクトコードのオブジェクトサイズから変更後のオブジェクトコードに割り当てられるセグメントのセグメント数を計算し、変更後のセグメント数が変更前のセグメント数よりも大きいとき、変更後のオブジェクトコードを変更後のセグメント数以上の空き領域となるセグメントに移動し、変更後のセグメント数が変更前のセグメント数以下のとき、変更後のオブジェクトコードをその変更前のセグメント内に収めるように前記メモリ配置管理テーブルを更新する管理テーブル更新部と、 Wherein when the object code is updated, the number of segments the segments assigned to the object code after the change from the object size of the object code after update is calculated, when the number of the changed segment is greater than the number of segments before the change, Go to the segment of the segment number of free area after changing the object code after the change, when the following number before the change is the number of segments after the change segment within its pre changing the object code of the modified segment a management table updating unit for updating the memory location management table as fit,
    更新された前記メモリ配置管理テーブルから、前記オブジェクトコードのメモリ配置を設定するためのオブジェクトアドレスを含むメモリ配置設定ファイルを生成する設定ファイル生成部として機能させることを特徴とするメモリ配置管理プログラム。 From the memory location management table updated, a memory location management program for causing to function as a setting file generation unit which generates a memory layout configuration file that contains the object address to set the memory arrangement of the object code.
  9. 請求項1から6のいずれかに記載のメモリ配置管理装置と、 A memory location management apparatus according to any one of claims 1 to 6,
    オブジェクトコードをリンクして実行ファイルを生成し、当該オブジェクトコードのリンク時に前記メモリ配置管理装置により生成されたメモリ配置設定ファイルを用いて前記オブジェクトコードのメモリ配置を設定するリンカとを有することを特徴とするプログラム作成システム。 Characterized in that it has a linker to link the object code to produce an executable file, it sets the memory arrangement of the object code using the memory arrangement configuration file generated by the memory location management device when linking the object code program to create systems that.
  10. ソースコードをコンパイルして前記オブジェクトコードを生成するコンパイラと、 A compiler that generates the object code by compiling the source code,
    前記オブジェクトコードを逆アセンブルして当該オブジェクトコードのオブジェクト名およびオブジェクトサイズを含む逆アセンブルリストを生成する逆アセンブラとをさらに有することを特徴とする請求項9に記載のプログラム作成システム。 Programming system according to claim 9, further comprising a disassembler to produce a disassembly list including object name and object size of the object code by disassembling the object code.
JP2011117975A 2011-05-26 2011-05-26 Memory location management device, a memory location management method, a memory location management program, and a program creating system Active JP5660386B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011117975A JP5660386B2 (en) 2011-05-26 2011-05-26 Memory location management device, a memory location management method, a memory location management program, and a program creating system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011117975A JP5660386B2 (en) 2011-05-26 2011-05-26 Memory location management device, a memory location management method, a memory location management program, and a program creating system

Publications (2)

Publication Number Publication Date
JP2012247908A true JP2012247908A (en) 2012-12-13
JP5660386B2 true JP5660386B2 (en) 2015-01-28

Family

ID=47468315

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011117975A Active JP5660386B2 (en) 2011-05-26 2011-05-26 Memory location management device, a memory location management method, a memory location management program, and a program creating system

Country Status (1)

Country Link
JP (1) JP5660386B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015210574A (en) * 2014-04-24 2015-11-24 富士通株式会社 Information processor, processing method and processing program
JP2016192154A (en) * 2015-03-31 2016-11-10 株式会社デンソー Juxtaposed compilation method, juxtaposed compiler, and on-vehicle device

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01283653A (en) * 1988-05-11 1989-11-15 Nec Corp Memory pool managing system
JPH03113652A (en) * 1989-09-28 1991-05-15 Nec Corp Dynamic control system for memory area
JP2000155673A (en) * 1998-11-18 2000-06-06 Nec Ic Microcomput Syst Ltd Link device and link method
JP2001344109A (en) * 2000-05-31 2001-12-14 Sony Corp Program generating method, program generating device, and memory medium
JP2003108397A (en) * 2001-09-27 2003-04-11 Nec Eng Ltd Firmware rewriting method
EP1569102B1 (en) * 2004-02-27 2010-04-28 Telefonaktiebolaget LM Ericsson (publ) Flash memory programming
JP2010266939A (en) * 2009-05-12 2010-11-25 Renesas Electronics Corp Reverse assembling system, reverse assembling program, and reverse assembling method
JP5471277B2 (en) * 2009-10-16 2014-04-16 株式会社リコー Image forming apparatus and program instructions

Also Published As

Publication number Publication date Type
JP2012247908A (en) 2012-12-13 application

Similar Documents

Publication Publication Date Title
US5909689A (en) Automatic update of file versions for files shared by several computers which record in respective file directories temporal information for indicating when the files have been created
US6202205B1 (en) System and method for profile-based, on-the-fly optimization of library code
US20060288055A1 (en) Methods, systems, and computer program products for provisioning software via a networked file repository in which a parent branch has a shadow associated therewith
US20070226683A1 (en) Method of efficiently performing precise profiling in a multi-threaded dynamic compilation environment
US20060282480A1 (en) Methods, systems, and computer program products for provisioning software using dynamic tags to identify and process files
US5553286A (en) System and method for preparing a computer program for execution
US20100077387A1 (en) Managing updates using compiler and linker information
Barton et al. Shared memory programming for large scale machines
CN101799763A (en) Method, device and system for patching kernel on line
CN101937340A (en) Method and device for dynamically updating and controlling software by using patches
US20030005408A1 (en) System and method for creating software modifiable without halting its execution
US8856724B2 (en) Systems and methods for incremental software development
US7290252B2 (en) Method and apparatus for building executable computer programs using compiled program libraries
US20080320465A1 (en) Methods and systems for porting software packages from one format to another
CN102722387A (en) Dynamic patching method and device
US20060242491A1 (en) Method and system for applying patches to a computer program concurrently with its execution
Henschel et al. Trinity RNA-Seq assembler performance optimization
US20140237463A1 (en) Dynamically generate and execute a context-specific patch installation procedure on a computing system
JP2005122481A (en) Compiler system and linker system
US7823141B1 (en) Using a concurrent partial inspector loop with speculative parallelism
CN103309683A (en) Software patch embedding method and device for hardware equipment
CN103399775A (en) Hot patching method and hot patching equipment
US8069433B2 (en) Multi-format centralized distribution of localized resources for multiple products
JP2009276859A (en) Server computer, computer system and file management method
CN101308505A (en) Dynamic data access in a computer system via remote services

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140408

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141031

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141119

R150 Certificate of patent (=grant) or registration of utility model

Ref document number: 5660386

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150