JPH01204154A - カーネルプリミティブルーチンによる中断・再開方式 - Google Patents
カーネルプリミティブルーチンによる中断・再開方式Info
- Publication number
- JPH01204154A JPH01204154A JP2787488A JP2787488A JPH01204154A JP H01204154 A JPH01204154 A JP H01204154A JP 2787488 A JP2787488 A JP 2787488A JP 2787488 A JP2787488 A JP 2787488A JP H01204154 A JPH01204154 A JP H01204154A
- Authority
- JP
- Japan
- Prior art keywords
- user program
- routine
- kernel
- kernel primitive
- execution unit
- 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
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔目 次〕
概要
産業上の利用分野
従来の技術と発明が解決しようとする課題課題を解決す
るための手段 作用 実施例 発明の効果 〔概要〕 複数個の実行単位から構成されるユーザプログラムから
の割出しによって制御パラメータを受は取り、オペレー
ティングシステム(OS)の下位レベルのサービスを実
行するカーネルプリミティブルーチンが、特定の要因(
例えば、仮想記憶装置をアクセスしてページフォルトが
発生等)によって実行を続行できなくなったときの該カ
ーネルプリミティブルーチンによるユーザプログラムの
中断・再開方式に関し、 ユーザプログラムがカーネルプリミティブルーチンを割
出すときの処理を簡単にすることを目的とし、 ユーザプログラムからの割出しによって特定の処理を行
うオペレーティングシステム(OS)レベルのカーネル
プリミティブルーチンに中断事象が発生したとき、上記
ユーザプログラムの該割出しを生起した実行単位(PO
P)を中断する手段と、該中断要因が解決されたとき、
該カーネルプリミティブルーチンが行う残りの処理を別
の実行単位(カーネルディスパッチングユニット) (
KDU)で行う手段と、該別の実行単位(KDU)で上
記カーネルプリミティブルーチンの残りの処理を終了し
た時点で、上記中断しているユーザプログラムの実行単
位(POP)に再開する手段とを設けて、上記カーネル
プリミティブルーチンによるユーザプログラムの中断状
態を再開するように構成する。
るための手段 作用 実施例 発明の効果 〔概要〕 複数個の実行単位から構成されるユーザプログラムから
の割出しによって制御パラメータを受は取り、オペレー
ティングシステム(OS)の下位レベルのサービスを実
行するカーネルプリミティブルーチンが、特定の要因(
例えば、仮想記憶装置をアクセスしてページフォルトが
発生等)によって実行を続行できなくなったときの該カ
ーネルプリミティブルーチンによるユーザプログラムの
中断・再開方式に関し、 ユーザプログラムがカーネルプリミティブルーチンを割
出すときの処理を簡単にすることを目的とし、 ユーザプログラムからの割出しによって特定の処理を行
うオペレーティングシステム(OS)レベルのカーネル
プリミティブルーチンに中断事象が発生したとき、上記
ユーザプログラムの該割出しを生起した実行単位(PO
P)を中断する手段と、該中断要因が解決されたとき、
該カーネルプリミティブルーチンが行う残りの処理を別
の実行単位(カーネルディスパッチングユニット) (
KDU)で行う手段と、該別の実行単位(KDU)で上
記カーネルプリミティブルーチンの残りの処理を終了し
た時点で、上記中断しているユーザプログラムの実行単
位(POP)に再開する手段とを設けて、上記カーネル
プリミティブルーチンによるユーザプログラムの中断状
態を再開するように構成する。
本発明は、複数個の実行単位から構成されるユーザプロ
グラムからの割出しによって制御パラメータを受は取り
、オペレーティングシステム(OS)の下位レベルのサ
ービスを実行するカーネルプリミティブルーチンが、特
定の要因(例えば、仮想記憶装置をアクセスしてページ
フォルトが発生等)によって、その実行ができなくなっ
たときの、ユーザプログラムの中断・再開方式に関する
。
グラムからの割出しによって制御パラメータを受は取り
、オペレーティングシステム(OS)の下位レベルのサ
ービスを実行するカーネルプリミティブルーチンが、特
定の要因(例えば、仮想記憶装置をアクセスしてページ
フォルトが発生等)によって、その実行ができなくなっ
たときの、ユーザプログラムの中断・再開方式に関する
。
従来から、計算機システムで実行されるユーザプログラ
ムで実行できない、例えば、入出力処理とか1割込み1
割出し処理、ディスパッチング処理等については、オペ
レーティングシステム(OS)の低位レベルの処理を実
行するカーネルプリミティブルーチン等に、その処理の
実行を依頼しているが、かかるオペレーティングシステ
ム(O8)の低位レベルの処理を、該カーネルプリミテ
ィブルーチンに依頼して、該ルーチンで処理が中断され
る事象、例えば、仮想記憶方式の計算機システムでのペ
ージフォルト等が発生すると、その再開処理の為に、ユ
ーザプログラムでの上記中断、再開処理の為のオーバヘ
ッドが増大する問題がある。
ムで実行できない、例えば、入出力処理とか1割込み1
割出し処理、ディスパッチング処理等については、オペ
レーティングシステム(OS)の低位レベルの処理を実
行するカーネルプリミティブルーチン等に、その処理の
実行を依頼しているが、かかるオペレーティングシステ
ム(O8)の低位レベルの処理を、該カーネルプリミテ
ィブルーチンに依頼して、該ルーチンで処理が中断され
る事象、例えば、仮想記憶方式の計算機システムでのペ
ージフォルト等が発生すると、その再開処理の為に、ユ
ーザプログラムでの上記中断、再開処理の為のオーバヘ
ッドが増大する問題がある。
一般に、該計算機システムでの処理能力の向上に対する
要求は際限がない為、上記ユーザプログラムがオペレー
ティングシステム(OS)のカーネルプリミティブルー
チンに割出しを行って、特定の処理を依頼し、該カーネ
ルプリミティブルーチンで中断事象が発生し、その処理
が実行できなくなった場合の、該カーネルプリミティブ
ルーチンによるユーザプログラムの効果的な中断、再開
方式が必要とされる。
要求は際限がない為、上記ユーザプログラムがオペレー
ティングシステム(OS)のカーネルプリミティブルー
チンに割出しを行って、特定の処理を依頼し、該カーネ
ルプリミティブルーチンで中断事象が発生し、その処理
が実行できなくなった場合の、該カーネルプリミティブ
ルーチンによるユーザプログラムの効果的な中断、再開
方式が必要とされる。
〔従来の技術と発明が解決しようとする課題〕第3図は
従来のカーネルプリミティブルーチンによる中断・再開
方式を説明する図である。
従来のカーネルプリミティブルーチンによる中断・再開
方式を説明する図である。
通常、オペレーティングシステム(OS)には、入出力
処理9割込み9割出し処理、ディスパッチング処理等、
低位レベルの処理と、ジョブ管理、TSSサー八等へ上
位レベルの処理があり、例えば、ユーザプログラムから
の割出し等の手段によって起動され、該ユーザプログラ
ムから制御パラメータを受けて、上記オペレーティング
システム(OS)の低位レベルの処理を行うプログラム
として、カーネルプリミティブルーチン2がある。
処理9割込み9割出し処理、ディスパッチング処理等、
低位レベルの処理と、ジョブ管理、TSSサー八等へ上
位レベルの処理があり、例えば、ユーザプログラムから
の割出し等の手段によって起動され、該ユーザプログラ
ムから制御パラメータを受けて、上記オペレーティング
システム(OS)の低位レベルの処理を行うプログラム
として、カーネルプリミティブルーチン2がある。
該カーネルプリミティブルーチン2は割込み禁止状態で
走行するプログラムであるが、該ルーチン2が仮想記憶
領域3をアクセスする場合、該仮想記憶領域3に実記憶
が割り当てられていなくてプログラムチエツク割込みが
発生する可能性がある。
走行するプログラムであるが、該ルーチン2が仮想記憶
領域3をアクセスする場合、該仮想記憶領域3に実記憶
が割り当てられていなくてプログラムチエツク割込みが
発生する可能性がある。
そこで、ユーザプログラム1では、該カーネルプリミテ
ィブルーチン2がアクセスする仮想記憶領域3に、予め
、実記憶固定処理をおこなっておき、ページフォルトが
起こらないようにする必要がある。
ィブルーチン2がアクセスする仮想記憶領域3に、予め
、実記憶固定処理をおこなっておき、ページフォルトが
起こらないようにする必要がある。
該仮想記憶領域3をアクセスするカーネルブリミティブ
ルーチン2を利用するユーザプログラム1は、 (1)仮想記憶領域3に対して、実記憶固定処理を行う
。具体的には、例えば、ページアウト処理を禁止状態と
する。
ルーチン2を利用するユーザプログラム1は、 (1)仮想記憶領域3に対して、実記憶固定処理を行う
。具体的には、例えば、ページアウト処理を禁止状態と
する。
(2) カーネルプリミティブルーチン2に割出し、
制御パラメータを渡す。
制御パラメータを渡す。
(3)カーネルプリミティブルーチン2での処理が終了
して、該ユーザプログラム1に制御が戻ってきたとき、
上記実記憶を固定した仮想記憶領域3の実記憶固定の解
除処理を行う。
して、該ユーザプログラム1に制御が戻ってきたとき、
上記実記憶を固定した仮想記憶領域3の実記憶固定の解
除処理を行う。
と云う3段階のステップを踏まなければならない。
通常、ユーザプログラム1はカーネルプリミティブルー
チン2を読み出す前に、仮想記憶領域をアクセスしてお
り、該仮想記憶領域3には実記憶領域が割り当てられて
いる。然し、それにもかかわらずカーネルプリミティブ
ルーチン2を呼び出す前に必ず、上記仮想記憶領域3の
実記憶固定処理を行わねばならず、又、該カーネルプリ
ミティブルーチン2から制御が戻ってきた後も、必ず、
実記憶固定の解除処理と云う余計な処理をしなければな
らないと云う問題があった。
チン2を読み出す前に、仮想記憶領域をアクセスしてお
り、該仮想記憶領域3には実記憶領域が割り当てられて
いる。然し、それにもかかわらずカーネルプリミティブ
ルーチン2を呼び出す前に必ず、上記仮想記憶領域3の
実記憶固定処理を行わねばならず、又、該カーネルプリ
ミティブルーチン2から制御が戻ってきた後も、必ず、
実記憶固定の解除処理と云う余計な処理をしなければな
らないと云う問題があった。
本発明は上記従来の欠点に鑑み、複数個の実行単位(1
’OP)から構成されるユーザプログラムからの割出し
によって制御パラメータを受は取り、オペレーティング
システム(OS)の下位レベルのサービスを実行するカ
ーネルプリミティブルーチンが、特定の要因(例えば、
仮想記憶装置をアクセスしてページフォルトの発生)に
よって実行を続行できなくなったときのユーザプログラ
ムの中断・再開方式において、ユーザプログラムでのオ
ーバヘッドを少なくする中断・再開方式を提供すること
を目的とするものである。
’OP)から構成されるユーザプログラムからの割出し
によって制御パラメータを受は取り、オペレーティング
システム(OS)の下位レベルのサービスを実行するカ
ーネルプリミティブルーチンが、特定の要因(例えば、
仮想記憶装置をアクセスしてページフォルトの発生)に
よって実行を続行できなくなったときのユーザプログラ
ムの中断・再開方式において、ユーザプログラムでのオ
ーバヘッドを少なくする中断・再開方式を提供すること
を目的とするものである。
第1図は本発明のカーネルプリミティブルーチンによる
中断・再開方式の原理図である。
中断・再開方式の原理図である。
上記の問題点は下記の如くに構成されたカーネルプリミ
ティブルーチンの実行不能時のユーザプログラムの中断
・再開方式によって解決される。
ティブルーチンの実行不能時のユーザプログラムの中断
・再開方式によって解決される。
複数個の実行単位1aから構成されるユーザプログラム
1からの割出しによって制御パラメータを受は取り、オ
ペレーティングシステム(OS)の下位レベルのサービ
スを実行するカーネルプリミティブルーチン2が、特定
の要因によってその実行ができなくなったとき、 上記ユーザプログラム1の該割出しを生起した実行単位
1aを中断する手段■と、 該中断要因が解決されたとき、該カーネルプリミティブ
ルーチン2が行う残りの処理を別の実行単位2aで行う
手段■と、 該別の実行単位2aで上記カーネルプリミティブルーチ
ン2の残りの処理を終了した時点で、上記中断している
ユーザプログラム1の実行単位1aに再開する手段■と
を設けて、 上記カーネルプリミティブルーチン2によるユーザプロ
グラム1の中断・再開処理を行うように構成する。
1からの割出しによって制御パラメータを受は取り、オ
ペレーティングシステム(OS)の下位レベルのサービ
スを実行するカーネルプリミティブルーチン2が、特定
の要因によってその実行ができなくなったとき、 上記ユーザプログラム1の該割出しを生起した実行単位
1aを中断する手段■と、 該中断要因が解決されたとき、該カーネルプリミティブ
ルーチン2が行う残りの処理を別の実行単位2aで行う
手段■と、 該別の実行単位2aで上記カーネルプリミティブルーチ
ン2の残りの処理を終了した時点で、上記中断している
ユーザプログラム1の実行単位1aに再開する手段■と
を設けて、 上記カーネルプリミティブルーチン2によるユーザプロ
グラム1の中断・再開処理を行うように構成する。
即ち、本発明によれば、複数個の実行単位から構成され
るユーザプログラムからの割出しによって制御パラメー
タを受は取り、オペレーティングシステム(OS)の下
位レベルのサービスを実行するカーネルプリミティブル
ーチンが、特定の要因(例えば、仮想記憶装置をアクセ
スしてページフォルトの発生)によって、その実行がで
きなくなったときのユーザプログラムの中断・再開方式
において、該ユーザプログラムが、例えば、仮想記憶領
域の実記憶固定処理、実記憶固定解除処理を行わずに済
むように、以下の3つの手段を設ける。
るユーザプログラムからの割出しによって制御パラメー
タを受は取り、オペレーティングシステム(OS)の下
位レベルのサービスを実行するカーネルプリミティブル
ーチンが、特定の要因(例えば、仮想記憶装置をアクセ
スしてページフォルトの発生)によって、その実行がで
きなくなったときのユーザプログラムの中断・再開方式
において、該ユーザプログラムが、例えば、仮想記憶領
域の実記憶固定処理、実記憶固定解除処理を行わずに済
むように、以下の3つの手段を設ける。
■ カーネルプリミティブルーチンが特定の命令を実行
して、仮想記憶領域に実記憶が割り当てられているか否
かをチエツクし、若し、実記憶が割り当てられていなけ
れば、ユーザプログラムの実行単位(1’OP)を中断
すると共に、特定のサービスプログラムを呼び出して、
上記仮想記憶領域に実記憶を割り当てさせる手段。
して、仮想記憶領域に実記憶が割り当てられているか否
かをチエツクし、若し、実記憶が割り当てられていなけ
れば、ユーザプログラムの実行単位(1’OP)を中断
すると共に、特定のサービスプログラムを呼び出して、
上記仮想記憶領域に実記憶を割り当てさせる手段。
■ カーネルプリミティブルーチンが、該仮想記憶領域
をアクセスした後に行う筈の処理を、本発明の別の実行
単位(KDU)で行う手段。
をアクセスした後に行う筈の処理を、本発明の別の実行
単位(KDU)で行う手段。
■ 上記別の実行単位(KDU)でカーネルプリミティ
ブルーチンのやり残した処理を行った後、■で中断状態
にしたユーザプログラムを再開させる手段。
ブルーチンのやり残した処理を行った後、■で中断状態
にしたユーザプログラムを再開させる手段。
以下において、それぞれの手段の機能作用を説明する。
■ ユーザプログラムの実行単位(これを、Proce
ss 0perator : r’OPと呼ぶ)に、「
カーネルプリミティブルーチン中断状態」と云う表示を
行う。
ss 0perator : r’OPと呼ぶ)に、「
カーネルプリミティブルーチン中断状態」と云う表示を
行う。
そして、この表示があると、上記PoPはディスバッチ
禁止状態になる。
禁止状態になる。
具体的には、オペレーティングシステム(OS)中の「
核」と呼ばれる基本プログラムが、該カーネルプリミテ
ィブルーチンで、中断事象が発生した場合に、この表示
を行い、該実行単位(POP)をディスバッチ禁止状態
にする。
核」と呼ばれる基本プログラムが、該カーネルプリミテ
ィブルーチンで、中断事象が発生した場合に、この表示
を行い、該実行単位(POP)をディスバッチ禁止状態
にする。
更ニ、上記POPの中断によって特定のサービスプログ
ラムが起動され、該カーネルプリミティブルーチンのア
クセスする仮想記憶領域に実記憶を割り当てて該中断事
象を解決し、次の■の動作に移行する。
ラムが起動され、該カーネルプリミティブルーチンのア
クセスする仮想記憶領域に実記憶を割り当てて該中断事
象を解決し、次の■の動作に移行する。
■ 本発明においては、該カーネルプリミティブルーチ
ンでやり残した処理を行う為の再開処理の実行単位(こ
れを、カーネルディスパッチングユニット(KDU)と
呼ぶ)を用意する。
ンでやり残した処理を行う為の再開処理の実行単位(こ
れを、カーネルディスパッチングユニット(KDU)と
呼ぶ)を用意する。
カーネルプリミティブルーチンにおいては、上記中断事
象が発生する可能性のある所(例えば、仮想記憶領域を
アクセスする所)は、予め、分かっており、更に、再開
ルーチンで行う処理も分かっているので、該Knuをシ
ステム作成時に静的にオペレーティングシステム(OS
)内に組み込んでおくことができる。
象が発生する可能性のある所(例えば、仮想記憶領域を
アクセスする所)は、予め、分かっており、更に、再開
ルーチンで行う処理も分かっているので、該Knuをシ
ステム作成時に静的にオペレーティングシステム(OS
)内に組み込んでおくことができる。
即ち、上記オペレーティングシステム(OS)内にカー
ネルプリミティブルーチン内で中断事象が起こる可能性
のある場所に対応して、複数個のKDUを用意しておく
。
ネルプリミティブルーチン内で中断事象が起こる可能性
のある場所に対応して、複数個のKDUを用意しておく
。
又、該カーネルプリミティブルーチンがやり残した処理
を行う上記再開ルーチンに、該やり残した処理を行う為
の情報(制御パラメータ:どのPOPか、アクセスする
仮想記憶アドレス等)を受は渡す為の領域(KDUEと
呼ぶ)を用意し、上記KDUはmKouEが1個以上繋
がった状態で、上記再開ルーチンの実行単位となる。
を行う上記再開ルーチンに、該やり残した処理を行う為
の情報(制御パラメータ:どのPOPか、アクセスする
仮想記憶アドレス等)を受は渡す為の領域(KDUEと
呼ぶ)を用意し、上記KDUはmKouEが1個以上繋
がった状態で、上記再開ルーチンの実行単位となる。
上記、KDUにはr KDUEがスケジュールされてい
る」と云う表示(スケジュール表示)を行う為のフィー
ルドを、例えば、1ビツト用意しておく。
る」と云う表示(スケジュール表示)を行う為のフィー
ルドを、例えば、1ビツト用意しておく。
そして、上記「核」はKDUにKDUE +Nぐと同時
に、このスケジュール表示を行い、以降、KDUEがス
ケジュールされる毎に、上書きの形で、具体的には、1
つ前のスケジュールされたKDUEを特定の領域に退避
して、今回スケジュールされた[1UE(制御パラメー
タ)を該領域に設定し、該スケジュール表示を°オン゛
とする。
に、このスケジュール表示を行い、以降、KDUEがス
ケジュールされる毎に、上書きの形で、具体的には、1
つ前のスケジュールされたKDUEを特定の領域に退避
して、今回スケジュールされた[1UE(制御パラメー
タ)を該領域に設定し、該スケジュール表示を°オン゛
とする。
このように構成されているので、該「核」は該スケジュ
ール表示の前の状態、即ち、上記退避領域を見て、既に
、スケジュールされている時には、何もしない(即ち、
既に、ディスパッチキューに乗っているので何時でも実
行できる状態にある為、何もしない)が、逆にスケジュ
ール表示がないと、始めて再開ルーチンの実行単位(K
DU)になったとして、該KDUをディスパッチキュー
に乗せ、実行可能の状態にする。
ール表示の前の状態、即ち、上記退避領域を見て、既に
、スケジュールされている時には、何もしない(即ち、
既に、ディスパッチキューに乗っているので何時でも実
行できる状態にある為、何もしない)が、逆にスケジュ
ール表示がないと、始めて再開ルーチンの実行単位(K
DU)になったとして、該KDUをディスパッチキュー
に乗せ、実行可能の状態にする。
■ 再開ルーチンの実行単位であるKDDで、カーネル
プリミティブルーチンの残した処理が終了すると、「核
」は■で設定した「カーネルプリミティブルーチン中断
状態」と云う表示を消し、該中断状態になっていたPO
Pをディスパッチ可能状態にする。
プリミティブルーチンの残した処理が終了すると、「核
」は■で設定した「カーネルプリミティブルーチン中断
状態」と云う表示を消し、該中断状態になっていたPO
Pをディスパッチ可能状態にする。
このように、ユーザプログラムが、オペレーティングシ
ステム(OS)のカーネルプリミティブルーチンに処理
を依頼して、該カーネルプリミティブルーチンで中断事
象が発生した場合、該カーネルプリミティブルーチンに
ユーザプログラムの実行単位を中断させる手段を持たせ
、該中断した原因が解決した後、別の実行単位(KDU
)で、該残りの処理を行い、その実行単位(KDU)で
動作するプログラムに、該中断されているユーザプログ
ラムを再開させるようにしたものであるので、システム
が持つ多数のユーザプログラムはカーネルプリミティブ
ルーチンに処理を依頼する前の仮想領域の実記憶固定と
、該カーネルプリミティブルーチンから処理が戻った後
の、上記実記憶固定の解除と云う処理を削除でき、シス
テム全体としての処理能力が大幅に向上すると云う効果
がある。
ステム(OS)のカーネルプリミティブルーチンに処理
を依頼して、該カーネルプリミティブルーチンで中断事
象が発生した場合、該カーネルプリミティブルーチンに
ユーザプログラムの実行単位を中断させる手段を持たせ
、該中断した原因が解決した後、別の実行単位(KDU
)で、該残りの処理を行い、その実行単位(KDU)で
動作するプログラムに、該中断されているユーザプログ
ラムを再開させるようにしたものであるので、システム
が持つ多数のユーザプログラムはカーネルプリミティブ
ルーチンに処理を依頼する前の仮想領域の実記憶固定と
、該カーネルプリミティブルーチンから処理が戻った後
の、上記実記憶固定の解除と云う処理を削除でき、シス
テム全体としての処理能力が大幅に向上すると云う効果
がある。
以下本発明の実施例を図面によって詳述する。
前述の第1図が本発明のカーネルプリミティブルーチン
による中断・再開方式の原理図であり、第2図が本発明
の一実施例を模式的に示した図であって、第1図、第2
図に示した手段■〜■が本発明を実施するのに必要な手
段である。尚、全図を通して同じ符号は同じ対象物を示
している。
による中断・再開方式の原理図であり、第2図が本発明
の一実施例を模式的に示した図であって、第1図、第2
図に示した手段■〜■が本発明を実施するのに必要な手
段である。尚、全図を通して同じ符号は同じ対象物を示
している。
以下、第1図、第2図によって、本発明のカーネルプリ
ミティブルーチンによるユーザプログラムの中断・再開
方式を説明する。
ミティブルーチンによるユーザプログラムの中断・再開
方式を説明する。
第2図の模式図においては、ユーザプログラム1がオペ
レーティングシステム(OS)の中のカーネルプリミテ
ィブルーチン2に特定の処理を依頼したとき、該カーネ
ルプリミティブルーチン2が特定の命令を実行して、仮
想記憶領域3に実記憶が割り当てられているか否かをチ
エツクし、割り当てられていなかった場合のオペレーテ
ィングシステム(OS)内での動作について示している
。
レーティングシステム(OS)の中のカーネルプリミテ
ィブルーチン2に特定の処理を依頼したとき、該カーネ
ルプリミティブルーチン2が特定の命令を実行して、仮
想記憶領域3に実記憶が割り当てられているか否かをチ
エツクし、割り当てられていなかった場合のオペレーテ
ィングシステム(OS)内での動作について示している
。
ステップ10:先ず、カーネルプリミティブルーチン2
において、前述の中断事象が発生すると、KDUB (
再開時の制御パラメータを格納する領域)をオペレーテ
ィングシステム(O8)の「核」に獲得依願し、該「核
」が持っている図示していないセルプールから、特定の
領域をKDUEとして獲得する。 (ステップ40参照
) ステップ11:該「核」にユーザプログラムの実行単位
(1’or’) 1aの中断依願をすると、該「核」は
該POP 1aに「カーネルプログラム中断状態」と云
う表示■を行い、該POP 1aをディスパッチ禁止状
態にする。(ステップ41参照)ステップ12ニステツ
プ10で獲得したKDUEに再開情報(制御パラメータ
: どのPOPか、ページフォルトになった仮想記憶ア
ドレス等)を設定する。
において、前述の中断事象が発生すると、KDUB (
再開時の制御パラメータを格納する領域)をオペレーテ
ィングシステム(O8)の「核」に獲得依願し、該「核
」が持っている図示していないセルプールから、特定の
領域をKDUEとして獲得する。 (ステップ40参照
) ステップ11:該「核」にユーザプログラムの実行単位
(1’or’) 1aの中断依願をすると、該「核」は
該POP 1aに「カーネルプログラム中断状態」と云
う表示■を行い、該POP 1aをディスパッチ禁止状
態にする。(ステップ41参照)ステップ12ニステツ
プ10で獲得したKDUEに再開情報(制御パラメータ
: どのPOPか、ページフォルトになった仮想記憶ア
ドレス等)を設定する。
ステップ13:オペレーティングシステム(OS)内に
ある特定のサービスプログラム(中断の解決者)に中断
の解決を依頼する。
ある特定のサービスプログラム(中断の解決者)に中断
の解決を依頼する。
ステップ20:該サービスプログラムにおいては、上記
再開情報を参照して、ページフォルトの発生した仮想記
憶アドレスを認識し、該仮想記憶に実記憶を割り当て、
上記カーネルプリミティブルーチン2における中断事象
の解決を行う。
再開情報を参照して、ページフォルトの発生した仮想記
憶アドレスを認識し、該仮想記憶に実記憶を割り当て、
上記カーネルプリミティブルーチン2における中断事象
の解決を行う。
ステップ21:中断事象が無くなったので、「核」に再
開ルーチンの起動を依頼■する。
開ルーチンの起動を依頼■する。
ステップ42,43.44 : r核」は上記中断解
決者から上記KDUEのアドレスを受は取り、そのKD
UEが示すKDU 2aを求めて、該KDU 2aにス
ケジュール表示が無ければ、該KDUEを当該KDU
2aに繋ぐと同時に、該KDU 2aにスケジュール表
示を行い、該KDU 2aをディスパッチキューに乗せ
るが、既に、該KDtL 2aにスケジュール表示があ
る場合には、該KDU 2aはディスパッチキューに乗
っているので、KDUEを繋ぐ処理のみを行う。
決者から上記KDUEのアドレスを受は取り、そのKD
UEが示すKDU 2aを求めて、該KDU 2aにス
ケジュール表示が無ければ、該KDUEを当該KDU
2aに繋ぐと同時に、該KDU 2aにスケジュール表
示を行い、該KDU 2aをディスパッチキューに乗せ
るが、既に、該KDtL 2aにスケジュール表示があ
る場合には、該KDU 2aはディスパッチキューに乗
っているので、KDUEを繋ぐ処理のみを行う。
該KDU 2aがディスパッチされると、該KDU 2
aに対応した再開ルーチンが起動される。
aに対応した再開ルーチンが起動される。
ステップ30:該再開ルーチンは「核」に対して、KD
UEに格納されている再開情報の取り出しを依頼し、「
核」は複数個のKDU、KDUEの中から、該KDU
2aに対応するKDUEを取り出し、再開ルーチンに渡
す。
UEに格納されている再開情報の取り出しを依頼し、「
核」は複数個のKDU、KDUEの中から、該KDU
2aに対応するKDUEを取り出し、再開ルーチンに渡
す。
そして、「核」は、最後のKDUEの取り出しを終了し
、もう、KDU 2aにKDUEが繋がっていないこと
を確認して、該KDU 2aのスケジュール表示を消す
。即ち、該スケジュール表示が“オン゛である間は、再
開処理を必要とするKDUが存在することを示している
。(ステップ45,46.47参照)ステップ31,3
2 : r核」からKDUEを受は取ると、該KDUH
に格納されている再開情報に基づいて、カーネルプリミ
ティブルーチン2の残り処理を実行する。
、もう、KDU 2aにKDUEが繋がっていないこと
を確認して、該KDU 2aのスケジュール表示を消す
。即ち、該スケジュール表示が“オン゛である間は、再
開処理を必要とするKDUが存在することを示している
。(ステップ45,46.47参照)ステップ31,3
2 : r核」からKDUEを受は取ると、該KDUH
に格納されている再開情報に基づいて、カーネルプリミ
ティブルーチン2の残り処理を実行する。
ステップ33:再開ルーチンにおいては、カーネルプリ
ミティブルーチン2の残りの処理、部ち、仮想記憶領域
に対するアクセス、その他を終了したので、ユーザプロ
グラム1に復帰する為に、上記ユーザプログラム1の中
断されている実行単位(POP) 1aの再開依頼■を
「核」に行う。
ミティブルーチン2の残りの処理、部ち、仮想記憶領域
に対するアクセス、その他を終了したので、ユーザプロ
グラム1に復帰する為に、上記ユーザプログラム1の中
断されている実行単位(POP) 1aの再開依頼■を
「核」に行う。
ステップ48:「核」は再開ルーチンから、前にステッ
プ41において中断状態にしたPOP 1aの再開の依
頼を受けると、指定されたPOP 1aに表示されてい
る「カーネルプリミティブ中断状態」の表示を解除して
実行可能(ディスパッチ可能)状態にし、ユーザプログ
ラム1の処理の再開可能な状態にする。
プ41において中断状態にしたPOP 1aの再開の依
頼を受けると、指定されたPOP 1aに表示されてい
る「カーネルプリミティブ中断状態」の表示を解除して
実行可能(ディスパッチ可能)状態にし、ユーザプログ
ラム1の処理の再開可能な状態にする。
ステップ34:再開ルーチンにおいては、ステップ30
で取り出したKDUEの返却依頼を「核」に依頼する。
で取り出したKDUEの返却依頼を「核」に依頼する。
ステップ49:「核」は該返却依顧のあったKDLIE
を元のセルプールに戻す。
を元のセルプールに戻す。
ステップ31において、もうKDUEの繋がってない状
態になると、再開すべきKDU 2aがないと認識して
、図示していないディスパッチャ−に戻る。
態になると、再開すべきKDU 2aがないと認識して
、図示していないディスパッチャ−に戻る。
ディスパッチャ−では、KDU 2a、又はPOP 1
aのディスパッチキューを見て、該キューに投入されて
いるタスクがあると、即ち、KDU 2aがあると、再
度上記再開ルーチンが起動されるし、POP 1aがあ
ると、ユーザプログラムの再開処理が行われる。
aのディスパッチキューを見て、該キューに投入されて
いるタスクがあると、即ち、KDU 2aがあると、再
度上記再開ルーチンが起動されるし、POP 1aがあ
ると、ユーザプログラムの再開処理が行われる。
尚、上記の実施例においては、ユーザプログラムがカー
ネルプリミティブルーチンに特定処理を依願して、発生
した中断事象として、仮想記憶アクセス時のページフォ
ルトを例にしたが、これに限定されないことは云う迄も
ないことである。
ネルプリミティブルーチンに特定処理を依願して、発生
した中断事象として、仮想記憶アクセス時のページフォ
ルトを例にしたが、これに限定されないことは云う迄も
ないことである。
このように、本発明は、ユーザプログラムが、オペレー
ティングシステム(OS)の低位レベルの処理を実行す
るカーネルプリミティブルーチンに特定の処理を依頼し
て、該カーネルプリミティブルーチンに中断事象、例え
ば、ページフォルトが発生した場合、該オペレーティン
グシステム(O8)の「核」において、該ユーザプログ
ラムの実行単位であるPOPに中断表示を行い、該カー
ネルプリミティブルーチンとは別のサービスプログラム
に、該中断事象を解決させ(上記、ページフォルトの場
合には、実記憶の割り当てを行い)た後、再開ルーチン
を起動して、その実行単位であるKDUに該カーネルプ
リミティブルーチンの残りの処理を実行させた後、該K
DUから該「核」に上記POPの中断表示を消させ、自
律的に再開させるようにした所に特徴がある。
ティングシステム(OS)の低位レベルの処理を実行す
るカーネルプリミティブルーチンに特定の処理を依頼し
て、該カーネルプリミティブルーチンに中断事象、例え
ば、ページフォルトが発生した場合、該オペレーティン
グシステム(O8)の「核」において、該ユーザプログ
ラムの実行単位であるPOPに中断表示を行い、該カー
ネルプリミティブルーチンとは別のサービスプログラム
に、該中断事象を解決させ(上記、ページフォルトの場
合には、実記憶の割り当てを行い)た後、再開ルーチン
を起動して、その実行単位であるKDUに該カーネルプ
リミティブルーチンの残りの処理を実行させた後、該K
DUから該「核」に上記POPの中断表示を消させ、自
律的に再開させるようにした所に特徴がある。
以上、詳細に説明したように、本発明のカーネルプリミ
ティブルーチンによる中断・再開方式は、ユーザプログ
ラムが、オペレーティングシステム(OS)のカーネル
プリミティブルーチンに処理を依頼して、該カーネルプ
リミティブルーチンで中断事象が発生した場合、該カー
ネルプリミティブルーチンにユーザプログラムの実行単
位を中断させる手段を持たせ、該中断した原因が解決し
た後、別の実行単位(KDU)で、該残りの処理を行い
、その実行単位(KDU)で動作するプログラムに、該
中断されているユーザプログラムを再開させるようにし
たものであるので、システムが持つ多数のユーザプログ
ラムはカーネルプリミティブルーチンに処理を依頼する
前の仮想領域の実記憶固定と、該カーネルプリミティブ
ルーチンから処理が戻った後の、上記実記憶固定の解除
と云う処理を削除でき、システム全体としての処理能力
が大幅に向上すると云う効果がある。
ティブルーチンによる中断・再開方式は、ユーザプログ
ラムが、オペレーティングシステム(OS)のカーネル
プリミティブルーチンに処理を依頼して、該カーネルプ
リミティブルーチンで中断事象が発生した場合、該カー
ネルプリミティブルーチンにユーザプログラムの実行単
位を中断させる手段を持たせ、該中断した原因が解決し
た後、別の実行単位(KDU)で、該残りの処理を行い
、その実行単位(KDU)で動作するプログラムに、該
中断されているユーザプログラムを再開させるようにし
たものであるので、システムが持つ多数のユーザプログ
ラムはカーネルプリミティブルーチンに処理を依頼する
前の仮想領域の実記憶固定と、該カーネルプリミティブ
ルーチンから処理が戻った後の、上記実記憶固定の解除
と云う処理を削除でき、システム全体としての処理能力
が大幅に向上すると云う効果がある。
第1図は本発明のカーネルプリミティブルーチンによる
中断・再開方式の原理図。 第2図は本発明の一実施例を模式的に示した図。 第3図は従来のカーネルプリミティブルーチンによる中
断・再開方式を説明する図。 である。 図面において、 1はユーザプログラム。 1aはユーザプログラムの実行単位(POP) 。 2はカーネルプリミティブルーチン。 2aは再開ルーチンの実行単位(KDU) 。 3は仮想記憶領域。 10〜13,20.21.30〜34.40〜49は処
理ステップ。 ■〜■は本発明の手段。 をそれぞれ示す。 小i月のカーネ2しブリミーラ“イアシレーテン(=J
己大PM・f+開方代の原理囚 勇≧ 1 図
中断・再開方式の原理図。 第2図は本発明の一実施例を模式的に示した図。 第3図は従来のカーネルプリミティブルーチンによる中
断・再開方式を説明する図。 である。 図面において、 1はユーザプログラム。 1aはユーザプログラムの実行単位(POP) 。 2はカーネルプリミティブルーチン。 2aは再開ルーチンの実行単位(KDU) 。 3は仮想記憶領域。 10〜13,20.21.30〜34.40〜49は処
理ステップ。 ■〜■は本発明の手段。 をそれぞれ示す。 小i月のカーネ2しブリミーラ“イアシレーテン(=J
己大PM・f+開方代の原理囚 勇≧ 1 図
Claims (1)
- 【特許請求の範囲】 複数個の実行単位(1a)から構成されるユーザプログ
ラム(1)からの割出しによって制御パラメータを受け
取り、オペレーティングシステム(OS)の下位レベル
のサービスを実行するカーネルプリミティブルーチン(
2)が、特定の要因によって、その実行ができなくなっ
たとき、 上記ユーザプログラム(1)の該割出しを生起した実行
単位(1a)を中断する手段([1])と、該中断要因
が解決されたとき、該カーネルプリミティブルーチン(
2)が行う残りの処理を別の実行単位(2a)で行う手
段([2])と、 該別の実行単位(2a)で上記カーネルプリミティブル
ーチンの残りの処理を終了した時点で、上記中断してい
るユーザプログラム(1)の実行単位(1a)に再開す
る手段([3])とを設けて、上記カーネルプリミティ
ブルーチン(2)によるユーザプログラム(1)の中断
・再開処理を行うことを特徴とするカーネルプリミティ
ブルーチンによる中断・再開方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2787488A JPH01204154A (ja) | 1988-02-09 | 1988-02-09 | カーネルプリミティブルーチンによる中断・再開方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2787488A JPH01204154A (ja) | 1988-02-09 | 1988-02-09 | カーネルプリミティブルーチンによる中断・再開方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH01204154A true JPH01204154A (ja) | 1989-08-16 |
Family
ID=12233043
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2787488A Pending JPH01204154A (ja) | 1988-02-09 | 1988-02-09 | カーネルプリミティブルーチンによる中断・再開方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH01204154A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0625749A1 (de) * | 1993-05-17 | 1994-11-23 | Siemens Aktiengesellschaft | Betriebsverfahren für einen Rechner |
-
1988
- 1988-02-09 JP JP2787488A patent/JPH01204154A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0625749A1 (de) * | 1993-05-17 | 1994-11-23 | Siemens Aktiengesellschaft | Betriebsverfahren für einen Rechner |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7426732B2 (en) | Placing a task of a multithreaded environment in a known state | |
| US6006247A (en) | Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system | |
| US5727178A (en) | System and method for reducing stack physical memory requirements in a multitasking operating system | |
| US4914570A (en) | Process distribution and sharing system for multiple processor computer system | |
| US5339415A (en) | Dual level scheduling of processes to multiple parallel regions of a multi-threaded program on a tightly coupled multiprocessor computer system | |
| US9798595B2 (en) | Transparent user mode scheduling on traditional threading systems | |
| US7840965B2 (en) | Selective generation of an asynchronous notification for a partition management operation in a logically-partitioned computer | |
| US7251814B2 (en) | Yield on multithreaded processors | |
| EP2182438A1 (en) | Virtual machine control method and virtual machine system | |
| US20050278722A1 (en) | System for correct distribution of hypervisor work | |
| JPH07311749A (ja) | マルチプロセッサシステム及びカーネル置換方法 | |
| EP0547991A2 (en) | Adaptive method for starting tasks in a multi-tasking operating system | |
| US20030018682A1 (en) | Computer system and computer-readable record medium | |
| Arnold et al. | Design of tightly-coupled multiprocessing programming | |
| CN120216124A (zh) | 一种用户中断事件回调机制实现方法 | |
| JPH01204154A (ja) | カーネルプリミティブルーチンによる中断・再開方式 | |
| KR20190085391A (ko) | Gpu 커널 트랜잭션화 방법 및 컴퓨팅 장치 | |
| EP0544822B1 (en) | Dual level scheduling of processes | |
| Gait | Scheduling and process migration in partitioned multiprocessors | |
| JP2008071356A (ja) | 割込禁止区間処理装置および方法とページ固定装置および方法 | |
| CN115599508A (zh) | Cpu及任务调度方法 | |
| US20260023586A1 (en) | Techniques for managing virtual machines | |
| JPH0619858A (ja) | 共有資源自動返却方式 | |
| JP2535584B2 (ja) | 実記憶固定処理計算機 | |
| JP2001034489A (ja) | オブジェクト指向型プログラム実行環境の実行制御方法 |