JPH0341520A - 割り込み制御方式 - Google Patents

割り込み制御方式

Info

Publication number
JPH0341520A
JPH0341520A JP17557289A JP17557289A JPH0341520A JP H0341520 A JPH0341520 A JP H0341520A JP 17557289 A JP17557289 A JP 17557289A JP 17557289 A JP17557289 A JP 17557289A JP H0341520 A JPH0341520 A JP H0341520A
Authority
JP
Japan
Prior art keywords
interrupt
interruption
mask
handler
processing
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
JP17557289A
Other languages
English (en)
Inventor
Hisayuki Aoki
青木 久幸
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP17557289A priority Critical patent/JPH0341520A/ja
Publication of JPH0341520A publication Critical patent/JPH0341520A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野コ 本発明は、計算機システムにおいて1割り込み処理ルー
チンと通常のルーチンとの間の資源排他制御方式に関す
る。
[従来の技術] ある資源を操作中に割り込みが発生して、その割り込み
に対する処理ルーチンでその資源を操作すると1両者の
操作内容によっては矛盾が発生する。例えば、あるチエ
イン上の構造体を別のチエインに移動させるような処理
は2元のチエインから外した時点で割り込まれ、その割
り込み処理ルーチン内でも同じ構造体に対するチエイン
操作を行えば、チエインに乱れが生しる。このような現
象を防ぐためには2通常のルーチンと割り込み処理ルー
チンとの間で資源排他制御を行う必要がある。
一般に、資源排他制御の手段としては、ロック方式やセ
マフォによる方式などがある。これらの手法は、すでに
使われている資源を別のプログラムか操作しようとした
時に、そのプログラムの実行を一時中断し、先にその資
源を使っていたプログラムの支片完了を待ち合わせるこ
とにより、同一の資源に対する同時アクセスを排除する
ものである。しかし、これらの手法を通常ルーチンと割
り込み処理ルーチンとの資源排他制御に使うと。
割り込み処理ルーチンの中で実行が停止してしまう。通
常ルーチンは割り込み処理から戻らないと動作できない
ので、永久にプロセッサが停止にしてしまうか、あるい
は、無限ループになってしまう。
つまり、これらの手法はプロセス141(タスク間)の
資源排他制御方式であって1通常ルーチンと割り込みル
ーチンのような場合には適用できない。
通常ルーチンと割り込みルーチンとの間の資源排他制御
の手広としては1割り込みマスクによる方式かある。割
り込みがマスクされていると2割り込みが発生しても割
り込みマスクが解除されるまで1割り込み処理を保留す
るという方式である。
通常ルーチンにおいて1割り込み処理ルーチンで操作さ
れる資源を使う時は、この割り込みマスクをセットすれ
ばよい。割り込みマスクがセットされている期間は2割
り込み処理ルーチンが動かないので1問題の資源を自由
に操作できる。
この割り込みマスク方式の発展した方式として割り込み
レベル制御方式がある。この方式は2割り込みマスク(
1ビツト)の代わりに割り込みレベル(数ビット)なる
領域を使う。原因の違う各割り込みは、それぞれ対応す
る割り込みレベルを持っている。割り込みレベルをある
値に設定すると、そのレベル以下の割り込みが発生して
も1割り込みレベルが低くなるまで割り込み処理は保留
される。従って1割り込みレベルの値を変更することに
よって、資源の排他制御が可能となる。割り込み処理を
保留する事によって資源の排他制御を行う点は2割り込
みマスク方式と同じである。
しかし、この方式では、ある割り込みレベルを設定して
も、そのレベルより高い割り込みレベルに対応する割り
込みの割り込み処理は保留されない。
つまり1割り込みマスク方式と違って、すべての割り込
み処理が保留されるわけではない。
[発明が解決しようとする課題] 割り込みマスク方式では割り込みがマスクされていると
、−切の割り込み処理ルーチンが動かなくなるという問
題点がある。一般に、割り込みの原因はひとつのみでは
なく複数ある。従って、実際に発生した割り込みの原因
によっては1問題の資源を使わない場合がある。このよ
うな割り込みはマスクする必要がない。割り込みマスク
方式では、このような割り込み処理も無条件に保留にし
てしまう。延滞させる必要のない割り込み処理までも延
滞させてしまう。
同様に1割り込みレベル制御方式でも、設定されている
レベルより低いレベルに対応する割り込みの処理はすべ
て延滞してしまう。一般には、あるレベルに対応する割
り込み処理で使う資源を。
そのレベルより低いレベルに対応する割り込み処理で必
ず使うわけてはない。この場合も、延滞させる必要のな
い割り込み処理までも延滞させている事になる。
一般に、割り込み処理は割り込みが発生した直後に行う
のが望ましい。割り込み発生から峙間が経過すれば、そ
れだけシステム内外の状況が変化してしまうし、システ
ムの応答性能も劣化する。
たとえば、一定間隔でタイマ割り込みを発生させるよう
な場合は9割り込み処理を保留しているうちに次のタイ
マ割り込み時刻になってしまう。このような観点から見
れば1割り込みマスク方式も割り込みレベル制御方式も
、外部事象に対する応答性能等をある程度犠牲にして、
資源の排他制御を行っていると言える。さらに、犠牲と
いう点から見れば、常にすべての割り込み処理が保留さ
れてしまうわけではない分だけ1割り込みレベル制御方
式の方が1割り込みマスク方式よりも進歩していると考
えられる。
本発明の目的は1通常ルーチンと割り込み処理ルーチン
との資源排他制御において1割り込み処理の延nを必要
最小限で済ませ、応答性能等の犠牲をなるべく少なくす
る事ができる割り込み制御方式を提供することにある。
[課題を解決するための手段] 本発明による割り込み制御方式は1割り込みベクタに各
原因に対応する割り込みの処理を行う割り込みハンドラ
の先頭アドレスとその割り込みハンドラの初期割り込み
マスクレジスタの値を設定する割り込みベクタ設定手段
と1割り込みが発生した特にその原因を入手する割り込
み原因入手手段と1割り込みマスクレジスタから発生し
た割り込みのマスク状態を調べ割り込み処理を保留する
か否かを判定する割り込みマスク判定手段と1割り込み
マスクレジスタを待避し割り込みベクタを参照して発生
した割り込みの処理を行う割り込みハンドラを呼び出す
割り込みハンドラ起動手段と。
割り込みマスクレジスタを復元しその値と割り込み保留
レジスタの値とから保留されている割り込み処理で処理
ηJ能なものがあるか否かを判定し割り込み処理を終了
するかまたは再度割り込みハンドラ起動手段に分岐する
割り込みハンドラ終了手段と1割り込みマスクレジスタ
の状態を変更する割り込みマスク変更手段とを有してい
る。
[実施例] 次に本発明について図面を参照して詳細に説明する。
第1図を参照すると1本発明の一実施例による割り込み
制御方式が適用される計算機システムは。
割り込みベクタVに各原因に対応する割り込みの処理を
行う割り込みハンドラαの先頭アドレスと。
その割り込みハンドラの初期割り込みマスクレジスタの
値を設定する割り込みベクタ設定手段11と1割り込み
が発生した特にその原因を入手する割り込み原因入手手
段12と1割り込みマスクレジスタMから発生した割り
込みのマスク状態を調べ1割り込み処理を保留するか否
かを判定する割り込みマスク判定手段13と1割り込み
マスクレジスタMを待避し1割り込みベクタVを参照し
て。
発生した割り込みの処理を行う割り込みハンドラαを呼
び出す割り込みノ\ンドラ起動手段14と。
割り込みマスクレジスタMを復元し、その値と割り込み
保留レジスタPの値とから保留されている割り込み処理
で処理可能なものかあるか否かを判定し1割り込み処理
を終了するかまたは再度割り込みハンドラ起動手段14
に分岐する割り込みハンドラ終了手段15と1割り込み
マスクレジスタMの状態を変更する割り込みマスク変更
手段16とから構成される。
次に本発明の動作について図面を参照して説明する。
第2図を参照すると1割り込みマスク判定手段13は1
割り込みマスク判定ステップ21で1割り込みマスクレ
ジスタ(第1図のM)の発生した割り込みに対応するビ
ットを調べる。マスクされていない場合は1割り込みハ
ンドラ起動手段14へ分岐する。マスクされている場合
は1割り込み保留処理ステップ22で1割り込み保留レ
ジスタ(第1図のP)の発生した割り込みに対応するビ
ットをセットし1割り込み処理から戻る。
第3図を参照すると2割り込みハンドラ起動手段14は
2割り込みマスク待避ステップ31で。
その時の割り込みマスクレジスタ(第1図のM)の値を
システムスタックなどに待避し1割り込みマスク礎更ス
テンプ32で1割り込みベクタ(第1図のV)から発生
した割り込みに対応する割り込みハンドラの初期割り込
みマスクレジスタ値を読み、この読まれた初期割り込み
マスクレジスタ値と割り込みマスクレジスタ(第1図の
M)の現在値との論理和を取り、その結果を割り込みマ
スクレジスタ(第1図のM)に設定し1割り込みハンド
ラ先頭アドレス入手ステップ33で1割り込みベクタか
ら発生した割り込みに対応する割り込みハンドラの先頭
アドレスを入手し、その割り込みハンドラに分岐する。
第4図を参照すると7割り込みハンドラ終了手段15は
1割り込みマスク復元ステップ41で。
前記割り込みハンドラ起動手段14でシステムスタック
などに待避された値を割り込みマスクレジスタ(第1図
のM)に復元し1割り込み保留1+1定ステツプ42で
1割り込みマスクレジスタ(第1図のM)と割り込み保
留レジスタ(第1図のP)とからマスクが解除されて処
理が保留されている割り込みがあるか否かを検査する。
マスクか解除され処理が保留されている割り込みがある
場合は。
割り込み原因選択ステップ43で1次に処理する割り込
みを選び1割り込み保留解除ステップ44て1割り込み
保留レジスタ(第1図のP)の割り込み原図選択ステッ
プ43で選ばれた割り込みに′11応するビットをクリ
アし1割り込みハンドラ起動手段14へ分岐する。マス
クが解除され処理が保留されている割り込みがない場合
は、呼び出し元判定ステップ45で1割り込み処理と割
り込みマスク変更手段16とのいずれから呼び出された
かを判定し5割り込み処理から呼び出された場合は割り
込み処理から戻り8割り込みマスク変更手段16から呼
び出された場合は1割り込みマスク女史手段16を呼び
出した所に戻る。
第5図を参照すると1割り込みマスク変更手段16は1
割り込みマスク変更ステップ51で、指定された値を割
り込みマスクレジスタ(第1図のM)に設定し1割り込
み保留↑り定ステップ52で割り込みマスクレジスタ(
第1図のM)と割り込み保留レジスタ(第1図のP)と
からマスクが解除されて処理が保留されている割り込み
があるか否かを検査する。マスクが解除され処理が保留
されている割り込みがある場合は2割り込み原因選択ス
テップ53で1次に処理する割り込みを選び。
割り込み保留解除ステップ54で1割り込み保留レジス
タ(第1図のP)の割り込み原因選択ステップ53で選
ばれた割り込みに対応するビットをクリアし1割り込み
ハンドラ起動手段14へ分岐する。マスクが解除され処
理が保留されている割り込みがない場合は1割り込みマ
スク変更手段16を呼び出した所に戻る。
次に、第6図、第7図、及び第8図を参照して。
本発明の割り込み制御方式の動作について説明する。
各割り込みハンドラが使用する資源を第7図の通りとす
る。第7図より2割り込みハンドラαは割り込みハンド
ラβと割り込みハンドラδと同じ資源を使用する。従っ
て1割り込みハンドラαが動作している期間は割り込み
ハンドラβと割り込みハンドラδの起動を抑止しなけれ
ばならない。
他の割り込みハンドラについても同様に考えると。
第6図のような1割り込みベクタか必要であることがわ
かる。
さて、第8図に実際の動作例を示す。
時刻aて資源1を使用するために1割り込みマスク女史
手段16を使って2割り込みAと割り込みBをマスクす
る。
しばらくして2時刻すで割り込みBが発生ずると1割り
込み原因入手8手段12・割り込みマスク判定手段13
か動作するか1割り込みBがマスクされているので5割
り込みハンドラβは保留状態になり、再び元の処理に反
る。
時刻Cで割り込みCか発生すると1割り込みCはマスク
されていないので5割り込みハンドラγが起動される。
この時9割り込みB・割り込みC・割り込みDが追加マ
スクされるので、すべての割り込みがマスクされた状態
て割り込みハンドラγが起動される。
時刻dに割り込みDか発生すると、すべての割り込みが
マスクされているので1割り込みハンドラδは保留状態
になり1 再び割り込みハンドラγの処理に戻る。割り
込みハンドラγが終了すると。
割り込みハンドラ終了手段15が動作し1割り込みマス
ク状態を割り込みハンドラγが起動される前の状態に戻
す。この時1割り込みDのマスクが解除され9割り込み
ハンドラδが保留されているので9割り込みハンドラδ
が起動される。割り込みベクタによれば2割り込みA・
割り込みC・割り込みDが追加マスクされるので1割り
込みハンドラδはすべての割り込みがマスクされた状態
で動作する。
割り込みハンドラδが終了すると、再び割込みハンドラ
終了手段15が動作し1割り込みマスクを割り込みハン
ドラδ起動前の状態に戻す。この時点では1割り込みハ
ンドラβが保留されているが1割り込みBがマスクされ
ているために1割り込みハンドラβは起動されずに1元
の処理に戻る。
Il、’tf11 eで割り込みマスク変更手段16を
使って。
割り込みAと割り込みBのマスクを解除すると。
割り込みハンドラβが保留されているので1割り込みハ
ンドラβが起動される。割り込みハンドラβは資源1を
使うか2通常ルーチンの資源1の換作は終わっているの
で問題はない。
これらの動作は、資源2.資源3.資源4に対してυト
他制御を行う時も同様である。つまり、それぞれの資源
を使用する割り込みのマスクをかけても1割り込みハン
ドラα・δ1割り込みハンドラα・β1割り込みハンド
ラβ・γは動作可能である。
以上のように、この方式では各割り込み処理に対して別
々にマスクをかけることができる。このため、使用しよ
うとする資源を使う割り込み処理のみをマスクする事が
可能となる。その資源に関係のない割り込み処理はマス
クされず、従って不必要に延滞する事はない。
[発明の効果〕 以上説明したように1本発明の割り込み制御方式を使え
ば1割り込み処理の延滞による応答性能などの犠牲を必
要最小限におさえた1通常ルーチンと割り込み処理ルー
チンとの間の資源排他制御が可能となる。
【図面の簡単な説明】
第1図は本発明の一実施例による割り込み制御方式が適
用される計算機システムの構成を示すブロック図、第2
図は第1図中の割り込みマスク判定手段の動作を説明す
るためのフローチャート。 第3図は第1図中の割り込みハンドラ起動手段の動作を
説明するためのフローチャート、第4図は第1図中の割
り込みハンドラ終了手段の動作を説明するためのフロー
チャート、第5図は第1図中の割り込みマスク変更手段
の動作を説明するためのフローチャート、第6図は本発
明の割り込み制御方式の動作を説明するために使用され
る割り込みベクタの一例を示す図、第7図は本発明の割
り込み制御方式の動作を説明するために使用される各割
り込みハンドラが使用する資源の一例を示す図、第8図
は本発明の割り込み制御方式の動作を説明するための図
である。 11・・・割り込みベクタ設定手段、12・・・割り込
み原因入手手段、13・・・割り込みマスク判定手段。 14・・・割り込みハンドラ起動手段、15・・・割り
込みハンドラ終了手段、16・・・割り込みマスク変更
手段、■・・・割り込みベクタ、M・・・割り込みマス
クレジスタ、P・・・割り込み保留レジスタ。 第2図 第 図 巨=冨冨)1 第6図 第 図 ・資Alを使用しない処理 第 図

