JPH09311794A - オペレーティングシステムにおけるカーネルサービス方式 - Google Patents

オペレーティングシステムにおけるカーネルサービス方式

Info

Publication number
JPH09311794A
JPH09311794A JP15025096A JP15025096A JPH09311794A JP H09311794 A JPH09311794 A JP H09311794A JP 15025096 A JP15025096 A JP 15025096A JP 15025096 A JP15025096 A JP 15025096A JP H09311794 A JPH09311794 A JP H09311794A
Authority
JP
Japan
Prior art keywords
task
system call
link
data
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
JP15025096A
Other languages
English (en)
Inventor
Tsutomu Sawada
勉 澤田
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.)
ERUGU KK
Original Assignee
ERUGU KK
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 ERUGU KK filed Critical ERUGU KK
Priority to JP15025096A priority Critical patent/JPH09311794A/ja
Publication of JPH09311794A publication Critical patent/JPH09311794A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 アプリケーションタスクが優先順位通り制御
されない時間を短縮化し、アプリケーションの設計やプ
ログラミングにおいてシステムコール処理の時間を考慮
する必要がないオペレーティングシステムにおけるカー
ネルサービス方式を提供する。 【解決手段】 システムコールサービス部14のシステ
ムコール処理をタスクのコンテキストで実行するように
してある。リンク再実行処理部16は、任意のタスクが
リンクのあるデータを処理する場合、データを処理して
いる間はシステムコール処理への割り込みを禁止し、つ
ぎのデータに辿るまでの間のみを割り込み可能としてい
る。またリンクヘッダに対応してフラグを設けてある。
割り込み可能なときにリンクが変更されるか、データが
書き換えられた場合にはフラグをオンとする。割り込み
禁止になった直後、フラグをチェックし、オンであるな
らばリンクの先頭に戻って再実行処理を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、外部割り込み処理
部が入出力等の外部割り込みを受けることによりタスク
のステータスを変更し、タスクスケジューラがタスクの
状態変化にしたがってタスク全体の実行順序を決定し、
前記実行順序にしたがってタスクがシステムコールサー
ビス部にシステムコールを行うオペレーティングシステ
ム(以下「OS」という)におけるカーネルサービス方
式に関する。
【0002】
【従来の技術】カーネルとはOSの機能のうち最も基本
的な部分を指し、制御と資源管理を行うものである。図
7は、カーネルの機能を説明するためのブロック図であ
る。この図はカーネル30の本発明に直接関係する機能
ブロックを示したもので、他の部分は省略してある。外
部割り込み処理部31は、図示しない入出力機器などか
らの割り込みを受け、それに応じて必要であるならばタ
スクのステータスを変更する。タスクステータスを変更
した場合には、割込みによりタスクステータスの変更が
発生したという事象をタスクケジューラ32に通知す
る。
【0003】タスクステータスとは、タスクが入出力を
待っている状態などを示す状態フラグで、このステータ
スが変化することは、待っていたタスクが実行できるよ
うになったり、実行していたタスクが待ちに入ったりす
ることを示す。タスクスケジューラ32は、割込みによ
るタスクの状態変化を反映したタスク全体の実行順序を
新たに決定する。
【0004】図8に割り込みによるタスクのスケジュー
リングの詳細を示してある。タスクのステータスを管理
しているデータ34が外部割り込み処理部31により書
き換えられ、ステータス変更が通知されると、タスクス
ケジューラ32は、上記データ34を参照し、新しいタ
スクのステータスに従って実行すべきタスクを選び直
す。そして、必要であるならば、実行中のタスクを中断
して他のタスクに切り換え、新しいタスクを実行させ
る。即時性が要求されるリアルタイムシステムでは、タ
スクに緊急度に応じた優先順位を付けておき、優先順位
の高いタスクから順に実行させるように構成されてい
る。
【0005】システムコールサービス部33は、タスク
に対して、同期制御、排他制御、タスク間通信機能、メ
モリ管理機能などのサービスを提供するための処理を行
う。システムコールサービス部33を構成するプログラ
ムは、カーネル30のプログラム中では、最大の容量の
プログラム群であり、システムコールとはOSが内蔵し
ている基本的なルーチンをアプリケーションタスクが使
うことをいう。従来、タスクがシステムコール(命令)
を呼び出すと、そのサービスを提供するシステムコール
サービス部33のシステムコール処理は、タスクを中断
して実行されていた。システムコールサービス部33に
よる処理中にタスクの切り替えが発生すると、別のタス
クから同じシステムコールが呼び出される可能性があ
り、それに対処することが困難であると考えられている
からである。
【0006】図9は、リエントラントルーチンを説明す
るための図である。リエントラントとは1つのプログラ
ムが同時に複数の処理装置やタスクで使用可能なことと
定義される。例えば、コール1によってあるルーチンの
中で処理を中断している間に、コール2によって同じル
ーチンが呼び出された場合、呼び出した各々の処理に正
しい結果を返す。このような性格をリエントラント(再
入可能)と呼んでいる。ところでカーネル30は、同時
に複数の処理から参照できないデータ構造を沢山管理し
ている。そのために、システムコールサービス部33に
よる処理は、リエントラントに制作できない。よってシ
ステムコールサービス処理中はタスクの切り替えを行わ
ないようにしていた。
【0007】
【発明が解決しようとする課題】図10は、従来のカー
ネルの機能において、外部割り込みのシステムコール処
理によるタスク切換の遅延を説明するための図である。
タスクAはタスクBより優先順位が高いものとする。タ
スクBがシステムコールを行いシステムコールサービス
部によるシステムコール処理を行っている。このシステ
ムコール処理中に外部割り込みが発生し、タスクAを実
行できるステータスに変更されたとする。これによりタ
スクのステータスが変化して、システムコールを呼び出
しているタスクBより優先順位が高いタスクAが実行で
きるようになる。しかしながら、システムコールサービ
ス部は割り込みを排除しているためタスクBのシステム
コール処理を続行する。
【0008】そして、タスクBのシステムコール処理が
終了したときにスケジュール処理が行われて、上記タス
クAを実行できるステータスに基づきタスクAへと切り
替えている。そのため、タスクAが実行できるようにな
ったときと、実行できるまでに遅延時間が発生する。割
込みに即時に対応する必要のあるリアルタイムシステム
では、この遅延時間が重要な意味を持つこととなる。す
なわち、折角タスクに優先順位を付けていてもこの遅延
時間によってその趣旨が生かされないことになる。その
ため、個々のシステムコールの処理時間を意識しながら
アプリケーションのコーディングをしなければならない
場合があるという欠点があった。本発明の課題は、アプ
リケーションタスクが優先順位通り制御されない時間を
短縮化し、アプリケーションの設計やプログラミングに
おいてシステムコール処理の時間を考慮する必要がない
オペレーティングシステムにおけるカーネルサービス方
式を提供することにある。
【0009】
【課題を解決するための手段】前記課題を解決するため
に本発明によるオペレーティングシステムにおけるカー
ネルサービス方式は、入出力等の外部割り込みを受ける
ことによりタスクのステータスが変更され、タスクスケ
ジューラが割り込みによるタスクの状態変化にしたがっ
てタスク全体の実行順序を決定し、前記実行順序にした
がってタスクがシステムコールサービス部にシステムコ
ールを行うオペレーティングシステムにおけるカーネル
サービス方式において、前記システムコールサービス部
のシステムコール処理をタスクのコンテキストで実行す
るようにし、システムコール処理において、任意のタス
クに属するシステムコールサービス部が、リンクのある
データを処理する場合、前記データを処理している間は
システムコール処理への割り込みを禁止し、つぎのデー
タに辿るまでの間のみを割り込み可能とするとともに前
記リンクのあるデータのリンクヘッダに対応してフラグ
を設け、前記割り込み可能なときにリンクが変更される
か、データが書換えられたとき前記フラグをオンするよ
うにし、前記割り込み許可の状態から禁止状態に移行し
た直後に、前記フラグをチェックし、前記フラグがオン
のときリンクの先頭に戻って、前記リンクのあるデータ
の処理を再実行するリンク再実行処理部を設けて構成し
てある。
【0010】
【作用】上記構成によれば、アプリケーションタスクが
優先順位どおりに制御されない時間が短かくなるので、
システムコールの処理時間を考慮する必要がなくなり、
アプリケーションの設計やプログラミングに際しての煩
雑さを緩和できる。
【0011】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を詳しく説明する。図1は、本発明によるカー
ネルサービス方式を適用したオペレーティングシステム
を搭載したコンピュータ装置のブロック図である。この
コンピュータ装置はCPUによる制御手段1,表示手段
2,データ・プログラム記憶手段3,入力装置4および
出力装置5より構成されている。データ・プログラム記
憶手段3に格納されたプログラムに制御手段1の機能
(プロセッサ,メモリ,入出力やファイル,タスク管理
等)を提供するOS実行部6の中心的な機能としてカー
ネル部7がある。制御手段1の制御の下に生成されたタ
スクはカーネル部7のシステムコールを呼び出す。
【0012】図2は、本発明によるカーネルサービス方
式の実施の形態を示すブロック図である。システムコー
ルサービス部14で行うシステムコール処理をタスクの
コンテキストで実行するようにしてある。これによっ
て、システムコール処理は、カーネルコンテキストから
切り離されて、タスクのサブルーチンとして位置づけら
れる。コンテキストとは、処理が中断され、再開される
ことが許されている単位である。すなわち、タスク8は
独立したスタック9を持ち、中断・再開される情報はこ
のスタック9に退避され再開される。システムコールサ
ービス部もこのスタックを利用する。システムコールサ
ービス部14はシステムコール処理に独立したスタック
9のデータを用いる。
【0013】図2の右下にシステムコールサービス部1
4をタスク間共通ルーチンとして実現した図を示してあ
る。各タスク8−1〜8−nは、それぞれ独立したスタ
ック9−1〜9−nを有し、システムコール部はこのス
タックを用いて処理がなされる。入出力機器などからの
割り込みを受け、それに応じて必要であるならばタスク
のステータスを変更する割り込み処理部10と、割込み
によるタスクの状態変化を反映したタスク全体の実行順
序を決定するタスクスケジューラ32はそれぞれ独自の
スタック12および13を有している。
【0014】ところで、カーネルの処理を排他制御する
には割込み禁止に頼るしかない。すなわち、割込み禁止
にすることによって、自分以外の処理を動けなくしてし
まうことで、排他的な処理が可能となる。システムコー
ルサービス部の処理全体を割込み禁止にしてしまえば、
勿論、排他制御は完璧なものとなる。しかし、このよう
にすることによってシステムコール処理中は割り込み処
理も動かなくなるため、従来の方式より悪くなってしま
う。そこで、カーネル内の排他的データを整理すると、
殆どの場合排他的データはリンク列をなしている。ま
た、カーネルの長い時間を要する処理は、リンクを辿っ
ていく処理であることも判明した。図3にリンクされた
データの処理時間を示す。全体の処理時間はa*nとな
る。
【0015】a*nという時間はリンクの長さnによっ
て変化し、システムに影響を与えるのに十分な時間であ
る。この全体の処理を、割り込み禁止とすることはでき
ない。ところが、一つのデータ処理時間aは、短い処理
であり、通常、この時間なら割込み禁止にしても悪い影
響がでることはない。また、このように処理を設計する
ことが可能である。以上のことからカーネルのシステム
コール処理で、リンクのあるデータを処理している間
(データ1,2〜nの処理時間a)は割り込み禁止に
し、次のデータを辿るところで、割込み許可するように
構成した。この処理によって、割り込みはデータからデ
ータへ移る瞬間に受けつけられるタイミングを持つ。
【0016】この結果、次のデータに移る瞬間には、割
り込みによってスケジューリングされた別のタスクによ
ってリンクが書き換えられている可能性がある。そのた
め、リンクを変更したり、データを書き換えたりした場
合は、リンクの先頭に戻って処理を再実行しなければな
らない。そこで図4に示すようにリンクヘッダ24に付
属させて処理フラグ25を設けてある。上記タイミング
で割り込みが発生しリンクを変更したり、データを書き
換えたりした場合は、処理フラグ25をオンにセットす
る。リンクをたどる場合、すなわち割込み許可から禁止
にした直後、この処理フラグ25を常にチェックし、も
しフラグがオンであるならば、リンクの先頭に戻ってこ
の処理を再実行する(リンク再実行処理)。図2におい
て、システムコールサービス部14に上記リンク再実行
処理部16を設けてある
【0017】図5は、本発明方式に用いるリンク再実行
処理の流れを説明するためのフローチャートである。割
り込み禁止(ステップ(以下「ST」という)401)
にしてリンクヘッダより処理を開始する(ST40
2)。まず割り込みを許可し(ST403)、つぎに割
り込みを禁止する(ST404)。ここで割り込みを禁
止した直後、処理フラグをチェックし(ST405)、
フラグがオンであるならば、リンクが変更されたか、ま
たはデータの書換えが起きたとしてリンクヘッダからの
処理に戻る(ST402)。フラグがオフであれば、つ
ぎのデータへリンクを辿る(ST406)。
【0018】つぎにリンクが終了したか否かをチェック
し(ST407)、リンク終了であるならば、割り込み
許可を出して処理を終了する(ST409)。リンク終
了になっていなければ、該当のデータの処理を行う(S
T409)。該当のデータ処理の後、ST403に戻り
割り込みを許可する。 このようにリ
ンク再実行処理を行うことによって、割り込み禁止(排
他処理)を長い時間行うことなく、データの正当性を保
つことができる。また、システムコールサービス処理
は、リエントラントな呼び出しにも正しい結果を返すこ
とができる。システムコール処理がリエントラントに作
成できるので、システムコール処理の実行中もタスク切
り替えができる。
【0019】図6は、本発明方式を用いたときの外部割
り込み処理の状態を説明するための図である。タスクA
はタスクBより優先順位が高いものとする。タスクBが
システムコールを行いシステムコールサービス部14に
よるシステムコール処理を行っている。このシステムコ
ール処理中に外部割り込み29が発生すると、リンク再
実行処理部16によって割り込み許可が出されるので、
システムコール処理が中断され、タスクスケジューラに
よるタスクスケジュール処理が行われ、タスクAが実行
されることになる。中断したシステムコール処理はタス
クAの実行後に再開される。本発明では、排他的資源へ
の同時アクセスが発生した場合、処理をリンクヘッダの
先頭からやり直さなければならない。このオーバヘッド
は小さくはない。しかし、システムコール処理中に、同
じ排他的資源を使用する処理の切り替えが発生する確率
は極めて低い。したがって、現実的にはシステムのパフ
ォーマンスを低下させることはない。
【0020】
【発明の効果】以上、説明したように本発明は、システ
ムコールサービス部のシステムコール処理をタスクのコ
ンテキストで実行するようにし、システムコール処理に
おいて、任意のタスクが、リンクのあるデータを処理す
る場合、データを処理している間はシステムコール処理
への割り込みを禁止し、つぎのデータに辿るまでの間の
みを割り込み可能とするとともにリンクのあるデータの
リンクヘッダに対応してフラグを設け、割り込み可能な
ときにリンクが変更されるか、データが書換えられたと
きフラグをオンするようにしてある。そして、割り込み
許可の状態から禁止状態に移行した直後に、フラグをチ
ェックし、フラグがオンのときリンクの先頭に戻ってリ
ンクのあるデータの処理を再実行するリンク再実行処理
部を設けたものである。したがって、アプリケーション
タスクが優先順位どおりに制御されない時間を短縮化す
ることができ、システムコールの処理時間を考慮するこ
となくアプリケーションの設計やプログラミングができ
るという効果がある。
【図面の簡単な説明】
【図1】本発明によるカーネルサービス方式を適用した
オペレーティングシステムを搭載したコンピュータ装置
のブロック図である。
【図2】本発明によるカーネルサービス方式の実施の形
態を示すブロック図である。
【図3】リンクされたデータの処理時間を説明するため
の図である。
【図4】本発明方式により適用されたリンクされたデー
タの処理を説明するための図である。
【図5】本発明方式に用いるリンク再実行処理の流れを
説明するためのフローチャートである。
【図6】本発明方式を用いたときの外部割り込み処理の
状態を説明するための図である。
【図7】従来のカーネルの機能を説明するためのブロッ
ク図である。
【図8】割り込みによるタスクのスケジューリングを説
明するためのブロック図である。
【図9】リエントラントルーチンを説明するための図で
ある。
【図10】従来のカーネルの機能において、外部割り込
みのシステムコール処理によるタスク切換の遅延を説明
するための図である。
【符号の説明】 1…制御手段 2…表示手段 3…データ・プログラム記憶手段 4…入力装置 5…出力装置 6…OS実行部 7…カーネル部 8…タスク 10…割り込み処理部 11…タスクスケジューラ 12,13…スタック 14…システムコールサービス部 15…システムコールサービスタスク間共通ルーチン 16…リンク再実行処理部 20,24…リンクヘッダ 21,22,23…データ 25…処理フラグ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 外部割り込み処理部が入出力等の外部割
    り込みを受けることによりタスクのステータスを変更
    し、タスクスケジューラがタスクの状態変化にしたがっ
    てタスク全体の実行順序を決定し、前記実行順序にした
    がってタスクがシステムコールサービス部にシステムコ
    ールを行うオペレーティングシステムにおけるカーネル
    サービス方式において、 前記システムコールサービス部のシステムコール処理を
    タスクのコンテキストで実行するようにし、 システムコール処理において、任意のタスクの属するシ
    ステムコールサービス部が、リンクのあるデータを処理
    する場合、前記データを処理している間はシステムコー
    ル処理への割り込みを禁止し、つぎのデータに辿るまで
    の間のみを割り込み可能とするとともに、 前記リンクのあるデータのリンクヘッダに対応してフラ
    グを設け、前記割り込み可能なときにリンクが変更され
    るか、データが書換えられたとき前記フラグをオンする
    ようにし、 前記割り込み許可の状態から禁止状態に移行した直後
    に、前記フラグをチェックし、 前記フラグがオンのときリンクの先頭に戻って前記リン
    クのあるデータの処理を再実行するリンク再実行処理部
    を設けた、 ことを特徴とするオペレーティングシステムにおけるカ
    ーネルサービス方式。
