JPH04195539A - システムコール処理方式 - Google Patents

システムコール処理方式

Info

Publication number
JPH04195539A
JPH04195539A JP32792790A JP32792790A JPH04195539A JP H04195539 A JPH04195539 A JP H04195539A JP 32792790 A JP32792790 A JP 32792790A JP 32792790 A JP32792790 A JP 32792790A JP H04195539 A JPH04195539 A JP H04195539A
Authority
JP
Japan
Prior art keywords
system call
processing
call processing
area
task
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
JP32792790A
Other languages
English (en)
Inventor
Tamotsu Iwasaki
保 岩崎
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 JP32792790A priority Critical patent/JPH04195539A/ja
Publication of JPH04195539A publication Critical patent/JPH04195539A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、リアルタイムシステムを管理するオペレーテ
ィングシステムにおいて、特に、割込み処理中に発生し
たオペレーティングシステム処理に関する。
〔従来の技術〕
ロボッ)、NC,ファクシミリ等の分野では、発生した
事象に対する応答性と高速処理が要求される。この様な
分野におけるオペレーティングシステムは、 ■ 処理オーバヘッドの短縮 ■ 発生した事象に対する応答性の確保に重点をおいて
設計される。この様なオペレーティングシステムは、特
に「リアルタイムオペレーティングシステム」(以下、
O8と略す。)と呼ばれる。
O8は、アプリケーションプログラムを「タスク」及び
「ハンドラよとして管理する。タスクは、継続的に動作
するプログラム単位である。O8は、状況に応じて最適
なタスクを選び出し、CPUを割当てる。ハンドラは、
割込み等の外部イベントに対応し、起動されるプログラ
ムである。O8に直接管理されることなく、非同期に動
作する。
第11図は、リアルタイムシステムの一例ヲ簡略化して
示した図である。第11図において、1101はアドレ
スバス、1102はデータバス、1103はCPU、1
104は割込みコントローラ、1105はタイマ、11
06はメモリ、1107は割込みコントローラ1104
からCPU1103への割込み信号路、1108はCP
U1103から割込みコントローラ1104への割込み
受付は信号路、1109はタイマ1105から割込みコ
ントローラ1104への割込み信号路である。
このシステム上で動作するアプリケーションプログラム
は、タスクが2つ、割込みハンドラが1つで構成されて
いる。2つのタスクは、イベントフラグの条件成立を待
って、決められた処理を行う。ハンドラは、イベントフ
ラグをセットする役割を持っている。このハンドラは、
タイマ1105による割込みにより起動される。タスク
やハンドラは、イベントフラグを直接操作することはで
きない。操作が必要な場合は、システムコールでO8に
操作を要求する。
システムコール処理は、システムコールエントリ処理2
本処理、タスクディスバッチ処理の3つに分けることが
できる。システムコールエントリ処理は、前処理であり
、本処理を行うために環境を準備する。タスクディスパ
ッチ処理は、本処理によって状態の変化したタスクから
、最適なものを選択し、CPUを割当てる。第8図、第
9図に、これらの処理フローを示す。
イベントフラグの条件成立を待つシステムコールは[r
wai−f Igjである。wai−flgは、条件成
立後、フラグをクリアする。パラメータは、イベントフ
ラグ識別子と、イベントフラグのパターンである。イベ
ントフラグをセットするシステムコールはFset  
flgjである。5etJ Igのパラメータは、イベ
ントフラグ識別子と、セットするイベントフラグパター
ンである。第10図に、waijlgの処理フローを示
す。
次に、第8図、第9図、第10図を参照しながら、O8
の動作を説明する。
簡単のために、イベントフラグのパターンは、クリアさ
れているものとする。また、割込み応答性能を上げるた
めに、O8は、割込み許可状態で動作するものとする。
この状態で1つのタスクがwaiJlgを発行する。制
御はO8に移り、システムコールエントリ処理が行われ
る。O8は、コンテキストを退避する(第8図の■)。
続いて、システムコール処理中であることを示すカウン
タを更新しく第8図の■)エントリ処理を終了する。次
に、本処理に移る。OSは、システムコールのパラメー
タをチエツクする(第10図の■)。パラメータからイ
ベントフラグの条件パターンを得る(第10図の■)と
、現在イベントフラグがもっているパターンと比較する
(第10図の■)。現在イベントフラグはクリアされて
いる。従って、O8は、タスクをレディーキューからは
ずした後に(第10図の■)、イベントフラグの待ちキ
ューにつなぐ(第10図の■)。最後に、O8は、夕”
スフディスバッチ処理に移る。まず、システムコール中
であることを示すカウンタを更新しく第9図の■)、シ
ステムコール処理中に要求された処理か否かを判断する
(第9図の■)。wai Ngは、タスク実行中に発行
されたために、O8は、タスクディスパッチ処理に入る
。O8は、ディスパッチすべきタスクを選択する(第9
図の■)。続いて、タスクコンテキストを切替え(第9
図の■)、コンテキストを復帰してタスクに制御を移す
(第9図の■)。
以上の様にして、O8は、システムコール処理を行う。
〔発明が解決しようとする課題〕
O8は、割込み許可状態で動作することを仮定している
ため、システムコール処理中でもハンドラが動作する。
今、第10図の■と■の処理の間で割込みが発生し、前
述したハンドラが動作することを考える。
起動されたハンドラは、set flgを含む一連の処
理を行い、処理を終了する。特に、set flgでは
、上述したタスクの待ち条件を満足するパターンをイベ
ントフラグにセットする。
waiJlgの処理は、現在のイベントフラグのパター
ンをチエツクし、タスクの要求する待ち条件を満たして
いないことを、既に判断している。
従って、処理は、第10図の■、■、タスクディスバッ
チ処理(第9図)へと進む。この様にしてシステムニー
ル処理が終了する。
ここでO8内部を見ると、「イベントフラグがタスクの
待ち条件を満たしているにもかかわらず、タスクが待ち
状態にある」という、矛盾した状態にある。これでは、
タスクやハンドラ間の関係が崩れ、最悪の場合システム
がハングアップする状態にもなりかねない。
この様な状況は、O8処理を割込み許可状態で行ったた
めに発生した。この様な矛盾を回避するために、O8処
理を割込み禁止状態で行うことを考える。この場合、上
述した矛盾を回避することはできる。しかし、逆に割込
みの応答性能が劣化し、割込みをとりこぼす恐れが生じ
る。また、第10図の■や■の処理は、処理時間が、キ
ューの状態゛によって変化する。このため、割込みの応
答性能を予想することが困難になり、O8を組込んだ製
品の3頼性が損われることになる。
〔課題を解決するための手段〕
本発明は、マイクロプロセッサを使用したリアルタイム
システム用オペレーティングシステムにおいて、前記オ
ペレーティングシステムがシステムコール処理中である
ことを識別する手段と、システムコール情報を発行順に
記憶する手段と、前記記憶手段から前記システムコール
情報を発行順に獲得する手段を有している。
本発明は、システムコール処理中に要求されたシステム
コール処理ヲ割込まれたシステムコール処理が終了する
まで遅延している。
〔実施例〕
以下、本発明の詳細な説明する。第1図は、第1実施例
を示したものである。第1図において、101はリング
バッファ、102は一単位の領域、103はシステムコ
ール情報を格納する領域、104はパラメータを格納す
る領域、105はパラメータを格納する領域、106は
バッファのリードポインタ、107はバッファのライト
ポインタである。第2図は、実施例1におけるシステム
コールエントリ処理のフローである。第3図は、実施例
1におけるシステムコール終了処理のフローである。
次に、これらの図を参照したから、実施例1の動作を説
明する。割込みが入ってハンドラが起動され、 set
J1gシステムコールな発行するまでは、従来例の動作
説明時と同じである。また、゛リンダバッファ101の
リードポインタとライトポインタは、同じ格納領域を示
しているものとする。
setJ1gシステムコールが発行されると、制御がO
8に移る。O8は、第2図に示したフローに従い、シス
テムコールエントリ処理を行う。まず、コンテキストを
退避する(第2図の■)。次にシステムコール中か否か
を判断する(第2図の■)。
割込みは、*ai flgの処理中に発生したのである
から、処理は第2図の■に移る。まず、O8は、リング
バッファ101のライトポインタを得る(第2図の■)
。得られたポインタが示す領域102のシステムコール
情報を格納する領域103に、setJlgを示す番号
を書込む。パラメータを格納する領域104にイベント
フラグ識別子を、i<うi−pを格納する領域105に
待チパターンをそれぞれ書込む(第2図の■)。そして
、ライトポインタを更新する(第2図の■)。この時の
リングバッファ101の両ポインタ状態が、第1図の状
態である。システムコール処理は、この後コンテキスト
を復帰しく第2図の■)、終了する。
以上の様に、ハンドラ内でのシステムコール処理が終了
する。
ハンドラが終了すると、os熱処理、waiJIgにも
どる。処理は、第10図の■、■と進み、タスクは待ち
状態になる。
次に、処理は、第3図に示すシステムコール終了処理に
移る。まず、osは、リードポインタとライトポインタ
を得る(第3図の■、■)。リングバッファに情報が格
納されているか否かをチエツクするために、両者を比較
する(第3図の■)。現在リードポインタは、第1図の
リードポインタ106に、ライトポインタは、第1図の
ライトポインタ107になっている。従って、処理は、
■に移る。リードポインタ106によって示されている
領域から、システムコール番号と、パラメータを得る(
第3図の■)。上述したように、システムコール番号は
、setJlgを示し、パラメータは、それぞれイベン
トフラグ識別子、待ちパターンである。O8は、リード
ポインタを更新する(第3図の■〕。この更新により、
リードポインタとライトポインタは、同じ領域を示すよ
うになる。
そして、システムコール処理に移る。
setJIg処理により、タスクはレディー状態になる
。処理は、再び、システムコール終了処理に移る。
先ず、リードポインタとライトポインタを得る(第3図
の■、■)。両者を比較する。両者は、同じ領域を示し
ているために、リングバッファ101は、空と判断する
(第3図の■)。従って、処理は、タスクデイスパッチ
ャに移る。
以上の様にして、システムコール処理が行われる。
次に、本発明の第2実施例を説明する。第4図は、第2
実施例を示したものである。第4図において、401は
システムコールキュー、402はキューの先頭を示すポ
インタを格納する領域であり、何もつながれていないと
きは“0″となる。
403は、キューの最後を示すポインタを格納する領域
であり、何もつながれていないときは“0″トナル。4
04はシステムコールブロック、405は次にリンクさ
れているシステムコールブロックを示すポインタを格納
する領域であり、つぎに何もつながれていないときは′
0”となる。
406は前にリンクされているシステムコールブロック
を示すポインタを格納する領域であり、つぎに何もつな
がれていないときは“0”となる。
407はシステムコール情報を格納する領域、408は
パラメータを格納する領域、409はパラメータを格納
する領域、410は2つめにリンクされているシステム
コー・ルブロック、411は最後にリンクされているシ
ステムコールブロックである。第5図は、システムコー
ルキューのある状態を示している。第5図において、4
01はシステムコールキュー、402はキューの先頭を
示すポインタを格納する領域、403はキューの最後を
示すポインタを格納する領域、501はリンクされてい
るシステムコールブロック、502は次にリンクされて
いるシステムコールブロックを示すポインタを格納する
領域、503は前にリンクされているシステムコールブ
ロックを示すポインタを格納する領域、504はシステ
ムコール情報を格納する領域、505はパラメータを格
納する領域、506はパラメータを格納する領域である
。第6図は、第2実施例におけるシステムコールエント
リ処理のフローであり、第7図は、第2実施例における
システムコール終了処理のフローである。
次に、これらの図を参照しながら、第2実施例の動作を
説明する。割込みが入ってノ・ンドラが起動サレ、se
t figシステムコールを発行するまでは、従来例の
動作説明時と同じである。また、システムコールキュー
401には、何もつながれていないものとする。
5etJ 1gシステムコールが発行されると、制御が
O8に移る。O8は、第6図に示したフローに従い、シ
ステムコールエントリ処理を行う。まず、コンテキスト
を退避する(第6図の■)。次にシステムコール中か否
かを判断する(第6図の■)。
割込みは、waijlgの処理中に発生したのであるか
ら、処理は第6図の■に移る。O8は、システムメモリ
からシステムコールブロック501を得る(第6図の■
)。得られたシステムコールブロック501の領域50
4に、set flgを示す番号を、領域505と領域
506に、イベントフラグ識別子と待ちパターンをそれ
ぞれ書込む(第6図の■)。そして、システムコールブ
ロック501を、システムコールキュー401につなぐ
(第6図の■)。システムコールキュー401には、何
もつながれていなかったため、領域502と領域503
には、00″が入る。また、領域402と領域403に
は、システムコールブロック501のアドレスが入る。
この時のシステムコールキューの状態を、第5図に示す
。システムコール処理は、この後コンテキストを復帰し
く第6図の■)、終了する。
以上の様に、ハンドラ内でのシステムコール処理が終了
する。
ハンドラが終了すると、O8処理は、wai  fig
にもどる。処理は、第10図の■、■と進み、タスクは
待ち状態になる。
次に、処理は、第7図に示すシステムコール終了処理に
移る。まず、O8は、システムコールキューの領域40
2の内容から、キューにシステムコールブロックがつな
がれているか否かを判断する(第7図の■)。内容は“
0”ではないため、■に処理が移る。O8は、システム
コールブロック501を、システムコールキューからは
ずす。
はずすことによって、キューにつながれているシステム
コールブロックがなくなる。システムコールキュー40
1の領域402と403には、“0”が書込まれる。シ
ステムコールブロック501から、システムコール番号
と、パラメータを得る(第7図の■)。上述したように
、システムコール番号は、setJlgを示し、パラメ
ータは、それぞれイベントフラグ識別子、待ちパターン
である。O8は、システムコールブロック501をメモ
リに返却する(第7図の■)。そして、システムコール
処理に移る。
5etJ 1g処理により、タスクはレディー状態にな
る。処理は、再びシステムコール終了処理に移る。
O8は、システムコールキューの領域402の内容から
、キューにシステムコールブロックカッながれているか
否かを判断する(第7図の■)。
内容は“0゛であるためにシステムコール終了処理が終
了し、タスクディスバチャに処理が移る。
以上の様にして、システムコール処理が行われる。
〔発明の効果〕
以上の説明から明らかなように、本発明では、システム
コール処理中に起動されるハンドラから発行されたシス
テムコールの処理をキューイングし、割込まれたシステ
ムコール処理が終了するまで処理を遅延する。これによ
り、従来問題であった、システムコール処理の割込みに
よるシステムコール処理のネストによるO8内部の矛盾
や、この矛盾から生じるシステムのハングアップを防ぐ
ことができる。
また、従来この問題を解決するために行っていた、O8
内部を割込み禁止状態にする方法を取る必要がなくなり
、割込み応答性を大幅に向上させることができる。この
ために、割込み等の外部事象に迅速に対応することがで
き、O8、ならびにシステムの信頼性を向上させること
ができる。
【図面の簡単な説明】 第1図は、本発明の一実施例図、第2図は本実施例にお
けるシステムコールエントリ処理のフロー、第3図は本
実施例におけるシステムコール終了処理のフロー、第4
図は本発明の第2実施例図、第5図はあるシステムコー
ルキューの状態図、第6図は第2実施例2におけるシス
テムコールエントリ処理のフロー、第7図は第2実施例
2におけるシステムコール終了処理のフロー、第8図は
従来のシステムコールエントリ処理のフロー、第9図は
、タスクディスバッチ処理のフロー、第1O図は[rw
ai−f1gjシステシステムコール番号−、第11図
はRTO3が動作する環境の一例図である。 代理人 弁理士  内 原   音

Claims (1)

    【特許請求の範囲】
  1. マイクロプロセッサを使用したリアルタイムシステム用
    オペレーティングシステムにおいて、前記オペレーティ
    ングシステムがシステムコール処理中であることを識別
    する手段と、システムコール情報を発行順に記憶する手
    段と、前記記憶手段から前記システムコール情報を発行
    順に獲得する手段を有し、前記オペレーティングシステ
    ムのシステムコール処理中に発行されたシステムコール
    の情報を、前記記憶手段に記憶し、現在行っているシス
    テムコール処理が終了した時点で、前記獲得手段により
    前記記憶手段からシステムコール情報を取り出し、シス
    テムコール処理を行うことを特徴とする、システムコー
    ル処理方式。
JP32792790A 1990-11-28 1990-11-28 システムコール処理方式 Pending JPH04195539A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32792790A JPH04195539A (ja) 1990-11-28 1990-11-28 システムコール処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32792790A JPH04195539A (ja) 1990-11-28 1990-11-28 システムコール処理方式

Publications (1)

Publication Number Publication Date
JPH04195539A true JPH04195539A (ja) 1992-07-15

Family

ID=18204561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32792790A Pending JPH04195539A (ja) 1990-11-28 1990-11-28 システムコール処理方式

Country Status (1)

Country Link
JP (1) JPH04195539A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6629252B1 (en) * 1999-10-28 2003-09-30 International Business Machines Corporation Method for determining if a delay required before proceeding with the detected interrupt and exiting the interrupt without clearing the interrupt

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6629252B1 (en) * 1999-10-28 2003-09-30 International Business Machines Corporation Method for determining if a delay required before proceeding with the detected interrupt and exiting the interrupt without clearing the interrupt

Similar Documents

Publication Publication Date Title
US6006247A (en) Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system
US5469571A (en) Operating system architecture using multiple priority light weight kernel task based interrupt handling
US8612986B2 (en) Computer program product for scheduling ready threads in a multiprocessor computer based on an interrupt mask flag value associated with a thread and a current processor priority register value
KR950002713B1 (ko) 인터페이스 시스템 및 데이타 전송 제어방법
US5452452A (en) System having integrated dispatcher for self scheduling processors to execute multiple types of processes
US6560626B1 (en) Thread interruption with minimal resource usage using an asynchronous procedure call
EP0528222A2 (en) Notification of event handlers in broadcast or propagation mode by event management services in a computer system
EP0442717A2 (en) Control of peripherals in a multitasking system
US5291608A (en) Display adapter event handler with rendering context manager
JPH064322A (ja) プロセスレベルプログラミングのための割込み処理の直列化方法
JP3644042B2 (ja) マルチタスク処理装置
JPH04195539A (ja) システムコール処理方式
JPH06187171A (ja) 割込みにおけるスケジューリング方式
JP7331768B2 (ja) リアルタイム演算処理装置
JP3071210B2 (ja) タスク管理制御方式
JP2822728B2 (ja) コンピュータシステム
JPH06324888A (ja) スケジューリングシステム
JPH03116335A (ja) 非特権cpuから特権cpuヘの乗り移り方式
JPH0417034A (ja) タスクスケジューリング装置
WO1992003783A1 (en) Method of implementing kernel functions
WO1992003784A1 (en) Scheduling method for a multiprocessing operating system
JP2594557B2 (ja) マルチタスク処理装置
JPH0495137A (ja) オペレーティングシステムのコンテキスト切替方式
JPH05108376A (ja) コンピユータシステム
JPH11120146A (ja) 並列処理プログラムとコプロセッサとの間の排他制御方法およびその排他制御機能を有する計算システム