Claims (1)

  1. 【特許請求の範囲】 1、各原因に対応する割り込みの処理を行う割り込みハ
    ンドラと、割り込みの原因に対応して、割り込みを許可
    するか否かを示す割り込みマスクレジスタと、割り込み
    の原因に対応して、割り込みを保留するための割り込み
    保留レジスタと、前記割り込みハンドラの先頭アドレス
    と該割り込みハンドラの初期割り込みマスクレジスタの
    値とを記憶する割り込みベクタとを用いて、割り込みを
    制御する方式に於いて、 割り込みが発生した時に、その原因を入手する割り込み
    原因入手手段と、 前記割り込みマスクレジスタから発生した割り込みのマ
    スク状態を調べ、割り込みを保留するか否かを判定し、
    前記発生した割り込みがマスクされているときには、前
    記割り込み保留レジスタに当該発生した割り込みを保留
    し、前記発生した割り込みがマスクされていないときに
    は、割り込み許可信号を出力する割り込みマスク判定手
    段と、前記割り込み許可信号に応答して、前記割り込み
    マスクレジスタの内容を退避し、前記割り込みベクタを
    参照して前記発生した割り込みの処理を行う割り込みハ
    ンドラを呼び出す割り込みハンドラ起動手段と、 前記呼び出された割り込みハンドラの処理が終了したと
    き、前記割り込みマスクレジスタを復元し、該復元され
    た値と前記割り込み保留レジスタの値とから保留されて
    いる割り込み処理で処理可能なものがあるか否かを判定
    し、割り込み処理を終了するかまたは再度前記割り込み
    ハンドラ起動手段に分岐する割り込みハンドラ終了手段
    と、外部からの変更要求に応答して、前記割り込みマス
    クレジスタの状態を変更する割り込みマスク変更手段と
    、 を有することを特徴とする割り込み制御方式。