JP15025096A 1996-05-22 1996-05-22 オペレーティングシステムにおけるカーネルサービス方式 Pending JPH09311794A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15025096A JPH09311794A (ja) 1996-05-22 1996-05-22 オペレーティングシステムにおけるカーネルサービス方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15025096A JPH09311794A (ja) 1996-05-22 1996-05-22 オペレーティングシステムにおけるカーネルサービス方式

Publications (1)

Publication Number Publication Date
JPH09311794A true JPH09311794A (ja) 1997-12-02

Family

ID=15492845

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15025096A Pending JPH09311794A (ja) 1996-05-22 1996-05-22 オペレーティングシステムにおけるカーネルサービス方式

Country Status (1)

Country Link
JP (1) JPH09311794A (ja)

Similar Documents

Publication Publication Date Title
US6715016B1 (en) Multiple operating system control method
US5748959A (en) Method of conducting asynchronous distributed collective operations
US5339415A (en) Dual level scheduling of processes to multiple parallel regions of a multi-threaded program on a tightly coupled multiprocessor computer system
US5526521A (en) Method and system for process scheduling from within a current context and switching contexts only when the next scheduled context is different
JP2000242512A (ja) 複数のオペレーティングシステムを実行する計算機
US20040117793A1 (en) Operating system architecture employing synchronous tasks
EP1162536A1 (en) Multiple operating system control method
JP3113841B2 (ja) 並列トランザクション処理システム
KR20040068600A (ko) 운영 시스템 기능 실행 방법 및 시스템, 전자 기기
US6721948B1 (en) Method for managing shared tasks in a multi-tasking data processing system
US6295602B1 (en) Event-driven serialization of access to shared resources
US5241676A (en) Method for controlling process priority in semaphore operation
CN113918336A (zh) 基于多核CPU的FreeRTOS运行任务方法及装置
JP2001117786A (ja) プロセススケジューリング装置およびプロセススケジューリング方法
US5758161A (en) Testing method for checking the completion of asynchronous distributed collective operations
JP2693916B2 (ja) タスクスケジュール方法
JPH05108380A (ja) データ処理システム
JPH09311794A (ja) オペレーティングシステムにおけるカーネルサービス方式
EP0544822B1 (en) Dual level scheduling of processes
JP3005562B1 (ja) タスク管理装置及びタスクスケジューリング方法
JPH11184828A (ja) マルチプロセッサシステムのテスト方式
CN117453413A (zh) 资源申请方法、装置、电子设备以及存储介质
CN115269139A (zh) 基于可信区域的双操作系统混合实时任务调度方法和系统
JP2000029850A (ja) オペレーティングシステムのプロセッサ間通信を使用したタスク制御方法
JPS6227413B2 (ja)