JPS62251851A - Overlay control system for electronic computer system - Google Patents
Overlay control system for electronic computer systemInfo
- Publication number
- JPS62251851A JPS62251851A JP61094366A JP9436686A JPS62251851A JP S62251851 A JPS62251851 A JP S62251851A JP 61094366 A JP61094366 A JP 61094366A JP 9436686 A JP9436686 A JP 9436686A JP S62251851 A JPS62251851 A JP S62251851A
- Authority
- JP
- Japan
- Prior art keywords
- resident
- data
- text
- parts
- program
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 claims abstract description 47
- 238000000034 method Methods 0.000 claims abstract description 34
- 230000006870 function Effects 0.000 abstract description 4
- 238000004886 process control Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Landscapes
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【発明の詳細な説明】
く技術分野〉
本発明は、実装メモリ容量の少ないシステムにおいてオ
ペレーティングシステムtlNIX上で大規模プログラ
ムを実行させるためのオーバレイ制御方式に関する。DETAILED DESCRIPTION OF THE INVENTION Technical Field The present invention relates to an overlay control method for executing a large-scale program on an operating system tlNIX in a system with a small installed memory capacity.
〈従来の技術〉
従来のUNIXシステムでは、ユーザプロセス空間を管
理するため、各プロセスをテキスト部と呼ばれるプログ
ラム命令部分とデータ部と呼ばれるプログラムデータ部
分に分割し、テキスト部とデータ部のそれぞれについて
連続した物理メモリ領域を割り当てている。テキスト部
とデータ部は、1つのユーザプロセスにそれぞれ1つし
か存在できない。そのため、大規模なプログラムを実行
させるためには、プログラムをロードできるだけのメモ
リを実装するか、仮想記憶管理の手法を用いて対処して
いた。<Conventional technology> In conventional UNIX systems, in order to manage the user process space, each process is divided into a program instruction part called a text part and a program data part called a data part. Allocating physical memory area. Only one text section and one data section can exist in one user process. Therefore, in order to run large-scale programs, it has been necessary to implement memory sufficient to load the program, or to use virtual memory management techniques.
しかしながら、小型コンピュータにとっては、大容量の
メモリ実装はコスト高になり、仮想記憶管理を用いると
システムが複雑化する。However, for small computers, implementing large amounts of memory is expensive and using virtual memory management complicates the system.
〈発明の目的〉
本発明は上記事情に鑑みてなされたものであり、υNI
X上でオーバレイ機能を実現した電子計算機システムの
オーバレイ制御方式の堤供を目的とする。<Object of the invention> The present invention has been made in view of the above circumstances, and
The purpose of this paper is to provide an overlay control method for a computer system that implements an overlay function on X.
〈発明の要旨ン
本発明に係る電子計算機システムのオーバレイ制御方式
は、ユーザプロセスのテキスト部とデータ部を分割し、
分割したテキスト部とデータ部の1つを常駐部としてプ
ログラム実行時に主記憶上に配置し、残りのテキスト部
とデータ部を非常駐部としてプログラム実行時に主記憶
上へ動的にロードする。<Summary of the Invention> The overlay control method for a computer system according to the present invention divides a text part and a data part of a user process,
One of the divided text parts and data parts is placed as a resident part on the main memory when the program is executed, and the remaining text part and data part are made non-resident parts and dynamically loaded onto the main memory when the program is executed.
〈実施例〉
第1図は本発明を通用したユーザプロセスのメモリマツ
プの一実施例を示す。<Embodiment> FIG. 1 shows an embodiment of a memory map of a user process to which the present invention is applied.
ユーザプロセスのテキスト部とデータ部を分割し、分割
されたテキスト部の1つを常駐テキスト部1とし、分割
されたデータ部の1つを常駐データ部2とする。この常
駐テキスト部1と常駐データ部2は、プログラム実行時
に主メモリ上に配置する。ユーザプロセスの残りの部分
のうち、テキスト部とこのテキスト部により主として参
照されるデータ部をまとめて非常駐部3,4.5とし、
プログラム実行時に必要に応じてこれらの非常駐部3.
4.5を選択し主メモリ上にロードする。A user process is divided into a text part and a data part, one of the divided text parts is designated as a resident text part 1, and one of the divided data parts is designated as a resident data part 2. The resident text section 1 and resident data section 2 are placed on the main memory when the program is executed. Among the remaining parts of the user process, the text part and the data part mainly referenced by this text part are collectively referred to as non-resident parts 3, 4.5,
These non-resident areas 3.
4. Select 5 and load it onto main memory.
主メモリのアドレスaから常駐テキスト部1がロードさ
れ、アドレスbから非常駐部3. 4. 5がそれぞれ
動的にロードされ、常駐データ部2がアドレスCまでに
ロードされる。アドレスC以降は、データ部の拡張領域
となる。このように、tlNIX上でのユーザ空間へ自
由に物理アドレスを割り当てる方式により、常駐テキス
ト部1と非常駐部3゜4.5は従来のUNIXのテキス
ト部、常駐データ部2は従来のUNIXのデータ部とし
て扱われる。Resident text part 1 is loaded from address a in main memory, non-resident text part 3 is loaded from address b. 4. 5 are dynamically loaded, and the resident data section 2 is loaded up to address C. The area after address C becomes an extended area of the data section. In this way, by freely assigning physical addresses to the user space on tlNIX, the resident text section 1 and non-resident section 3°4.5 are the conventional UNIX text section, and the resident data section 2 is the conventional UNIX data section. treated as a department.
本方式の実行の手順を説明する。The procedure for executing this method will be explained.
アドレス参照の解決(リンク)を行ない、実行時にはU
NIX上でのユーザ空間へ自由に物理アドレスを割り当
てる方式を利用して制御を移す。Performs address reference resolution (linking), and at runtime U
Control is transferred using a method of freely assigning physical addresses to user space on NIX.
i)リンク手順
リンク手順は、UNIXのリンクコマンド、ファイル形
式をそのまま利用して行なうことができ、実現が容易で
ある。i) Link procedure The link procedure can be performed using UNIX link commands and file formats as they are, and is easy to implement.
■ UNIXのリンクエディタを用いて常駐部をリンク
し、常駐テキスト部1のサイズを測る。これは、非常駐
部のロードアドレスbを決定する際に必要となる。■ Link the resident section using the UNIX link editor and measure the size of the resident text section 1. This is necessary when determining the load address b of the non-resident area.
■ tlNIXのオブジェクトファイルには、シンボル
テーブルが付けられており、外部参照などアドレス参照
の解決に必要なシンボルのアドレスが保存されている。■ A symbol table is attached to the tlNIX object file, and addresses of symbols necessary for resolving address references such as external references are stored.
これらの情報を利用し、■で求めたアドレスbを基に常
駐テキスト部1と常駐データ部2で未定義であるが非常
駐部3,4.5で定義されているシンボルのアドレスを
求め、シンボルをアドレスで定義する形(アセンブラの
EQUやset等の命令による)のプログラムを作り、
オブジェクトモジュールを作成する。Using this information, find the address of the symbol that is undefined in the resident text part 1 and resident data part 2 but defined in the non-resident parts 3 and 4.5 based on the address b found in Create a program that defines by address (using assembler instructions such as EQU and set),
Create an object module.
■ ■で作ったオブジェクトモジュールと常駐テキスト
部1及び常駐データ部2とをロードアドレスをaとして
リンクする。これにより、常駐テキスト部1と常駐デー
タ部2で未定義であったシンボルのアドレス参照が■で
作ったオブジェクトモジュールにより解決される。これ
により、常駐テキスト部1と常駐データ部2とがリンク
される。(2) Link the object module created in (2) with the resident text section 1 and resident data section 2 using the load address a. As a result, address references to symbols that were undefined in resident text section 1 and resident data section 2 are resolved by the object module created in step 3. As a result, the resident text section 1 and the resident data section 2 are linked.
■ 非常駐部3,4.5で未定義のシンボルを捜し、■
で作った常駐部1.2のシンボルテーブル(非常駐部3
,4.5で定義されているシンボルを含む。従って、非
常駐部間のシンボル参照も可能である)よりアドレス値
を求め、■と同様の方法でオブジェクトモジュールを作
成する。■ Search for undefined symbols in non-resident area 3, 4.5, and
Symbol table of resident part 1.2 (non-resident part 3
, 4.5. Therefore, symbol references between non-resident parts are also possible), and the address value is obtained from the address value, and an object module is created using the same method as in (2).
■ ■で作成したオブジェクトモジュールと非常駐部3
.4.5とを■で求めたアドレスbをロードアドレスと
してリンクする。非常駐部3.4゜5のそれぞれについ
て、■■の手順を行なう。これにより、非常駐部3,4
.5が作成される。■ Object module created in ■ and non-resident part 3
.. 4.5 is linked with the address b obtained in ■ as the load address. For each of the non-resident parts 3.4°5, carry out the procedure of ■■. As a result, non-resident parts 3 and 4
.. 5 is created.
ii )実行手順
ユーザプロセスの実行時に非常駐部が必要になると、シ
ステムに対して非常駐部のロードのためのシステムコー
ルを発行する。システムは、ユーザ空間に対して自由に
物理アドレスを割り当てることができる方式を採用して
いるため、必要なプログラムを主メモリ上にロードし、
その後、ロードしたプログラムに対して制御を移したり
参照したりすることが可能となる。ii) Execution procedure When a non-resident part is required during execution of a user process, a system call is issued to the system to load the non-resident part. The system uses a method that allows physical addresses to be freely assigned to user space, so the necessary programs can be loaded into main memory,
After that, it becomes possible to transfer control to or reference the loaded program.
第2図はシステムの構成を示す。Figure 2 shows the configuration of the system.
主メモリユニット10は、CPU (図示せず)によっ
てアクセスされる半導体メモリで構成され、テキスト及
びデータをページ単位(512バイl、)に物理アドレ
スで割り付けて記憶する。図ではこのページ単位により
物理メモリp O,p 1、−。The main memory unit 10 is composed of a semiconductor memory accessed by a CPU (not shown), and stores text and data in page units (512 bytes) allocated by physical addresses. In the figure, this page unit corresponds to the physical memory p O, p 1, -.
pnに区分けされている。ファイルユニット11は、磁
気ディスク装置等の外部記憶装置で構成され、複数のプ
ロセスデータ(プログラムデータ)を格納するプログラ
ム格納領域工2と生メモリュニッ]−10からページを
スワツプアウトする仮想記憶領域13とを有する。It is divided into pn. The file unit 11 is composed of an external storage device such as a magnetic disk device, and has a program storage area 2 that stores a plurality of process data (program data) and a virtual storage area 13 that swaps out pages from the raw memory memory 10. have
OSユニット14は、オペレーティングシステムUNI
Xを格納し、UNIXはリンクエディタ15を含む。The OS unit 14 is an operating system UNI
X, and UNIX includes a link editor 15.
メモリ制御ユニット16は、O8によって管理制御され
、主メモリユニット10とファイルユニy l・l 1
をアクセスする。このメモリ制御ユニット16は、並行
処理されるプロセスに対する複数のプロセスコントロー
ルブロック17.主メモリュニソ)10の各物理メモリ
の使用状態を記憶するビットマツプメモリ18、並びに
、ファイルユニット11の管理テーブル(図示せず)等
で構成されている。The memory control unit 16 is managed and controlled by O8, and has a main memory unit 10 and a file unit y l・l 1
access. This memory control unit 16 includes a plurality of process control blocks 17 . It is composed of a bitmap memory 18 that stores the usage status of each physical memory in the main memory (main memory) 10, a management table (not shown) for the file unit 11, and the like.
プロセスコントロールブロック17は、プロセスのコン
トロールデータ、スター]・アドレス、サイズデータ等
を格納するコントロール情報部19と、主メモリユニッ
ト10の各ページとファイルユニット11の仮想記憶領
域13との対応表を格納する管理テーブル20から構成
される。この管理テーブル20は、主メモリユニット1
0のページ数に相当するテーブル数を有し、各テーブル
には主メモリユニット10の物理アドレスと仮想記憶領
域13のディスクアドレスとが格納される。The process control block 17 stores a control information section 19 that stores process control data, star addresses, size data, etc., and a correspondence table between each page of the main memory unit 10 and the virtual storage area 13 of the file unit 11. It consists of a management table 20. This management table 20 is stored in the main memory unit 1
The number of tables corresponds to the number of pages of 0, and each table stores the physical address of the main memory unit 10 and the disk address of the virtual storage area 13.
ビットマツプメモリ18は、主メモリユニット10の各
ページの使用状態を記憶する。プロセスの実行処理にお
いてプログラム(常駐部又は非常駐部)のロードが発生
すると、このビットマツプメモリ18を参照して主メモ
リユニット10の空きページを検出し、必要サイズ分の
空きメモリをプログラム空間にマンプし、ファイルユニ
ット11から対応したプログラムのデータをロードする
。Bitmap memory 18 stores the usage status of each page of main memory unit 10. When a program (resident part or non-resident part) is loaded during process execution, this bitmap memory 18 is referenced to detect free pages in the main memory unit 10, and the free memory of the required size is mapped into the program space. Then, data of the corresponding program is loaded from the file unit 11.
空きページが無いときは、プロセスコントロールプロ・
ツク17中のコントロール情報19を参照し、最も優先
度の低いプロセスを仮想記憶領域13ヘスワツプアウト
し、空きページを生成する。If there are no free pages, use Process Control Pro.
Referring to the control information 19 in the block 17, the process with the lowest priority is swapped out to the virtual storage area 13 to generate a free page.
ユーザプロセスの常駐部と非常駐部の主メモリユニット
10への割り付けについて説明する。The allocation of the resident part and non-resident part of a user process to the main memory unit 10 will be explained.
OSユニット14のリンクエディタ15によって、前述
のように、主メモリユニット10の任意の物理メモリを
常駐テキスト部1と常駐データ部2のプログラム空間に
割り付け、ファイルユニット11のプログラム格納領域
12から當駐部1゜2のオブジェクトモジュールをロー
ドする。さらに、この常駐部1と連続したプログラム空
間にも物理メモリを割り付け、非常駐部3をロードする
。As described above, the link editor 15 of the OS unit 14 allocates any physical memory of the main memory unit 10 to the program space of the resident text section 1 and the resident data section 2, and extracts the resident data from the program storage area 12 of the file unit 11. Load the object module of section 1.2. Further, physical memory is also allocated to a program space continuous with this resident section 1, and the non-resident section 3 is loaded.
この場合、常駐部1,2と非常駐部3の割り付けは、主
メモリユニット10のページ単位で制御される。In this case, the allocation of the resident sections 1 and 2 and the non-resident section 3 is controlled on a page-by-page basis of the main memory unit 10.
常駐テキスト部1の処理を実行し、他の非常駐部をアク
セスすることが要求されると、主メモリ上の非常駐部3
に割り付けた物理メモリを全て解放し、プログラム格納
領域12から対応した非常駐部4または非常駐部5をロ
ードする。When executing the process of resident text part 1 and accessing another non-resident part, the non-resident part 3 in the main memory is
All the physical memory allocated to the program is released, and the corresponding non-resident part 4 or non-resident part 5 is loaded from the program storage area 12.
〈発明の効果〉
以上説明したように本発明においては、ユーザプロセス
のテキスト部とデータ部を分割して常駐部と非常駐部を
形成し、プロセスの実行時に非常駐部を動的に主記憶上
ヘロードするオーバレイ機能をUNIX上で実現したの
で、小型コンピュータのように少ない実装メモリのシス
テムにおいても大規模なプログラムをUNIX上で容易
に実行させることができる。<Effects of the Invention> As explained above, in the present invention, the text part and data part of a user process are divided to form a resident part and a non-resident part, and the non-resident part is dynamically loaded into main memory when the process is executed. Since the overlay function has been realized on UNIX, large-scale programs can be easily executed on UNIX even in a system with a small amount of installed memory, such as a small computer.
第1図は本発明の実施例のメモリマツプを示す図、第2
図は本発明の実施例のシステム構成を示す図である。
1−・・・常駐テキスト部
2−・・−常駐データ部
3.4.5−・−非常駐部
1〇−主メモリユニット
11−・ファイルユニット
14・−〇Sユニット
16−メモリ制御ユニット
特許出願人 シャープ株式会社
代 理 人 弁理士 西1)新
築1図
アドレスFIG. 1 is a diagram showing a memory map of an embodiment of the present invention, and FIG.
The figure is a diagram showing a system configuration of an embodiment of the present invention. 1--Resident text section 2--Resident data section 3.4.5--Non-resident section 1〇-Main memory unit 11-・File unit 14・-〇S unit 16-Memory control unit Patent application Person Sharp Co., Ltd. Representative Person Patent attorney Nishi 1) New building 1 drawing address
Claims (1)
されたテキスト部の1つを常駐テキスト部とし分割され
たデータ部の1つを常駐データ部としてプログラム実行
時に主記憶上に配置し、上記以外の分割されたテキスト
部とこのテキスト部により主として参照される上記以外
の分割されたデータ部を非常駐部とし、プログラム実行
時に上記非常駐部を動的に主記憶上にロードすることを
特徴とする電子計算機システムのオーバレイ制御方式。Divide the text part and data part of the user process, and place one of the divided text parts as a resident text part and one of the divided data parts as a resident data part in the main memory when the program is executed, and do not use other than the above. An electronic device characterized in that a divided text part and a divided data part other than the above mainly referred to by this text part are made non-resident parts, and the non-resident part is dynamically loaded onto main memory when a program is executed. Overlay control method for computer systems.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61094366A JPS62251851A (en) | 1986-04-23 | 1986-04-23 | Overlay control system for electronic computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61094366A JPS62251851A (en) | 1986-04-23 | 1986-04-23 | Overlay control system for electronic computer system |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS62251851A true JPS62251851A (en) | 1987-11-02 |
Family
ID=14108312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61094366A Pending JPS62251851A (en) | 1986-04-23 | 1986-04-23 | Overlay control system for electronic computer system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS62251851A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01169633A (en) * | 1987-12-25 | 1989-07-04 | Hitachi Ltd | Information processor |
EP0403124A2 (en) * | 1989-06-16 | 1990-12-19 | International Business Machines Corporation | Overlay swapping |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58221442A (en) * | 1982-06-16 | 1983-12-23 | Yokogawa Hokushin Electric Corp | Processing method of data |
JPS60101641A (en) * | 1983-11-07 | 1985-06-05 | Usac Electronics Ind Co Ltd | Control system of overlay module |
JPS62143150A (en) * | 1985-12-17 | 1987-06-26 | Nec Corp | Program execution control system |
-
1986
- 1986-04-23 JP JP61094366A patent/JPS62251851A/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58221442A (en) * | 1982-06-16 | 1983-12-23 | Yokogawa Hokushin Electric Corp | Processing method of data |
JPS60101641A (en) * | 1983-11-07 | 1985-06-05 | Usac Electronics Ind Co Ltd | Control system of overlay module |
JPS62143150A (en) * | 1985-12-17 | 1987-06-26 | Nec Corp | Program execution control system |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01169633A (en) * | 1987-12-25 | 1989-07-04 | Hitachi Ltd | Information processor |
EP0403124A2 (en) * | 1989-06-16 | 1990-12-19 | International Business Machines Corporation | Overlay swapping |
US5175830A (en) * | 1989-06-16 | 1992-12-29 | International Business Machines Corporation | Method for executing overlays in an expanded memory data processing system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5539899A (en) | System and method for handling a segmented program in a memory for a multitasking data processing system utilizing paged virtual storage | |
US5978892A (en) | Virtual memory allocation in a virtual address space having an inaccessible gap | |
US6061773A (en) | Virtual memory system with page table space separating a private space and a shared space in a virtual memory | |
US5802341A (en) | Method for the dynamic allocation of page sizes in virtual memory | |
Fabry | Capability-based addressing | |
EP0238158B1 (en) | Copy-on-write segment sharing in a virtual memory, virtual machine data processing system | |
US6055617A (en) | Virtual address window for accessing physical memory in a computer system | |
CA1266533A (en) | Method to automatically increase the segment size of file in a page segmented virtual memory data processing system | |
US6480845B1 (en) | Method and data processing system for emulating virtual memory working spaces | |
JP2893071B2 (en) | Thread private memory for multi-threaded digital data processor | |
US5873127A (en) | Universal PTE backlinks for page table accesses | |
US5675793A (en) | Dynamic allocation of a common buffer for use by a set of software routines | |
US5835961A (en) | System for non-current page table structure access | |
US6842759B2 (en) | Single-instance class objects across multiple JVM processes in a real-time system | |
US5146580A (en) | Method and system for using expanded memory for operating system buffers and application buffers | |
EP0169018A2 (en) | Computer memory system | |
KR100470258B1 (en) | Large memory allocation method and apparatus | |
US5873120A (en) | Variable split virtual address space allocation with multi-system compatibility | |
EP0403124A2 (en) | Overlay swapping | |
US6600493B1 (en) | Allocating memory based on memory device organization | |
US7240176B2 (en) | Apparatus and methods for placing a managed heap | |
US6532487B1 (en) | Method and system for managing semaphores in an object-oriented multi-tasking computer system | |
CN109643276B (en) | System and method for creating database subset snapshot | |
US6463515B1 (en) | System and method for recovering physical memory locations in a computer system | |
JPS62251851A (en) | Overlay control system for electronic computer system |