JP17557289A 1989-07-10 1989-07-10 割り込み制御方式 Pending JPH0341520A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17557289A JPH0341520A (ja) 1989-07-10 1989-07-10 割り込み制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17557289A JPH0341520A (ja) 1989-07-10 1989-07-10 割り込み制御方式

Publications (1)

Publication Number Publication Date
JPH0341520A true JPH0341520A (ja) 1991-02-22

Family

ID=15998428

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17557289A Pending JPH0341520A (ja) 1989-07-10 1989-07-10 割り込み制御方式

Country Status (1)

Country Link
JP (1) JPH0341520A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08297581A (ja) * 1995-02-28 1996-11-12 Nec Corp リアルタイム・オペレーティングシステムにおける割り込み管理方式
WO2001042918A1 (fr) * 1999-12-07 2001-06-14 Matsushita Electric Industrial Co., Ltd. Procede et dispositif de gestion d'interruption

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08297581A (ja) * 1995-02-28 1996-11-12 Nec Corp リアルタイム・オペレーティングシステムにおける割り込み管理方式
WO2001042918A1 (fr) * 1999-12-07 2001-06-14 Matsushita Electric Industrial Co., Ltd. Procede et dispositif de gestion d'interruption
US6820155B1 (en) 1999-12-07 2004-11-16 Matsushita Electric Industrial Co., Ltd. Interruption managing device and interruption managing method

