JPH02146627A - コンピュータ - Google Patents

コンピュータ

Info

Publication number
JPH02146627A
JPH02146627A JP30164688A JP30164688A JPH02146627A JP H02146627 A JPH02146627 A JP H02146627A JP 30164688 A JP30164688 A JP 30164688A JP 30164688 A JP30164688 A JP 30164688A JP H02146627 A JPH02146627 A JP H02146627A
Authority
JP
Japan
Prior art keywords
subroutine
shared
library
subroutine library
subroutines
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
Application number
JP30164688A
Other languages
English (en)
Inventor
Tadashi Hiroshima
規 廣嶋
Seiji Masui
増井 勢史
Yuji Aso
祐史 麻生
Toshiyuki Nakahara
中原 利之
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP30164688A priority Critical patent/JPH02146627A/ja
Publication of JPH02146627A publication Critical patent/JPH02146627A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明はコンピュータに関し、特に、インテル社の80
86マイクロプロセツサに代表されるセグメント オフ
セット分離アドレス方式のCPUを用いたコンピュータ
に関する。
(従来の技術) コンピュータに於ては、入出カサブルーチン、数学関数
サブルーチン等の、多数のアプリケーションプログラム
によって共通に利用されるサブルーチンが存在する。こ
のようなサブルーチンは、主として言語処理システム側
で用意されるサブルーチンライブラリに含まれているこ
とが多い。サブルーチンライブラリ内のサブルーチンは
通常、実行前にユーザプログラムに静的にリンクされる
(発明が解決しようとする課題) 実行前にサブルーチンをユーザプログラムに静的にリン
クする従来のコンピュータでは、多数の実行可能プログ
ラムに同一のサブルーチンのコードか含まれている。従
って、マルチプロセス実行環境の下でこれらのプログラ
ムを実行する場合には、同一のサブルーチンのコードが
主記憶の各所を占有することになり、主記憶の利用効率
か非常に悪化するという問題か生じていた。
本発明はこのような現状に鑑みてなされたちのてあり、
その目的とするところは、マルチプロセスよって共通に
使用されるサブルーチンの占有する主記憶領域が小さく
て済み、主記憶の利用効率が改善されたコンピュータを
提供することにある。
(課題を解決するための手段) 本発明のコンピュータは、セグメント・オフセット分離
アドレス方式のCPUを用いたコンピュータであって、
少なくとも1個のサブルーチンの命令列と、該サブルー
チンの命令列によってアクセスされるデータの内で該サ
ブルーチンの命令列によって変更を受けないデータとを
含む共用サブルーチンライフラリを備え、該サブルーチ
ンの命令列によってアクセスされるデータの内で該サブ
ルーチンの命令列によって変更を受けるデータが該サブ
ルーチンを呼ひ出すニーサブログラムに含まれており、
そのことにより上記目的が達成される。
(実施例〉 本発明を実施例について以下に説明する。
第1図に本発明の一実施例の要部のブロック図を示す。
本実施例のコンピュータは、通常のパーソナルコンピュ
ータの標準的なハードウェア構成を有している。即ち第
1図に示すように、バス1にCPU2、主記憶3、外部
記憶4、CRT5及びキーボード6か接続されている。
CPU2としては、8086系のものか使用されている
。外部記憶4には、オペレーティングシステム、ニーサ
ブログラム、共用サブルーチンライブラリ等が格納され
ている。共用サブルーチンライブラリには、入出カサブ
ルーチン、数学関数サブルーチン等の、複数のユーザプ
ログラムによって共通に利用されるサブルーチンが含ま
れている。
以下では、オペレーティングシステム及び言語処理シス
テムとしてコンカレントCP/M及びC言語がそれぞれ
使用されることを前提として説明を行う。また、メモリ
マツプとしてはスモールメモリモテルを前提としている
第1図のコンピュータの起動時には、先ず、オペレーテ
ィングシステムが外部記憶4から主記憶3にロードされ
る。その後は、コンピュータはオペレーティングシステ
ムの管理下に入る。共用サブルーチンライブラリは、オ
ペレーティングシステムに含まれるローダによって適切
な時期に主記憶3にロートされる。
以下では、共用サブルーチンライブラリのロード、共用
サブルーチンライブラリの構成、及びユーザプロセスに
よる共用サブルーチンライブラリ内のサブルーチンの使
用について説明する。
(1)共用サブルーチンライブラリのロード(a)共用
サブルーチンライブラリのための主記憶領域の確保 共用サブルーチンライブラリをロードするための領域を
主記憶3上に確保するために、先ず、擬似的なユーザプ
ロセスか起動され、このプロセスに第2図のメモリマツ
プに示す記憶領域21が割り当てられる。記憶領域21
は、第3図に示すように、テキストコート領域211と
データコード212領域とから構成される。データコー
ド領域212のサイズは共用サブルーチンライブラリの
サイズ以上に設定されている。
起動されたプロセスは、第3図に示すようにキュー(コ
ンカレントCP/Mに於ける事象待ち用プロセス間通信
領域)31を読み続けるプロセスである。しかし、キュ
ー31にデータを書き込むプロセスはシステム中に存在
しない。従って、このプロセスはシステムの稼働中はシ
ステム内に留まり続け、記憶領域21は他の用途には使
用されない。
(b)共用サブルーチンライブラリのロード上記(a>
で起動されたプロセスは、ユーザプロセスとしてオペレ
ーティングシステムに認められたものであるから、各プ
ロセスに関する情報を保持している領域(コンカレント
CP/Mでは「プロセススレッドゴと称される)を調べ
ることによってデータコード領域212のアドレス(セ
グメントベースアドレス+オフセット)が得られる。
ローダは外部記憶4から共用サブルーチンライブラリを
読み出し、上述したようにして得られたアドレスを用い
てデータコード領域212に共用サブルーチンライブラ
リを上書きする(第4図)。
このときりロケーションも行われる。
(C)セグメント番号の受渡し 共用サブルーチンライブラリのロードの終了後に、ロー
タは共用サブルーチンライブラリをロートしたメモリ領
域212のセグメント番号をキュー32に書き込んでお
く(第5図)。共用サブルーチンライブラリを利用する
ユーザプロセスは実。
行時にキュー32の内容を読み出すことにより、共用サ
ブルーチンライブラリへのアクセスを得ることかできる
う (2)共用サブルーチンライブラリの構成第6図に模式
的に示すように、共用サブルーチンライブラリ60はエ
ントリ部61と処理部62とを含んでいる。処理部62
には、各サブルーチンのコートか含まれている。エント
リ部61は、ユーザプログラムによって共用サブルーチ
ンライブラリ60内のサブルーチンか呼ひ出されたとき
に先ず制御か移される部分であって、処理部62内の各
サブルーチンへ制御を移すためのジャンプテーブルを有
している。呼ひ出されたサブルーチンからユーザプログ
ラムへ制御が戻るときにも、エントリ部61が経由され
る。
共用サブルーチンライブラリ60は全てリエントラント
に作成されている。即ち、処理部62内のサブルーチン
によってアクセスされるデータの内、変更を受けない定
数のみが共用サブルーチンライブ。ラリ60のコードセ
グメントに置かれる。
アクセスされるデータの内の変数は、共用サブルーチン
ライブラリ60を利用するユーザプロセスのスタックセ
グメント又はデータセグメントに置かれる。
(3)ユーザプロセスによる共用サブルーチンライブラ
リ内のサブルーチンの使用 第7図に模式的に示すように、共用サブルーチンライブ
ラリ60内のサブルーチンを呼び出すユーザプログラム
70は、サブルーチン呼び出しルーチン71及びサブル
ーチン呼ひ出し用のエントリルーチン72を含んでいる
ユーザプロセスによる共用サブルーチンライブラリ内の
サブルーチンの使用は以下の(a)〜(e)の手順で行
われる。
(a)ユーザプロセスは実行開始後に、キュー32(第
5図)の内容を読み出し、共用サブルーチンライブラリ
60のロードアドレスを得る。上記読み出しの後で、他
のプロセスが同じ値を読み出せるように、読み出しな値
をキュー32に書き込んでおく。
(b)サブルーチン呼び出し命令711が実行されると
、制御は先ずエントリルーチン72に移される。
(c)エントリルーチン72では、上記(a)で得られ
た情報に基づいて共用サブルーチンライブラリ60のエ
ントリアドレスが計算され、呼び出シ命令711の次の
命令712のアドレスが戻り番地として退避され、スタ
ックか調整された後に、セグメント間コールによって共
用サブルーチンライブラリ60に制御が移される。呼び
出すべきサブルーチン621を識別する情報は、エント
リルーチン72に於て記録されている。
共用サブルーチンライブラリ60に制御が移される際に
変更されるのはコードセグメントだけであり、データセ
グメントやスタックセグメントは変更されないので、ユ
ーザプロセスの退避領域やスタックは共用サブルーチン
ライブラリ6oからも常にアクセス可能である。
(d)共用サブルーチンライブラリ6oのエントリ部6
1では、前述のジャンプテーブル及び識別情報を用いて
処理部62内の目的のサブルーチン621への分岐が実
行される。サブルーチン621での処理が終了すると、
制御はエントリ部61に戻り、その後、エントリ部61
がらエントリルーチン72ヘセグメント間リターンによ
って戻る。
(e)エントリルーチン72では、スタックの調整等が
行われ、退避されていた戻り番地を用いて呼び出し元へ
制御が戻される。
以上で説明した実施例では、ユーザプログラムからのサ
ブルーチンの呼び出しはシンボリックな形で行われるた
め、共用サブルーチンライブラリに変更か加えられる場
合(例えば新たなサブルーチンが追加される場合)に於
ても、共用サブルーチンライフラリを作成し直すたけで
済むことが多い。共用サブルーチンライブラリを第2図
のシステム領域(ハンドラ領域等)22に取ることもで
きる。その場合には共用サブルーチンライブラリ内の各
サブルーチンのエントリアドレスは固定されているので
、上記実施例に於ける様な複雑な呼び出し方式は必ずし
も必要でなくなる。しかし、共用サブルーチンライブラ
リを変更する度にオペレーティングシステムを作り直す
必要がある。
共用サブルーチンライブラリ全体のサイズが1セグメン
トを越える場合には、複数個の1セグメント以内の大き
さの共用サブルーチンライブラリを作成する。ある共用
サブルーチンライブラリ内のサブルーチンによる他の共
用サブルーチンライブラリ内のサブルーチンの使用は、
第7図に示したユーザプロセスによるサブルーチンの使
用とほぼ同様に行われる。即ち、各共用サブルーチンラ
イフラリには、他の共用サブルーチンライブラリへアク
セスするために、他の共用サブルーチンライブラリに一
対一に対応するエントリルーチンか設けられる。但し、
複数の共用サブルーチンライブラリは全て一時にロード
され、共用サブルーチンライブラリ内の各サブルーチン
のエントリアドレスはロード時に定まるのて、各共用サ
ブルーチンライブラリに他の共用サブルーチンライブラ
リからの、呼び出しを処理するためのエントリ部は設け
られず、エントリルーチンからサブルーチンへの直接の
呼び出しがなされる。第8図に3個の共用サブルーチン
ライブラリ82.83及び84が存在する場合を示す。
共用サブルーチンライブラリB82について述べれば、
共用サブルーチンライブラリB82は、ユーザプログラ
ムA81からの呼び出しを処理するエントリ部821に
加えて、共用サブルーチンライブラリC83及び共用サ
ブルーチンライブラリD84にそれぞれアクセスするた
めのエントリルーチン822及び823を含んでいる。
〈発明の効果) 本発明のコンピュータは、セグメント・オフセット分離
アドレス型CPUの特徴を生かすことにより、マルチプ
ロセス実行環境における複数のユーザプロセスによるサ
ブルーチンの共有化を実現し、メモリの利用効率を大き
く改善することができる。
4、゛  の、7′;日 第1図は本発明の一実施例の要部のブロック図、第2図
はその実施例の稼働中の一時点に於けるメモリマツプ、
第3図〜第5図はその実施例の主記憶内の記憶領域に共
用サブルーチンライブラリがロードされる様子を模式的
に示す図、第6図はその実施例に於ける共用サブルーチ
ンライブラリの構成を模式的に示す図、第7図はその実
施例に於けるニーサブログラムによる共用サブルーチン
ライブラリ内のサブルーチンの呼び出しを説明する図、
第8図は共用サブルーチンライブラリ全体のサイズが1
セグメントを越える場合の共用サブルーチンライブラリ
の構成を模式的に示す図である。
1・・・バス、2・・CPU (8086系)、3・・
・主記憶、4・・・外部記憶、60・・・共用サブルー
チンライブラリ、61・・・エントリ部、62・・・処
理部、621・・・サブルーチン、70・・・ユーザプ
ログラム、71・・・呼び出しルーチン、72・・・エ
ントリルーチン。
以上

Claims (1)

  1. 【特許請求の範囲】 1、セグメント・オフセット分離アドレス方式のCPU
    を用いたコンピュータであって、 少なくとも1個のサブルーチンの命令列と、該サブルー
    チンの命令列によってアクセスされるデータの内で該サ
    ブルーチンの命令列によって変更を受けないデータとを
    含む共用サブルーチンライブラリを備え、 該サブルーチンの命令列によってアクセスされるデータ
    の内で該サブルーチンの命令列によって変更を受けるデ
    ータが該サブルーチンを呼び出すユーザプログラムに含
    まれている コンピュータ。
JP30164688A 1988-11-28 1988-11-28 コンピュータ Pending JPH02146627A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30164688A JPH02146627A (ja) 1988-11-28 1988-11-28 コンピュータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30164688A JPH02146627A (ja) 1988-11-28 1988-11-28 コンピュータ

Publications (1)

Publication Number Publication Date
JPH02146627A true JPH02146627A (ja) 1990-06-05

Family

ID=17899443

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30164688A Pending JPH02146627A (ja) 1988-11-28 1988-11-28 コンピュータ

Country Status (1)

Country Link
JP (1) JPH02146627A (ja)

Similar Documents

Publication Publication Date Title
US6128641A (en) Data processing unit with hardware assisted context switching capability
US5634046A (en) General purpose use of a stack pointer register
JPH06324849A (ja) オペレーティング・システム環境の起動方法およびシステム
EP0789873A1 (en) A method for basic input-output system (bios) code compression/decompression dispatcher
GB2273591A (en) Microcomputer control systems for interprogram communication and scheduling methods
US4862351A (en) Method of executing called activities via depictor-linked low level language microcode, hardware logic, and high level language commands; and apparatus for same
US5175830A (en) Method for executing overlays in an expanded memory data processing system
EP0417916B1 (en) Procedure state descriptor system for digital data processors
US6141635A (en) Method of diagnosing faults in an emulated computer system via a heterogeneous diagnostic program
JPH02146627A (ja) コンピュータ
JPH0430062B2 (ja)
JPS61184643A (ja) 仮想計算機の起動制御方式
Thomas JSYS traps: a TENEX mechanism for encapsulation of user processes
JPH1153249A (ja) メモリ管理方法
JP3022848B2 (ja) マルチタスクのタスク切り替え方法とリアルタイム・オペレーティング・システム
JP2002544619A (ja) 専用ポインタメモリを使用するオブジェクト指向処理
JPH03154130A (ja) タスクスイッチング方式
JPH0511336B2 (ja)
JPS6338729B2 (ja)
JPS59103146A (ja) 動作モ−ド表示装置
JPS6159550A (ja) プログラム間制御移行処理方式
JPS62204338A (ja) Lisp言語処理システム
Neumann Disk-based program swapping in 8080-based microcomputers
JPH0235332B2 (ja) Sainyukanopuroguramuseigyoshorihoshiki
JPS638841A (ja) 割込み受取り装置