JPH0736713A - Program execution management device - Google Patents

Program execution management device

Info

Publication number
JPH0736713A
JPH0736713A JP17863793A JP17863793A JPH0736713A JP H0736713 A JPH0736713 A JP H0736713A JP 17863793 A JP17863793 A JP 17863793A JP 17863793 A JP17863793 A JP 17863793A JP H0736713 A JPH0736713 A JP H0736713A
Authority
JP
Japan
Prior art keywords
thread
authority
information
program
execution
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.)
Granted
Application number
JP17863793A
Other languages
Japanese (ja)
Other versions
JP3585510B2 (en
Inventor
Atsushi Fukumoto
淳 福本
Toshio Okamoto
利夫 岡本
Shiyoukou Shin
承昊 申
Hideki Yoshida
英樹 吉田
Toshinari Takahashi
俊成 高橋
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP17863793A priority Critical patent/JP3585510B2/en
Publication of JPH0736713A publication Critical patent/JPH0736713A/en
Priority to US08/779,118 priority patent/US5892944A/en
Application granted granted Critical
Publication of JP3585510B2 publication Critical patent/JP3585510B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PURPOSE:To perform sufficient protection with flexibility by the same method in thread operation instructions among threads sharing the same virtual address space by providing a list for registering information on from which thread operations can be performed to the respective threads. CONSTITUTION:First, the information of an operation thread ID and a memory area ID for which a system call is executed is obtained respectively from a thread ID storage part 6 and a memory area ID storage part 5. The table of a thread operation authority storage part 7 is referred to based on the information and a pertinent entry is searched. Then, the information of a part pertinent to intra-thread state read authority within the part for indicating the operation authority of the found entry is read and whether or not read is permitted is judged. The judgement is performed in an operation authority judging part 12. When it is permitted by the judgement, the referring operation of a thread management table for reading the internal state of the permitted thread is executed to an object thread in a thread state reference execution part 16.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、計算機システム中での
プログラム実行スレッドの実行を管理する装置に関する
ものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an apparatus for managing the execution of program execution threads in a computer system.

【0002】[0002]

【従来の技術】近年マイクプロセッサの性能向上により
複数の小型のコンピュータをネットワークでつないで使
用することが通常のこととなった。またマイクロプロセ
ッサの使用範囲の拡大により、オペレーティングシステ
ム(OS)はさまざまな適用範囲に対応することが必要
であり、柔軟な構成をとることができることが求められ
ている。このため、従来は、利用用途やハードウェアの
種類により複数のOSを使いわけてきた。1つのOSで
広い用途をカバーするためにマイクロカーネル化させた
オペレーティングシステムの技術がある。これは、必要
最小限の機能のみをこのマイクロカーネルにもたせ、そ
れ以外の機能は、マイクロカーネル外のユーザプログラ
ムとして提供するものである。こうすることで、従来の
複数のOS機能を1つのマイクロカーネル上にユーザプ
ログラムの形で提供することが可能となり、柔軟な構成
が実現できる。
2. Description of the Related Art In recent years, it has become common to use a plurality of small computers connected to a network by improving the performance of a microphone processor. Further, due to the expansion of the use range of the microprocessor, the operating system (OS) is required to support various application ranges, and it is required that the operating system (OS) can have a flexible configuration. For this reason, conventionally, a plurality of OSs have been used properly depending on the purpose of use and the type of hardware. There is an operating system technology that is microkernelized in order to cover a wide range of applications with one OS. This gives only the minimum necessary functions to this microkernel, and the other functions are provided as a user program outside the microkernel. By doing so, it is possible to provide a plurality of conventional OS functions in the form of a user program on one microkernel, and a flexible configuration can be realized.

【0003】このようなオペレーティングシステムで
は、プログラム実行の制御対象としてプロセスまたはス
レッドと呼ばれる制御単位が用いられる。個々のスレッ
ドは独立にプロセッサのレジスタ値やスタックなどを持
ち、オペレーティングシステムによりプロセッサを割り
当てられた間だけプログラムを実行し、一定時間後また
はハードウェア割り込みなどが発生したときにオペレー
ティングシステムはスレッドに対するプロセッサの割り
当てを解除して他のスレッドへプロセッサを割り当て
る。個々のスレッドは独立したレジスタ値を持っている
ため、仮想的に並列に動いているプロセッサであるとみ
なすことができる。
In such an operating system, a control unit called a process or thread is used as a control target of program execution. Each thread has its own register value, stack, etc. of the processor, executes the program only while the processor is allocated by the operating system, and after a certain period of time or when a hardware interrupt occurs, the operating system is the processor for the thread. To deallocate the and allocate the processor to another thread. Since each thread has an independent register value, it can be regarded as a processor that operates virtually in parallel.

【0004】このようなオペレーティングシステム上で
スレッド自体を操作したいとき、すなわちスレッドの実
行を一時停止したり再開したりしたいときやスレッドを
強制的に消滅させたいとき、またはスレッドの情報(レ
ジスタ値やスタック等の内部状態)を調べたいときのた
め、オペレーティングシステムはスレッド操作命令群を
備えており、あるスレッドから別のスレッドを操作する
ことが可能である。このようなスレッド操作命令群は、
ユーザプログラムからシステムコールとしてOSに指示
し、利用できるようになっている。
When it is desired to operate the thread itself on such an operating system, that is, to suspend or resume the execution of the thread, or to forcibly delete the thread, or information on the thread (register value or In order to check the internal state of the stack), the operating system is provided with a thread operation instruction group, and one thread can operate another thread. Such a thread operation instruction group is
It can be used by instructing the OS as a system call from the user program.

【0005】このようなスレッド操作命令があるとき
に、どのスレッドからでもスレッド操作命令を発行でき
るようにすると、不当な操作もできることになってしま
うので保護の機能が必要になる。たとえば、スレッドを
強制的に消滅させるようなことは特定の権限を持つスレ
ッドだけから行えるようにすることが必要になる。
[0005] When such a thread operation instruction is present, if a thread operation instruction can be issued from any thread, an illegal operation can be performed, so a protection function is required. For example, it is necessary to allow a thread to be forcibly killed only by a thread with a specific privilege.

【0006】さらに、仮想空間が複数あり、仮想空間ご
とに1つのプログラムやデータが配置されており、スレ
ッドもその空間内しか動きまわれないようなMach
(参考文献:「分散オペレ−ティングシステム」前川守
他編、共立出版)をはじめとするシステムの場合、同じ
空間内に存在するスレッドの保護を同一とし、スレッド
の保護をメモリ空間の保護に依存する方法をとってい
る。しかし、それらのスレッドを区別して保護すること
はできない。また、単一仮想空間のシステムのように、
1つのアドレス空間内にすべてのプログラムが配置さ
れ、複数のスレッドが存在する場合、スレッドの保護は
メモリ保護だけではなくオペレーティングシステムによ
り権限の設定が必要になる。
Further, there is a plurality of virtual spaces, one program and one data are arranged in each virtual space, and the threads are moved only within the space.
(Reference: "Distributed operating system" Mamoru Maekawa et al., Kyoritsu Shuppan) In the case of systems such as the same thread protection in the same space, the thread protection depends on the memory space protection How to do it. However, those threads cannot be protected separately. Also, like a single virtual space system,
When all programs are arranged in one address space and there are multiple threads, thread protection requires not only memory protection but also permission setting by the operating system.

【0007】ひとつの方法は、スレッドの所有者を決め
て、同一の所有者のスレッド間ではスレッドの操作を許
す方式であり、Unixオペレーティングシステムのs
ignalはこれに相当する。しかしこれでは同一の所
有者のスレッド間の保護の柔軟性に欠け、さらに、操作
権限を他の所有者のスレッドに渡すことができない。ま
た、複数の所有者のスレッドからのスレッド操作を可能
にしたりできないなど、柔軟にスレッドの操作ができる
ようなスレッド保護機能が不足していた。
[0007] One method is to determine the owner of a thread and allow the threads to operate between threads of the same owner.
signal corresponds to this. However, this lacks the flexibility of protection between threads of the same owner, and further, cannot pass the operation privilege to threads of other owners. In addition, there is a lack of a thread protection function that enables flexible thread operation, such as enabling or disabling thread operations from threads owned by multiple owners.

【0008】[0008]

【発明が解決しようとする課題】このように、従来のス
レッド実行管理メカニズムでは、操作権限の設定に柔軟
性に欠けたか、または、同一の仮想アドレス空間を共有
しているスレッド間では保護がなかったか、または制約
が強かった。
As described above, in the conventional thread execution management mechanism, there is no flexibility in setting the operation authority, or there is no protection between threads sharing the same virtual address space. It was or was very restricted.

【0009】以上のような状況に鑑み、本発明は別々の
仮想空間にいるスレッド間はもとより、同一仮想アドレ
ス空間を共有しているスレッド間でのスレッド操作命令
において、同一の方法で柔軟性があり、かつ十分な保護
を行うプログラム実行管理装置を提供することを目的と
する。
In view of the above situation, the present invention provides flexibility in the same method for thread operation instructions not only between threads in different virtual spaces but also among threads sharing the same virtual address space. It is an object of the present invention to provide a program execution management device that has sufficient protection.

【0010】[0010]

【課題を解決するための手段】本発明では個々のスレッ
ドに対してどのスレッドから操作できるかという情報を
登録したリストを設け、このリストにより許可されてい
る場合に限り、操作を許可する。また、メモリ保護機構
を用いたスレッド保護方法により、スレッド保護のため
に新規のハードウェアを必要とせずに実現できるように
なる。
According to the present invention, a list in which information indicating which thread can be operated is registered is provided for each thread, and the operation is permitted only when the list permits the operation. Also, the thread protection method using the memory protection mechanism can be realized without requiring new hardware for thread protection.

【0011】[0011]

【作用】本発明によれば、スレッドごとにアクセス可否
を示す情報があるので、不当な操作命令や誤った操作命
令からスレッドを保護することができる。さらに、この
ような誤った操作命令を検出できるため、プログラムの
誤り(バグ)の検出が容易になる。
According to the present invention, since there is information indicating the accessibility of each thread, the thread can be protected from an illegal operation instruction or an erroneous operation instruction. Further, since such an erroneous operation instruction can be detected, it becomes easy to detect an error (bug) in the program.

【0012】また、複数のスレッドが同一の論理アドレ
ス空間を共有し、当該論理アドレス空間が複数のセグメ
ントに分割されていて各セグメントに対してアクセス制
御リストを指定できるようなシステムにおいて、各スレ
ッドに対して一意に対応するセグメントを割り当て、そ
のセグメントのアクセス制御リストをスレッドのアクセ
ス制御リストとして用いることにより、新たにスレッド
操作の権限判定のための命令をプロセッサの命令セット
に追加せずとも高速なスレッドアクセス権限管理が可能
になる。
In a system in which a plurality of threads share the same logical address space, the logical address space is divided into a plurality of segments, and an access control list can be designated for each segment, By assigning a segment that uniquely corresponds to that and using the access control list of that segment as the access control list of the thread, it is possible to speed up the operation without adding a new instruction for thread operation authorization judgment to the processor instruction set. Thread access authority management becomes possible.

【0013】[0013]

【実施例】以下、図面を参照して本発明の一実施例につ
いて説明する。 (実施例1)本装置は、オペレーティングシステム(O
S)と呼ばれる計算機システム全体の実行制御を行うも
のの構成要素の一部である。OSは計算機資源であるメ
モリ、プロセッサ、周辺機器を管理し、また、ユーザプ
ログラムとよばれるユーザが指示した実務上の処理を行
うプログラムの実行を制御する。一つの装置上には複数
のユーザプログラムがのっており、OSがそれらのプロ
グラム間の制御も行う。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described below with reference to the drawings. (Embodiment 1) This apparatus uses an operating system (O
It is a part of the constituent elements of S) which controls the execution of the entire computer system. The OS manages memory, which is a computer resource, a processor, and peripheral devices, and controls the execution of a program called a user program that performs a practical process instructed by the user. A plurality of user programs are loaded on one device, and the OS also controls these programs.

【0014】ユーザプグラムは、実行上に必要となる物
理メモリなどの資源を確保したり、周辺機器にデータを
入出力したり、他のユーザプログラムにデータを転送し
たり、処理を依頼したり、実行を制御するためにOSに
対して指示を行うことが必要となる。このOSへ対する
指示をシステムコールを呼ばれる特別な手段で行う。本
実施例では、システムコールのうち、ユーザプログラム
の制御に関して説明する。
The user program secures resources such as a physical memory necessary for execution, inputs / outputs data to / from a peripheral device, transfers data to another user program, requests processing, It is necessary to give instructions to the OS to control the execution. The instruction to the OS is given by a special means called a system call. In this embodiment, of the system calls, the control of the user program will be described.

【0015】図1は、本実施例の全体構成図である。プ
ログラム記憶部1には、計算機で処理する命令が記述さ
れたユーザプログラムや処理する対象のデータ、計算機
で処理途中の結果を一時的に記憶するスタックなどのデ
ータがメモリ空間上に蓄えられている。メモリ空間は、
複数の領域に区切られて管理され、それぞれの領域に
は、お互いを区別するための識別子がついており、メモ
リ領域ごとにプログラムやデータやスタックを配置して
いる。
FIG. 1 is an overall configuration diagram of this embodiment. In the program storage unit 1, a user program in which instructions to be processed by a computer are written, data to be processed, data such as a stack for temporarily storing results during processing by the computer, and the like are stored in a memory space. . The memory space is
It is divided into a plurality of areas and managed, and each area is provided with an identifier for distinguishing each other, and programs, data, and stacks are arranged in each memory area.

【0016】さらに、プログラム記憶部1に蓄えられて
いるプログラムを解釈実行し、データを処理する実行主
体であるプロセッサ2と、プロセッサ内の状態を管理す
るスレッド管理部3、プロセッサの実行状態の切り替え
処理を行う実行状態切り替え部4がある。
Further, the processor 2 which is an execution subject for interpreting and executing the program stored in the program storage unit 1 and processing data, the thread management unit 3 for managing the state in the processor, and switching of the execution state of the processor There is an execution state switching unit 4 that performs processing.

【0017】プロセッサ2内には、命令の実行途中に一
時的に利用するレジスタ類、現在実行している命令のプ
ログラム記憶部での位置を示すためのプログラムカウン
タ(PC)、スタックデータの先頭位置を示すスタック
ポインタ(SP)などが存在し、これら一連のデータを
入れ替えることで、複数の別々のユーザプログラムの処
理を時分割で並行して進めることが可能となる。
In the processor 2, the registers temporarily used during the execution of the instruction, the program counter (PC) for indicating the position of the currently executed instruction in the program storage unit, the top position of the stack data There is a stack pointer (SP) or the like that indicates that, and by exchanging a series of these data, it is possible to perform processing of a plurality of different user programs in parallel in a time-sharing manner.

【0018】スレッドとは、上記プロセッサ内で使用す
る一連のデータのことを呼び、これを複数組用意し、こ
のスレッドを切り替えてプロセッサにセットし実際に実
行させることにより、時分割処理が可能となる。
A thread refers to a series of data used in the processor, and a plurality of sets of this data are prepared. By switching these threads and setting them in the processor to actually execute them, time division processing becomes possible. Become.

【0019】メモリ領域ID記憶部5は、現在実行中の
プログラムがプログラム記憶部1のどのメモリ領域に存
在しているかを、そのメモリ領域のIDとして記憶して
いるものである。これは、プロセッサ内のPCの値を利
用し、現在実行中のメモリ領域IDを求めて、記憶して
いる。このメモリ領域IDは、現在実行中のプログラム
IDとみなすこともできる。
The memory area ID storage unit 5 stores in which memory area of the program storage unit 1 the program currently being executed exists as an ID of the memory area. This uses the value of the PC in the processor to find and store the memory area ID that is currently being executed. This memory area ID can also be regarded as the program ID currently being executed.

【0020】スレッド管理部3の中にはスレッド管理テ
ーブルと呼ぶ表があり、プロセッサにセットするレジス
タの情報やその他の情報がスレッドごとに管理されてい
る。スレッドには、お互いを区別するためにスレッド識
別子(スレッドID)がついている。
The thread management unit 3 has a table called a thread management table, which manages information of registers set in the processor and other information for each thread. Threads are provided with thread identifiers (thread IDs) to distinguish them from each other.

【0021】実行状態切替部4は、現在プロセッサ上で
実行しているスレッド(スレッドID=1)を中断し、
スレッド(スレッドID=1)の状態をスレッド管理テ
ーブルの所定の位置に退避し、別のスレッド(スレッド
ID=2)を起動すべく、スレッド管理テーブルのスレ
ッド(スレッドID=2)の情報をプロセッサ1に再セ
ットし、スレッド(スレッドID=2)の実行を再開さ
せる。また、実行状態切替部4は、現在実行中のスレッ
ドIDをスレッドID記憶部6にセットする。実行状態
切替部4には、さらに、どのスレッドをセットし退避す
るかを決定するスレッドスケジューリング機構と、いつ
スケジューリングするか指示するタイマ部が存在する
(図示していない)。
The execution state switching unit 4 suspends the thread (thread ID = 1) currently being executed on the processor,
In order to save the state of the thread (thread ID = 1) to a predetermined position in the thread management table and start another thread (thread ID = 2), the information of the thread (thread ID = 2) in the thread management table is processed by the processor. It is reset to 1 and the execution of the thread (thread ID = 2) is resumed. The execution state switching unit 4 also sets the thread ID currently being executed in the thread ID storage unit 6. The execution state switching unit 4 further includes a thread scheduling mechanism that determines which thread is set and saved, and a timer unit that instructs when to schedule (not shown).

【0022】スレッド操作権限記憶部7は、スレッド保
護に関するテーブルを保持し、スレッドごとにスレッド
に対する操作を実行する権限がどうなっているかを記憶
するもので、操作権限判定部12で使用される。
The thread operation authority storage unit 7 holds a table relating to thread protection and stores the authority to execute an operation for each thread, and is used by the operation authority determination unit 12.

【0023】さて、システムコールとしてユーザプログ
ラムを実行しているあるスレッドが他のスレッドに対し
て制御しようとする例として、Thread_Get_
Statusシステムコールを発行する場合について説
明する。
As an example in which a thread executing a user program as a system call tries to control another thread, Thread_Get_
A case of issuing the Status system call will be described.

【0024】このシステムコールは、スレッドIDで指
示されたスレッドの状態、つまりそのスレッドのレジス
タ類の情報を、このシステムコ−ルの呼び出し元のユー
ザプログラムに通知するものである。 いま、スレッド
1(スレッドID=1)のスレッドがプログラムA(メ
モリ領域ID=A)を実行中、そこでスレッド2(スレ
ッドID=2)の情報をこのシステムコールで得ようと
したとする。C言語で記載されているプログラムAで
は、次のように記されている。
This system call notifies the user program of the caller of this system call about the state of the thread designated by the thread ID, that is, the information about the registers of the thread. Now, it is assumed that the thread of the thread 1 (thread ID = 1) is executing the program A (memory area ID = A) and the information of the thread 2 (thread ID = 2) is to be obtained by this system call. In the program A written in C language, it is written as follows.

【0025】 err =Thread_Get _Status(2,&Thread_Statu
s);ここで、関数Thread_Get_Statu
sがスレッドの情報を得るシステムコールであって、第
1引数の2は、スレッドID=2の情報を得ることを指
示しており、第2引数の&Thread_Status
はシステムコールの結果得られたスレッド2の情報を格
納するメモリ領域の先頭位置を指示している。また、こ
のシステムコールの実行が成功したかどうかは、この関
数の返り値として変数errに入る。
Err = Thread_Get_Status (2, & Thread_Statu
s); where the function Thread_Get_Status
s is a system call for obtaining thread information, the first argument 2 indicates obtaining thread ID = 2 information, and the second argument & Thread_Status is
Indicates the start position of the memory area for storing the information of the thread 2 obtained as a result of the system call. Further, whether or not the execution of this system call is successful is stored in the variable err as the return value of this function.

【0026】この関数をプログラムAのスレッド1が実
行すると、スレッド1はシステムコールによりプロセッ
サの実行モードをユーザレベルから特権レベルに遷移さ
せ、OSを呼び出す。特権レベルとは、OSが処理を行
う専用レベルのことである。
When the thread 1 of the program A executes this function, the thread 1 changes the execution mode of the processor from the user level to the privilege level by a system call and calls the OS. The privilege level is a dedicated level for processing by the OS.

【0027】呼び出されたOSでは、OS内のシステム
コール受付部8に処理が移る。ここでは、このシステム
コールを呼び出した元のユーザプログラムの中断処理を
行い、要求されたシステムコールの種類と指示された引
数を受取り、それぞれその情報を引数検出部9とシステ
ムコールの種類判別部10に送る。
In the called OS, the processing moves to the system call accepting unit 8 in the OS. Here, the original user program that called this system call is interrupted, the type of the requested system call and the designated argument are received, and the information is respectively received by the argument detection unit 9 and the system call type determination unit 10. Send to.

【0028】本例では、指示されたシステムコールは、
Thread_Get_Statusなので、システム
コールの種類判定部10で、次には、Thread_G
et_Status実行部11を呼び出す。
In this example, the indicated system call is
Since Thread_Get_Status is set, the system call type determination unit 10 then
Call the et_Status execution unit 11.

【0029】そこでの処理は、図2に示したスレッド操
作権限記憶部7を使って行われる。この記憶部には、図
に示したようなテーブルを保持している。テーブルに
は、操作スレッドID、対象スレッドID、操作スレッ
ドが存在するメモリ領域ID、スレッド操作権限の各エ
リアを持っている。
The processing there is performed using the thread operation authority storage unit 7 shown in FIG. This storage unit holds a table as shown in the figure. The table has each area of the operation thread ID, the target thread ID, the memory area ID in which the operation thread exists, and the thread operation authority.

【0030】操作スレッドIDとはスレッド操作のシス
テムコールを実行しようとしているスレッドのスレッド
IDのことで、対象スレッドIDとはこのシステムコー
ルの引数で指定された操作対象のスレッドIDを示す。
また、操作スレッドが存在するメモリ領域IDとは、こ
の実行されようとしているシステムコールを含むプログ
ラムの存在するメモリ領域のIDのことであり、スレッ
ド操作権限とは、どういうスレッド操作が可能かを示す
もので、スレッドの内部状態を読み出す権限、スレッド
の内部状態を変更する権限、スレッドの実行を停止/再
開する権限の3つの権限を独立に指定できる。
The operation thread ID is the thread ID of the thread that is about to execute the thread operation system call, and the target thread ID is the thread ID of the operation target specified by the argument of this system call.
The memory area ID in which the operation thread exists is the ID of the memory area in which the program including the system call to be executed exists, and the thread operation authority indicates what kind of thread operation is possible. In this case, three authorities can be independently specified: authority to read the internal state of the thread, authority to change the internal state of the thread, and authority to stop / resume execution of the thread.

【0031】たとえば図の例では、スレッド1(スレッ
ドID=1)が発したシステムコールでは、スレッド2
(スレッドID=2)の内部状態の参照と変更は可能だ
が、スレッド2(スレッドID=2)の実行の停止/再
開はできないことを示している。また、スレッド1(ス
レッドID=1)は、スレッド3(スレッドID=3)
に対しては実行の停止/再開はできるがそれ以外のスレ
ッド操作はできない。さらに、スレッド1(スレッドI
D=1)は、スレッド2(スレッドID=2)とスレッ
ド3(スレッドID=3)以外のスレッドに対しては、
何のスレッド操作も受け付けないことを示している。
For example, in the example shown in the figure, in the system call issued by thread 1 (thread ID = 1), thread 2
This indicates that the internal state of (thread ID = 2) can be referenced and changed, but the execution / stop of the execution of thread 2 (thread ID = 2) cannot be performed. Further, the thread 1 (thread ID = 1) is the thread 3 (thread ID = 3)
Can be stopped / restarted, but other thread operations cannot be performed. Furthermore, thread 1 (thread I
D = 1) for threads other than thread 2 (thread ID = 2) and thread 3 (thread ID = 3),
It indicates that no thread operation is accepted.

【0032】スレッド1(スレッドID=1)が対象ス
レッドの場合の例で、テーブル中の操作スレッドが存在
するメモリ領域IDの部分にallという情報が保持さ
れているが、これは、このシステムコールがどのユーザ
プログラムから行われていても同等で、システムコ−ル
を実行するスレッドIDのみに実効権限が依存すること
を示している。
In the example of the case where the thread 1 (thread ID = 1) is the target thread, the information "all" is held in the memory area ID portion in the table where the operation thread is present. Is the same regardless of which user program is executed, indicating that the effective authority depends only on the thread ID that executes the system call.

【0033】メモリ領域IDの欄がallでないとき
は、そのIDのメモリ領域に存在するプログラムからシ
ステムコールが実行された時の操作権限を規定する。た
とえば、スレッド3(スレッドID=3)が、プログラ
ムA(メモリ領域ID=A)の実行中、スレッド1(ス
レッドID=1)に対しては、すべての操作が可能であ
るが、それ以外のときは、操作不可である。つまり、ス
レッド3(スレッドID=3)がプログラムB(メモリ
領域ID=B)の実行中、スレッド1(スレッドID=
1)に対して同様なシステムコールを実行しても操作で
きないし、スレッド5(スレッドID=5)がプログラ
ムA(メモリ領域ID=A)においてスレッド1(スレ
ッドID=1)に対して同じシステムコールを実行して
も操作できない。このテ−ブルに記載のないスレッド操
作は一切できない。
When the memory area ID column is not all, the operating authority when the system call is executed from the program existing in the memory area of the ID is defined. For example, while thread 3 (thread ID = 3) is executing program A (memory area ID = A), all operations can be performed on thread 1 (thread ID = 1). When, the operation is not possible. That is, while the thread 3 (thread ID = 3) is executing the program B (memory area ID = B), the thread 1 (thread ID =
Even if a similar system call is executed for 1), the operation cannot be performed, and thread 5 (thread ID = 5) has the same system as thread 1 (thread ID = 1) in program A (memory area ID = A). I can't operate a call. Thread operations not described in this table cannot be performed at all.

【0034】Thread_Get_Status処理
部では、図3に示すステップに従って処理する。まず、
ステップ1にて、このシステムコールを実行した操作ス
レッドID、メモリ領域IDをそれぞれスレッドID記
憶部6とメモリ領域ID記憶部5から情報を得る。上述
したように、現在実行中のスレッドIDは、実行状態切
替部4でセットされ、現在実行中のメモリ領域IDは、
プロセッサの内部にあるPCの情報からセットされてい
る。さらに、システムコールの第一引数から対象スレッ
ドID検出部13が対象スレッドIDを得ている。第二
引数からは、スレッド情報格納位置検出部14が、この
システムコ−ルの実行結果を格納するユ−ザプログラム
のメモリ位置を検出する。
The Thread_Get_Status processing unit processes according to the steps shown in FIG. First,
In step 1, the operation thread ID and memory area ID that executed this system call are obtained from the thread ID storage unit 6 and the memory area ID storage unit 5, respectively. As described above, the thread ID currently being executed is set by the execution state switching unit 4, and the memory area ID currently being executed is
It is set from the information of the PC inside the processor. Furthermore, the target thread ID detection unit 13 obtains the target thread ID from the first argument of the system call. From the second argument, the thread information storage position detection unit 14 detects the memory position of the user program that stores the execution result of this system call.

【0035】次にステップ2にて、以上の3つの情報を
もとにスレッド操作権限記憶部7のテーブルを引き、該
当エントリをサーチする。もし、見つかれば、ステップ
3に進み、なければステップ8を行うエラー処理部15
へ進む。
Next, in step 2, based on the above three pieces of information, the table of the thread operation authority storage unit 7 is pulled and the corresponding entry is searched. If found, go to step 3; otherwise go to step 8 error processing unit 15
Go to.

【0036】サーチは、テーブルの上から順に比較を行
い、最初にマッチしたエントリの情報を次のステップ以
降で利用する。テーブルのフィールドのall部分は、
すべてにマッチすることを意味する。もし、テーブルの
最後のエントリまで比較し、マッチしなかったらサーチ
の失敗となる。
In the search, comparison is performed in order from the top of the table, and the information of the first matching entry is used in the subsequent steps. The all part of the table field is
Means match everything. If the last entry in the table is compared and no match is found, the search fails.

【0037】ステップ3では、見つかったエントリの操
作権限を表す部分のうち、スレッド内部状態読出権限に
該当する部分の情報を読み出し、許可か否かを判断す
る。この判定は操作権限判定部12で行う。もし判定で
許可されればステップ4へ進み、不許可になればステッ
プ8のエラー処理へ移る。
In step 3, the information of the portion corresponding to the thread internal state reading authority is read out from the portion showing the operation authority of the found entry, and it is determined whether or not it is permitted. This determination is performed by the operation authority determination unit 12. If the determination is permitted, the process proceeds to step 4, and if not permitted, the error process of step 8 is performed.

【0038】次のステップ4では、対象スレッドに対し
て、許可されたスレッドの内部状態を読み出すためのス
レッド管理テ−ブルの参照操作を実行する。この処理は
スレッド状態参照実行部16にて行う。ここでは、該当
スレッドの内部状態であるスレッド情報を、スレッド情
報格納位置検出部14で指示されたメモリ中に格納す
る。
In the next step 4, the reference operation of the thread management table for reading the internal state of the permitted thread is executed for the target thread. This processing is performed by the thread state reference execution unit 16. Here, the thread information, which is the internal state of the thread, is stored in the memory designated by the thread information storage position detection unit 14.

【0039】ステップ5にて、ステップ4での処理結果
を判定する。処理が成功するとステップ6にて、成功を
示すコードをシステムコール終了部17へ伝える。失敗
するとステップ7にて、失敗を示すコードをシステムコ
ール終了部17へ伝える。
At step 5, the processing result at step 4 is judged. When the processing is successful, in step 6, a code indicating success is transmitted to the system call termination unit 17. If it fails, a code indicating the failure is transmitted to the system call termination unit 17 in step 7.

【0040】ステップ8では、エラーコードをシステム
コール終了部17へ伝える。Thread_Get_S
tatus実行部11での処理を終えると、最後にシス
テムコール終了部17に処理が進む。このシステムコ−
ルを実行したユ−ザプログラムに返す返値をシステムコ
ールの返値として戻るように処理を行い、中断していた
呼出元のユーザプログラムの実行ができるように復帰処
理を行い、実行レベルを特権レベルからユーザレベルへ
戻す処理を行う。
At step 8, the error code is transmitted to the system call termination section 17. Thread_Get_S
When the processing in the status executing unit 11 is completed, the process finally proceeds to the system call ending unit 17. This system
The return value returned to the user program that executed the call is returned as the return value of the system call, and the return processing is performed so that the interrupted caller user program can be executed. Perform processing to return from the level to the user level.

【0041】以下にはスレッドを操作する他のシステム
コ−ルについて説明する。Thread_Set_St
atus(スレッドID、スレッドステータス)なるシ
ステムコールは、上記で説明した、Thread_Ge
t_Statusの逆の操作で、第1引数に指定された
スレッドに引き数に指定されたスレッド情報をセットす
る。
Another system call for operating a thread will be described below. Thread_Set_St
The system call "atus (thread ID, thread status)" is the Thread_Ge described above.
By the reverse operation of t_Status, the thread information specified by the argument is set in the thread specified by the first argument.

【0042】OS内部の処理は、システムコール受付部
8からシステムコールの種類判別部10を経てThre
ad_Set_Status実行部に移る。Threa
d_Set_Status実行部は、Thread_G
et_Status実行部11のうちスレッド状態参照
実行部16をスレッド状態変更実行部に置き換えた構成
を持つ。内部処理は、Thread_Get_Stat
usと同様であるが、スレッド操作権限記憶部7のテー
ブルをサーチする際、先ほどの例と違い、スレッドの内
部状態を変更する権限をチェックして、権限があるかど
うか判定する。そして、権限があるとスレッド状態変更
実行部にて、変更処理する。変更処理は、第2引数で指
定されたスレッド情報をスレッド管理部3の内部のスレ
ッド管理テーブルの該当スレッドの該当部分に格納する
ものである。
The internal processing of the OS is performed by the system call accepting unit 8 through the system call type determining unit 10 and then Thr
Move to the ad_Set_Status execution unit. Threa
The d_Set_Status execution unit uses Thread_G
It has a configuration in which the thread state reference execution unit 16 of the et_Status execution unit 11 is replaced with a thread state change execution unit. Internal processing is Thread_Get_Stat
Similar to us, but when searching the table of the thread operation authority storage unit 7, unlike the previous example, the authority to change the internal state of the thread is checked to determine whether or not there is authority. Then, if the user has the authority, the thread state change execution unit performs the change process. The change processing is to store the thread information specified by the second argument in the relevant portion of the relevant thread in the thread management table inside the thread management unit 3.

【0043】Thread_Suspend(スレッド
ID)なるシステムコールは、引き数で指定されたスレ
ッドに対し実行の一時停止の処理を行うものである。こ
の処理は、Thread_Get_Status実行部
11に代る、Thread_Suspend実行部が行
う。実行権があるかどうかの判定は、上記と同様で、ス
レッド操作権限のうちのスレッドの実行を停止/再開す
る権限で判定するところがちがう。そして権限がある場
合には、Thread_Suspend実行部の中のス
レッド停止処理実行部が、対象スレッドの状態をスレッ
ド管理部3内のスレッド管理テーブルから得る。管理テ
ーブル内部には、ステータス情報を格納しているところ
がある。その情報が実行可能状態なら、停止状態へ変更
する。また、停止状態なら、何もしない。また、対象ス
レッドがこのシステムコールを発したスレッド自身のと
きは、上記処理に続き、本システムコール終了時に実行
状態切替部4に制御を移し、次に動作するスレッドを決
定し起動してもらう。
The system call Thread_Suspend (thread ID) is used to suspend the execution of the thread designated by the argument. This processing is performed by the Thread_Suspend execution unit, which replaces the Thread_Get_Status execution unit 11. The determination as to whether or not the user has the execution right is similar to the above, but is different depending on the authority to stop / resume the execution of the thread among the thread operation authorities. If the user has the authority, the thread stop processing execution unit in the Thread_Suspend execution unit obtains the state of the target thread from the thread management table in the thread management unit 3. Some management tables store status information. If the information is in the executable state, change to the stopped state. If it is stopped, nothing is done. When the target thread is the thread itself that issued this system call, following the above processing, control is transferred to the execution state switching unit 4 at the end of this system call, and the thread to operate next is determined and started.

【0044】別の実施例として、停止状態に複数の停止
状態レベルをとることができる場合、実行可能状態のと
きにThread_Suspendシステムコ−ルが発
せられたら、停止状態レベルを0へ変更し、既に停止状
態であったならば停止状態レベルを1つ上げる。このレ
ベルは、停止状態が厳しくなかなか実行に移らない状態
なほど大きな値が与えられるものである。
As another embodiment, when the stop state can have a plurality of stop state levels, when the Thread_Suspend system call is issued in the executable state, the stop state level is changed to 0, and If it is in the stopped state, the stop level is raised by one. This level is given a large value when the stopped state is severe and the execution is difficult.

【0045】Thread_Resume(スレッドI
D)なるシステムコールは、引数で指定されたスレッド
に対し実行再開の処理を行うものである。この処理は、
Thread_Resume実行部が行い、実行権があ
るかどうかの判定は、Thread_Supend実行
部におけるのと同様である。権限がある場合には、Th
read_Resume実行部中のスレッド再開実行部
が、対象スレッドの状態をスレッド管理部3内のスレッ
ド管理テーブルから得る。管理テーブル内部には、ステ
ータス情報を格納しているところがあり、その情報を停
止状態なら、実行可能状態へ変更する。既に実行可能状
態であったならば何もしない。
Thread_Resume (thread I
The system call D) is for resuming execution of the thread specified by the argument. This process
The Thread_Resume execution unit makes the determination as to whether or not there is an execution right, as in the Thread_Spend execution unit. If you have the authority, Th
The thread restart execution unit in the read_Resume execution unit obtains the state of the target thread from the thread management table in the thread management unit 3. There is a place where status information is stored in the management table, and if the information is in a stopped state, it is changed to an executable state. If it is already ready, do nothing.

【0046】別の実施例として、停止状態に複数の停止
状態レベルをとることができる場合、Thread_R
esumeシステムコ−ルが発せられたら、停止状態な
ら停止状態レベルを1つ下げる。もし、既に停止状態レ
ベルが0なら、実行可能状態へ変更し、既に実行可能状
態なら何もしない。
As another example, if the stop state can have multiple stop state levels, Thread_R
When the "esume" system call is issued, if it is in the stopped state, the stop level is lowered by one. If the stopped state level is already 0, the state is changed to the executable state, and if it is already executable, nothing is done.

【0047】本実施例では、スレッド実行/再開の権限
を1つの権限にまとめているが、別々の権限にするため
に、実行停止の権限を、スレッドの内部状態を書き出す
権限とスレッドの実行を停止/再開する権利の2つとも
ある場合に可能とし、実行再開の権限を、スレッドの内
部状態を読み出す権限とスレッドの実行を停止/再開す
る権利の2つともある場合に可能とする実施例も可能で
ある。
In this embodiment, the thread execution / resume authority is grouped into one authority. However, in order to have different authorities, the execution stop authority is defined as the authority to write the internal state of the thread and the thread execution. An embodiment in which it is possible when there are both the right to stop / resume and the authority to resume execution is possible when there are both the right to read the internal state of the thread and the right to stop / resume the execution of the thread. Is also possible.

【0048】なお、本実施例ではスレッドの内部状態を
読み出す権限、変更する権限(消去する権限を含む)、
スレッドの実行を停止/再開する権限の3種類を独立に
指定できるようにしているが、これに限られるものでは
ない。指定できる種類(スレッド操作権限記憶部の操作
権限に含まれるフィールドの数)を増やし、停止権限、
再開権限を別個に指定できるようにしても、スレッドを
消去する権限をこれらとは別に設けてもよい。
In this embodiment, the authority to read the internal state of a thread, the authority to change it (including the authority to erase),
Although three types of authority to suspend / resume execution of a thread can be specified independently, the present invention is not limited to this. Increase the types that can be specified (the number of fields included in the operation authority of the thread operation authority storage unit),
Even if the restart authority can be specified separately, the authority to delete the thread may be provided separately.

【0049】また、上では各システムコールに対応する
実行部について別々に説明したが、実際のシステムでは
これら実行部を必要な分だけ並列に設けておく。その
際、共通の機能である13,14,15,7,12につ
いてはいずれのシステムコールについても同一のものあ
るいは共通のものを利用するようにし、各システムコー
ルで実行する内容が異なる16に相当するもののみを並
列に設けて、操作権限判定と並行してあるいはその後に
対応する実行部へ処理を振り分ければよい。 (実施例2)次に、実施例1にスレッド制御に関して時
間的制約を付加した例を説明する。これは、プラント制
御のためのリアルタイム処理のように決められた時間内
に処理を終わらさなければならない場合に必要な処理で
ある。
Although the execution units corresponding to the respective system calls have been separately described above, in the actual system, these execution units are provided in parallel as much as necessary. At this time, for the common functions 13, 14, 15, 7, 12, the same or common one is used for all system calls, and the contents executed by each system call are different 16. It is only necessary to provide only those to be performed in parallel, and to distribute the processing to the corresponding execution unit in parallel with or after the operation authority determination. (Second Embodiment) Next, an example in which a time constraint is added to the thread control in the first embodiment will be described. This is a process required when the process must be completed within a predetermined time, such as a real-time process for controlling a plant.

【0050】実施例のプログラム構成を図4に示す。実
際にプラント制御用のリアルタイム処理を行うプロセス
制御プログラム(メモリ領域ID=B)と、そのプログ
ラムに常駐し、リアルタイム処理を実行するリアルタイ
ムスレッド(スレッドID=5)がある。
The program structure of the embodiment is shown in FIG. There are a process control program (memory area ID = B) that actually performs real-time processing for plant control, and a real-time thread (thread ID = 5) that resides in the program and executes real-time processing.

【0051】さらにそのプロセス制御プログラム、リア
ルタイムスレッドを制御する制御プログラム(メモリ領
域ID=C)、制御スレッド(スレッドID=4)があ
る。その他、上記以外の一般のユ−ザプログラムやスレ
ッドが同じシステム上に複数存在できる。その例とし
て、上記のプログラムを保守するためのデバッグプログ
ラム(メモリ領域ID=D)とデバック処理をする任意
のスレッド(スレッドID=6)がある。なお、本例で
のメモリ空間上でのプロクラム配置を図の(b)に示
す。
Further, there are a process control program, a control program for controlling a real-time thread (memory area ID = C), and a control thread (thread ID = 4). In addition, a plurality of general user programs and threads other than the above may exist on the same system. Examples thereof include a debug program (memory area ID = D) for maintaining the above program, and an arbitrary thread (thread ID = 6) for debugging processing. The program arrangement in the memory space in this example is shown in FIG.

【0052】この例では、プラント制御の運用中でリア
ルタイム処理が必要な時間は、9:00から17:00
である。この間は、リアルタイムスレッドはその処理に
専念するため、他のスレッドからの制御を受けない。例
外は、制御スレッドからの制御である。つまり、制御プ
ログラムを実行する制御スレッドのみが、たとえば、プ
ラント異常動作時の停止等の処理のみが可能となる。
In this example, the time required for real-time processing during the operation of the plant control is from 9:00 to 17:00.
Is. During this time, the real-time thread concentrates on its processing and is not controlled by other threads. The exception is control from the controlling thread. That is, only the control thread that executes the control program can perform only the processing such as the stop when the plant operates abnormally.

【0053】プラントの操業の終わる17:00以降
は、リアルタイム処理が必要ないので、上記のような制
限はなくなり、一般のスレッドでも制御できる。これに
より、デバッガーがプロセス制御プログラムをデバッグ
する際にリアルタイムレッドを制御可能になり、有効な
措置である。
After 17:00 when the operation of the plant ends, real-time processing is not required, so the above-mentioned limitation is eliminated, and ordinary threads can control. This enables the debugger to control the real-time red when debugging the process control program, which is an effective measure.

【0054】本実施例システムの全体構成は、実施例1
の図1とほぼ等しい。付け加わった機能のみを図5を用
いて説明する。まず、スレッド操作権限記憶部7のテー
ブルの構成が図5のように変わる。新しくテーブルに有
効期限を表すエントリが付加されている。ここには、設
定されているスレッド操作の権限がどの時刻に有効かを
示す情報が保持されている。
The overall configuration of the system of this embodiment is the same as that of the first embodiment.
Is almost the same as FIG. Only the added function will be described with reference to FIG. First, the configuration of the table of the thread operation authority storage unit 7 changes as shown in FIG. An entry indicating the expiration date is newly added to the table. Here, information indicating at what time the set thread operation authority is valid is held.

【0055】以上の設定を用いてプラント制御の例を実
現するため、スレッド操作権限記憶部7のテーブルに図
5に示すようにスレッド操作権限を設定する。なお、こ
のテーブルへの新たな設定/削除/変更は、ユーザプロ
グラムからそれぞれ専用のシステムコールで行う。その
際に今までに設定されている権限と矛盾があるかどうか
チェックも行われ、テーブルの設定の反映は、設定に矛
盾のない形で行われる。
In order to realize the plant control example using the above settings, the thread operation authority is set in the table of the thread operation authority storage unit 7 as shown in FIG. It should be noted that new setting / deletion / modification to this table is carried out by a dedicated system call from the user program. At that time, it is also checked whether or not there is a contradiction with the authority set up to now, and the setting of the table is reflected in a form in which the setting is consistent.

【0056】テーブルの(1)の設定により、運用時間
の9:00から17:00については、スレッドID=
4の制御スレッドは、メモリ領域ID=Cの制御プログ
ラムの実行中には、スレッドID=5のリアルタイムス
レッドに対して、すべてのスレッド操作ができる。ま
た、(3)の設定により、17:00以降も同様な操作
が可能な設定となっている。
By setting (1) in the table, the thread ID = from the operating hours of 9:00 to 17:00.
The control thread of No. 4 can perform all thread operations on the real-time thread of thread ID = 5 during execution of the control program of memory area ID = C. Further, by the setting of (3), the same operation can be performed after 17:00.

【0057】さて、スレッドID=4の制御スレッド以
外のスレッドは、(2)の設定により、スレットID=
5のリアルタイムスレッドに対して、9:00から1
7:00までは、すべてのスレッド操作ができない。し
かし、その時間帯をすぎると(3)の設定中で操作スレ
ッドの欄がallなので、どのスレッドからでもすべて
の操作が可能となる。
Threads other than the control thread with the thread ID = 4 have the threat ID = by the setting of (2).
9:00 to 1 for 5 real-time threads
All threads cannot be operated until 7:00. However, after that time period, since the operation thread column is all in the setting of (3), all operations can be performed from any thread.

【0058】以上の制御を実現するために、実施例1の
構成に現在時刻記憶部18を追加する。そして、実施例
1における図3のステップ2にて、現在時刻情報を付加
してテーブルを検索する。他は変わらない。
In order to realize the above control, the current time storage section 18 is added to the configuration of the first embodiment. Then, in step 2 of FIG. 3 in the first embodiment, the table is searched by adding the current time information. Everything else remains the same.

【0059】以下にはスレッド操作権限記憶部7のテー
ブルを図7のように変更した例を説明する。これは、従
来のテーブルに新たに、対象スレッドが存在するメモリ
領域IDのフィールドを付加したものである。この場
合、指定された操作メモリ領域のプログラムを実行中の
指定された操作スレッドが、指定された対象メモリ領域
にいる指定された対象スレッドに対するスレッド操作の
権限を制限することになる。
An example in which the table of the thread operation authority storage unit 7 is changed as shown in FIG. 7 will be described below. This is a table in which a memory area ID field in which the target thread exists is newly added to the conventional table. In this case, the specified operation thread executing the program in the specified operation memory area limits the thread operation authority for the specified target thread in the specified target memory area.

【0060】これによれば、前例のようなプロセス制御
リアルタイム処理を実現しようとする場合、メモリとス
レッドの配置は図6のようにできる。この場合、前例と
異なり、それぞれ制御プログラム実行用の専用の制御ス
レッド、プロセス制御用の専用リアルタイムスレッドは
不要で任意のスレッドで実現できる。
According to this, in order to realize the process control real-time processing as in the previous example, the arrangement of the memory and the threads can be arranged as shown in FIG. In this case, unlike the previous example, a dedicated control thread for executing the control program and a dedicated real-time thread for process control are not required and can be realized by arbitrary threads.

【0061】つまり、複数のプログラム間に制御を移し
ながら一連の処理を行うようなスレッド構成でも実現で
きる。この例でのスレッド操作権限記憶部7のテーブル
の指定は、図7のようになる。つまり、テーブルの
(1)の記述により、メモリ領域C(制御プログラム)
を実行している任意のスレッドが、メモリ領域B(プロ
セス制御プログラム)を実行している任意のスレッドに
対しては、9:00から17:00間は、すべてのスレ
ッド操作が可能になる。また、(3)の記述により、1
7:00以降も同様にすべての操作が可能である。とこ
ろが、(2)の記述により、メモリ領域C以外のメモリ
領域を実行している任意のスレッドからは、メモリ領域
Bに存在するすべてのスレッドに対して9:00から1
7:00の間はいっさいのスレッド操作ができない。し
かし、17:00以降は、(3)の記述によりすべての
スレッド操作が可能である。
That is, it is possible to realize a thread configuration in which a series of processing is performed while transferring control between a plurality of programs. The designation of the table of the thread operation authority storage unit 7 in this example is as shown in FIG. That is, the memory area C (control program) is described by the description of (1) in the table.
For any thread executing the memory area B (process control program), any thread executing the above can perform all thread operations from 9:00 to 17:00. Also, according to the description of (3), 1
All operations can be performed after 7:00. However, according to the description of (2), from any thread executing a memory area other than the memory area C to all threads existing in the memory area B from 9:00 to 1
No thread operation is possible during 7:00. However, after 17:00, all thread operations can be performed according to the description in (3).

【0062】スレッド操作権限記憶部7を含めた全体構
成を図8に示す。新たにつけ加わったものは、対象メモ
リ領域ID検出部19である。これは、システムコール
で指定された対象スレッドIDから、現在そのスレッド
が存在するメモリ領域IDをスレッド管理テーブルを用
いて検出するものである。その検出フローチャートを図
9に示す。
The overall configuration including the thread operation authority storage unit 7 is shown in FIG. A new addition is the target memory area ID detection unit 19. This is to detect the memory area ID in which the thread currently exists from the target thread ID designated by the system call using the thread management table. The detection flowchart is shown in FIG.

【0063】そして、実施例1における図3のステップ
2にて、現在時刻情報と対象メモリ領域ID情報を付加
して検索する。他は変わらない。 (実施例3)本実施例は、スレッド操作の許否の制御と
メモリ管理とを連携させて行うものである。
Then, in step 2 of FIG. 3 in the first embodiment, the current time information and the target memory area ID information are added for the search. Everything else remains the same. (Third Embodiment) In the third embodiment, control of permission / prohibition of thread operation and memory management are performed in cooperation with each other.

【0064】図10は、本実施例におけるメモリ管理の
仕組みを示したものである。図に示すような論理アドレ
ス空間は64ビットの大きさを持っており、その中をい
くつかの領域(セグメント)に分割されている。
FIG. 10 shows a memory management mechanism in this embodiment. The logical address space as shown in the figure has a size of 64 bits and is divided into some areas (segments).

【0065】ここでアドレス64ビットを2つのフィー
ルドに分割し、上位32ビットをセグメント番号を示す
ものとし、下位32ビットをそのセグメント内のオフセ
ットを示すものとする。なお、1つのセグメントの大き
さは可変である。
Here, the address 64 bits are divided into two fields, the upper 32 bits indicate the segment number, and the lower 32 bits indicate the offset within the segment. The size of one segment is variable.

【0066】このセグメントは、それぞれがお互いに不
正なアクセスをされないようにメモリ管理機構のメモリ
保護機能により保護される。このメモリ保護機能はプロ
セッサがメモリアクセスを行う際に高速にそのアクセス
が正当かどうかチェックするものであり、これはOSに
よって管理されている。
This segment is protected by the memory protection function of the memory management mechanism so that each of them will not be illegally accessed. This memory protection function is for checking whether or not the access is valid at high speed when the processor accesses the memory, and this is managed by the OS.

【0067】図11は上記メモリ保護の機能を図示した
もので、メモリ管理装置MMU30によって実現してい
る。このMMUには、現在実行しているスレッドの番号
CURTHを保持するレジスタであるスレッドID記憶
部25、プロセッサ21内のプログラムカウンタ(P
C)22の値から現在実行しているプログラムの存在す
るセグメント番号を抽出するセグメント抽出部26、こ
れからアクセスしようとするアドレス(23)のセグメ
ント番号を抽出するセグメント抽出部27、及びメモリ
保護情報を高速に検索するためのキャッシュである連想
メモリTLB28を備えている。連想メモリTLBの各
エントリは、操作スレッドID、対象セグメントID、
操作セグメントID(以上を「タグ」と言う)、メモリ
アクセス権限(読み出しR、書き込みW、実行X)のフ
ィールドで構成される。
FIG. 11 illustrates the memory protection function, which is realized by the memory management unit MMU30. This MMU includes a thread ID storage unit 25, which is a register that holds the number CURTH of the thread currently being executed, and a program counter (P
C) A segment extraction unit 26 that extracts the segment number in which the program currently being executed exists from the value of 22, a segment extraction unit 27 that extracts the segment number of the address (23) to be accessed from now, and memory protection information. The associative memory TLB 28, which is a cache for high-speed searching, is provided. Each entry of the associative memory TLB includes an operation thread ID, a target segment ID,
It is composed of fields of an operation segment ID (the above is referred to as “tag”) and memory access authority (read R, write W, execute X).

【0068】ここで、64ビットの論理アドレスADD
Rの上位32ビットをセグメント番号MSIDとし、下
位32ビットをセグメント内オフセットOFSとして、
このメモリ保護機構の動作について以下に説明する。あ
る論理アドレスADDRのメモリをプロセッサがアクセ
スしようとするとき、MMUのセグメント抽出部27セ
グメント抽出部26はADDRをセグメント番号MSI
Dとセグメント内オフセットOFSに分離する。また現
在実行中のプログラムを示すプログラムカウンタPCの
値から現在実行中のプログラムの存在するセグメント値
PCMSIDを抽出する。これらMSIDとPCMSI
D及び現在のスレッド番号を示すCURTHを連想メモ
リTLB28に加える。TLBはこれら入力に適合する
タグを持つエントリを探す。ただし全ビットが1である
ようなフィールドがタグ中にある場合、それは任意の入
力に適合する項目とみなされる。例えば、操作セグメン
トIDのフィールドが全ビット1であれば、操作スレッ
ドかどのセグメントに存在する場合にも、そのタグは現
在の状況に適合するものとしてこれをもつエントリが選
択される。
Here, the 64-bit logical address ADD
The upper 32 bits of R are the segment number MSID, and the lower 32 bits are the in-segment offset OFS,
The operation of this memory protection mechanism will be described below. When the processor attempts to access the memory of a certain logical address ADDR, the segment extraction unit 27 of the MMU causes the segment extraction unit 26 to set ADDR to the segment number MSI.
D and the offset OFS in the segment are separated. Further, the segment value PCMSID in which the program currently being executed is present is extracted from the value of the program counter PC indicating the program currently being executed. These MSID and PCMSI
D and CURTH indicating the current thread number are added to the associative memory TLB 28. The TLB looks for entries with tags that match these inputs. However, if there is a field in the tag such that all the bits are 1, it is considered as an item that matches any input. For example, if the field of the operation segment ID is all 1s, even if the operation thread ID exists in the segment of the operation thread, the entry having the tag is selected as being suitable for the current situation.

【0069】そして、もし適合するエントリがあれば、
TLBはそれに対するメモリアクセス権限のフィールド
の内容PERMを出力する。アクセス権限判定部29で
は、PERMの値を、これからしようとしているアクセ
スの種別記憶部24の内容を表す信号ACCESSと比
較し、このメモリアクセス要求が許可されているかどう
かを判定する。許可されない場合はプロセッサ21のエ
ラー処理部31に対してFAULT信号を返す。また適
合するタグがTLB28中に見つからない場合も同様に
プロセッサ21に対してFAULT信号を返す。もし許
可される場合は、MMU30はここに図示しないアドレ
ス変換機構によりプロセッサの出力する仮想アドレスを
物理アドレスへ変換し、システムアドレスバスへと出力
する。オペレーティングシステムはTLBの内容を適切
に更新することによりユーザ及びオペレーティングシス
テムの要求するメモリアクセス保護を実現する。
Then, if there is a matching entry,
The TLB outputs the content PERM of the memory access authority field for it. The access authority determination unit 29 compares the value of PERM with the signal ACCESS representing the content of the type storage unit 24 of the access to be performed, and determines whether or not this memory access request is permitted. If not permitted, the FAULT signal is returned to the error processing unit 31 of the processor 21. Also, when no matching tag is found in the TLB 28, the FAULT signal is similarly returned to the processor 21. If permitted, the MMU 30 translates the virtual address output by the processor into a physical address by an address translation mechanism (not shown) and outputs it to the system address bus. The operating system realizes the memory access protection required by the user and the operating system by appropriately updating the contents of the TLB.

【0070】このようなメモリ管理機構を備えたシステ
ムにおいて、図12(a)のように各実行スレッドに対
して固有のセグメントを割り付け、そのセグメント内に
スレッド情報のうちユーザ書き換え可能な部分を置くこ
とにより、スレッド操作の保護属性メモリ操作の保護に
帰着させ、新たなハードウェアの追加をすることなく、
メモリ保護のハードウェアを用いてスレッド操作のアク
セス管理を行うことができる。
In a system having such a memory management mechanism, a unique segment is allocated to each execution thread as shown in FIG. 12A, and a user rewritable portion of thread information is placed in the segment. By doing so, it is possible to reduce the protection attribute of thread operation to the protection of memory operation, without adding new hardware.
Access control for thread operations can be performed using memory protection hardware.

【0071】実施例1と同様に、プログラムセグメント
A上のプログラムを実行しているスレッド1がスレッド
2の制御情報にアクセスしようとする例で説明する。実
施例1の場合と違って上記のメモリ管理機構を備えてい
るため、同一論理アドレス空間内であっても異なるメモ
リセグメント上のプログラムでは異なるメモリ保護条件
を設定することができる。そこで、オペレーティングシ
ステムを構成するプログラムをあるセグメント中に置
き、そのセグメント中のプログラムからは任意のメモリ
にアクセスできるようにメモリ保護条件を設定すること
により、メモリアクセスに関しては特権レベルへの遷移
と同等の効果を得ることができる。この場合、OSに対
するシステムコールは特別な命令ではなく、通常のセグ
メント間サブルーチン呼出し命令により行うことができ
る。
Similar to the first embodiment, an example will be described in which the thread 1 executing the program on the program segment A tries to access the control information of the thread 2. Since the memory management mechanism described above is provided unlike the case of the first embodiment, different memory protection conditions can be set in programs on different memory segments even within the same logical address space. Therefore, by placing the programs that make up the operating system in a certain segment and setting the memory protection conditions so that the programs in that segment can access any memory, the memory access is equivalent to the transition to the privilege level. The effect of can be obtained. In this case, the system call to the OS can be made not by a special instruction but by a normal inter-segment subroutine call instruction.

【0072】ここで、スレッド情報が図13に示すよう
にスレッド1の情報がセグメント番号101に、スレッ
ド2の情報がセグメント番号102にというように1対
1に対応しているとする。オペレーティングシステムは
この対応関係を図12(a)のようにスレッド管理テー
ブル中に記録している。
Here, it is assumed that the thread information has a one-to-one correspondence with the thread number 1 as shown in FIG. 13 and the thread number 2 as the segment number 102. The operating system records this correspondence in the thread management table as shown in FIG.

【0073】図12(b)は実施例1で示した動作例と
同じように動作するようにTLB28の内容を設定した
例を示している。たとえばこの例においてスレッド1が
セグメント91中のプログラムを実行している時にスレ
ッド2の内部情報を調べるためセグメント102内にあ
るメモリ内容を読み出す場合、MMU30はプロセッサ
がアクセスしたい仮想アドレスからセグメント番号10
2を抽出し、これとスレッド番号1とセグメント番号9
1をキーとしてTLB28を検索し、適合するエントリ
があるのでそれに対するメモリ保護情報をアクセス権限
判定部29へ出力する。この例では読み出し権限(R)
があるため、アクセスを許可する。
FIG. 12B shows an example in which the contents of the TLB 28 are set so as to operate in the same manner as the operation example shown in the first embodiment. For example, in this example, when thread 1 reads the memory contents in segment 102 to check the internal information of thread 2 while thread 1 is executing the program in segment 91, MMU 30 uses segment number 10 from the virtual address that the processor wants to access.
2 is extracted, and this, thread number 1 and segment number 9
The TLB 28 is searched by using 1 as a key, and since there is a matching entry, the memory protection information for that is output to the access authority determination unit 29. Read permission (R) in this example
Access is allowed.

【0074】またもう1つの例として、図12(b)の
状況でスレッド1がスレッド4の情報をアクセスしよう
とした場合はセグメント104内のメモリをアクセスす
るが、スレッド番号1とセグメント番号104をキーと
してTLBを検索する。この場合は適合するエントリが
ないのでTLBは不一致信号を出力し、MMUはアクセ
ス不許可を示すFAULT信号をプロセッサへ伝える。
As another example, when thread 1 tries to access the information of thread 4 in the situation of FIG. 12B, the memory in segment 104 is accessed, but thread number 1 and segment number 104 are assigned. Search TLB as a key. In this case, since there is no matching entry, the TLB outputs a mismatch signal, and the MMU sends a FAULT signal indicating that access is not permitted to the processor.

【0075】すなわち、本実施例は、実施例1における
スレッド管理テーブルの内容を論理アドレス空間の所定
の位置に配置し、スレッド操作権限記憶部をTLBに置
き換えで実施例1と同様に動作させるようにしたもので
ある。
That is, in this embodiment, the contents of the thread management table in the first embodiment are arranged at a predetermined position in the logical address space, and the thread operation authority storage unit is replaced with the TLB so that the same operation as in the first embodiment is performed. It is the one.

【0076】[0076]

【発明の効果】以上詳述したように、本発明によればあ
るスレッドによる操作からあるスレッドを保護すること
を適切に行うことができる。またメモリ保護機構を用い
ることにより新規ハードウェアの必要なく高速なスレッ
ド操作保護を行うことができる。
As described in detail above, according to the present invention, it is possible to appropriately protect a thread from an operation by the thread. Moreover, by using the memory protection mechanism, high-speed thread operation protection can be performed without the need for new hardware.

【図面の簡単な説明】[Brief description of drawings]

【図1】 本発明の実施例1に係るシステムの全体構成
を示す図。
FIG. 1 is a diagram showing an overall configuration of a system according to a first embodiment of the present invention.

【図2】 図1のスレッド操作権限記憶部7の内部構成
例を示す図。
FIG. 2 is a diagram showing an internal configuration example of a thread operation authority storage unit 7 in FIG.

【図3】 本実施例システムの動作を示すフロー図。FIG. 3 is a flowchart showing the operation of the system of this embodiment.

【図4】 実施例2におけるプログラム構成例を示す
図。
FIG. 4 is a diagram showing a program configuration example in the second embodiment.

【図5】 実施例2におけるスレッド操作権限記憶部7
の内部構成例と関連システム構成を示す図。
FIG. 5 is a thread operation authority storage unit 7 according to the second embodiment.
FIG. 3 is a diagram showing an example of the internal configuration of FIG.

【図6】 実施例2における別のプログラム構成例を示
す図。
FIG. 6 is a diagram showing another program configuration example according to the second embodiment.

【図7】 図6に対応するスレッド操作権限記憶部7の
内部構成例を示す図。
7 is a diagram showing an internal configuration example of a thread operation authority storage unit 7 corresponding to FIG.

【図8】 実施例2で図7に対するシステムの全体構成
を示す図。
FIG. 8 is a diagram showing an overall configuration of a system for the second embodiment shown in FIG.

【図9】 図8の対象メモリ領域ID検出部19の動作
を示すフロー図。
9 is a flowchart showing the operation of the target memory area ID detection unit 19 of FIG.

【図10】 実施例3における論理アドレス空間の説明
図。
FIG. 10 is an explanatory diagram of a logical address space according to the third embodiment.

【図11】 実施例3に係るシステムの全体構成を示す
図。
FIG. 11 is a diagram showing an overall configuration of a system according to a third embodiment.

【図12】 実施例3におけるスレッド情報とセグメン
トの関係の説明図及び図11のTLB28の設定例を示
す図。
FIG. 12 is an explanatory diagram of a relationship between thread information and a segment according to the third embodiment and a diagram showing a setting example of the TLB 28 in FIG.

【図13】 実施例3におけるスレッドの制御情報の論
理アドレス空間への配置例を示す図。
FIG. 13 is a diagram showing an example of arrangement of thread control information in a logical address space according to the third embodiment.

【符号の説明】[Explanation of symbols]

1…プログラム記憶部、 2,21…プロセッサ、 3
…スレッド管理部、4…実行状態切替部、 5…メモリ
領域ID記憶部、 6…スレッドID記憶部、 7…ス
レッド操作権限記憶部、 8…システムコール受付部、
9…引数検出部、 10…システムコールの種類判定
部、 11…システムコール実行部、12…操作権限判
定部、 13…対象スレッドID検出部、 14…操作
の種類判定部、 15…エラー処理部、 16…スレッ
ド状態参照実行部、 17…システムコール終了部、
18…現在時刻記憶部、 19…対象メモリ領域ID検
出部、 22…プログラムカウンタ、 23…アクセス
アドレス記憶部、24…アクセス種別記憶部、 25…
スレッドID記憶部、 26,27…セグメント抽出
部、 28…TLB、 29…アクセス権限判定部、
30…MMU。
1 ... Program storage unit, 2, 21 ... Processor, 3
... thread management unit, 4 ... execution state switching unit, 5 ... memory area ID storage unit, 6 ... thread ID storage unit, 7 ... thread operation authority storage unit, 8 ... system call reception unit,
9 ... Argument detection unit, 10 ... System call type determination unit, 11 ... System call execution unit, 12 ... Operation authority determination unit, 13 ... Target thread ID detection unit, 14 ... Operation type determination unit, 15 ... Error processing unit , 16 ... Thread state reference execution unit, 17 ... System call end unit,
18 ... Current time storage unit, 19 ... Target memory area ID detection unit, 22 ... Program counter, 23 ... Access address storage unit, 24 ... Access type storage unit, 25 ...
Thread ID storage unit, 26, 27 ... Segment extraction unit, 28 ... TLB, 29 ... Access right determination unit,
30 ... MMU.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 吉田 英樹 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 高橋 俊成 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 ─────────────────────────────────────────────────── ─── Continuation of front page (72) Inventor Hideki Yoshida 1 Komukai Toshiba-cho, Sachi-ku, Kawasaki-shi, Kanagawa Inside the Toshiba Research and Development Center (72) Inventor Toshinari Takahashi Komukai-Toshiba, Kawasaki-shi, Kanagawa Town No. 1 Toshiba Corporation Research & Development Center

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 複数の並行に実行されるスレッドにより
プログラムを実行する手段と、 あるスレッドをどのスレッドから操作できるかを示す権
限情報を記憶する手段と、 あるスレッドが他のスレッドに操作を加えようとする際
に前記権限情報によりこの操作を行う権限があるか否か
を検証する手段と、 権限があると検証された場合に前記操作の実行を許可す
る手段とを具備したことを特徴とするプログラム実行管
理装置。
1. A means for executing a program by a plurality of threads executed in parallel, a means for storing authority information indicating from which thread a thread can be operated, and a thread adding an operation to another thread. And a means for verifying whether or not the user has the authority to perform this operation based on the authority information, and a means for permitting execution of the operation when the authority is verified. Program execution management device.
【請求項2】 スレッドに対する操作の権限情報に加え
て、時刻間隔を指定する情報を記憶しておき指定された
時刻間隔の間に権限が適用されるような検証を行うこと
を特徴とする請求項1記載のプログラム実行管理装置。
2. The information for designating a time interval is stored in addition to the authority information of the operation on the thread, and the verification is performed so that the authority is applied during the designated time interval. Item 1. The program execution management device according to item 1.
【請求項3】 複数の並行に実行されるスレッドによ
り、複数の領域に分割された論理アドレス空間に配置さ
れた各プログラムを実行する手段と、 あるスレッドをどのスレッドがどの領域に存在するとき
に操作できるかを示す権限情報を記憶する手段と、 あるスレッドがある領域から他のスレッドに操作を加え
ようとする際に前記権限情報によりこの操作を行う権限
があるか否かを検証する手段と、 権限があると検証された場合に前記操作の実行を許可す
る手段とを具備したことを特徴とするプログラム実行管
理装置。
3. A means for executing each program arranged in a logical address space divided into a plurality of areas by a plurality of threads executed in parallel, and a thread when a thread exists in which area. A means for storing authority information indicating whether or not the thread can be operated, and a means for verifying whether or not a thread has an authority to perform this operation based on the authority information when an operation is applied to another thread from a certain area. A program execution management device comprising: means for permitting execution of the operation when it is verified that the user has the authority.
【請求項4】 複数の並行に実行されるスレッドによ
り、複数の領域に分割された論理アドレス空間に配置さ
れた各プログラムを実行する手段と、 ある領域をどのスレッドがアクセスできるかを示すメモ
リアクセス許否情報を記憶する手段と、 あるスレッドが他の領域にアクセスしようとする際に前
記許否情報によりこのアクセスが許可されるか否かを検
証する手段と、 許可されると検証された場合にアクセスしようとする論
理アドレスを物理アドレスに変換する手段とを備え、 各スレッドに対応して確保された論理アドレス空間中の
領域に各スレッドの情報を記憶することにより、 あるスレッドが他のスレッドに操作を加えようとする際
に前記許否情報により示される許否によりこの操作を行
う権限があるかを検証するようにしたことを特徴とする
プログラム実行管理装置。
4. A means for executing each program arranged in a logical address space divided into a plurality of areas by a plurality of threads executed in parallel, and a memory access indicating which thread can access a certain area. Means for storing permission / denial information, means for verifying whether or not this access is permitted by the permission / denial information when a thread attempts to access another area, and access if it is verified as permitted A thread operates on another thread by storing the information of each thread in an area in the logical address space secured corresponding to each thread, provided with means for converting the logical address to be converted into a physical address. When trying to add, it is verified that the authority to perform this operation is verified by the permission or denial indicated by the permission or denial information. Program execution management apparatus according to symptoms.
JP17863793A 1993-07-20 1993-07-20 Program execution management device and program execution management method Expired - Fee Related JP3585510B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP17863793A JP3585510B2 (en) 1993-07-20 1993-07-20 Program execution management device and program execution management method
US08/779,118 US5892944A (en) 1993-07-20 1997-01-06 Program execution and operation right management system suitable for single virtual memory scheme

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17863793A JP3585510B2 (en) 1993-07-20 1993-07-20 Program execution management device and program execution management method

Publications (2)

Publication Number Publication Date
JPH0736713A true JPH0736713A (en) 1995-02-07
JP3585510B2 JP3585510B2 (en) 2004-11-04

Family

ID=16051944

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17863793A Expired - Fee Related JP3585510B2 (en) 1993-07-20 1993-07-20 Program execution management device and program execution management method

Country Status (1)

Country Link
JP (1) JP3585510B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH099674A (en) * 1996-04-19 1997-01-10 Sony Corp Driving method for brushless motor
JPH0919183A (en) * 1996-04-19 1997-01-17 Sony Corp Brushless motor
WO2003104948A1 (en) * 2002-06-05 2003-12-18 富士通株式会社 Memory managing unit, code verifying device, and code decoder
KR100791437B1 (en) * 2002-12-31 2008-01-04 인터내셔널 비지네스 머신즈 코포레이션 Method And Apparatus For Managing Thread Excution In A Multithreaded Application
JP2017027627A (en) * 2004-03-31 2017-02-02 インテル コーポレイション Method and system for providing user-level multithreading

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH099674A (en) * 1996-04-19 1997-01-10 Sony Corp Driving method for brushless motor
JPH0919183A (en) * 1996-04-19 1997-01-17 Sony Corp Brushless motor
WO2003104948A1 (en) * 2002-06-05 2003-12-18 富士通株式会社 Memory managing unit, code verifying device, and code decoder
CN1296790C (en) * 2002-06-05 2007-01-24 富士通株式会社 Memory management unit code verifying device and code decoder
US7908450B2 (en) 2002-06-05 2011-03-15 Fujitsu Limited Memory management unit, code verifying apparatus, and code decrypting apparatus
KR100791437B1 (en) * 2002-12-31 2008-01-04 인터내셔널 비지네스 머신즈 코포레이션 Method And Apparatus For Managing Thread Excution In A Multithreaded Application
JP2017027627A (en) * 2004-03-31 2017-02-02 インテル コーポレイション Method and system for providing user-level multithreading
US10585667B2 (en) 2004-03-31 2020-03-10 Intel Corporation Method and system to provide user-level multithreading
US10613858B2 (en) 2004-03-31 2020-04-07 Intel Corporation Method and system to provide user-level multithreading
US10628153B2 (en) 2004-03-31 2020-04-21 Intel Corporation Method and system to provide user-level multithreading
US10635438B2 (en) 2004-03-31 2020-04-28 Intel Corporation Method and system to provide user-level multithreading

Also Published As

Publication number Publication date
JP3585510B2 (en) 2004-11-04

Similar Documents

Publication Publication Date Title
US5892944A (en) Program execution and operation right management system suitable for single virtual memory scheme
JP4519738B2 (en) Memory access control device
US7765395B2 (en) Operating system rebooting method and apparatus for continuing to execute a non-stop module even during rebooting
US6542919B1 (en) Operating system for use with protection domains in a single address space
US5845129A (en) Protection domains in a single address space
US6772419B1 (en) Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS
US7272832B2 (en) Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
US6449699B2 (en) Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems
US20070214340A1 (en) Symmetric Multiprocessor Fault Tolerant Computer System
JPH0619798A (en) Method and system for avoidance of loading of value of selector
JPH04247528A (en) Common access device and method into data space
US5136714A (en) Method and apparatus for implementing inter-processor interrupts using shared memory storage in a multi-processor computer system
JPH10312299A (en) Method for accessing data base information
US5293597A (en) Concurrent context memory management unit
JP2004501407A (en) Secure software SMI dispatching using caller addresses
EP0348053B1 (en) Controlling the initiation of logical systems in a data processing system with logical processor facility
JP3765201B2 (en) Computer system
US5745676A (en) Authority reduction and restoration method providing system integrity for subspace groups and single address spaces during program linkage
JP2001056783A (en) Program unit memory attribute managing system
JP3585510B2 (en) Program execution management device and program execution management method
JP3485940B2 (en) Virtual storage control device and method
CA2551045C (en) Input-output control apparatus, input-output control method, process control apparatus and process control method
JPH07200317A (en) Operation right management equipment
JPH05134930A (en) Memory protecting device
JP2798140B2 (en) Virtual space control method

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040203

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040323

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040517

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040520

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

Effective date: 20040730

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040804

LAPS Cancellation because of no payment of annual fees