Similar Documents

Publication Publication Date Title
US6675191B1 (en) Method of starting execution of threads simultaneously at a plurality of processors and device therefor
US5768599A (en) Interrupt managing system for real-time operating system
US7395263B2 (en) Realtime-safe read copy update with lock-free readers
US8055860B2 (en) Read-copy-update (RCU) operations with reduced memory barrier usage
US20030014472A1 (en) Thread ending method and device and parallel processor system
EP0886217B1 (en) Interrupt controller, system having the same, interrupt handling method and storage medium storing program for interrupt handling
US20040117793A1 (en) Operating system architecture employing synchronous tasks
US5644772A (en) Signal dispatching for C language interrupt handling
JPH08297581A (ja) リアルタイム・オペレーティングシステムにおける割り込み管理方式
JP2008537248A (ja) デジタルシグナルプロセッサ上でのマルチタスクの実施
JPH0341520A (ja) 割り込み制御方式
EP1233340A2 (en) Context preservation
JPH05257902A (ja) 処理プログラム・モードにおけるロック獲得処理方式
JP2580072B2 (ja) 割込み処理装置
JPH0895803A (ja) タスクスケジュール方法
JPH09160790A (ja) タスクスケジュール装置及びタスクスケジュール方法
JPH0644234B2 (ja) タスク管理装置
JP2976722B2 (ja) 待ち行列の管理方式および管理方法
JPS63636A (ja) タスク制御方式
JP3107433B2 (ja) 電子計算機システムにおけるタスク状態管理方式
JPH07134656A (ja) 割り込み制御方法及びそれを実現するマルチタスクシステム
JPH04147344A (ja) マルチタスク実行制御方式
JP2023091314A (ja) 半導体装置、半導体装置の制御方法及びプログラム
JPH02244371A (ja) マルチプロセツサシステムの排他制御方法
WO2005085994A2 (en) Multi-tasking data processing system