JPH01204154A - Interruption/restart system using kernel primitive routine - Google Patents

Interruption/restart system using kernel primitive routine

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
Application number
JP2787488A
Other languages
Japanese (ja)
Inventor
Takahiro Tsurukubo
鶴窪 孝博
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2787488A priority Critical patent/JPH01204154A/en
Publication of JPH01204154A publication Critical patent/JPH01204154A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To improve the overall processing ability of a system by making a kernel primitive routine interrupt the execution unit of a user program in case an interruption event occurs and performing the remaining processes in another execution unit after the interruption event is recovered to restart the user program. CONSTITUTION:A kernel primitive routine receives a control parameter with calculation carried out by a user program consisting of plural execution units and carries out the services for the lower rank levels of an operating system. In case said kernel primitive routine becomes unable to perform its service activities due to a specific factor, the execution unit that started the calculation of the user program is interrupted. Then the remaining processes of the kernel primitive routine are carried out in other execution units when the factor of said interruption is eliminated. Then the interrupted user program is restarted. As a result, the overall processing capacity is improved for the system.

Description

【発明の詳細な説明】 〔目 次〕 概要 産業上の利用分野 従来の技術と発明が解決しようとする課題課題を解決す
るための手段 作用 実施例 発明の効果 〔概要〕 複数個の実行単位から構成されるユーザプログラムから
の割出しによって制御パラメータを受は取り、オペレー
ティングシステム(OS)の下位レベルのサービスを実
行するカーネルプリミティブルーチンが、特定の要因(
例えば、仮想記憶装置をアクセスしてページフォルトが
発生等)によって実行を続行できなくなったときの該カ
ーネルプリミティブルーチンによるユーザプログラムの
中断・再開方式に関し、 ユーザプログラムがカーネルプリミティブルーチンを割
出すときの処理を簡単にすることを目的とし、 ユーザプログラムからの割出しによって特定の処理を行
うオペレーティングシステム(OS)レベルのカーネル
プリミティブルーチンに中断事象が発生したとき、上記
ユーザプログラムの該割出しを生起した実行単位(PO
P)を中断する手段と、該中断要因が解決されたとき、
該カーネルプリミティブルーチンが行う残りの処理を別
の実行単位(カーネルディスパッチングユニット) (
KDU)で行う手段と、該別の実行単位(KDU)で上
記カーネルプリミティブルーチンの残りの処理を終了し
た時点で、上記中断しているユーザプログラムの実行単
位(POP)に再開する手段とを設けて、上記カーネル
プリミティブルーチンによるユーザプログラムの中断状
態を再開するように構成する。
[Detailed Description of the Invention] [Table of Contents] Overview Industrial Application Fields Prior Art and Problems to be Solved by the Invention Means for Solving the Problems Action Examples Effects of the Invention [Summary] From a plurality of execution units Kernel primitive routines, which take control parameters as determined by configured user programs and perform low-level services of the operating system (OS),
Regarding the method for suspending and resuming a user program by the kernel primitive routine when execution cannot be continued due to, for example, a page fault occurring due to accessing a virtual storage device, etc., the process when the user program identifies the kernel primitive routine. When an interruption event occurs in a kernel primitive routine at the operating system (OS) level that performs a specific process based on an index from a user program, the execution of the user program that caused the index is Unit (P.O.
P) and when the cause of the interruption is resolved;
The remaining processing performed by the kernel primitive routine is carried out by another execution unit (kernel dispatching unit) (
KDU), and a means for restarting the suspended execution unit (POP) of the user program when the remaining processing of the kernel primitive routine is completed in the other execution unit (KDU). The user program is configured to resume the suspended state of the user program by the kernel primitive routine.

〔産業上の利用分野〕[Industrial application field]

本発明は、複数個の実行単位から構成されるユーザプロ
グラムからの割出しによって制御パラメータを受は取り
、オペレーティングシステム(OS)の下位レベルのサ
ービスを実行するカーネルプリミティブルーチンが、特
定の要因(例えば、仮想記憶装置をアクセスしてページ
フォルトが発生等)によって、その実行ができなくなっ
たときの、ユーザプログラムの中断・再開方式に関する
The present invention provides that kernel primitive routines that receive and receive control parameters determined by a user program consisting of a plurality of execution units and that execute lower-level services of an operating system (OS) are controlled by specific factors (e.g. This invention relates to a method for suspending and resuming a user program when its execution becomes impossible due to a page fault occurring due to access to a virtual storage device, etc.

従来から、計算機システムで実行されるユーザプログラ
ムで実行できない、例えば、入出力処理とか1割込み1
割出し処理、ディスパッチング処理等については、オペ
レーティングシステム(OS)の低位レベルの処理を実
行するカーネルプリミティブルーチン等に、その処理の
実行を依頼しているが、かかるオペレーティングシステ
ム(O8)の低位レベルの処理を、該カーネルプリミテ
ィブルーチンに依頼して、該ルーチンで処理が中断され
る事象、例えば、仮想記憶方式の計算機システムでのペ
ージフォルト等が発生すると、その再開処理の為に、ユ
ーザプログラムでの上記中断、再開処理の為のオーバヘ
ッドが増大する問題がある。
Traditionally, there have been some problems that cannot be executed by a user program executed on a computer system, such as input/output processing or one interrupt.
Regarding indexing processing, dispatching processing, etc., the execution of such processing is requested to kernel primitive routines that execute low-level processing of the operating system (OS). When a process is requested to the kernel primitive routine, and an event that interrupts the process in the routine occurs, such as a page fault in a virtual memory computer system, a user program is requested to restart the process. There is a problem in that the overhead for the above-mentioned interruption and restart processing increases.

一般に、該計算機システムでの処理能力の向上に対する
要求は際限がない為、上記ユーザプログラムがオペレー
ティングシステム(OS)のカーネルプリミティブルー
チンに割出しを行って、特定の処理を依頼し、該カーネ
ルプリミティブルーチンで中断事象が発生し、その処理
が実行できなくなった場合の、該カーネルプリミティブ
ルーチンによるユーザプログラムの効果的な中断、再開
方式が必要とされる。
Generally, there is no limit to the demand for improvement in processing power in computer systems, so the user program makes an index to the kernel primitive routine of the operating system (OS), requests a specific process, and the kernel primitive routine There is a need for an effective method for suspending and resuming a user program using the kernel primitive routine when an interrupt event occurs and the process cannot be executed.

〔従来の技術と発明が解決しようとする課題〕第3図は
従来のカーネルプリミティブルーチンによる中断・再開
方式を説明する図である。
[Prior Art and Problems to be Solved by the Invention] FIG. 3 is a diagram illustrating a conventional suspending/resuming method using a kernel primitive routine.

通常、オペレーティングシステム(OS)には、入出力
処理9割込み9割出し処理、ディスパッチング処理等、
低位レベルの処理と、ジョブ管理、TSSサー八等へ上
位レベルの処理があり、例えば、ユーザプログラムから
の割出し等の手段によって起動され、該ユーザプログラ
ムから制御パラメータを受けて、上記オペレーティング
システム(OS)の低位レベルの処理を行うプログラム
として、カーネルプリミティブルーチン2がある。
Normally, an operating system (OS) includes input/output processing, interrupt processing, dispatching processing, etc.
There are low-level processing and upper-level processing such as job management and TSS servers, which are started by means such as indexing from a user program, receive control parameters from the user program, and run the operating system ( There is a kernel primitive routine 2 as a program that performs low-level processing of the OS.

該カーネルプリミティブルーチン2は割込み禁止状態で
走行するプログラムであるが、該ルーチン2が仮想記憶
領域3をアクセスする場合、該仮想記憶領域3に実記憶
が割り当てられていなくてプログラムチエツク割込みが
発生する可能性がある。
The kernel primitive routine 2 is a program that runs with interrupts disabled, but when the routine 2 accesses the virtual storage area 3, no real memory is allocated to the virtual storage area 3, and a program check interrupt occurs. there is a possibility.

そこで、ユーザプログラム1では、該カーネルプリミテ
ィブルーチン2がアクセスする仮想記憶領域3に、予め
、実記憶固定処理をおこなっておき、ページフォルトが
起こらないようにする必要がある。
Therefore, in the user program 1, it is necessary to perform real memory fixation processing on the virtual storage area 3 accessed by the kernel primitive routine 2 in advance to prevent page faults from occurring.

該仮想記憶領域3をアクセスするカーネルブリミティブ
ルーチン2を利用するユーザプログラム1は、 (1)仮想記憶領域3に対して、実記憶固定処理を行う
。具体的には、例えば、ページアウト処理を禁止状態と
する。
The user program 1 that uses the kernel primitive routine 2 to access the virtual storage area 3 performs the following: (1) Performs real memory fixing processing on the virtual storage area 3. Specifically, for example, page-out processing is prohibited.

(2)  カーネルプリミティブルーチン2に割出し、
制御パラメータを渡す。
(2) Index to kernel primitive routine 2,
Pass control parameters.

(3)カーネルプリミティブルーチン2での処理が終了
して、該ユーザプログラム1に制御が戻ってきたとき、
上記実記憶を固定した仮想記憶領域3の実記憶固定の解
除処理を行う。
(3) When the processing in the kernel primitive routine 2 is completed and control is returned to the user program 1,
A process for releasing the real memory fixation of the virtual storage area 3 to which the real memory is fixed is performed.

と云う3段階のステップを踏まなければならない。There are three steps that must be taken.

通常、ユーザプログラム1はカーネルプリミティブルー
チン2を読み出す前に、仮想記憶領域をアクセスしてお
り、該仮想記憶領域3には実記憶領域が割り当てられて
いる。然し、それにもかかわらずカーネルプリミティブ
ルーチン2を呼び出す前に必ず、上記仮想記憶領域3の
実記憶固定処理を行わねばならず、又、該カーネルプリ
ミティブルーチン2から制御が戻ってきた後も、必ず、
実記憶固定の解除処理と云う余計な処理をしなければな
らないと云う問題があった。
Normally, the user program 1 accesses a virtual storage area before reading the kernel primitive routine 2, and a real storage area is allocated to the virtual storage area 3. However, in spite of this, before calling the kernel primitive routine 2, the real memory fixing process of the virtual storage area 3 must be performed, and even after control is returned from the kernel primitive routine 2, the
There was a problem in that an extra process called real memory fixation release processing had to be performed.

本発明は上記従来の欠点に鑑み、複数個の実行単位(1
’OP)から構成されるユーザプログラムからの割出し
によって制御パラメータを受は取り、オペレーティング
システム(OS)の下位レベルのサービスを実行するカ
ーネルプリミティブルーチンが、特定の要因(例えば、
仮想記憶装置をアクセスしてページフォルトの発生)に
よって実行を続行できなくなったときのユーザプログラ
ムの中断・再開方式において、ユーザプログラムでのオ
ーバヘッドを少なくする中断・再開方式を提供すること
を目的とするものである。
In view of the above-mentioned conventional drawbacks, the present invention provides a plurality of execution units (1
The kernel primitive routines that perform lower-level services of the operating system (OS) receive and receive control parameters as determined by the user program, which consists of
The purpose of this invention is to provide a suspending/resuming method that reduces overhead in a user program when execution cannot be continued due to access to a virtual storage device (page fault occurs). It is something.

〔課題を解決するための手段〕[Means to solve the problem]

第1図は本発明のカーネルプリミティブルーチンによる
中断・再開方式の原理図である。
FIG. 1 is a diagram showing the principle of the suspension/resumption method using the kernel primitive routine of the present invention.

上記の問題点は下記の如くに構成されたカーネルプリミ
ティブルーチンの実行不能時のユーザプログラムの中断
・再開方式によって解決される。
The above problem is solved by a system for suspending and resuming a user program when a kernel primitive routine cannot be executed, which is configured as follows.

複数個の実行単位1aから構成されるユーザプログラム
1からの割出しによって制御パラメータを受は取り、オ
ペレーティングシステム(OS)の下位レベルのサービ
スを実行するカーネルプリミティブルーチン2が、特定
の要因によってその実行ができなくなったとき、 上記ユーザプログラム1の該割出しを生起した実行単位
1aを中断する手段■と、 該中断要因が解決されたとき、該カーネルプリミティブ
ルーチン2が行う残りの処理を別の実行単位2aで行う
手段■と、 該別の実行単位2aで上記カーネルプリミティブルーチ
ン2の残りの処理を終了した時点で、上記中断している
ユーザプログラム1の実行単位1aに再開する手段■と
を設けて、 上記カーネルプリミティブルーチン2によるユーザプロ
グラム1の中断・再開処理を行うように構成する。
A kernel primitive routine 2 that receives and receives control parameters as determined from a user program 1 consisting of a plurality of execution units 1a and executes lower-level services of the operating system (OS) is executed depending on a specific factor. means for interrupting the execution unit 1a that caused the index of the user program 1, when the cause of the interrupt is resolved; A means (2) for performing the execution in the unit 2a, and a means (2) for restarting the suspended execution unit 1a of the user program 1 when the remaining processing of the kernel primitive routine 2 is completed in the other execution unit 2a are provided. Then, the kernel primitive routine 2 is configured to suspend and resume the user program 1.

〔作用〕[Effect]

即ち、本発明によれば、複数個の実行単位から構成され
るユーザプログラムからの割出しによって制御パラメー
タを受は取り、オペレーティングシステム(OS)の下
位レベルのサービスを実行するカーネルプリミティブル
ーチンが、特定の要因(例えば、仮想記憶装置をアクセ
スしてページフォルトの発生)によって、その実行がで
きなくなったときのユーザプログラムの中断・再開方式
において、該ユーザプログラムが、例えば、仮想記憶領
域の実記憶固定処理、実記憶固定解除処理を行わずに済
むように、以下の3つの手段を設ける。
That is, according to the present invention, a kernel primitive routine that receives and receives control parameters as determined from a user program consisting of a plurality of execution units and executes lower-level services of an operating system (OS) can In the method for suspending and resuming a user program when execution is no longer possible due to factors such as accessing a virtual storage device and causing a page fault, the user program may, for example, fix the virtual storage area to real memory. The following three means are provided in order to eliminate the need for processing and real memory fixing release processing.

■ カーネルプリミティブルーチンが特定の命令を実行
して、仮想記憶領域に実記憶が割り当てられているか否
かをチエツクし、若し、実記憶が割り当てられていなけ
れば、ユーザプログラムの実行単位(1’OP)を中断
すると共に、特定のサービスプログラムを呼び出して、
上記仮想記憶領域に実記憶を割り当てさせる手段。
■ A kernel primitive routine executes a specific instruction to check whether real memory is allocated to the virtual storage area, and if real memory is not allocated, the execution unit of the user program (1' OP) and call a specific service program,
Means for allocating real storage to the virtual storage area.

■ カーネルプリミティブルーチンが、該仮想記憶領域
をアクセスした後に行う筈の処理を、本発明の別の実行
単位(KDU)で行う手段。
(2) Means for performing the processing that the kernel primitive routine is supposed to perform after accessing the virtual storage area in another execution unit (KDU) of the present invention.

■ 上記別の実行単位(KDU)でカーネルプリミティ
ブルーチンのやり残した処理を行った後、■で中断状態
にしたユーザプログラムを再開させる手段。
(2) A means for restarting the user program suspended in (2) after performing the unfinished processing of the kernel primitive routine in the other execution unit (KDU).

以下において、それぞれの手段の機能作用を説明する。In the following, the functional effect of each means will be explained.

■ ユーザプログラムの実行単位(これを、Proce
ss 0perator : r’OPと呼ぶ)に、「
カーネルプリミティブルーチン中断状態」と云う表示を
行う。
■ Execution unit of the user program (this is
ss 0perator: called r'OP), "
``Kernel primitive routine suspended state'' is displayed.

そして、この表示があると、上記PoPはディスバッチ
禁止状態になる。
When this display is displayed, the PoP enters a disbatch prohibited state.

具体的には、オペレーティングシステム(OS)中の「
核」と呼ばれる基本プログラムが、該カーネルプリミテ
ィブルーチンで、中断事象が発生した場合に、この表示
を行い、該実行単位(POP)をディスバッチ禁止状態
にする。
Specifically, "
A basic program called "kernel" displays this indication when an interruption event occurs in the kernel primitive routine, and places the execution unit (POP) in a disbatch-disabled state.

更ニ、上記POPの中断によって特定のサービスプログ
ラムが起動され、該カーネルプリミティブルーチンのア
クセスする仮想記憶領域に実記憶を割り当てて該中断事
象を解決し、次の■の動作に移行する。
Furthermore, a specific service program is activated by the interruption of the POP, real storage is allocated to the virtual storage area accessed by the kernel primitive routine, the interruption event is resolved, and the process moves to the next operation (2).

■ 本発明においては、該カーネルプリミティブルーチ
ンでやり残した処理を行う為の再開処理の実行単位(こ
れを、カーネルディスパッチングユニット(KDU)と
呼ぶ)を用意する。
(2) In the present invention, an execution unit for restart processing (this is called a kernel dispatching unit (KDU)) is prepared for carrying out unfinished processing in the kernel primitive routine.

カーネルプリミティブルーチンにおいては、上記中断事
象が発生する可能性のある所(例えば、仮想記憶領域を
アクセスする所)は、予め、分かっており、更に、再開
ルーチンで行う処理も分かっているので、該Knuをシ
ステム作成時に静的にオペレーティングシステム(OS
)内に組み込んでおくことができる。
In kernel primitive routines, the locations where the above-mentioned interruption event may occur (for example, locations where virtual storage areas are accessed) are known in advance, and the processing to be performed in the restart routine is also known. Knu is statically set to the operating system (OS) when the system is created.
).

即ち、上記オペレーティングシステム(OS)内にカー
ネルプリミティブルーチン内で中断事象が起こる可能性
のある場所に対応して、複数個のKDUを用意しておく
That is, a plurality of KDUs are prepared in the operating system (OS) corresponding to locations where an interruption event may occur in a kernel primitive routine.

又、該カーネルプリミティブルーチンがやり残した処理
を行う上記再開ルーチンに、該やり残した処理を行う為
の情報(制御パラメータ:どのPOPか、アクセスする
仮想記憶アドレス等)を受は渡す為の領域(KDUEと
呼ぶ)を用意し、上記KDUはmKouEが1個以上繋
がった状態で、上記再開ルーチンの実行単位となる。
Also, an area for receiving and passing information (control parameters: which POP, virtual memory address to access, etc.) for performing unfinished processing to the restart routine that performs unfinished processing by the kernel primitive routine. A KDUE (referred to as a KDUE) is prepared, and the KDU, in which one or more mKouEs are connected, becomes the unit of execution of the restart routine.

上記、KDUにはr KDUEがスケジュールされてい
る」と云う表示(スケジュール表示)を行う為のフィー
ルドを、例えば、1ビツト用意しておく。
For example, a 1-bit field is prepared for displaying (schedule display) that "r KDUE is scheduled for the above-mentioned KDU."

そして、上記「核」はKDUにKDUE +Nぐと同時
に、このスケジュール表示を行い、以降、KDUEがス
ケジュールされる毎に、上書きの形で、具体的には、1
つ前のスケジュールされたKDUEを特定の領域に退避
して、今回スケジュールされた[1UE(制御パラメー
タ)を該領域に設定し、該スケジュール表示を°オン゛
 とする。
Then, the above-mentioned "core" displays this schedule at the same time as KDUE +N to KDU, and from then on, every time KDUE is scheduled, it is overwritten, specifically, 1
The previously scheduled KDUE is saved to a specific area, the currently scheduled [1UE (control parameter) is set in the area, and the schedule display is turned on.

このように構成されているので、該「核」は該スケジュ
ール表示の前の状態、即ち、上記退避領域を見て、既に
、スケジュールされている時には、何もしない(即ち、
既に、ディスパッチキューに乗っているので何時でも実
行できる状態にある為、何もしない)が、逆にスケジュ
ール表示がないと、始めて再開ルーチンの実行単位(K
DU)になったとして、該KDUをディスパッチキュー
に乗せ、実行可能の状態にする。
With this configuration, the "core" looks at the state before displaying the schedule, that is, the save area, and does nothing when it is already scheduled (i.e.,
Since it is already on the dispatch queue and can be executed at any time, it does nothing), but on the other hand, if there is no schedule display, the execution unit of the restart routine (K
DU), the KDU is placed on the dispatch queue and made executable.

■ 再開ルーチンの実行単位であるKDDで、カーネル
プリミティブルーチンの残した処理が終了すると、「核
」は■で設定した「カーネルプリミティブルーチン中断
状態」と云う表示を消し、該中断状態になっていたPO
Pをディスパッチ可能状態にする。
■ When the remaining processing of the kernel primitive routine is completed in KDD, which is the execution unit of the restart routine, the "kernel" disappears the display of "Kernel primitive routine suspended state" set in ■ and enters the suspended state. P.O.
Make P ready for dispatch.

このように、ユーザプログラムが、オペレーティングシ
ステム(OS)のカーネルプリミティブルーチンに処理
を依頼して、該カーネルプリミティブルーチンで中断事
象が発生した場合、該カーネルプリミティブルーチンに
ユーザプログラムの実行単位を中断させる手段を持たせ
、該中断した原因が解決した後、別の実行単位(KDU
)で、該残りの処理を行い、その実行単位(KDU)で
動作するプログラムに、該中断されているユーザプログ
ラムを再開させるようにしたものであるので、システム
が持つ多数のユーザプログラムはカーネルプリミティブ
ルーチンに処理を依頼する前の仮想領域の実記憶固定と
、該カーネルプリミティブルーチンから処理が戻った後
の、上記実記憶固定の解除と云う処理を削除でき、シス
テム全体としての処理能力が大幅に向上すると云う効果
がある。
In this way, when a user program requests processing to a kernel primitive routine of an operating system (OS) and an interruption event occurs in the kernel primitive routine, a means for causing the kernel primitive routine to interrupt the execution unit of the user program is provided. After the cause of the interruption is resolved, another execution unit (KDU
), the remaining processing is performed, and the program running in that execution unit (KDU) is made to restart the suspended user program. The process of fixing the real memory of the virtual area before requesting processing to a routine and releasing the real memory fixation mentioned above after the process returns from the kernel primitive routine can be eliminated, greatly increasing the processing capacity of the entire system. It has the effect of improving.

〔実施例〕〔Example〕

以下本発明の実施例を図面によって詳述する。 Embodiments of the present invention will be described in detail below with reference to the drawings.

前述の第1図が本発明のカーネルプリミティブルーチン
による中断・再開方式の原理図であり、第2図が本発明
の一実施例を模式的に示した図であって、第1図、第2
図に示した手段■〜■が本発明を実施するのに必要な手
段である。尚、全図を通して同じ符号は同じ対象物を示
している。
The above-mentioned FIG. 1 is a principle diagram of the suspension/resumption method using the kernel primitive routine of the present invention, and FIG. 2 is a diagram schematically showing an embodiment of the present invention.
Means ① to ① shown in the figure are the means necessary to carry out the present invention. Note that the same reference numerals indicate the same objects throughout the figures.

以下、第1図、第2図によって、本発明のカーネルプリ
ミティブルーチンによるユーザプログラムの中断・再開
方式を説明する。
Hereinafter, a method for suspending and resuming a user program using the kernel primitive routine of the present invention will be explained with reference to FIGS. 1 and 2.

第2図の模式図においては、ユーザプログラム1がオペ
レーティングシステム(OS)の中のカーネルプリミテ
ィブルーチン2に特定の処理を依頼したとき、該カーネ
ルプリミティブルーチン2が特定の命令を実行して、仮
想記憶領域3に実記憶が割り当てられているか否かをチ
エツクし、割り当てられていなかった場合のオペレーテ
ィングシステム(OS)内での動作について示している
In the schematic diagram of FIG. 2, when a user program 1 requests a specific process to a kernel primitive routine 2 in an operating system (OS), the kernel primitive routine 2 executes a specific instruction and stores data in virtual memory. It is checked whether or not real memory is allocated to area 3, and the operation within the operating system (OS) when real memory is not allocated is shown.

ステップ10:先ず、カーネルプリミティブルーチン2
において、前述の中断事象が発生すると、KDUB (
再開時の制御パラメータを格納する領域)をオペレーテ
ィングシステム(O8)の「核」に獲得依願し、該「核
」が持っている図示していないセルプールから、特定の
領域をKDUEとして獲得する。 (ステップ40参照
) ステップ11:該「核」にユーザプログラムの実行単位
(1’or’) 1aの中断依願をすると、該「核」は
該POP 1aに「カーネルプログラム中断状態」と云
う表示■を行い、該POP 1aをディスパッチ禁止状
態にする。(ステップ41参照)ステップ12ニステツ
プ10で獲得したKDUEに再開情報(制御パラメータ
: どのPOPか、ページフォルトになった仮想記憶ア
ドレス等)を設定する。
Step 10: First, kernel primitive routine 2
, when the aforementioned interruption event occurs, KDUB (
A request is made to the "core" of the operating system (O8) to acquire an area (area for storing control parameters upon restart), and a specific area is acquired as a KDUE from a cell pool (not shown) possessed by the "core". (Refer to Step 40) Step 11: When a user program execution unit (1'or') 1a is requested to be suspended by the "core", the "core" displays a message "Kernel program suspended state" in the POP 1a. and puts the POP 1a into a dispatch disabled state. (See step 41) Step 12 Set restart information (control parameters: which POP, virtual memory address where the page fault occurred, etc.) to the KDUE acquired in step 10.

ステップ13:オペレーティングシステム(OS)内に
ある特定のサービスプログラム(中断の解決者)に中断
の解決を依頼する。
Step 13: Request a specific service program (interruption resolver) within the operating system (OS) to resolve the interruption.

ステップ20:該サービスプログラムにおいては、上記
再開情報を参照して、ページフォルトの発生した仮想記
憶アドレスを認識し、該仮想記憶に実記憶を割り当て、
上記カーネルプリミティブルーチン2における中断事象
の解決を行う。
Step 20: The service program refers to the restart information, recognizes the virtual memory address where the page fault has occurred, and allocates real memory to the virtual memory;
The interruption event in the kernel primitive routine 2 is resolved.

ステップ21:中断事象が無くなったので、「核」に再
開ルーチンの起動を依頼■する。
Step 21: Since there are no interruption events, request the "core" to start the restart routine.

ステップ42,43.44 :  r核」は上記中断解
決者から上記KDUEのアドレスを受は取り、そのKD
UEが示すKDU 2aを求めて、該KDU 2aにス
ケジュール表示が無ければ、該KDUEを当該KDU 
2aに繋ぐと同時に、該KDU 2aにスケジュール表
示を行い、該KDU 2aをディスパッチキューに乗せ
るが、既に、該KDtL 2aにスケジュール表示があ
る場合には、該KDU 2aはディスパッチキューに乗
っているので、KDUEを繋ぐ処理のみを行う。
Steps 42, 43.44: The r-nucleus receives the address of the KDUE from the interrupt resolver and assigns the KDUE.
Find the KDU 2a indicated by the UE, and if there is no schedule display on the KDU 2a, select the KDU 2a from the UE.
At the same time as connecting to KDU 2a, a schedule is displayed on the KDU 2a and the KDU 2a is placed on the dispatch queue. However, if the schedule is already displayed on the KDtL 2a, the KDU 2a is already on the dispatch queue. , KDUE only.

該KDU 2aがディスパッチされると、該KDU 2
aに対応した再開ルーチンが起動される。
When the KDU 2a is dispatched, the KDU 2a
A restart routine corresponding to a is activated.

ステップ30:該再開ルーチンは「核」に対して、KD
UEに格納されている再開情報の取り出しを依頼し、「
核」は複数個のKDU、KDUEの中から、該KDU 
2aに対応するKDUEを取り出し、再開ルーチンに渡
す。
Step 30: The restart routine sets the KD
Request retrieval of resume information stored in the UE, and
"Nuke" is a KDU selected from among multiple KDUs and KDUEs.
The KDUE corresponding to 2a is retrieved and passed to the restart routine.

そして、「核」は、最後のKDUEの取り出しを終了し
、もう、KDU 2aにKDUEが繋がっていないこと
を確認して、該KDU 2aのスケジュール表示を消す
。即ち、該スケジュール表示が“オン゛である間は、再
開処理を必要とするKDUが存在することを示している
。(ステップ45,46.47参照)ステップ31,3
2 : r核」からKDUEを受は取ると、該KDUH
に格納されている再開情報に基づいて、カーネルプリミ
ティブルーチン2の残り処理を実行する。
Then, the "core" finishes taking out the last KDUE, confirms that no KDUE is connected to the KDU 2a, and erases the schedule display for the KDU 2a. That is, while the schedule display is "on", it indicates that there is a KDU that requires restart processing (see steps 45, 46, and 47).Steps 31 and 3
2: When receiving KDUE from "r nucleus", the corresponding KDUH
The remaining processing of the kernel primitive routine 2 is executed based on the restart information stored in the kernel primitive routine 2.

ステップ33:再開ルーチンにおいては、カーネルプリ
ミティブルーチン2の残りの処理、部ち、仮想記憶領域
に対するアクセス、その他を終了したので、ユーザプロ
グラム1に復帰する為に、上記ユーザプログラム1の中
断されている実行単位(POP) 1aの再開依頼■を
「核」に行う。
Step 33: In the restart routine, since the remaining processes, parts, accesses to virtual storage areas, etc. of the kernel primitive routine 2 have been completed, in order to return to the user program 1, the suspended user program 1 is restarted. Execution unit (POP) 1a's restart request ■ is made to the "core".

ステップ48:「核」は再開ルーチンから、前にステッ
プ41において中断状態にしたPOP 1aの再開の依
頼を受けると、指定されたPOP 1aに表示されてい
る「カーネルプリミティブ中断状態」の表示を解除して
実行可能(ディスパッチ可能)状態にし、ユーザプログ
ラム1の処理の再開可能な状態にする。
Step 48: When the "kernel" receives a request from the restart routine to restart POP 1a that was previously suspended in step 41, the "kernel primitive suspended state" displayed on the specified POP 1a is canceled. The user program 1 is put into an executable (dispatchable) state, and the processing of the user program 1 is put into a restartable state.

ステップ34:再開ルーチンにおいては、ステップ30
で取り出したKDUEの返却依頼を「核」に依頼する。
Step 34: In the resume routine, step 30
Request the return of the KDUE that was taken out to "Nuke".

ステップ49:「核」は該返却依顧のあったKDLIE
を元のセルプールに戻す。
Step 49: “Nuclear” is the KDLIE that requested the return.
is returned to its original cell pool.

ステップ31において、もうKDUEの繋がってない状
態になると、再開すべきKDU 2aがないと認識して
、図示していないディスパッチャ−に戻る。
In step 31, when the KDUE is no longer connected, it is recognized that there is no KDU 2a to restart, and the process returns to the dispatcher (not shown).

ディスパッチャ−では、KDU 2a、又はPOP 1
aのディスパッチキューを見て、該キューに投入されて
いるタスクがあると、即ち、KDU 2aがあると、再
度上記再開ルーチンが起動されるし、POP 1aがあ
ると、ユーザプログラムの再開処理が行われる。
At the dispatcher, KDU 2a or POP 1
Looking at the dispatch queue of a, if there is a task submitted to the queue, that is, if there is a KDU 2a, the above restart routine will be started again, and if there is a POP 1a, the restart processing of the user program will be restarted. It will be done.

尚、上記の実施例においては、ユーザプログラムがカー
ネルプリミティブルーチンに特定処理を依願して、発生
した中断事象として、仮想記憶アクセス時のページフォ
ルトを例にしたが、これに限定されないことは云う迄も
ないことである。
In the above embodiment, a page fault when accessing virtual memory is used as an example of an interruption event that occurs when a user program requests a specific process to a kernel primitive routine, but it goes without saying that this is not limited to this. There is no such thing.

このように、本発明は、ユーザプログラムが、オペレー
ティングシステム(OS)の低位レベルの処理を実行す
るカーネルプリミティブルーチンに特定の処理を依頼し
て、該カーネルプリミティブルーチンに中断事象、例え
ば、ページフォルトが発生した場合、該オペレーティン
グシステム(O8)の「核」において、該ユーザプログ
ラムの実行単位であるPOPに中断表示を行い、該カー
ネルプリミティブルーチンとは別のサービスプログラム
に、該中断事象を解決させ(上記、ページフォルトの場
合には、実記憶の割り当てを行い)た後、再開ルーチン
を起動して、その実行単位であるKDUに該カーネルプ
リミティブルーチンの残りの処理を実行させた後、該K
DUから該「核」に上記POPの中断表示を消させ、自
律的に再開させるようにした所に特徴がある。
As described above, the present invention allows a user program to request a specific process to a kernel primitive routine that executes low-level processing of an operating system (OS), and to cause the kernel primitive routine to receive an interruption event, such as a page fault. If this occurs, the "core" of the operating system (O8) displays an interruption in the POP, which is the execution unit of the user program, and causes a service program other than the kernel primitive routine to resolve the interruption event ( In the case of a page fault, the restart routine is started and the KDU, which is the execution unit, executes the remaining processing of the kernel primitive routine.
The feature is that the DU causes the "nucleus" to erase the interruption display of the POP and restart it autonomously.

〔発明の効果〕〔Effect of the invention〕

以上、詳細に説明したように、本発明のカーネルプリミ
ティブルーチンによる中断・再開方式は、ユーザプログ
ラムが、オペレーティングシステム(OS)のカーネル
プリミティブルーチンに処理を依頼して、該カーネルプ
リミティブルーチンで中断事象が発生した場合、該カー
ネルプリミティブルーチンにユーザプログラムの実行単
位を中断させる手段を持たせ、該中断した原因が解決し
た後、別の実行単位(KDU)で、該残りの処理を行い
、その実行単位(KDU)で動作するプログラムに、該
中断されているユーザプログラムを再開させるようにし
たものであるので、システムが持つ多数のユーザプログ
ラムはカーネルプリミティブルーチンに処理を依頼する
前の仮想領域の実記憶固定と、該カーネルプリミティブ
ルーチンから処理が戻った後の、上記実記憶固定の解除
と云う処理を削除でき、システム全体としての処理能力
が大幅に向上すると云う効果がある。
As explained in detail above, in the suspension/resumption method using kernel primitive routines of the present invention, a user program requests processing to a kernel primitive routine of an operating system (OS), and when an interruption event occurs in the kernel primitive routine, If this occurs, the kernel primitive routine has a means to interrupt the execution unit of the user program, and after the cause of the interruption is resolved, the remaining processing is performed in another execution unit (KDU), and the execution unit is (KDU) is configured to restart the suspended user program, so many user programs in the system are stored in real memory in the virtual area before requesting processing to the kernel primitive routine. The process of fixing and releasing the real memory fixation after the process returns from the kernel primitive routine can be eliminated, which has the effect of greatly improving the processing capacity of the entire system.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明のカーネルプリミティブルーチンによる
中断・再開方式の原理図。 第2図は本発明の一実施例を模式的に示した図。 第3図は従来のカーネルプリミティブルーチンによる中
断・再開方式を説明する図。 である。 図面において、 1はユーザプログラム。 1aはユーザプログラムの実行単位(POP) 。 2はカーネルプリミティブルーチン。 2aは再開ルーチンの実行単位(KDU) 。 3は仮想記憶領域。 10〜13,20.21.30〜34.40〜49は処
理ステップ。 ■〜■は本発明の手段。 をそれぞれ示す。 小i月のカーネ2しブリミーラ“イアシレーテン(=J
己大PM・f+開方代の原理囚 勇≧   1   図
FIG. 1 is a diagram showing the principle of the suspension/resumption method using the kernel primitive routine of the present invention. FIG. 2 is a diagram schematically showing an embodiment of the present invention. FIG. 3 is a diagram illustrating a conventional suspension/resumption method using kernel primitive routines. It is. In the drawing, 1 is a user program. 1a is a user program execution unit (POP). 2 is a kernel primitive routine. 2a is the execution unit (KDU) of the restart routine. 3 is a virtual storage area. 10-13, 20.21.30-34.40-49 are processing steps. ■ to ■ are means of the present invention. are shown respectively. Little Moon's Carne 2 and Burimira "Iasireten (=J
Self-Large PM・f+Kaihoudai’s principle prisoner courage≧ 1 Figure

Claims (1)

【特許請求の範囲】 複数個の実行単位(1a)から構成されるユーザプログ
ラム(1)からの割出しによって制御パラメータを受け
取り、オペレーティングシステム(OS)の下位レベル
のサービスを実行するカーネルプリミティブルーチン(
2)が、特定の要因によって、その実行ができなくなっ
たとき、 上記ユーザプログラム(1)の該割出しを生起した実行
単位(1a)を中断する手段([1])と、該中断要因
が解決されたとき、該カーネルプリミティブルーチン(
2)が行う残りの処理を別の実行単位(2a)で行う手
段([2])と、 該別の実行単位(2a)で上記カーネルプリミティブル
ーチンの残りの処理を終了した時点で、上記中断してい
るユーザプログラム(1)の実行単位(1a)に再開す
る手段([3])とを設けて、上記カーネルプリミティ
ブルーチン(2)によるユーザプログラム(1)の中断
・再開処理を行うことを特徴とするカーネルプリミティ
ブルーチンによる中断・再開方式。
[Scope of Claims] A kernel primitive routine (1a) that receives control parameters by indexing from a user program (1) consisting of a plurality of execution units (1a) and executes lower-level services of an operating system (OS).
2), when execution becomes impossible due to a specific factor, means ([1]) for interrupting the execution unit (1a) that caused the indexing of the user program (1), and When resolved, the kernel primitive routine (
means ([2]) for performing the remaining processing performed by step 2) in another execution unit (2a); A restart means ([3]) is provided in the execution unit (1a) of the user program (1) that is running, and the suspension/resumption process of the user program (1) is performed by the kernel primitive routine (2). The feature is a suspension/resumption method using kernel primitive routines.
JP2787488A 1988-02-09 1988-02-09 Interruption/restart system using kernel primitive routine Pending JPH01204154A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2787488A JPH01204154A (en) 1988-02-09 1988-02-09 Interruption/restart system using kernel primitive routine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2787488A JPH01204154A (en) 1988-02-09 1988-02-09 Interruption/restart system using kernel primitive routine

Publications (1)

Publication Number Publication Date
JPH01204154A true JPH01204154A (en) 1989-08-16

Family

ID=12233043

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2787488A Pending JPH01204154A (en) 1988-02-09 1988-02-09 Interruption/restart system using kernel primitive routine

Country Status (1)

Country Link
JP (1) JPH01204154A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0625749A1 (en) * 1993-05-17 1994-11-23 Siemens Aktiengesellschaft Operating method for a computer

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0625749A1 (en) * 1993-05-17 1994-11-23 Siemens Aktiengesellschaft Operating method for a computer

Similar Documents

Publication Publication Date Title
US6021425A (en) System and method for optimizing dispatch latency of tasks in a data processing system
CN100570565C (en) Operating system service method and system based on strategy are provided in supervisory routine
US7426732B2 (en) Placing a task of a multithreaded environment in a known state
US5386561A (en) Method of integrated system load control through dynamic time-slicing in a virtual storage environment
US9798595B2 (en) Transparent user mode scheduling on traditional threading systems
US4914570A (en) Process distribution and sharing system for multiple processor computer system
US7962910B2 (en) Selective generation of an asynchronous notification for a partition management operation in a logically-partitioned computer
CN100568182C (en) The method and system of distribution work in the data handling system of subregion logically
US7251814B2 (en) Yield on multithreaded processors
JPH07311749A (en) Multiprocessor system and kernel substituting method
EP0547991A2 (en) Adaptive method for starting tasks in a multi-tasking operating system
US20070143436A1 (en) Method, apparatus and program storage device for providing light weight system calls to improve user mode performance
KR102003721B1 (en) GPU Kernel transactionization method and computing device
JPH01204154A (en) Interruption/restart system using kernel primitive routine
EP0544822B1 (en) Dual level scheduling of processes
Arnold et al. Design of tightly-coupled multiprocessing programming
Gait Scheduling and process migration in partitioned multiprocessors
JPH0619858A (en) Automatic return system for common resources
Wickham et al. Research into the Development of the RHODOS Multi-threaded Microkernel
Helbig et al. SUMC multiprocessing operating system (MPOS) requirements document
JPH052496A (en) Multi-task monitor
Edwards Concurrency in Java and Real-Time Operating Systems
Seelye et al. The effect of multiprocessor architectures on Ada application software development
Lister et al. The System Nucleus
JPS61251948A (en) Information processor