JP2000242512A - 複数のオペレーティングシステムを実行する計算機 - Google Patents

複数のオペレーティングシステムを実行する計算機

Info

Publication number
JP2000242512A
JP2000242512A JP11041032A JP4103299A JP2000242512A JP 2000242512 A JP2000242512 A JP 2000242512A JP 11041032 A JP11041032 A JP 11041032A JP 4103299 A JP4103299 A JP 4103299A JP 2000242512 A JP2000242512 A JP 2000242512A
Authority
JP
Japan
Prior art keywords
priority
operating system
interrupt
operating systems
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.)
Granted
Application number
JP11041032A
Other languages
English (en)
Other versions
JP4072271B2 (ja
Inventor
Masahiko Saito
雅彦 齊藤
Tadashi Kamiwaki
正 上脇
Tomoaki Nakamura
智明 中村
Hiroshi Ono
大野  洋
Taro Inoue
太郎 井上
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP04103299A priority Critical patent/JP4072271B2/ja
Priority to AT00301110T priority patent/ATE444523T1/de
Priority to DE60043032T priority patent/DE60043032D1/de
Priority to EP00301110A priority patent/EP1031924B1/en
Priority to KR1020000007733A priority patent/KR100759280B1/ko
Priority to CN00102345A priority patent/CN1264078A/zh
Priority to TW089102909A priority patent/TW490638B/zh
Publication of JP2000242512A publication Critical patent/JP2000242512A/ja
Priority to US11/025,966 priority patent/US7810096B2/en
Application granted granted Critical
Publication of JP4072271B2 publication Critical patent/JP4072271B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Executing Machine-Instructions (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)
  • Document Processing Apparatus (AREA)

Abstract

(57)【要約】 【課題】それぞれのオペレーティングシステム上で実行
されるタスクの重要性を考慮して、動作させるべきオペ
レーティングシステムを切り替える。 【解決手段】複数のプロセスまたはスレッドに割当てら
れた優先順位にしたがって実行する複数個のオペレーテ
ィングシステムはそれぞれが実行しているプロセスまた
はスレッドの優先順位を通知する優先順位通知処理を有
し、それぞれのオペレーティングシステムから通知され
た優先順位を計算機内で共通の優先順位(正規化優先順
位)に変換する優先順位変換処理と、優先順位変換処理
によって得られた正規化優先順位を比較して、より高い
正規化優先順位を有するオペレーティングシステムを優
先的に実行させる優先順位比較処理を実行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は複数個のオペレーテ
ィングシステムを切り替えつつ動作させる計算機および
そのオペレーティングシステム切り替え方式を対象分野
とし、特に、相異なる優先順位体系を有するオペレーテ
ィングシステムの切替え方式に関連する。
【0002】
【従来の技術】一つの計算機で複数のオペレーティング
システムを動作させる技術として、従来から大型計算機
において、「仮想計算機(Virtual Machine:VM)」が
知られている。該従来技術では、計算機内で並行して動
作する複数個の仮想計算機それぞれの上で複数のユーザ
タスク(以降、プロセスおよびスレッドを統一してタス
クと呼ぶ)を切り替えて処理を実行する。仮想計算機
は、通常、大型計算機内の一つのプロセスとして実現さ
れるが、仮想計算機とユーザタスクとの関連を考慮する
と、一つのオペレーティングシステムであると見なすこ
とも可能である。
【0003】一般に、それぞれの仮想計算機には、該仮
想計算機の優先順位にしたがって一定のタイムスライス
(CPU割当て時間)を与える。各仮想計算機は、与え
られたタイムスライスの範囲内でユーザタスクを切り替
えて動作させる。このような仮想計算機技術の実行効率
を高める技術として、特開平5−197577 号に開示された
「仮想計算機における仮想計算機実行プライオリティ制
御方式」がある。
【0004】該従来技術は、複数の仮想計算機と、該複
数の仮想計算機を制御するための仮想計算機モニタとか
ら構成される。仮想計算機は、システムタスクのように
実行優先順位の高いタスクの実行開始・実行終了時に、
仮想計算機モニタに対してタスクの優先順位を通知す
る。これを受けた仮想計算機モニタは、仮想計算機の実
行優先順位を、通知された優先順位に変更する。仮想計
算機の実行優先順位を仮想計算機内で実行されるタスク
の優先順位に変更することにより、仮想計算機制御を効
率的に行うことができるとしている。
【0005】
【発明が解決しようとする課題】マイクロプロセッサ、
特に、組込み向けマイクロプロセッサの性能向上と、オ
ペレーティングシステムの機能向上に伴って、複数個の
相違なるオペレーティングシステムを一つの計算機上で
同時に動作させ、これらを動的に切り替えて処理を行う
というユーザニーズが現われている。
【0006】一般に、工場・プラントなどの機械制御,
車載ナビゲーションシステムといった分野では、外部環
境変化に対して即座に応答するというリアルタイム性,
長時間連続運転を可能とする信頼性などが重要視されて
いる。このため、割込み応答性が高く、かつ、コンパク
トでモジュール構成を有するリアルタイム用オペレーテ
ィングシステム(リアルタイムOS)が用いられること
が多い。しかしながら、リアルタイムOSは、リアルタ
イム性・信頼性を重要視する反面、人間とのインタフェ
ースに優れているとは言い難い。
【0007】一方、一般のパソコン(PC)に用いられ
ている事務処理用オペレーティングシステム(事務処理
OS)は、画像を用いて操作を行えるようにするなど、
対人間インタフェースに優れている。このため、従来は
リアルタイムOSを使用していた分野にも事務処理OS
のユーザインタフェースを使用したいという要求が高ま
っている。しかし、事務処理OSは人間との対話を主な
処理としているため、割込み応答性よりも処理のスルー
プットを重要視し、比較的長時間割込み禁止状態のまま
処理を実行することもある。また、コンパクトな構成を
有するリアルタイムOSに対し、信頼性において匹敵す
るとは言い難く、24時間連続運転などに向いていない
という側面もある。
【0008】しかしながら、大型計算機上で複数の仮想
計算機(オペレーティングシステム)を並行して動作させ
る方式と同様に、同一計算機上で事務処理OSとリアル
タイムOSとを動作させ、必要に応じてこれらのオペレ
ーティングシステムを切り替えることができれば、優れ
たユーザインタフェースとリアルタイム性・信頼性とを
両立させることができる。マイクロプロセッサの性能向
上を考慮すれば、複数のオペレーティングシステムを一
つの計算機上で動作させることは、大型計算機だけに許
された技術ではなくなってきている。
【0009】このとき、それぞれのオペレーティングシ
ステムの重要性を考慮すると、常にリアルタイムOSを
優先的に動作させ、リアルタイムOS上で実行させるタ
スクが存在しなくなった場合にのみ、事務処理OSを動
作させるという方法が最も単純なオペレーティングシス
テム切替え方式である。しかしながら、各オペレーティ
ングシステム上で動作する個々のタスクの重要性が、こ
のように(リアルタイムOS上のタスクは、常に、事務
処理OS上のタスクよりも重要性が高いというように)
単純に切り分けられるとは限らない。
【0010】図27に単純な切り分けを行えない例を示
す。図27は車載ナビゲーションシステムの構成例を示
したものである。ここでは、システムを簡略化し、車載
ナビゲーションシステムが、(1)運転位置を認識する
位置認識タスク370,(2)目標地点までの最短経路を
導出する経路探索タスク371,(3)ボタン・タッチ
パネルなどからの入力を処理するインタフェースタスク
372,(4)運転休憩中に起動していたゲームタスク
373、という四つのタスクから構成されていると仮定
する。通常、高速応答性・信頼性が求められる位置認識
タスク・経路探索タスクはリアルタイムOS111上で
実行され、ユーザインタフェースに優れた事務処理OS
110では、インタフェースタスク・ゲームタスクなど
を実行する。しかしながら、一般に、経路探索は非常に
計算量の大きい処理であり、数秒オーダの計算時間を要
することもある。上記に示した単純な重要性の切り分け
を行うと、この間、インタフェースタスクの処理は停止
し、ユーザがいくらボタンを押しても認識されないとい
う問題が発生する。
【0011】図27に示した車載ナビゲーションシステ
ムではインタフェースタスクの重要性が高く、これが実
行可能状態に移行した場合には、事務処理OSを優先的
に実行する必要がある。しかしながら、前記従来技術
「仮想計算機における仮想計算機実行プライオリティ制
御方式」は、各仮想計算機(オペレーティングシステム)
の機能が同一であることを前提としている。一般に、リ
アルタイムOSは環境変化に高速に応答するため、事務
処理OSに比べて極めて多くの優先順位レベルを有する
ことが多い。また、極端な場合、リアルタイムOS上で
は、優先順位の「数値」が小さい(0に近い)ほど優先
順位が高く、事務処理OS上では、優先順位の「数値」
が大きいほど優先順位が高い、といった逆の意味付けが
なされていることもある。このような場合、たとえ二つ
のオペレーティングシステムから優先順位を通知されて
も、いずれのオペレーティングシステムを優先的に起動
してよいか判断できないことになる。このため、前記従
来技術では、異なった機能を有する事務処理OSとリア
ルタイムOSとを統一して管理することはできない。
【0012】本発明の目的は、複数の相異なるオペレー
ティングシステムを一つの計算機上で動作させるマルチ
オペレーティングシステム制御装置において、各オペレ
ーティングシステム上で実行されているタスクの重要性
を考慮して、動作させるべきオペレーティングシステム
を選択・切り替えることであり、これによって、重要性
のあるタスクが優先的に実行されるようにすることであ
る。
【0013】
【課題を解決するための手段】上記目的を達成するた
め、本発明では、複数のタスクをそれぞれのタスクに割
当てられた優先順位にしたがって実行する複数のオペレ
ーティングシステムと、この複数のオペレーティングシ
ステムを切り替えて実行する計算機において、下記に示
す処理を行う。
【0014】(1)各オペレーティングシステムが実行
しているタスクの優先順位を確認する優先順位監視処理
を行う。若しくは、各オペレーティングシステム内に、
自分が実行しているタスクの優先順位を通知する優先順
位通知処理を行う。事務処理OS,リアルタイムOSで
は、内部に優先順位通知処理を追加することが不可能な
こともある。このとき、前者の優先順位監視処理行う必
要がある。
【0015】(2)各オペレーティングシステムから入
手した実行中タスクの優先順位を、それぞれのオペレー
ティングシステムで共通の優先順位に変換する優先順位
変換処理を行う(以降、該共通の優先順位のことを「正
規化優先順位」と呼ぶ。)。 (3)優先順位変換処理によって得られた各オペレーテ
ィングシステムの正規化優先順位を比較して、動作させ
るべきオペレーティングシステムを決定し、かつ、オペ
レーティングシステムの切り替えを実行する優先順位比
較処理を行う。
【0016】本発明によれば、優先順位通知処理は各オ
ペレーティングシステム内に設けられ、オペレーティン
グシステムがタスク切り替えを行うたびに、該タスクの
優先順位を通知する。
【0017】タスク切り替え機能はオペレーティングシ
ステムの中核を構成するものであるため、市販されてい
るオペレーティングシステム内に優先順位通知手段を組
込むことが不可能なことも多い。しかしながら、一般
に、オペレーティングシステムは実行中タスクの管理情
報を計算機のメモリ上に保持し、この管理情報の一部に
タスクの実行優先順位がある。また、タスク切り替え処
理を高速化するため、現在実行中のタスクの優先順位を
特定の変数(優先順位保持変数)に格納しておく場合も
ある。優先順位監視処理は、タスク管理情報または優先
順位保持変数を読み出して、各オペレーティングシステ
ムが実行しているタスクの優先順位を確認する。優先順
位監視処理は、外部割込み,タイマ割込みなどのタイミ
ングで優先順位の確認を行う。
【0018】優先順位変換処理は、各オペレーティング
システムから入手した実行中タスクの優先順位を、計算
機内で共通の正規化優先順位に変換する。このため、優
先順位変換処理は、各オペレーティングシステムに対応
する優先順位変換テーブルを有することがある。優先順
位変換テーブルは、各オペレーティングシステム固有の
優先順位から正規化優先順位を取り出すための対応表で
ある。簡単な数式によって個々のオペレーティングシス
テムの優先順位を正規化優先順位に変換することも可能
であるが、高速かつ柔軟なオペレーティングシステム切
り替えを実行するためには、優先順位変換テーブルを用
いるほうがよい。例えば、優先順位変換テーブルに格納
する正規化優先順位の値を適切に定めることにより、個
々のオペレーティングシステムから得られる正規化優先
順位が互いに等しくならないように変換を行うことも可
能である。
【0019】優先順位比較処理は、各オペレーティング
システムの正規化優先順位を優先順位変換処理から入手
し、現在動作させているオペレーティングシステムより
高い正規化優先順位を有するオペレーティングシステム
が存在すれば、オペレーティングシステムの切り替えを
行う。
【0020】
【発明の実施の形態】本発明の実施例を図面を用いて説
明する。
【0021】図1に本発明の第一の実施例における全体
構成を示す。通常、計算機は、プロセッサ100,メモ
リ101,入出力制御装置102,ディスク装置10
4,ディスプレイ105などから構成される。プロセッ
サ100,メモリ101,入出力制御装置102はプロ
セッサバス103によって接続される。プロセッサ100
は複数個のオペレーティングシステムを動作させるため
のマイクロプロセッサである。メモリ101は、オペレ
ーティングシステムである事務処理OS110,リアル
タイムOS111,各オペレーティングシステム上で動
作するタスク112〜117,オペレーティングシステム
切り替えプログラム118を記憶する。これらのプログ
ラムはプロセッサ100によって読み出されて実行され
る。
【0022】入出力制御装置102には、プログラム・
データを保存するためのディスク装置104,画面表示
用デバイスであるディスプレイ105が接続される。ま
た、工場・プラント制御用、あるいは、組込み向け計算
機を実現する場合、入出力制御装置102には、リアル
タイム制御ネットワーク106が接続されることがあ
る。リアルタイム制御ネットワーク106には、セン
サ,アクチュエータなどの入出力機器が接続される。な
お、入出力制御装置102に接続されるディスク装置1
04,ディスプレイ105,リアルタイム制御ネットワ
ーク106の入出力装置104〜106のうち、いずれ
かまたは全ては、システム構成によって省略されること
もある。入出力制御装置102は、割込み信号線107
によってプロセッサ100と接続され、入出力動作完了
などを通知することができる。図1中では、説明のた
め、割込み信号線107とプロセッサバス103が別の
装置であるように記載しているが、実際には、割込み信
号線107はプロセッサバス103の一部である。プロセ
ッサ100内部にはタイマ装置108が設けられてお
り、一定周期毎に内部割込みを発生させる。タイマ装置
108からの割込みは、オペレーティングシステムの計
時などに使用される。
【0023】プロセッサ100は割込み信号線107に
よって通知される外部割込みやタイマ装置108などか
らの内部割込みをマスクできる機能を装備する。割込み
マスクとは、プログラムが割込みマスクを解除するま
で、特定の割込みが入ることを遅延させる機能である。
一般に、割込みマスク機能には、下記の三種類が存在す
る。
【0024】(1)全割込みマスク:全ての割込みをマ
スクする。
【0025】(2)個別割込みマスク:個々の割込みを
それぞれマスクできるようにする。
【0026】(3)割込みレベルマスク:各割込みにレ
ベルを設定し、指定レベル以下の割込みをマスクする。
【0027】プロセッサ100の種類によって、上記
(1)(2)の組合せ、または、(1)(3)の組合せの
いずれかで構成することが多い。後者の組合せで構成す
るプロセッサを採用する場合、対応する入出力装置の重
要性にしたがって割込みレベルを割当てることになる。
例えば、リアルタイム制御ネットワーク106からの割
込みを、ディスク装置104,ディスプレイ105など
からの割込みより高いレベルに設定する。
【0028】本実施例では、計算機内に二つのオペレー
ティングシステムである事務処理OS110,リアルタ
イムOS111が存在する。このオペレーティングシス
テムは、各自に割当てられたメモリ・プロセッサ資源を
用い、それぞれ、タスク112〜114,タスク115
〜117を実行させる。ここでは、オペレーティングシ
ステム数が2個、タスク数が6個(各オペレーティング
システムに対して3個ずつ)の例を示しているが、これ
らの数値よりも多い、または、少ないオペレーティング
システム,タスクを実装することも可能である。本実施
例では、オペレーティングシステム数の動的な変更は想
定しないが、各オペレーティングシステムが動的にタス
ク生成・削除を行うことは可能である。また、本実施例
では、事務処理OS110,リアルタイムOS111に
ついて説明するが、実際に、各オペレーティングシステ
ムがいかなる種類であっても、本発明で述べる技術は適
用可能である。タスク112〜114は事務処理OSで
実行される事務処理タスクであり、タスク115〜11
7はリアルタイムOSで実行されるリアルタイムタスク
である。事務処理OS110とリアルタイムOS111
は、各々独立にタスクの優先順位を定義している。図1
に示す実施例では、事務処理OS110環境下で、タス
ク112〜114が、それぞれ、優先順位0,7,31
を有し、リアルタイムOS111環境下で、タスク11
5〜117が、それぞれ、優先順位0,99,255を
有する。尚、本実施例においてタスクとはプロセス又は
スレッドの総称を意味する。プロセスとは、個別のメモ
リ空間を有して動作するプログラムを意味する。このた
め、通常あるプロセスは別のプロセスのデータを変更す
ることはできない。スレッドとは、プロセスのメモリ空
間を共有して動作するプログラムを指す。従って、同一
プロセス内で動作するスレッド同士の間ではデータ保護
機能は存在しない。
【0029】各オペレーティングシステム内には、優先
順位通知モジュール120,121が存在する。優先順
位通知モジュール120,121は、各オペレーティン
グシステムのタスク切り替え時に実行され、オペレーテ
ィングシステム切り替えプログラム118に対して次に
実行すべきタスクの優先順位を通知する。
【0030】一般に、事務処理OSとリアルタイムOS
とは異なった優先順位体系を有することが多い。リアル
タイムOSでは、比較的多くの優先順位レベルを有する
ことにより、重要な割込みに対する高速応答性を実現す
る。一方、事務処理OSでは、比較的少ない優先順位レ
ベルを用いて、スループットを向上させる方式を採用す
る。また、オペレーティングシステムの種類によって
は、優先順位の数値が小さい(0に近い)ほど優先順位
が高い場合と、優先順位の数値が大きいほど優先順位が
高い場合とがある。このため、優先順位通知モジュール
120,121から得られた優先順位をそのまま比較し
ても意味がない。なお、以降、事務処理OS110で
は、優先順位の数値が大きいほどタスクの優先順位が高
く(図1中では、タスク114が最も優先される)、リ
アルタイムOS111では、逆に、優先順位の数値が小
さいほどタスクの優先順位が高い(図1中では、タスク
115が最も優先される)ものとして説明する。また、事
務処理OS110における優先順位は0〜31の範囲で
指定でき、リアルタイムOS111における優先順位は
0〜255の範囲で指定できるものとする。
【0031】二つのオペレーティングシステムにおける
優先順位体系の違いを解消するため、オペレーティング
システム切り替えプログラム118は、優先順位変換モ
ジュール122,123と優先順位比較モジュール12
4とを構成要素として有する。優先順位変換モジュール
122,123は、それぞれ、事務処理OS110,リ
アルタイムOS111から得られた優先順位をシステム
内で共通の比較基準である正規化優先順位に変換する。
各オペレーティングシステムの優先順位をそのまま比較
することは不可能であるが、一旦両者を正規化優先順位
に変換すれば、両オペレーティングシステムが実行して
いるタスクの優先順位を比較することができる。なお、
ここで、正規化優先順位が一方のオペレーティングシス
テムの優先順位と全く同一であってもよい。この場合、
当該オペレーティングシステムの優先順位がそのまま正
規化優先順位となる。優先順位比較モジュール124
は、両オペレーティングシステムから得られた正規化優
先順位を比較し、かつ、より高い正規化優先順位を有す
るオペレーティングシステムに切り替えて実行させる役
割を有する。
【0032】図2に、プロセッサ100の内部構成例を
示す。キャッシュメモリ131はメモリ101上のデー
タまたは命令を一時的に格納するバッファ記憶装置であ
る。CPU130は演算回路であり、メモリ101若しくはキ
ャッシュメモリ131上に存在する命令を順次読み出し
て実行する。命令実行に際して、演算結果を一時的に保
持するための汎用レジスタ132,命令アドレスを指定
するプログラムカウンタ133,実行状態を保持するス
テータスレジスタ134を用いる。CPU130,キャッシュ
メモリ131,汎用レジスタ132,プログラムカウン
タ133,ステータスレジスタ134は、互いに、デー
タ転送を行う複数の信号線であるデータバス136,ア
ドレス指定を行う複数の信号線であるアドレスバス13
7によって接続されている。
【0033】割込み信号線107とタイマ装置108は
割込みコントローラ135に接続される。割込みコント
ローラ135は、CPU130に対して割込み状態信号138
を生成する役割を有する。割込み状態信号138は、プ
ロセッサ100に対して現在如何なる種類の割込みが発
生しているかを示す信号である。通常、ステータスレジ
スタ134は現在の割込みマスクに関する情報を有して
おり、割込み状態信号138で指定される割込みを受け
付けるか否かを決定する。割込みを受け付ける場合、割
込みコントローラ135は、プログラムカウンタ13
3,ステータスレジスタ134などの値を書き替え、対
応する割込み処理プログラムを実行させる。
【0034】ステータスレジスタ134の構成を図3に
示す。ここでは、プロセッサ100が全割込みマスク機
能と割込みレベルマスク機能とを装備している場合を示
している。図3では、ステータスレジスタ134が割込
みブロックビット140と割込みマスクレベルフィール
ド141を有する。割込みブロックビット140がON
である場合、プロセッサ100に対する全ての割込みが
マスクされる。割込みマスクレベルフィールド141は
現在の割込みマスクレベル値を示し、これ以下の割込み
レベルは受け付けられない。図3では、割込みマスクレ
ベルフィールド141は4ビット長である。このため、
合計16種類のマスクレベルを指定可能であるが(通
常、割込みレベル0は「割込みが発生していない」こと
を意味し、割込みマスクレベルを0とすることは「割込
みマスクを行わない」ことを意味するため、実質的には
15種類となる)、割込みマスクレベルフィールド14
1のビット数を変更することにより、受理できる割込み
レベルの種類を増減させることができる。
【0035】図4は、プロセッサ100が全割込みマス
ク機能と個別割込みマスク機能とを装備している場合の
ステータスレジスタ134の構成を示したものである。
この例では、ステータスレジスタ134は実際には二つ
のレジスタ(実行状態レジスタ142と割込みマスクレ
ジスタ143)から構成される。図3と同様、実行状態
レジスタ142内に割込みブロックビット140が設け
られている。割込みマスクレジスタ143内の割込みマ
スクビット144〜147はそれぞれ別々の割込みに対
応しており、この割込みマスクビットのいずれかをON
とした場合、対応する割込みが受け付けられなくなる。
図3に示すステータスレジスタは、図4のステータスレ
ジスタの特殊なものである。例えば、割込みマスクビッ
ト144のみONとなっている状態をレベル1とし、割
込みマスクビット144,145の二つがONとなって
いる状態をレベル2、割込みマスクビット144〜14
6の三つがONとなっている状態をレベル3,…、のよ
うに対応させることができる。このため、以降、ステー
タスレジスタ134は図4に示す構成として、本発明の
説明を行う。
【0036】一般的なプロセッサでは、割込みを受理す
ると、ハードウェアによって自動的に割込みブロックビ
ット140がONに書き替えられ、プログラムカウンタ
133に割込み処理プログラムのアドレスが格納される。
必要に応じて、割込み処理プログラムが割込みブロック
ビット140をOFFに書き替えて割込み受け付けを許
可することができる。また、オペレーティングシステム
およびタスクが、一時的に割込みブロックビット140
や割込みマスクレジスタ143の内容を書き替え、特定
割込みの受け付けを待たせることもできる。割込みマス
ク機能は、排他制御の実現や、割込み処理実行中に再び
同一割込みが発生することを避けるために用いられる。
【0037】次に、このようなハードウェア上に実現さ
れる本発明のソフトウェア構成について説明する。図5
に、事務処理OS110,リアルタイムOS111の内
部構成を示した。図中、全てのコンポーネントはメモリ
101上に格納されている。事務処理OS,リアルタイ
ムOSとも、実行可能タスクの情報を待ち行列150,
151の形で管理する。実行可能待ち行列150,15
1は優先順位毎に設けられる場合もあるが、本実施例で
は、全ての実行可能なタスクが一つの待ち行列によって
管理される。なお、実行可能待ち行列が一つであって
も、優先順位毎に設けられていても、本発明の内容には
影響を与えない。各タスクは、(a)実行状態、(b)
実行可能状態、(c)待ち状態の三種の状態を順次とる
のでオペレーティングシステムは、実行可能タスク以外
に、待ち状態タスク,停止状態タスクなどを別の待ち行
列で管理する。尚、図5ではこれらの待ち行列の記載を
省略している。実行可能待ち行列150および151に
よって管理されるタスク管理テーブル160〜165
は、実行すべきタスクの優先順位,タスク実行時のプロ
グラムカウンタ・ステータスレジスタ・汎用レジスタの
値などを保存する。
【0038】実行可能タスクを一つの待ち行列で管理す
る場合、実行可能待ち行列に登録されるタスク管理テー
ブルは優先順位の高い順に配置される。すなわち、次に
実行すべきタスクの管理テーブルが待ち行列の先頭に来
るように構成する。前述したように、本実施例で述べる
事務処理OS110は、0〜31までの優先順位を有
し、優先順位の数値が大きいほど優先順位が高い。ま
た、リアルタイムOS111 は、0〜255までの優先順位
を有し、優先順位の数値が小さいほど優先順位が高い。
このため、事務処理OSでは、タスク114(優先順位
「31」)に対応する管理テーブル162が実行可能待
ち行列150の先頭に配置され、以下、タスク113
(優先順位「7」)の管理テーブル161,タスク11
2(優先順位「0」)の管理テーブル160の順に配置
される。逆に、リアルタイムOSでは、タスク115
(優先順位「0」)に対応する管理テーブル163が実
行可能待ち行列151の先頭に配置され、次に、タスク
116(優先順位「99」)の管理テーブル164,タ
スク117(優先順位「255」)の管理テーブル165
の順に配置される。
【0039】各オペレーティングシステムは、また、割
込み処理を行う割込みハンドラ152,153,タスクに対
してサービスを提供するシステムコールプログラム15
6,157、および、タスク切り替えを行うリスケジュ
ーラ154,155を有する。タスクの生成・削除・停
止・再開や、外部割込み・内部割込み発生に伴ってタス
ク切り替えを行わなければならない場合、リスケジュー
ラ154,155が起動される。リスケジューラ15
4,155は、直前に実行していたタスクの実行環境
(レジスタなど)をタスク管理テーブルに格納した後に
呼び出され、新たに実行すべきタスク決定して、その実
行環境をタスク管理テーブルから取り出す。これをプロ
グラムカウンタ,ステータスレジスタ,汎用レジスタな
どに設定することにより、選択したタスクを実行する。
【0040】リスケジューラ154,155は、その内
部に優先順位通知モジュール120,121を有する。
優先順位通知モジュール120,121は、新たに実行
すべきタスクの実行環境をレジスタに設定する直前に起
動され、タスクの優先順位をオペレーティングシステム
切り替えプログラム118内の優先順位変換モジュール
122,123に通知する。
【0041】図6には、オペレーティングシステム切り
替えプログラム118の内部構成を示したものである。
優先順位変換モジュール122,123は、各オペレー
ティングシステムでの優先順位を正規化優先順位に変更
するため、優先順位変換テーブル170,171をそれ
ぞれ所有する。正規化優先順位は、本実施例では、0〜
255の範囲の整数であり、「正規化優先順位の数値が
大きいほど、正規化優先順位が高い」と定義する。勿
論、正規化優先順位の数値の範囲を変更したり、「正規
化優先順位の数値が小さいほど、正規化優先順位が高
い」と定義することも可能である。
【0042】前述したように、事務処理OS110は0
〜31までの優先順位を有している。このとき、優先順
位変換テーブル170は、32個のエントリを有する配
列となる。各配列要素は0〜255の範囲の整数を有
し、かつ、以下の不等式を満足する(ここでは、配列の
名称をprioBusinessとする)。
【0043】 i>j⇔prioBusiness[i]>prioBusiness[j] (ただし、0≦i,j≦31) 事務処理OS110の優先順位、および、正規化優先順
位ともに、数値が大きいほど優先順位が高いとしている
ため、この条件が成立する必要がある。
【0044】同様に、リアルタイムOS111が0〜2
55までの優先順位を有している場合、優先順位変換テ
ーブル171は、256個のエントリを有する配列とな
る。各配列要素は0〜255の範囲の整数を有し、か
つ、以下の不等式を満足する(配列の名称をprioRealti
meとする)。
【0045】 i>j⇔prioRealtime[i]<prioRealtime[j] (ただし、0≦i,j≦255) 事務処理OSと不等号の向きが異なる理由は、リアルタ
イムOSでは、優先順位の数値が小さいほど優先順位が
高いとしているためである。
【0046】図6では、事務処理OS110上でタスク
114が次に実行可能であると判定された場合、優先順
位通知モジュール120から優先順位の数値「31」が
通知される。優先順位変換モジュール122は、優先順
位変換テーブル170を利用し、正規化優先順位の数値
「124」を入手することができる。逆に、リアルタイ
ムOS111上でタスク115が次に実行可能となった
場合、優先順位通知モジュール121からリアルタイム
OSでの優先順位の数値「0」が通知される。優先順位
変換モジュール123は、優先順位変換テーブル171
を使用して、正規化優先順位の数値「255」を入手す
る。ここで、本実施例では、事務処理OS110のタス
クの優先順位がいくら高くても、正規化優先順位の数値
が「124」を越えないことに注意する必要がある。こ
れは、優先順位変換テーブルの設定方法の極端な例であ
り、リアルタイムOS上のタスクをできる限り優先して
実行させるという目的のためのものである(リアルタイ
ムOS上のタスクでも、優先順位が低いものに対して
は、事務処理OS上のタスクが優先することがある)。
しかし、勿論、二つのオペレーティングシステムの優先
順位ができるだけ対等に正規化優先順位に変換されるよ
うに、優先順位変換テーブル170の構成を変更するこ
とも可能である。
【0047】優先順位変換モジュール122,123が
変換した正規化優先順位は、いずれも、優先順位比較モ
ジュール124に通知される。優先順位比較モジュール
124は、通知された事務処理OS正規化優先順位172
とリアルタイムOS正規化優先順位173とを保持す
る。この場合、事務処理OS正規化優先順位172の数
値は「124」であり、リアルタイムOS正規化優先順
位173の数値は「255」である。
【0048】前述したように、優先順位通知モジュール
120,121はリスケジューラ内に存在し、タスク切
り替え時に実行される。タスク切り替えから次のタスク
切り替えまでの期間は一つのタスクしか実行されないた
め、タスクの優先順位が動的に変化しない限り、この
間、当該オペレーティングシステムに対する正規化優先
順位も変化しない。優先順位通知モジュール120,1
21は、タスク切り替え時に必ず優先順位を通知してく
るため、優先順位比較モジュール124内に保持してい
る事務処理OS正規化優先順位172とリアルタイムO
S正規化優先順位173が、実際の各オペレーティング
システムでのタスクの優先順位を反映した数値となる。
【0049】優先順位比較モジュール124は、保持し
ている各オペレーティングシステムの正規化優先順位1
72,173の数値を相互に比較して、より高い正規化
優先順位を有するオペレーティングシステムを優先的に
実行させる。図6の例では、より高い正規化優先順位を
有するリアルタイムOS111を実行させることにな
る。
【0050】オペレーティングシステム切り替えプログ
ラム118は、優先順位変換モジュール122,12
3,優先順位比較モジュール124の他に、発生した割
込みを各オペレーティングシステムに振り分ける共通割
込みハンドラ174,オペレーティングシステム間での
協調処理を実行するOS間通信機能モジュール175,
二つのオペレーティングシステムの実行環境切り替えを
行うOSコンテクスト切り替えモジュール176,タス
クの優先順位によって割込みマスクを変更する割込みマ
スクレベル計算モジュール177を有する。このプログ
ラムの詳細は後述する。
【0051】図7に事務処理OS110におけるリスケ
ジューラ154の処理フローを示した。リアルタイムO
S111のリスケジューラ155も同様の処理を行う。
リスケジューラ154は、一般に、(1)タイマ割込み
処理終了時、(2)外部割込み処理終了時、(3)シス
テムコール実行時などにおいて、現在実行中のタスクが
実行可能でなくなるか、実行中タスクより高い優先順位
のタスクが実行可能となった場合、実行中タスクのレジ
スタをタスク管理テーブルに退避した後に起動されるモ
ジュールである。リスケジューラ154を起動する可能
性のあるシステムコールには、(a)タスクの生成・終
了・停止・再開(例えば、自分より優先順位の高いタス
クを生成した場合)、(b)排他制御の実行・終了(排
他制御待ち状態に移行した場合など)に加え、(c)タ
スクの優先順位変更(自己の優先順位を低下させた場合
など)、といったものがある。
【0052】リスケジューラ154は、第一に、実行可
能待ち行列150から最高優先順位のタスク管理テーブ
ルを取り出す(処理181)。ここで、全てのタスクが
待ち状態や停止状態となっていて、実行可能タスクが存
在しないこともある。これを処理182で判定する。
【0053】実行可能タスクが存在しなければ、優先順
位変換モジュール122にidle状態であることを通知す
る(処理184)。このとき、実行可能タスクが存在し
ないのであるから、idleループへ移行する(処理18
6)。idleループとは、実行すべき処理が現れるまで何
も行わないプログラムである。ここで注意すべきこと
は、処理184において、優先順位変換モジュール12
2に対してidle状態を通知したことである。事務処理O
S110がidle状態であれば、優先順位比較モジュール
124はリアルタイムOS111を優先して実行させ
る。したがって、両オペレーティングシステムが同時に
idle状態に移行した場合を除いて、実際に処理186で
idleループが実行されることはない。再び事務処理OS
110が実行される場合には、何らかの実行すべき処理
が存在するのであるから、直ちにidleループを抜けて処
理181に移行することになる。
【0054】処理182で実行すべきタスクが存在する
と判定した場合、次に実行すべきタスクの優先順位をタ
スク管理テーブルから取り出して、優先順位変換モジュ
ール122に通知する。通知した優先順位がリアルタイ
ムOS111の優先順位よりも低かった場合(正規化優
先順位による比較)、この時点で、リアルタイムOS1
11に切り替えられることになる。リアルタイムOS1
11から逆に事務処理OS110へ切り替えが行われる
場合、割込み処理などによって、実行しようとしている
タスクが実行可能でなくなったり、更に高い優先順位の
タスクが実行可能となったりしない限り、処理183の
直後から再実行することになる(処理181で選択した
タスクを起動する)。なお、当然のことながら、現在実
行中のタスクが実行可能でなくなるか、実行中タスクよ
り高い優先順位のタスクが実行可能となった場合には、
リスケジューラ154自体が再起動される。処理185
で、タスク管理テーブルからレジスタを復帰してプロセ
ッサ100のレジスタに登録することにより、選択した
タスクの処理を実行する。
【0055】ここで、リスケジューラ154中、処理1
83,184が優先順位通知モジュール120に相当す
る。リスケジューラ155内にも同様に優先順位通知モ
ジュール121が埋め込まれる。
【0056】次に、図8に、事務処理OS110に対応
する優先順位変換モジュール122の処理フローを示
す。優先順位変換モジュール122は優先順位通知モジ
ュール120から呼び出され、直ちに、優先順位変換処
理を実行する。最初に、優先順位通知モジュール120
がidle状態を通知してきたか否かを判定する(処理19
0)。idle状態はあらゆる優先順位よりも低い優先順位を
有すると見なすこともできるので、ここでは、いずれの
正規化優先順位よりも低くなるように、(−1)という
正規化優先順位の数値を有していると考える。処理19
3では、この数値(−1)を優先順位比較モジュール1
24に通知する。idle状態でなければ、優先順位変換テ
ーブル170から対応するエントリを読み出し(処理1
91)、これを優先順位比較モジュール124に通知す
る(処理192)。リアルタイムOS111に対応する
優先順位変換モジュール123の処理も同様である。
【0057】図9は優先順位比較モジュール124の処
理フローである。優先順位比較モジュール124は、第
一に、事務処理OS110からの正規化優先順位である
か、リアルタイムOS111からの正規化優先順位であ
るかを判定する(処理200)。事務処理OS110の正
規化優先順位であれば、事務処理OS正規化優先順位1
72に入手した正規化優先順位を格納する(処理20
1)。リアルタイムOS111からの正規化優先順位で
あれば、リアルタイムOS正規化優先順位173に当該
正規化優先順位を記憶する(処理202)。
【0058】正規化優先順位が通知されてくるのは、い
ずれか一方の正規化優先順位が変化した可能性がある場
合のみであるため、ここで、事務処理OS正規化優先順
位172とリアルタイムOS正規化優先順位173の数
値を比較する(処理203)。本実施例では、正規化優先
順位の数値が大きいオペレーティングシステムを優先的
に起動するとしている。したがって、事務処理OS11
0の正規化優先順位の数値がリアルタイムOS111の
正規化優先順位の数値より大きければ、次に実行すべき
オペレーティングシステムを事務処理OS110とする
(処理204)。これ以外の場合には、次にリアルタイム
OS111を実行させるものとする(処理205)。な
お、ここでは、事務処理OS110とリアルタイムOS
111の正規化優先順位が等しくても、リアルタイムO
S111を実行させる。これを変更し、正規化優先順位
が互いに等しい場合には事務処理OS110を実行させ
るとしても問題はない。また、優先順位変換テーブル1
70,171の内容を設定するにあたって、各オペレー
ティングシステムから得られる正規化優先順位が互いに
等しくならないようにすることも、システムを単純化さ
せるための一つの方法である。
【0059】次に処理206で、新たに実行すべきオペ
レーティングシステムが今まで実行していたオペレーテ
ィングシステムに等しいか否かを判定する。今までと異
なったオペレーティングシステムを実行させる場合、O
Sコンテクスト切り替えモジュール176に依頼して、
オペレーティングシステム実行環境の退避・復帰を行わ
せる(処理207)。
【0060】図10に割込みハンドラ152,153,
共通割込みハンドラ174,OS間通信機能モジュール
175,OSコンテクスト切り替えモジュール176の
詳細を示す(割込みマスクレベル計算モジュール177
については、別の図面で詳細を説明する)。
【0061】割込みハンドラ152,153は、割込み
発生時のレジスタなどの保存、一時変数の保持を行うた
めの領域として、それぞれ、割込みスタック214,2
15を所有する。割込み発生時には、割込み発生直前の
レジスタ値を保存し、このレジスタ値を割込み処理終了
後に復帰してやらなければならない。このため、割込み
スタック214,215が必要とされる。使用するプロ
セッサ100の種類によっては、割込み発生時に自動的
にレジスタが切り替わり、かつ、割込み処理終了後に切
り替え前のレジスタに戻す機能を備えているものもあ
る。しかしながら、多重割込みが可能なシステムを考慮
した場合には、このようなハードウェアを使用していて
も、割込みスタックが必要となる(割込み処理中により
高い緊急性を有する割込みが発生した場合、新たに発生
した割込み処理を優先的に実行し、次いで、元の割込み
処理に戻る必要がある)。
【0062】割込みハンドラ152,153は、更に、
割込みスタック214,215中、どの領域まで使用し
たかを示すためのポインタとして、割込みスタックポイ
ンタ216,217を所有する。割込みハンドラ15
2,153は、割込みスタック、および、割込みスタッ
クポインタを用いて割込み発生前の実行環境(レジスタ
など)を保存し、必要な割込み処理を実行する。割込み
処理終了後、割込み発生前の実行環境を復帰して元々動
作していたプログラムの実行を継続させる。
【0063】共通割込みハンドラ174は、発生した割
込みを割込みハンドラ152,153に対して振り分ける
役割を有する。このため、共通割込みハンドラ174
は、現在実行しているオペレーティングシステムが事務
処理OS110であるかリアルタイムOS111である
かを記憶する領域として、実行OS記憶変数210を所
有する。例えば、図10に示した時点で事務処理OSが
処理を実行しているものと仮定すると、この場合、実行
OS記憶変数210には、「事務処理OS」が記憶され
ている。勿論、実行OS記憶変数210が文字列「事務
処理OS」を記憶することは非常に非効率的であるた
め、例えば、・事務処理OS→0・リアルタイムOS→
1といった整数形式で記憶するとよい。共通割込みハン
ドラ174は、更に、発生した割込みがいずれのオペレ
ーティングシステムに対応するかを示す割込み対応テー
ブル211を有する。割込み対応テーブル211は、個
々の割込みがどちらのオペレーティングシステムで処理
されるべきかを示す対応表である。本実施例では、図4
に示したように、32種類の割込み要因が存在する。こ
のため、割込み対応テーブル211も32個のエントリ
(0〜31)から構成される。図10の例では、割込み要
因0が事務処理OSで、割込み要因1がリアルタイムO
Sで,…,割込み要因31がリアルタイムOSでという
ように、いずれのオペレーティングシステムで処理が実
行されるべきかが定義されている。なお、効率上、割込
み対応テーブル211の内容も、実行OS記憶変数21
0と同様、文字列形式ではなく、整数形式で記憶すべき
である。
【0064】さて、計算機の種類によっては、一つの入
出力機器を二つのオペレーティングシステムが共用する
こともある(例えば、事務処理OS110,リアルタイ
ムOS111の両者がディスプレイに文字や映像を出力
する場合)。このようなシステムを実現するためには、
割込み振り分け先のオペレーティングシステムを動的に
変更できることが必要となる。本実施例で、振り分け先
オペレーティングシステムを固定化するのではなく、割
込み対応テーブル211から入手しているのは、このた
めである。割込み対応テーブル211の内容を入出力機
器の使用状況によって変更することにより、割込みの振
り分け先を動的に変更することができる。
【0065】共通割込みハンドラ174は、実行OS記
憶変数210を用いて現在実行しているオペレーティン
グシステムの種類を判定し、これが割込み対応テーブル
211から得られた振り分け先オペレーティングシステム
に一致しなければ、OSコンテクスト切り替えモジュー
ル176に切り替えを依頼する。オペレーティングシス
テムが一致するか、オペレーティングシステム切り替え
終了後、該当するオペレーティングシステムの割込みハ
ンドラに処理を依頼する。なお、実行OS記憶変数21
0はOSコンテクスト切り替えモジュール176からも
参照される。このように、オペレーティングシステム切
り替えプログラム118内の各モジュールが有する内部
構造は、個々のモジュールによって占有されるものとは
限らず、各モジュールが必要に応じて共用できる。
【0066】OSコンテクスト切り替えモジュール17
6は、優先順位比較の結果、若しくは、割込み発生の結
果、オペレーティングシステムを切り替えなければなら
ない場合に起動される。二つのオペレーティングシステ
ムを切り替えるため、これらの実行環境(すなわち、レ
ジスタ値)を保存しておくための領域を所有しなければ
ならない。ここでは、事務処理OSの実行環境を保存す
るための領域として、事務処理OS用保存コンテクスト
212,リアルタイムOSの実行環境を保存するための
領域として、リアルタイムOS用保存コンテクスト21
3を用意する。OSコンテクスト切り替えモジュール1
76は、現在実行しているオペレーティングシステムに
対応する保存コンテクストに実行環境を保存し、次に、
もう一方の保存コンテクストから実行環境を読み出し
て、プロセッサ100のレジスタに設定する。これによ
り、オペレーティングシステムの切り替えを実施でき
る。
【0067】OS間通信機能モジュール175は、二つ
のオペレーティングシステム上のタスクが相互に通信・
協調するためのプログラムである。ここでは、事務処理
OS110,リアルタイムOS111の両者が使用でき
る共有メモリ218、並びに、オペレーティングシステ
ム間で排他制御を行うためのロック取得モジュール21
9,ロック解放モジュール220が存在するとしてい
る。共有メモリ218は、メモリ101の一部であり、両
オペレーティングシステムから参照を行える領域であ
る。共有メモリ218以外のメモリは、基本的に、事務
処理OS用領域,リアルタイムOS用領域,オペレーテ
ィングシステム切り替えプログラム用領域に分割され、
それぞれ、事務処理OS110,リアルタイムOS11
1,オペレーティングシステム切り替えプログラム11
8に占有されて使用される。二つのオペレーティングシ
ステム上のタスクが共有メモリ218を使用する場合、
通常、排他制御を行って共有メモリ218上のデータの
一貫性を保つ。アプリケーションプログラムがオペレー
ティングシステム間に跨る排他制御を行う場合、ロック
取得モジュール219,ロック解放モジュール220が
提供する機能を利用する。
【0068】このとき、優先順位逆転現象と呼ばれる状
況について注意しておかなければならない。優先順位逆
転現象とは、一般に、以下の状態を意味する。
【0069】(1)低優先順位であるタスクαが最初に
起動されてロックを取得する。
【0070】(2)次に高優先順位であるタスクβが起
動されてロック待ち状態に移行する。 (3)次に中優先順位であるタスクγが起動され、タス
クα(低優先順位)からタスクγ(中優先順位)への切
り替えが行われる。
【0071】このとき、タスクγの実行によってタスク
αの実行が妨げられ、結果的に、高優先順位タスクβが
ロックを取得するまでの時間が延びてしまうことにな
る。優先順位逆転現象は、通常、優先順位上昇方式また
は優先順位継承方式を用いて解決する。
【0072】優先順位上昇方式は、ロック取得を行った
タスクの優先順位を一定のレベルまで高くする方式であ
る。これによって、ロック取得を行ったタスクαの優先
順位が一時的にタスクγ(中優先順位)よりも高くな
り、タスクγが起動されても、ロック解放まではタスク
αが実行される。この後、高優先順位であるタスクβが
ロックを取得し、処理を継続することになる。
【0073】優先順位継承方式は、前記優先順位上昇方
式を変更して柔軟性を持たせたものである。優先順位継
承方式では、ロック待ち状態に移行したタスク(例で
は、タスクβ)の優先順位がロックを取得しているタス
ク(タスクα)よりも高ければ、この優先順位をロック
取得中タスクに継承させる方式である。ここでは、ロッ
ク取得中の間だけ、タスクαがタスクβの優先順位を受
け継ぐことになる。低優先順位のタスク同志で排他制御
を行う場合など、必ずしも優先順位を一定レベルまで上
昇させる必要がない場合もあり、優先順位継承方式は、
このような状況にも対処できる方式である。
【0074】本実施例で述べるロック取得モジュール2
19,ロック解放モジュール220は、このような優先
順位上昇もしくは優先順位継承方式をオペレーティング
システム間で実施できるものとする。オペレーティング
システム間での優先順位上昇・継承は、正規化優先順位
を用いて行われる。
【0075】以降、図10で示したモジュールのうち、
OSコンテクスト切り替えモジュール176,共通割込
みハンドラ174,割込みハンドラ152,ロック取得
モジュール219,ロック解放モジュール220の処理
フローの説明を行う。割込みハンドラ153に関して
は、割込みハンドラ152と同様の処理フローを有する
ため、説明を省略する。
【0076】図11はOSコンテクスト切り替えモジュ
ール176の処理フローである。
【0077】OSコンテクスト切り替えモジュール17
6は、オペレーティングシステムを切り替えなければな
らない場合にのみ呼び出され、切り替えが必要か否かの
チェックは呼出し前に行われている。したがって、最初
に、どちらのオペレーティングシステムへ切り替えなけ
ればならないかのみをチェックする(処理230)。こ
こで、事務処理OS110からリアルタイムOS111
への切り替えを行う場合(現実行オペレーティングシス
テムが事務処理OS110であって、リアルタイムOS
111の優先順位が高くなった場合)、事務処理OS用
保存コンテクスト212内に使用中レジスタの値を退避
する(処理231)。次に、リアルタイムOS用保存コ
ンテクスト213から実行環境を復帰して、レジスタに
設定することにより(処理232)、以前退避した状態
からリアルタイムOS111を再実行させることができ
る。リアルタイムOS111から事務処理OS110へ
の切り替えを行う場合、逆に、リアルタイムOS用保存
コンテクスト213に使用中レジスタの値を退避し(処
理233)、次に、事務処理OS用保存コンテクスト2
12からレジスタを復帰する(処理234)。いずれの
場合においても、最後に、切り替え後のオペレーティン
グシステムの種類を実行OS記憶変数210に書き込む
(処理235)。
【0078】図12には、共通割込みハンドラ174の
処理フローを示している。一般に、単一のオペレーティ
ングシステムによって制御される計算機では、一旦、全
ての割込みを割込みハンドラと呼ばれるモジュールが処
理し、次いで、各プログラムに振り分ける。しかしなが
ら、本実施例で説明するような複数個のオペレーティン
グシステムを動作させる計算機では、この更に前に、共
通割込みハンドラが全ての割込みを受け付け、これを対
応するオペレーティングシステムの割込みハンドラに振
り分ける形となる。各オペレーティングシステムに割込
みを振り分けるに当たって、割込み発生時に、割込み対
象とは別のオペレーティングシステムが処理を実行して
いることもある。この場合、割込みに対応するオペレー
ティングシステムに切り替える必要があり、共通割込み
ハンドラはこのような役割も有することになる。
【0079】共通割込みハンドラ174は、割込み発生
後、第一に、実行OS記憶変数210の内容を取り出し
て、現在実行中のオペレーティングシステムが事務処理
OS110であるかリアルタイムOS111であるかをチェ
ックする(処理240)。次に、割込み対応テーブル2
11を用いて、発生した割込みがいずれのオペレーティ
ングシステムに対応しているかを入手する(処理24
1)。例えば、図10の割込み対応テーブル211を用
いるとすると、割込み「0」が発生した場合には事務処
理OS110,割込み「1」が発生した場合にはリアル
タイムOS111,…,割込み「31」が発生した場合
にはリアルタイムOS111、というように対応するオ
ペレーティングシステムを入手することができる。ここ
で、割込み対象オペレーティングシステムが実行中オペ
レーティングシステムに等しいか否かをチェックする
(処理242)。
【0080】発生した割込みが現在実行中のオペレーテ
ィングシステムに対するものでなければ、一旦、オペレ
ーティングシステムの切り替えを行わなければならな
い。この切り替え処理は、OSコンテクスト切り替えモ
ジュール176に依頼することによって行う(処理24
3)。次に割込み対象オペレーティングシステムが事務
処理OS110であるかリアルタイムOS111である
かをチェックし(処理244)、対象が事務処理OS1
10であれば、事務処理OSの割込みハンドラ152を
起動する(処理245)。リアルタイムOS111への
割込みが発生していれば、リアルタイムOSの割込みハ
ンドラ153を起動することになる(処理246)。一
般に、割込みハンドラ152,153は、割込み処理に
よってタスク切り替えを行わなければならないとき、リ
スケジューラ154,155を呼び出し、共通割込みハ
ンドラ174に制御を戻すことはない。しかし、タスク
切り替えが発生しない場合、そのまま割込みハンドラの
処理を終了する。このとき、割込みハンドラ152,1
53は、共通割込みハンドラへ制御を戻し(図13で後
述)、共通割込みハンドラは処理247から動作を再開
する。処理247は、割込み発生時にオペレーティング
システムを切り替えたかどうかをチェックする処理であ
る。処理243によってオペレーティングシステムを切
り替えた場合、ここで再び、オペレーティングシステム
を切り替え、元の実行環境に戻す必要がある。タスク切
り替えが発生しないということは、両オペレーティング
システムの正規化優先順位が変化しなかったということ
を意味し、割込み発生前の実行状態に戻さなければなら
ないわけである。このため、もう一度OSコンテクスト
切り替えモジュール176に依頼して、切り替え処理を
実行させる(処理248)。
【0081】各オペレーティングシステムの割込みハン
ドラがリスケジューラ154,155を実行した場合、前
述したように、共通割込みハンドラの処理247に制御
が戻ることはない。この場合、リスケジューラ154,
155が新たなタスクの優先順位を優先順位変換モジュ
ール122,123に通知してくる。これによって、優
先順位比較モジュール124がオペレーティングシステ
ムの切り替えを行うか否かの判定を行う。
【0082】なお、共通割込みハンドラ174の構成を
図28のように変更することも可能である。図29に示
した共通割込みハンドラ174は、図10に示した共通
割込みハンドラの構成要素の他に、割込み優先順位対応
テーブル380を所有する。割込み優先順位対応テーブ
ル380は、割込みハンドラがいかなる正規化優先順位
で動作しなければならないかをしめす対応表である。図
29の例では、割込み要因0に対応する割込みハンドラ
は、正規化優先順位255で動作しなければならず、ま
た、割込み要因31に対応する割込みハンドラは、正規
化優先順位224で動作しなければならない。共通割込み
ハンドラ174は各オペレーティングシステムの割込み
ハンドラを起動する際に、割込み優先順位対応テーブル
380にしたがって、当該オペレーティングシステムの
正規化優先順位を更新し、また、割込みハンドラ終了
後、元の正規化優先順位を復帰させる。なお、この例で
は共通割込みハンドラ174が割込み優先順位対応テー
ブル380を有するものとしているが、割込み優先順位
対応テーブル380を優先順位変換モジュール122,
123内に設け、共通割込みハンドラ174から優先順
位変換を依頼する構成を採ることも可能である。
【0083】なお、図29のように、割込みに対しても
正規化優先順位を割当てることができるのならば、各オ
ペレーティングシステムのあらゆる動作状態にも正規化
優先順位を割当てることができる。例えば、オペレーテ
ィングシステムは、一般に以下の四種類の動作状態を持
つ。
【0084】(1)idle状態 (2)タスク実行状態 (3)オペレーティングシステム自体の処理状態(例え
ば初期化処理) (4)割込み処理状態 これら全てに正規化優先順位を割当てることも可能であ
る。この場合、一般に考えて、割込み処理状態が最も優
先して動作しなければならず、最も高い正規化優先順位
を割当てる。次にオペレーティングシステム自体の処理
状態,タスク実行状態,idle状態の順に正規化優先順位
を割当てていくことになる。
【0085】図13は共通割込みハンドラ174から呼
び出される事務処理OSの割込みハンドラ152の処理
フローを示したものである。第一に、使用中レジスタを
割込みスタック214に退避し(処理250)、割込み
処理を実行する(処理251)。ここで、オペレーティン
グシステムがリスケジューリング中か否か(すなわち、
リスケジューラ154の処理実行中か否か)をチェック
する(処理252)。リスケジューリング中とは、次に
実行すべきタスクを選択している最中であり、実際には
タスクを実行していないことを意味する。したがって、
オペレーティングシステムの処理を単純化させるなら
ば、この場合、再びリスケジューリングを最初からやり
直せば良いことになる。すなわち、リスケジューリング
中であると判定した場合、割込みスタックの退避レジス
タを破棄し(処理257)、リスケジューラ154を最
初から起動する(処理258)。なお、リスケジューリ
ング中に割込みが発生しても、実行すべきタスクを新た
に選択し直す必要がない場合もある。本方式は、この状
況でもリスケジューリングを最初から行うことになり、
効率的でないこともある。このため、リスケジューリン
グ中に発生し、リスケジューラ154の実行に影響を与
える処理(例えば、タスク起動・終了など)を待ち行列
などに登録しておく方法を用いることもできる。この場
合、リスケジューラ154の終了前や優先順位通知モジ
ュール120内で、該待ち行列に登録しておいた処理を
纏めて実行する。この方式を採用すると、割込み発生の
たびに途中まで実行していたリスケジューリングをやり
直す必要が無い。しかしながら、当該待ち行列に登録し
ていた処理を纏めて実行した後、これによってリスケジ
ューリングが再び必要となるか否かを再チェックしなけ
ればならない。
【0086】なお、本実施例では、単純化のため、前者
の方式で説明を行う。しかし、後者の方式を用いる場
合、 (a)リスケジューリング中か否かを示すフラグ (b)処理待ち行列 を用意すればよい。オペレーティングシステムが提供す
るシステムコールなどにおいて、リスケジューラ154
の実行に影響を与える処理を、リスケジューリング中で
あれば、該待ち行列に登録する。更に、リスケジューラ
154の処理フロー中に、該待ち行列に登録された処理
を一括して実行するモジュールを挿入する。
【0087】割込みハンドラ152がリスケジューリン
グ中でないと判定した場合、当該オペレーティングシス
テムはその時点で何らかのタスクを実行している。この
ため、第一に、タスク切り替えが必要か否かを判定する
(処理253)。タスク切り替えが必要なければ(現実
行タスクが最高優先順位であり、かつ、実行可能であれ
ば)、このまま、割込みハンドラ152の処理を終了す
る。このため、割込みスタック214上に退避しておい
たレジスタ値を復帰し(処理254)、共通割込みハン
ドラへ制御を戻す(処理255)。タスク切り替えが必
要であると判定した場合、割込みスタック214上に退
避したレジスタの値をタスク管理テーブルにコピーし
(処理256)、割込みスタック上の退避レジスタを破
棄する(処理257)。この後、リスケジューラ154
を起動する(処理258)。なお、プロセッサ100
に、メモリ101上データの参照を行って、同時に、割
込みスタックポインタ216の値を増減できる機能が備
わっていれば、処理256と処理257を纏めて実行す
ることができる。
【0088】次に、ロック取得モジュール219,ロッ
ク解放モジュール220の処理フローを説明する。ここ
では、優先順位上昇方式を用いる例を説明し、優先順位
継承方式を使用する実施例については後述する。なお、
ここでは、ロック取得・解放を要求したタスク、およ
び、それを管理するオペレーティングシステムを自タス
ク,自オペレーティングシステムと呼び、もう一方のオ
ペレーティングシステムを別オペレーティングシステム
と呼んでいる。
【0089】図14が優先順位上昇方式を用いるロック
取得モジュール219の処理フローである。ロック取得
モジュール219は、第一に、別オペレーティングシス
テムのタスクがロック取得中か否かをチェックし(処理
260)、取得中でなければ、自オペレーティングシス
テムがロックの所有者であるように設定する(処理26
1)。別オペレーティングシステムのタスクがロック取
得中であれば、ロックが解放されるまでタスクを待ち状
態に移行させる(処理263)。このとき、別オペレー
ティングシステムを優先して実行させ、当該ロックを速
やかに解放させるようにしなければならない。このた
め、優先順位比較モジュール124内に記憶されている
別オペレーティングシステムの正規化優先順位を自オペ
レーティングシステムより高くなるように変更する(処
理262)。ここで処理263においてタスクを待ち状
態に移行させると、自オペレーティングシステムでリス
ケジューラが起動される。これにより、リスケジューラ
から、優先順位通知モジュール,優先順位変換モジュー
ル,優先順位比較モジュールと順次呼び出され、正規化
優先順位を高く変更した別オペレーティングシステムに
切り替えが行われることになる。
【0090】図15が優先順位上昇方式を用いる場合の
ロック解放モジュール220の処理フローである。第一
に、自己が所有するロックを解放する(処理270)。
次に、別オペレーティングシステムがロック取得待ちか
否かをチェックする(処理271)。ロック取得待ちで
なければ、正規化優先順位の上昇は行われていない。こ
のため、このままロック解放モジュール220の処理を
終了する。しかし、別オペレーティングシステムがロッ
ク取得待ちであれば、優先順位逆転現象を解決するた
め、正規化優先順位の上昇が行われている筈である。し
たがって、自オペレーティングシステムの正規化優先順
位を元の値に戻し(処理272)、次に、別オペレーテ
ィングシステムでロック取得待ちとなっているタスクを
実行可能状態に移行させる(処理273)。ロック取得
待ちタスクを実行可能とすることによりタスク切り替え
が発生すれば、別オペレーティングシステムのリスケジ
ューラが起動され、前述のロック取得モジュールの場合
と同様、最終的に、優先順位比較モジュール124が実
行される。これにより、元の正規化優先順位を用いてオ
ペレーティングシステムの重要性が比較され、より高い
正規化優先順位を有するオペレーティングシステムが選
択される。
【0091】次に、優先順位継承方式を用いる例を説明
する。この場合、図16に示すように、各オペレーティ
ングシステムは、正規化優先順位にしたがってタスクの
優先順位を変更する優先順位設定モジュール280,2
81を装備しなければならない。また、優先順位変換モ
ジュール122,123は、優先順位を正規化優先順位
に変換する機能のほか、正規化優先順位を優先順位に変
換する機能を搭載しなければならない。このため、優先
順位変換モジュール122,123は、正規化優先順位
をインデクスとし、各オペレーティングシステムの優先
順位を内容とする優先順位逆変換テーブル282,28
3を有する。
【0092】オペレーティングシステムは、一般に、シ
ステムコールとして、タスクの優先順位を変更する機能
を有している。優先順位設定モジュール280,281
は、与えられた正規化優先順位を各オペレーティングシ
ステムに対応する優先順位に変換し、タスク優先順位変
更システムコールなどを用いてタスクの優先順位を変更
する。優先順位逆変換テーブル282,283は、優先
順位設定モジュール280,281の機能をサポートす
る役割を有する。本実施例では、正規化優先順位が0〜
255であるため、優先順位逆変換テーブル282,2
83は、256個のエントリを有する配列である。ま
た、事務処理OS110の優先順位の範囲が0〜31で
あるため、優先順位逆変換テーブル282の各配列要素
は、0〜31の範囲のいずれかの整数を有し、かつ、以
下の不等式を満足する(配列の名称をrevBusin
essとする)。
【0093】 i>j⇒revBusiness[i]≧revBusiness[j] (ただし、0≦i,j≦255) リアルタイムOS111は優先順位0〜255を有し、
かつ、優先順位の数値が小さいほど優先順位が高いとい
う特徴を有するため、優先順位逆変換テーブル283の
各配列要素は、0〜255までのいずれかの整数を有
し、かつ、以下の不等式を満足する(配列の名称をrevR
ealtimeとする)。
【0094】 i>j⇒revRealtime[i]≦revRealtime[j] (ただし、0≦i,j≦255) さて、本実施例では、正規化優先順位の数値が0〜25
5、リアルタイムOSの優先順位の数値が0〜255で
あるとしているため、正規化優先順位とリアルタイムO
Sの優先順位との対応付けを一対一に行うことができて
いる。したがって、優先順位変換テーブル171から一
意に優先順位逆変換テーブル283を導出することがで
きる。しかしながら、事務処理OSの優先順位の数値は
0〜31であるため、優先順位逆変換テーブル282を
一意に定めることはできない。この場合、例えば、正規
化優先順位「1」に対応する事務処理OSの優先順位
を、優先順位変換テーブル170から導き出すことがで
きない。このため、一意に定めることのできない正規化
優先順位に対しては、上記不等式を満たすように、事務
処理OSの優先順位を適宜に定めている。
【0095】優先順位変換モジュール122のうち、優
先順位逆変換機能の処理フローについて図17に示し
た。ここでは、指定正規化優先順位に対応する事務処理
OSの優先順位を優先順位逆変換テーブル282から取
り出し(処理290)、当該優先順位を優先順位設定モ
ジュール280に通知する(処理291)。優先順位変
換モジュール123も同様の優先順位逆変換機能を有す
る。
【0096】これに対する優先順位設定モジュール28
0の処理フローを図18に示す。優先順位設定モジュー
ル280は、第一に、優先順位変換モジュール122に
依頼して、正規化優先順位から事務処理OSの優先順位
への変換を行わせる(処理292)。次に、事務処理O
Sの優先順位変更システムコールなどを用いてタスクの
優先順位を変更させる(処理293)。リアルタイムO
S111における優先順位設定モジュール281の処理
も同様である。
【0097】次に、これらの優先順位逆変換機能,優先
順位設定モジュールを用いた優先順位継承方式の実現方
法について述べる。
【0098】図19は優先順位継承方式を用いるロック
取得モジュール219の処理フローである。ロック取得
モジュール219は、第一に、別タスクがロック取得中
か否かをチェックし(処理300)、取得中でなけれ
ば、自タスクがロックの所有者であるように設定する
(処理301)。別タスクがロック取得中であれば、ロ
ックが解放されるまでタスクを待ち状態に移行させる必
要がある(処理304)。このとき、ロック取得中タス
クを優先して実行させ、当該ロックを速やかに解放させ
るようにしなければならない。ロック取得中タスクの正
規化優先順位と自タスクの正規化優先順位を比較し(処
理302)、ロック取得中タスクの正規化優先順位が低
ければ、当該タスクに自タスクの優先順位を継承させる
(処理303)。優先順位継承は、ロック取得中タスクを
実行するオペレーティングシステムの優先順位設定モジ
ュールに対し、自タスクの正規化優先順位を指定して優
先順位設定を依頼することによって行うことができる。
ロック取得中タスクの正規化優先順位が既に自タスクの
正規化優先順位より高ければ、優先順位継承を行う必要
はなく、直ちにタスクを待ち状態に移行させることがで
きる。
【0099】図20は優先順位継承方式を用いるロック
解放モジュール220の処理フローである。第一に、自
己が所有するロックを解放する(処理310)。次に、
別タスクがロック取得待ちか否かをチェックする(処理
311)。ロック取得待ちでなければ、正規化優先順位
継承が行われていないことになり、このままロック解放
モジュール220の処理を終了する。しかし、別タスク
がロック取得待ちであれば、正規化優先順位継承が行わ
れている筈である。したがって、優先順位設定モジュー
ルに依頼して自タスクの正規化優先順位を元の値に戻し
(処理312)、次に、ロック取得待ちとなっているタス
クを実行可能状態に移行させる(処理313)。
【0100】本実施例では説明を省略したが、ロック取
得モジュール219,ロック解放モジュール220など
を実行している途中に割込みが発生し、タスク切り替え
などが起こると、ロック所有者を示すデータなどに不整
合が生じる可能性がある。したがって、通常、これらの
処理実行中には、割込みマスク機能によって割込み発生
を抑止する。
【0101】図16〜図20に示したプログラムモジュ
ール,処理フローにより、オペレーティングシステム間
での排他制御において、優先順位継承方式を用いること
が可能となる。なお、実際には、図19,図20に示し
た処理フローを用いることにより、一つのオペレーティ
ングシステム内で正規化優先順位の継承を行うことも可
能である。
【0102】図21に、割込みマスクレベル計算モジュ
ール177の内部構造を示した。割込みマスクレベル計
算モジュール177は、正規化優先順位を割込みマスク
レベルに変換し、一定以上の正規化優先順位であれば、
特定の割込みをマスクする機能である。これは、ある一
定以上の正規化優先順位を有するタスクは、割込み処理
よりも優先して実行されなければならないという考えに
基づく機能である。したがって、システムコールなどで
割込みをマスクする機能が備わっていれば、本機能が存
在しなくても十分システムは成立する。ただし、割込み
マスクレベル計算モジュール177の利点として、正規
化優先順位が一定値以上になれば、自動的に割込みマス
クを実行することがある。
【0103】割込みマスクを実行するため、割込みマス
クレベル計算モジュール177は、割込みマスク変換テ
ーブル320を所有する。割込みマスク変換テーブル3
20は、正規化優先順位から割込みマスク値を入手する
ための変換テーブルである。本実施例では、図4に示し
たように、32種類の割込み要因を個別にマスクできる
計算機アーキテクチャを対象としているため、割込みマ
スク変換テーブル320の各エントリは32ビット長デー
タを有する。しかしながら、図3に示したように、4ビ
ットの割込みマスクレベルを使用すると、割込みマスク
変換テーブル320の各エントリを4ビット長に縮少さ
せることができる。ここで、図21に示した実施例で
は、例えば、正規化優先順位「0」に対応する割込みマ
スク値が0x00000000であり、正規化優先順位「255」
に対応する割込みマスク値は0xffffffffである。これ
は、正規化優先順位が「0」であれば全ての割込みを許
可し、最高の正規化優先順位でシステムが動作している
ならば、全ての割込みをマスクすることを意味する。優
先順位比較モジュール124が割込みマスクレベル計算
モジュール177に対して、現在実行中オペレーティン
グシステムの正規化優先順位を通知することにより、必
要な割込みマスクを自動的に行うことができる。
【0104】図22に割込みマスクレベル計算モジュー
ル177の処理フローを示す。ここでは、第一に、正規
化優先順位に対応する割込みマスク値を割込みマスク変
換テーブル320から取り出す(処理330)。次に、
入手した割込みマスク値を割込みマスクレジスタ143
などに設定して、割込みマスクを実施する(処理331)。
【0105】以上に本発明の第一の実施例について説明
した。本実施例を用いることにより、各オペレーティン
グシステムが実行しているタスクの優先順位にしたがっ
て、オペレーティングシステムの切り替えを行うことが
できる。本実施例では、各オペレーティングシステム内
に優先順位通知モジュールを組み込み、リスケジューリ
ングのたびに優先順位の変更を通知するように改造しな
ければならない。しかしながら、市販オペレーティング
システムを使用する場合など、このような改造を施せな
いことも多い。以下、これに対処する本発明の第二の実
施例について説明する。
【0106】図23は本発明の第二の実施例を示した構
成図である。事務処理OS110,リアルタイムOS1
11は、それぞれ、現在実行中タスクの優先順位(実行
優先順位340,341)を保持するものとする。各オ
ペレーティングシステムは、図5に示す実行可能待ち行
列150,151の先頭に存在するタスク管理テーブル
162,163内に格納されている優先順位の数値が実
行優先順位340,341となる。また、実行可能待ち
行列が優先順位毎に複数個存在する場合には、一般に、
現時点で最高優先順位の実行可能待ち行列がどこに存在
するかを示すポインタや、最高優先順位の数値そのもの
を示す変数(優先順位保持変数)を用意することが多
い。前者の場合には、該ポインタから実行可能待ち行列
を辿り、タスク管理テーブルを参照することにより、後
者の場合には、該優先順位保持変数自体を読み出すこと
により、実行優先順位340,341を入手できる。
【0107】オペレーティングシステム切り替えプログ
ラム118内には、新たに、優先順位監視モジュール3
44を設ける。これ以外のモジュールである、優先順位
変換モジュール122,123,優先順位比較モジュー
ル124,共通割込みハンドラ174,OS間通信機能
モジュール175,OSコンテクスト切り替えモジュー
ル176,割込みマスクレベル計算モジュール177
は、第一の実施例で説明した内容と同様の構成,処理フ
ローを有する。各オペレーティングシステム内には、優
先順位通知モジュール120,121は存在しない。
【0108】優先順位監視モジュール344は、事務処
理OS実行優先順位記憶値342とリアルタイムOS実
行優先順位記憶値343を所有する。優先順位監視モジ
ュール344は定期的に起動され、各オペレーティング
システムの実行優先順位340,341を監視する。ここ
で、記憶している実行優先順位342または343と、
現在の実行優先順位340または341が異なっていれ
ば、優先順位が変化したと認識して、優先順位変換モジ
ュール122または123に新たな実行優先順位を通知
する。
【0109】優先順位監視モジュール344の処理フロ
ーを図24に示す。第一に、事務処理OSの実行優先順
位340を読み出して、これを事務処理OS実行優先順
位記憶値342と比較する(処理350)。これによ
り、事務処理OSの優先順位が変化したか否かを認識で
きる。優先順位が変化していなければ何も実行せず、処
理353に移行する。優先順位が変化していれば、事務
処理OSの実行優先順位340を事務処理OS実行優先
順位記憶値342に登録し(処理351)、次に、当該
優先順位を事務処理OSの優先順位変換モジュール12
2に通知する(処理352)。リアルタイムOS111
の実行優先順位変化に対しても同様の処理を行う。第一
に、リアルタイムOSの実行優先順位341とリアルタ
イムOS実行優先順位記憶値343との比較を行い(処
理353)、優先順位の変化が無ければ処理を終了す
る。優先順位が変化していれば、リアルタイムOSの実
行優先順位341をリアルタイムOS実行優先順位記憶
値343に登録し(処理354)、これをリアルタイムO
Sの優先順位変換モジュール123に通知する(処理3
55)。
【0110】なお、優先順位変換モジュールに優先順位
を通知した結果、オペレーティングシステムの切り替え
が行われると、優先順位監視モジュール344に制御が
戻ってこないことに注意しなければならない。このた
め、図24の監視方法は、常に事務処理OS110の優
先順位変化を優先して監視するものであると言える。両
オペレーティングシステムの監視を対等なものとするた
めには、優先順位監視モジュール344の起動回数を計
数しておき、(1)起動回数が奇数であれば事務処理O
S110の優先順位変化を監視し、(2)起動回数が偶
数であればリアルタイムOS111の優先順位変化を監
視するといった処理フローなどに改める必要がある。
【0111】ここで、優先順位監視モジュール344
は、「定期的に」起動され、優先順位の変化を監視する
ことに注意しなければならない。定期的な処理を実現す
るためには、タイマ割込みによって優先順位監視モジュ
ール344を起動すればよい。ここでは、タイマ割込
み,外部割込みを含む全ての割込みが共通割込みハンド
ラ174で一括処理されることに着目し、共通割込みハ
ンドラ174内に優先順位監視モジュール344を埋め
込む方法について説明する。図25が優先順位監視モジ
ュール344を埋め込んだ共通割込みハンドラ174の
処理フローである。図中、処理240〜248は全て図
12に等しい。優先順位監視モジュール344の起動(処
理360)はオペレーティングシステム切り替えを行う
可能性がある。このため、割込みハンドラの実行(処理
245,246)後に埋め込まなければならない。割込
みハンドラ152,153が共通割込みハンドラ174
に制御を戻すと、自動的に優先順位変化が監視され、必
要に応じてオペレーティングシステムの切り替えが行わ
れる。優先順位監視モジュール344がオペレーティン
グシステムの切り替えを行う必要がないと判断した場
合、そのまま共通割込みハンドラ174の処理を終了す
る。
【0112】なお、本発明の第二の実施例では、リスケ
ジューリング直後の優先順位変化を優先順位変換モジュ
ールに通知する手段が存在しない。すなわち、一定間隔
毎に優先順位の変化をチェックするのであって、優先順
位の変化に直ちに反応してオペレーティングシステムを
切り替えることにはならない。このため、本発明の第二
の実施例は、オペレーティングシステム内部の改造を伴
わない計算機を実現できるが、第一の実施例に比べ、切
り替え効率的に劣るという特徴がある。
【0113】本発明の第二の実施例は、両オペレーティ
ングシステムの内部を改造しないという条件を満たすも
のであるが、例えば、リアルタイムOS111は改造で
きるが、事務処理OS110を改造することができな
い、といった条件が発生することもある。この場合、本
発明の第三の実施例として、リアルタイムOS111内
部に優先順位通知モジュール121を搭載し、優先順位
監視モジュール344は事務処理OS110の優先順位
変化のみを監視するといった計算機を実現することも可
能である(図26)。
【0114】また、リスケジューラ内部に優先順位通知
モジュールを組み込むのではなく、各オペレーティング
システムのタイマ割込み処理モジュール内部など、定期
的に起動される部分に優先順位通知モジュールを組込
み、優先順位監視モジュール344の代用とすることも
可能である。
【0115】以上説明した本発明を図27に示す車載ナ
ビゲーションシステムに適用した場合、処理時間の長い
経路探索タスクが動作している場合でもユーザからの入
力を受け付けることができる。つまり、この場合はイン
タフェースタスクに対して、経路探索タスクよりも高い
正規化優先順位を与える。このとき、ユーザがボタンを
押してインタフェースタスクが動作すれば、より正規化
優先順位の高いタスクを動作させる事務処理OSに切り
替えが行われ、結果として、処理の長い経路探索タスク
が動作している場合にもインターフェースタスクが実行
されることになる。
【0116】更に、複数のオペレーティングシステムを
実行する仮想計算機においても、本発明を適用すること
により異なった優先順位体系を有しているオペレーティ
ングシステムを、実行すべきタスクの優先順位にしたが
って実行させることができる。
【0117】以上より、本発明によれば事務処理用OS
のユーザインタフェースとリアルタイムOSの信頼性を
併せ持つ計算機を構築することができる。
【0118】前記第一乃至第三の実施例は、全て、オペ
レーティングシステム切替えプログラム118の内部で
優先順位の変換を行う構成を有している。しかしなが
ら、優先順位変換モジュール122,123は、それぞ
れ、事務処理OS110,リアルタイムOS111に個
別に対応しているため、これらを、各オペレーティング
システム内部に搭載しても良い。このような変更を加え
た第四の実施例を図29に示す。
【0119】本実施例では、第一に、優先順位変換モジ
ュール122,123が各オペレーティングシステムで
の優先順位を正規化優先順位に変換する。これを受け
て、優先順位通知モジュール120,121が、優先順
位比較モジュール124に対して各オペレーティングシ
ステムの正規化優先順位を通知する。
【0120】この実施例では、事務処理OS110,リ
アルタイムOS111とオペレーティングシステム切替
えプログラム108とのインタフェースが全て正規化優
先順位によって行われる。前記第一乃至第三の実施例で
は、実行可能タスクが存在する場合には、タスクの優先
順位を通知し、実行可能タスクが存在しない場合には、
idle状態であることを通知していた。これらの場合、id
le状態や、オペレーティングシステム自体が何らかの処
理を実行しなければならない状態を、自由に正規化優先
順位にマッピングすることができない。本実施例(第四
実施例)では、各オペレーティングシステム内で優先順
位を正規化優先順位に変換するため、タスク実行中以外
の状態も自由に正規化優先順位にマッピングすることが
可能となる。
【0121】
【発明の効果】本発明によれば、複数個のオペレーティ
ングシステムを単一プロセッサで動作させる計算機にお
いて、各オペレーティングシステムが実行するタスクの
優先順位にしたがって、オペレーティングシステムの切
り替えを行うことができ、より重要なタスクを優先して
実行させることができる。また、本発明では、優先順位
変換モジュールによって正規化優先順位に変換し、これ
によってオペレーティングシステム間の優先順位比較を
行うため、異なった優先順位体系を有するオペレーティ
ングシステム同士を実行させる計算機であっても、リア
ルタイム性・効率性を損なうことがない。
【図面の簡単な説明】
【図1】本発明の第一の実施例におけるシステム構成を
示す図である。
【図2】計算機のハードウェア構成を示す図である。
【図3】割込みレベルマスク機能を装備する場合のステ
ータスレジスタを示す図である。
【図4】個別割込みマスク機能を装備する場合のステー
タスレジスタを示す図である。
【図5】オペレーティングシステム内部構成を詳細に示
す図である。
【図6】オペレーティングシステム切り替えプログラム
内部構成を詳細に示す第一の図である。
【図7】リスケジューラの処理フローを示す図である。
【図8】優先順位変換モジュールの処理フローを示す図
である。
【図9】優先順位比較モジュールの処理フローを示す図
である。
【図10】オペレーティングシステム切り替えプログラ
ム内部構成を詳細に示す第二の図である。
【図11】OSコンテクスト切り替えモジュールの処理
フローを示す図である。
【図12】共通割込みハンドラの処理フローを示す図で
ある。
【図13】割込みハンドラの処理フローを示す図であ
る。
【図14】優先順位上昇方式におけるロック取得モジュ
ールの処理フローを示す図である。
【図15】優先順位上昇方式におけるロック解放モジュ
ールの処理フローを示す図である。
【図16】優先順位設定モジュール内部構成を詳細に示
す図である。
【図17】優先順位変換モジュールにおける優先順位逆
変換機能の処理フローを示す図である。
【図18】優先順位設定モジュールの処理フローを示す
図である。
【図19】優先順位継承方式におけるロック取得モジュ
ールの処理フローを示す図である。
【図20】優先順位継承方式におけるロック解放モジュ
ールの処理フローを示す図である。
【図21】割込みマスクレベル計算モジュール内部構成
を詳細に示す図である。
【図22】割込みマスクレベル計算モジュールの処理フ
ローを示す図である。
【図23】本発明の第二の実施例におけるシステム構成
を示す図である。
【図24】優先順位監視モジュールの処理フローを示す
図である。
【図25】優先順位監視モジュールを起動する共通割込
みハンドラの処理フローを示す図である。
【図26】本発明の第三の実施例におけるシステム構成
を示す図である。
【図27】オペレーティングシステム間でのタスク振り
分け例を示す図である。
【図28】共通割込みハンドラの別の構成を示した図で
ある。
【図29】本発明の第四の実施例におけるシステム構成
を示す図である。
【符号の説明】
100…プロセッサ、101…メモリ、102…入出力
制御装置、103…プロセッサバス、104…ディスク
装置、105…ディスプレイ、106…リアルタイム制
御ネットワーク、107…割込み信号線、108…タイ
マ装置、110…事務処理OS、111…リアルタイム
OS、112〜117,370〜373…タスク、11
8…オペレーティングシステム切り替えプログラム、1
20,121…優先順位通知モジュール、122,12
3…優先順位変換モジュール、124…優先順位比較モ
ジュール、130…CPU、131…キャッシュメモ
リ、132…汎用レジスタ、133…プログラムカウン
タ、134…ステータスレジスタ、135…割込みコン
トローラ、136…データバス、137…アドレスバ
ス、138…割込み状態信号、140…割込みブロック
ビット、141…割込みマスクレベルフィールド、14
2…実行状態レジスタ、143…割込みマスクレジス
タ、144〜147…割込みマスクビット、150,1
51…実行可能待ち行列、152,153…割込みハン
ドラ、154,155…リスケジューラ、156,15
7…システムコールプログラム、160〜165…タス
ク管理テーブル、170,171…優先順位変換テーブ
ル、172…事務処理OS正規化優先順位、173…リ
アルタイムOS正規化優先順位、174…共通割込みハ
ンドラ、175…OS間通信機能モジュール、176…
OSコンテクスト切り替えモジュール、177…割込み
マスクレベル計算モジュール、210…実行OS記憶変
数、211…割込み対応テーブル、212…事務処理O
S用保存コンテクスト、213…リアルタイムOS用保
存コンテクスト、214,215…割込みスタック、2
16,217…割込みスタックポインタ、218…共有
メモリ、219…ロック取得モジュール、220…ロッ
ク解放モジュール、280,281…優先順位設定モジ
ュール、282,283…優先順位逆変換テーブル、3
20…割込みマスク変換テーブル、340,341…実
行優先順位、342…事務処理OS実行優先順位記憶
値、343…リアルタイムOS実行優先順位記憶値、34
4…優先順位監視モジュール、380…割込み優先順位
対応テーブル。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 中村 智明 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内 (72)発明者 大野 洋 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内 (72)発明者 井上 太郎 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 Fターム(参考) 5B098 CC01 GA02 GA04 GA05 GB01 GC03

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】複数のオペレーティングシステムと、それ
    ぞれの上記オペレーティングシステムのプログラム上で
    実行される複数のプロセスまたはスレッドとを記憶した
    メモリと、 それぞれの上記プロセス又はスレッドに割り当てられた
    優先順位に基づいて、オペレーティングシステムを実行
    する処理装置とを有する計算機であって、 上記処理装置は、それぞれの上記オペレーティングシス
    テムで実行すべきプロセス又はスレッドの優先順位を読
    み出し、それぞれ読み出された優先順位を複数の上記オ
    ペレーティングシステム間で共通の優先順位に変換し、
    上記変換結果に基づいて優先して実行すべきオペレーテ
    ィングシステムを決定するとともに、上記決定されたオ
    ペレーティングシステムを実行する計算機。
  2. 【請求項2】請求項1において、上記メモリは複数の上
    記オペレーティングシステムで実行すべきプロセス又は
    スレッドの優先順位を上記共通の優先順位にマッピング
    するための優先順位変換テーブルを有し、上記プロセッ
    サは上記変換テーブルに基づいて優先して実行すべきオ
    ペレーティングシステムを決定する計算機。
  3. 【請求項3】請求項1又は2において、上記プロセッサ
    は、複数のオペレーティングシステム間で共通の優先順
    位から、それぞれの上記オペレーティングシステムにお
    ける優先順位を決定し、それぞれのオペレーティングシ
    ステムで実行される複数の上記プロセス又はスレッドの
    優先順位を変更する計算機。
  4. 【請求項4】請求項3において、上記メモリは、上記共
    通の優先順位をそれぞれの上記オペレーティングシステ
    ムにおける優先順位にマッピングするための優先順位逆
    変換テーブルを有し、上記プロセッサは、上記優先順位
    逆変換テーブルに基づいて複数の上記プロセス又はスレ
    ッドの優先順位を変更する計算機。
  5. 【請求項5】請求項1乃至4において、上記プロセッサ
    はプロセス又はスレッドが指定された処理を実行する場
    合に、該プロセス又はスレッドを実行するオペレーティ
    ングシステムの優先順位を上昇させ、上記プロセス又は
    スレッドが該指定された処理を終了した場合に、上記オ
    ペレーティングシステムの優先順位を下降させる計算
    機。
  6. 【請求項6】複数のプロセスまたはスレッドと、 複数の上記プロセス又はスレッドを実行すると共に、実
    行しているプロセス又はスレッドの優先順位を通知する
    複数のオペレーティングシステムと、 それぞれの上記オペレーティングシステムから通知され
    た優先順位をオペレーティングシステム間で共通の優先
    順位に変換する優先順位変換処理と、 上記優先順位変換処理によって得られた共通の優先順位
    を比較して、より高い共通の優先順位を有するオペレー
    ティングシステムを優先的に実行させる優先順位比較処
    理とを記憶した情報記憶媒体。
  7. 【請求項7】複数のオペレーティングシステムを選択的
    に実行するオペレーティングシステム実行方法であっ
    て、 優先順位変換処理によって、それぞれの上記オペレーテ
    ィングシステムで実行されるプロセス又はスレッドの優
    先順位をオペレーティングシステム間で共通の優先順位
    に変換し、 優先順位比較処理によって、上記優先順位変換処理によ
    って得られた共通の優先順位を比較して、より高い共通
    の優先順位を有するオペレーティングシステムを優先的
    に実行させるオペレーティングシステム実行方法。
  8. 【請求項8】請求項7において、上記優先順位変換処理
    はそれぞれのオペレーティングシステムの優先順位を上
    記共通の優先順位に変換するにあたって、異なったオペ
    レーティングシステムの優先順位は互いに異なった共通
    の優先順位に変換するオペレーティングシステム実行方
    法。
  9. 【請求項9】請求項7又は8において、前記優先順位変
    換処理は、それぞれの上記オペレーティングシステムが
    実行しているプロセスまたはスレッドの優先順位を上記
    共通の優先順位に変換するほかに、少なくとも、割込み
    処理中の状態,オペレーティングシステム自体の機能を
    実行中の状態,実行すべき処理が存在しない状態という
    三つの状態を共通の優先順位に変換するオペレーティン
    グシステム実行方法。
  10. 【請求項10】複数のプロセスまたはスレッドを該複数
    のプロセスまたはスレッドに割り当てられた優先順位に
    したがって実行する複数個のオペレーティングシステム
    と、該複数個のオペレーティングシステムを切替える手
    段とを有する計算機システムにおいて、該複数個のオペ
    レーティングシステムは、それぞれが実行しているプロ
    セスまたはスレッドの優先順位を計算機システム内で共
    通の優先順位に変換する優先順位変換手段と、該優先順
    位変換手段から得られた共通の優先順位を該オペレーテ
    ィングシステムに切替える手段に通知する優先順位通知
    手段とを有し、該オペレーティングシステムを切替える
    手段は、それぞれのオペレーティングシステムから通知
    された共通の優先順位を比較して、より高い共通の優先
    順位を有するオペレーティングシステムを優先的に実行
    させる優先順位比較手段を有したことを特徴とする計算
    機システム。
JP04103299A 1999-02-19 1999-02-19 複数のオペレーティングシステムを実行する計算機 Expired - Fee Related JP4072271B2 (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP04103299A JP4072271B2 (ja) 1999-02-19 1999-02-19 複数のオペレーティングシステムを実行する計算機
DE60043032T DE60043032D1 (de) 1999-02-19 2000-02-14 Mehrere Betriebssyteme ausführender Rechner
EP00301110A EP1031924B1 (en) 1999-02-19 2000-02-14 Computer executing multiple operating system
AT00301110T ATE444523T1 (de) 1999-02-19 2000-02-14 Mehrere betriebssyteme ausführender rechner
KR1020000007733A KR100759280B1 (ko) 1999-02-19 2000-02-18 복수의 오퍼레이팅 시스템을 실행하는 계산기
CN00102345A CN1264078A (zh) 1999-02-19 2000-02-18 执行多个操作***的计算机
TW089102909A TW490638B (en) 1999-02-19 2000-02-19 Computer for executing plural operating systems
US11/025,966 US7810096B2 (en) 1999-02-19 2005-01-03 Computer executing multiple operating systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04103299A JP4072271B2 (ja) 1999-02-19 1999-02-19 複数のオペレーティングシステムを実行する計算機

Publications (2)

Publication Number Publication Date
JP2000242512A true JP2000242512A (ja) 2000-09-08
JP4072271B2 JP4072271B2 (ja) 2008-04-09

Family

ID=12597071

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04103299A Expired - Fee Related JP4072271B2 (ja) 1999-02-19 1999-02-19 複数のオペレーティングシステムを実行する計算機

Country Status (8)

Country Link
US (1) US7810096B2 (ja)
EP (1) EP1031924B1 (ja)
JP (1) JP4072271B2 (ja)
KR (1) KR100759280B1 (ja)
CN (1) CN1264078A (ja)
AT (1) ATE444523T1 (ja)
DE (1) DE60043032D1 (ja)
TW (1) TW490638B (ja)

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004514987A (ja) * 2000-11-27 2004-05-20 エイアールエム リミテッド リターンステートをセーブするためのデータ処理装置および方法
JP2005327269A (ja) * 2004-04-30 2005-11-24 Microsoft Corp マルチメディアコンソール上のシステムアプリケーション
JP2006012122A (ja) * 2004-04-30 2006-01-12 Microsoft Corp マルチメディアコンソール内の並列システムアプリケーション
JP2006018813A (ja) * 2004-06-30 2006-01-19 Microsoft Corp 1台の仮想マシン内の複数の仮想プロセッサを初期化するためのシステムおよび方法
US7496494B2 (en) 2002-09-17 2009-02-24 International Business Machines Corporation Method and system for multiprocessor emulation on a multiprocessor host system
JP2009175971A (ja) * 2008-01-23 2009-08-06 Hitachi Ltd 制御装置
JP2009181578A (ja) * 2008-01-31 2009-08-13 Internatl Business Mach Corp <Ibm> 複数の仮想マシンに対して動的にリソースを割当てる方法及び装置
WO2009133669A1 (ja) * 2008-04-28 2009-11-05 パナソニック株式会社 仮想計算機制御装置、仮想計算機制御方法及び仮想計算機制御プログラム
WO2009147802A1 (ja) * 2008-06-02 2009-12-10 パナソニック株式会社 優先度制御装置及び優先度制御方法
WO2009157178A1 (ja) * 2008-06-24 2009-12-30 パナソニック株式会社 仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路
US7707576B2 (en) 2004-02-17 2010-04-27 Fujitsu Limited Method of and apparatus for managing task, and computer product
WO2011148563A1 (ja) * 2010-05-24 2011-12-01 パナソニック株式会社 情報処理システム
JP2012185541A (ja) * 2011-03-03 2012-09-27 Denso Corp 車載装置、スケジューリングプログラム、及びスケジューリング方法
US8489862B2 (en) 2007-06-12 2013-07-16 Panasonic Corporation Multiprocessor control apparatus for controlling a plurality of processors sharing a memory and an internal bus and multiprocessor control method and multiprocessor control circuit for performing the same
WO2013132648A1 (ja) * 2012-03-09 2013-09-12 パイオニア株式会社 情報処理装置、情報処理方法、情報処理プログラムが記録された記録媒体及び情報処理プログラム
US8782639B2 (en) 2011-03-15 2014-07-15 Fujitsu, Limited Computer scheduling product and apparatus therefor
US9063868B2 (en) 2010-05-24 2015-06-23 Panasonic Intellectual Property Corporation Of America Virtual computer system, area management method, and program
JPWO2013132648A1 (ja) * 2012-03-09 2015-07-30 パイオニア株式会社 情報処理装置、情報処理方法、情報処理プログラムが記録された記録媒体及び情報処理プログラム
JP2015195053A (ja) * 2008-12-31 2015-11-05 インテル コーポレイション セキュアな埋め込みコンテナの実行のためのプロセッサの拡張
US9218287B2 (en) 2011-01-24 2015-12-22 Panasonic Intellectual Property Corporation Of America Virtual computer system, virtual computer control method, virtual computer control program, recording medium, and integrated circuit
JP2016129047A (ja) * 2016-02-24 2016-07-14 パイオニア株式会社 情報処理装置、情報処理方法、情報処理プログラムが記録された記録媒体及び情報処理プログラム
US9460270B2 (en) 2011-04-27 2016-10-04 Panasonic Intellectual Property Corporation Of America Generating child virtual machine to execute authorized application with reduced risk of malware attack
JP2017507417A (ja) * 2014-03-06 2017-03-16 インテル・コーポレーション マルチオペレーティングシステムデバイスのための動的な再割り当て
KR20170118182A (ko) * 2015-02-24 2017-10-24 후아웨이 테크놀러지 컴퍼니 리미티드 다중 운영체제 장치, 통보 장치 및 그 방법
JP2019125242A (ja) * 2018-01-18 2019-07-25 株式会社デンソー スケジューリング装置

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001256067A (ja) * 2000-03-08 2001-09-21 Mitsubishi Electric Corp プロセッサ省電力制御方法、記憶媒体、およびプロセッサ省電力制御装置
CN100356349C (zh) * 2001-04-27 2007-12-19 邵通 一种实现计算设备状态转换的装置及方法
CN100356350C (zh) * 2001-04-27 2007-12-19 邵通 实现计算设备状态转换装置安全操作的装置和方法
JP2003067201A (ja) * 2001-08-30 2003-03-07 Hitachi Ltd コントローラとオペレーティングシステム
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US20040023646A1 (en) * 2002-07-31 2004-02-05 Satoshi Inami Information processing terminal and information processing method
GB2396712B (en) * 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Handling multiple interrupts in a data processing system utilising multiple operating systems
GB0226874D0 (en) 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Switching between secure and non-secure processing modes
GB2395313B (en) * 2002-11-18 2005-11-23 Advanced Risc Mach Ltd Task following between multiple operating systems
JP3953449B2 (ja) * 2003-08-26 2007-08-08 富士通株式会社 タスク管理プログラムおよびタスク制御装置
US8561076B1 (en) * 2004-06-30 2013-10-15 Emc Corporation Prioritization and queuing of media requests
US20060010446A1 (en) * 2004-07-06 2006-01-12 Desai Rajiv S Method and system for concurrent execution of multiple kernels
WO2006018307A2 (en) * 2004-08-18 2006-02-23 Jaluna Sa Operating systems
US7840962B2 (en) * 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
EP1820100B1 (en) * 2004-11-30 2008-08-27 Koninklijke Philips Electronics N.V. Efficient switching between prioritized tasks
US8274518B2 (en) 2004-12-30 2012-09-25 Microsoft Corporation Systems and methods for virtualizing graphics subsystems
WO2006069538A1 (fr) * 2004-12-31 2006-07-06 Juhang Zhong Systeme de traitement de donnees avec pluralite de sous-systemes et procede correspondant
US7437546B2 (en) * 2005-08-03 2008-10-14 Intel Corporation Multiple, cooperating operating systems (OS) platform system and method
US7719132B2 (en) 2005-09-28 2010-05-18 L3 Communications Corporation Ruggedized mobile computing device
US20070104340A1 (en) * 2005-09-28 2007-05-10 Knowles Electronics, Llc System and Method for Manufacturing a Transducer Module
US8104033B2 (en) * 2005-09-30 2012-01-24 Computer Associates Think, Inc. Managing virtual machines based on business priorty
JP5109250B2 (ja) * 2005-11-08 2012-12-26 横河電機株式会社 分散システム
KR100731983B1 (ko) * 2005-12-29 2007-06-25 전자부품연구원 저전력 무선 디바이스 프로세서용 하드와이어드 스케줄러및 스케줄링 방법
CN101359312B (zh) * 2006-01-17 2010-06-09 株式会社Ntt都科摩 输入输出控制***
JP4342576B2 (ja) * 2006-07-25 2009-10-14 株式会社エヌ・ティ・ティ・ドコモ 複数オペレーティングシステム切替制御装置及びコンピュータシステム
EP1892625B1 (en) * 2006-08-09 2018-07-11 Red Bend Software Finer grained operating system scheduling
US7689820B2 (en) * 2006-09-27 2010-03-30 L3 Communications Corporation Rapid-boot computing device with dual operating systems
US8819483B2 (en) 2006-09-27 2014-08-26 L-3 Communications Corporation Computing device with redundant, dissimilar operating systems
JP4785142B2 (ja) * 2007-01-31 2011-10-05 ルネサスエレクトロニクス株式会社 データ処理装置
US8627327B2 (en) * 2007-10-24 2014-01-07 International Business Machines Corporation Thread classification suspension
US8635621B2 (en) * 2008-08-22 2014-01-21 International Business Machines Corporation Method and apparatus to implement software to hardware thread priority
US8424007B1 (en) * 2008-09-30 2013-04-16 Symantec Corporation Prioritizing tasks from virtual machines
JP4897851B2 (ja) * 2009-05-14 2012-03-14 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ・システム及びコンピュータ・システムの制御方法
US20110117944A1 (en) * 2009-11-17 2011-05-19 Yaxin Cao Method and system for task-level access arbitration between virtual modems in a multi-sim multi-standby communication device
CN102667725B (zh) * 2010-01-13 2015-09-16 马维尔以色列(M.I.S.L.)有限公司 用于媒体处理的硬件虚拟化
US20110219373A1 (en) * 2010-03-02 2011-09-08 Electronics And Telecommunications Research Institute Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform
US8341643B2 (en) * 2010-03-29 2012-12-25 International Business Machines Corporation Protecting shared resources using shared memory and sockets
JP5323103B2 (ja) * 2010-09-03 2013-10-23 三菱電機株式会社 グラフィカルユーザインタフェース装置
EP2622483A4 (en) * 2010-09-28 2014-06-04 Siemens Ag ADAPTIVE REMOTE CONTROL OF ROLLING EQUIPMENT
US8407710B2 (en) * 2010-10-14 2013-03-26 International Business Machines Corporation Systems and methods for dynamically scanning a plurality of active ports for priority schedule of work
WO2012086106A1 (ja) * 2010-12-21 2012-06-28 パナソニック株式会社 仮想計算機システム及び仮想計算機システム制御方法
US10417018B2 (en) 2011-05-27 2019-09-17 Microsoft Technology Licensing, Llc Navigation of immersive and desktop shells
US8924885B2 (en) 2011-05-27 2014-12-30 Microsoft Corporation Desktop as immersive application
US9843665B2 (en) 2011-05-27 2017-12-12 Microsoft Technology Licensing, Llc Display of immersive and desktop shells
KR101801359B1 (ko) * 2011-07-28 2017-11-24 엘지전자 주식회사 이동 단말기
TWI496083B (zh) * 2011-08-30 2015-08-11 Compal Electronics Inc 雙作業系統的操作方法、可攜式電子裝置以及對接擴充系統
TWI497419B (zh) 2011-10-20 2015-08-21 Via Tech Inc 電腦裝置及其中斷任務分配方法
JP5729266B2 (ja) * 2011-11-15 2015-06-03 富士通株式会社 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム
WO2013159289A1 (en) * 2012-04-25 2013-10-31 Hewlett-Packard Development Company Switching of operating systems
US9575760B2 (en) * 2013-05-17 2017-02-21 Nvidia Corporation Techniques for sharing priorities between streams of work and dynamic parallelism
US9606833B2 (en) * 2014-04-09 2017-03-28 Samsung Electronics Co., Ltd Method and apparatus for providing a preemptive task scheduling scheme in a real time operating system
US10394602B2 (en) * 2014-05-29 2019-08-27 Blackberry Limited System and method for coordinating process and memory management across domains
US20160055031A1 (en) * 2014-11-13 2016-02-25 Mediatek Inc. Dual-System Architecture With Fast Recover And Switching Of Operating System
CN104506563B (zh) * 2015-01-20 2018-09-07 宇龙计算机通信科技(深圳)有限公司 进程的访问控制方法、访问控制***和终端
JP6615726B2 (ja) * 2016-09-16 2019-12-04 株式会社東芝 情報処理装置、情報処理方法及びプログラム
CN106547628B (zh) * 2016-11-29 2020-05-01 北京元心科技有限公司 多***的资源释放方法及装置
US10725941B2 (en) 2018-06-30 2020-07-28 Western Digital Technologies, Inc. Multi-device storage system with hosted services on peer storage devices
US10877810B2 (en) * 2018-09-29 2020-12-29 Western Digital Technologies, Inc. Object storage system with metadata operation priority processing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04367037A (ja) * 1991-06-13 1992-12-18 Mitsubishi Electric Corp 計算機システム
JPH05108380A (ja) * 1991-10-21 1993-04-30 Mitsubishi Electric Corp データ処理システム
JPH07282013A (ja) * 1994-04-14 1995-10-27 Hitachi Ltd 分散処理システム
JPH1055284A (ja) * 1996-05-06 1998-02-24 Sun Microsyst Inc スレッドをスケジュールする方法及びそのシステム
WO1998012635A1 (en) * 1996-09-17 1998-03-26 Radisys Corporation Method and apparatus for encapsulating a protected-mode operating system within a real-time, protected-mode operating system

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4481583A (en) * 1981-10-30 1984-11-06 At&T Bell Laboratories Method for distributing resources in a time-shared system
US5392409A (en) * 1984-01-18 1995-02-21 Hitachi, Ltd. I/O execution method for a virtual machine system and system therefor
JPS62231339A (ja) * 1986-03-31 1987-10-09 Fuji Electric Co Ltd 2つのオペレ−テイングシステムの並行動作方法
EP0427067A3 (en) * 1989-11-08 1991-08-14 Siemens Aktiengesellschaft Method for the alternating operation of a computer with several operating systems
JPH0799501B2 (ja) * 1991-11-18 1995-10-25 インターナショナル・ビジネス・マシーンズ・コーポレイション 複数アプリケーションの同時実行装置
JPH05197577A (ja) * 1992-01-20 1993-08-06 Nec Corp 仮想計算機システムにおける仮想計算機実行プライオリティ制御方式
US5333319A (en) * 1992-03-02 1994-07-26 International Business Machines Corporation Virtual storage data processor with enhanced dispatching priority allocation of CPU resources
JPH064310A (ja) 1992-06-24 1994-01-14 Nec Software Ltd 複数オペレーティングシステム切換え方式
US5483647A (en) * 1992-12-17 1996-01-09 Bull Hn Information Systems Inc. System for switching between two different operating systems by invoking the server to determine physical conditions to initiate a physical connection transparent to the user
JP3349547B2 (ja) * 1993-05-10 2002-11-25 株式会社日立製作所 スケジューリングシステム
CA2173695A1 (en) * 1995-04-14 1996-10-15 Panagiotis Kougiouris Method and system for providing interoperability among processes written to execute on different operating systems
US6678712B1 (en) * 1996-01-19 2004-01-13 International Business Machines Corporation Method and system for executing a program under one of a plurality of mutually exclusive operating environments
US6658447B2 (en) * 1997-07-08 2003-12-02 Intel Corporation Priority based simultaneous multi-threading
FI108478B (fi) * 1998-01-21 2002-01-31 Nokia Corp Sulautettu jõrjestelmõ
US6157989A (en) * 1998-06-03 2000-12-05 Motorola, Inc. Dynamic bus arbitration priority and task switching based on shared memory fullness in a multi-processor system
JP3659062B2 (ja) * 1999-05-21 2005-06-15 株式会社日立製作所 計算機システム
US6715016B1 (en) * 2000-06-01 2004-03-30 Hitachi, Ltd. Multiple operating system control method
EP1298624A4 (en) * 2000-06-20 2004-10-13 Hitachi Ltd VEHICLE CONTROL DEVICE

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04367037A (ja) * 1991-06-13 1992-12-18 Mitsubishi Electric Corp 計算機システム
JPH05108380A (ja) * 1991-10-21 1993-04-30 Mitsubishi Electric Corp データ処理システム
JPH07282013A (ja) * 1994-04-14 1995-10-27 Hitachi Ltd 分散処理システム
JPH1055284A (ja) * 1996-05-06 1998-02-24 Sun Microsyst Inc スレッドをスケジュールする方法及びそのシステム
WO1998012635A1 (en) * 1996-09-17 1998-03-26 Radisys Corporation Method and apparatus for encapsulating a protected-mode operating system within a real-time, protected-mode operating system

Cited By (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004514987A (ja) * 2000-11-27 2004-05-20 エイアールエム リミテッド リターンステートをセーブするためのデータ処理装置および方法
US7844446B2 (en) 2002-09-17 2010-11-30 International Business Machines Corporation Method and system for multiprocessor emulation on a multiprocessor host system
US7496494B2 (en) 2002-09-17 2009-02-24 International Business Machines Corporation Method and system for multiprocessor emulation on a multiprocessor host system
US7707576B2 (en) 2004-02-17 2010-04-27 Fujitsu Limited Method of and apparatus for managing task, and computer product
JP2005327269A (ja) * 2004-04-30 2005-11-24 Microsoft Corp マルチメディアコンソール上のシステムアプリケーション
JP2006012122A (ja) * 2004-04-30 2006-01-12 Microsoft Corp マルチメディアコンソール内の並列システムアプリケーション
US8707317B2 (en) 2004-04-30 2014-04-22 Microsoft Corporation Reserving a fixed amount of hardware resources of a multimedia console for system application and controlling the unreserved resources by the multimedia application
JP2006018813A (ja) * 2004-06-30 2006-01-19 Microsoft Corp 1台の仮想マシン内の複数の仮想プロセッサを初期化するためのシステムおよび方法
US8271976B2 (en) 2004-06-30 2012-09-18 Microsoft Corporation Systems and methods for initializing multiple virtual processors within a single virtual machine
US8489862B2 (en) 2007-06-12 2013-07-16 Panasonic Corporation Multiprocessor control apparatus for controlling a plurality of processors sharing a memory and an internal bus and multiprocessor control method and multiprocessor control circuit for performing the same
JP2009175971A (ja) * 2008-01-23 2009-08-06 Hitachi Ltd 制御装置
JP2009181578A (ja) * 2008-01-31 2009-08-13 Internatl Business Mach Corp <Ibm> 複数の仮想マシンに対して動的にリソースを割当てる方法及び装置
JP5405320B2 (ja) * 2008-04-28 2014-02-05 パナソニック株式会社 仮想計算機制御装置、仮想計算機制御方法及び仮想計算機制御プログラム
WO2009133669A1 (ja) * 2008-04-28 2009-11-05 パナソニック株式会社 仮想計算機制御装置、仮想計算機制御方法及び仮想計算機制御プログラム
US8468533B2 (en) 2008-04-28 2013-06-18 Panasonic Corporation Virtual machine control device, method, and program wherein a switching task used to switch to the highest priority virtual machines is the highest priority task in the current virtual machine and the virtual machine that is the switching target
CN102047225B (zh) * 2008-06-02 2013-10-16 松下电器产业株式会社 优先级控制装置以及优先级控制方法
US8347296B2 (en) 2008-06-02 2013-01-01 Panasonic Corporation Priority control apparatus and priority control method
WO2009147802A1 (ja) * 2008-06-02 2009-12-10 パナソニック株式会社 優先度制御装置及び優先度制御方法
CN102047225A (zh) * 2008-06-02 2011-05-04 松下电器产业株式会社 优先级控制装置以及优先级控制方法
JP5323828B2 (ja) * 2008-06-24 2013-10-23 パナソニック株式会社 仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路
US8504752B2 (en) 2008-06-24 2013-08-06 Panasonic Corporation Virtual machine control device, virtual machine control program, and virtual machine control circuit for managing interrupts of plural virtual machines
WO2009157178A1 (ja) * 2008-06-24 2009-12-30 パナソニック株式会社 仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路
JP2015195053A (ja) * 2008-12-31 2015-11-05 インテル コーポレイション セキュアな埋め込みコンテナの実行のためのプロセッサの拡張
JP5770721B2 (ja) * 2010-05-24 2015-08-26 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 情報処理システム
WO2011148563A1 (ja) * 2010-05-24 2011-12-01 パナソニック株式会社 情報処理システム
US8719834B2 (en) 2010-05-24 2014-05-06 Panasonic Corporation Information processing system, method, program and integrated circuit for maintaining balance of processing loads with respect to real-time tasks
US9063868B2 (en) 2010-05-24 2015-06-23 Panasonic Intellectual Property Corporation Of America Virtual computer system, area management method, and program
CN102473118A (zh) * 2010-05-24 2012-05-23 松下电器产业株式会社 信息处理***
US9218287B2 (en) 2011-01-24 2015-12-22 Panasonic Intellectual Property Corporation Of America Virtual computer system, virtual computer control method, virtual computer control program, recording medium, and integrated circuit
JP2012185541A (ja) * 2011-03-03 2012-09-27 Denso Corp 車載装置、スケジューリングプログラム、及びスケジューリング方法
US8782639B2 (en) 2011-03-15 2014-07-15 Fujitsu, Limited Computer scheduling product and apparatus therefor
US9460270B2 (en) 2011-04-27 2016-10-04 Panasonic Intellectual Property Corporation Of America Generating child virtual machine to execute authorized application with reduced risk of malware attack
JPWO2013132648A1 (ja) * 2012-03-09 2015-07-30 パイオニア株式会社 情報処理装置、情報処理方法、情報処理プログラムが記録された記録媒体及び情報処理プログラム
WO2013132648A1 (ja) * 2012-03-09 2013-09-12 パイオニア株式会社 情報処理装置、情報処理方法、情報処理プログラムが記録された記録媒体及び情報処理プログラム
JP2017507417A (ja) * 2014-03-06 2017-03-16 インテル・コーポレーション マルチオペレーティングシステムデバイスのための動的な再割り当て
US9830178B2 (en) 2014-03-06 2017-11-28 Intel Corporation Dynamic reassignment for multi-operating system devices
KR20170118182A (ko) * 2015-02-24 2017-10-24 후아웨이 테크놀러지 컴퍼니 리미티드 다중 운영체제 장치, 통보 장치 및 그 방법
KR20190035971A (ko) * 2015-02-24 2019-04-03 후아웨이 테크놀러지 컴퍼니 리미티드 다중 운영체제 장치, 통보 장치 및 그 방법
KR101965377B1 (ko) 2015-02-24 2019-08-13 후아웨이 테크놀러지 컴퍼니 리미티드 다중 운영체제 장치, 통보 장치 및 그 방법
US10628171B2 (en) 2015-02-24 2020-04-21 Huawei Technologies Co., Ltd. Multi-operating system device, notification device and methods thereof
KR102147504B1 (ko) 2015-02-24 2020-08-28 후아웨이 테크놀러지 컴퍼니 리미티드 다중 운영체제 장치, 통보 장치 및 그 방법
US11321098B2 (en) 2015-02-24 2022-05-03 Huawei Technologies Co., Ltd. Multi-operating system device, notification device and methods thereof
JP2016129047A (ja) * 2016-02-24 2016-07-14 パイオニア株式会社 情報処理装置、情報処理方法、情報処理プログラムが記録された記録媒体及び情報処理プログラム
JP2019125242A (ja) * 2018-01-18 2019-07-25 株式会社デンソー スケジューリング装置
JP7010014B2 (ja) 2018-01-18 2022-01-26 株式会社デンソー スケジューリング装置

Also Published As

Publication number Publication date
JP4072271B2 (ja) 2008-04-09
ATE444523T1 (de) 2009-10-15
EP1031924B1 (en) 2009-09-30
TW490638B (en) 2002-06-11
CN1264078A (zh) 2000-08-23
EP1031924A3 (en) 2003-10-15
DE60043032D1 (de) 2009-11-12
US20050149933A1 (en) 2005-07-07
KR20000076691A (ko) 2000-12-26
KR100759280B1 (ko) 2007-09-17
EP1031924A2 (en) 2000-08-30
US7810096B2 (en) 2010-10-05

Similar Documents

Publication Publication Date Title
JP2000242512A (ja) 複数のオペレーティングシステムを実行する計算機
US6715016B1 (en) Multiple operating system control method
US9798595B2 (en) Transparent user mode scheduling on traditional threading systems
JP3776449B2 (ja) マルチタスク低電力制御装置
JP3659062B2 (ja) 計算機システム
US8505012B2 (en) System and method for scheduling threads requesting immediate CPU resource in the indexed time slot
JP5367816B2 (ja) オペレーションの保護モードスケジューリング
US11907762B2 (en) Resource conservation for containerized systems
US20080184233A1 (en) Abstracting a multithreaded processor core to a single threaded processor core
US20080104296A1 (en) Interrupt handling using simultaneous multi-threading
US8321874B2 (en) Intelligent context migration for user mode scheduling
EP1162536A1 (en) Multiple operating system control method
US20050050369A1 (en) Thread scheduling mechanisms for processor resource power management
EP1693743A2 (en) System, method and medium for using and/or providing operating system information to acquire a hybrid user/operating system lock
US20080134187A1 (en) Hardware scheduled smp architectures
WO2024007934A1 (zh) 中断处理方法、电子设备和存储介质
JP2001117786A (ja) プロセススケジューリング装置およびプロセススケジューリング方法
Hu et al. Real-time schedule algorithm with temporal and spatial isolation feature for mixed criticality system
JP2001216172A (ja) マルチos構成方法
JPH05108380A (ja) データ処理システム
JP3349547B2 (ja) スケジューリングシステム
KR100676671B1 (ko) 유저 쓰레드 관리 장치 및 그 방법
CN114691376A (zh) 一种线程执行方法、装置、电子设备和存储介质
JP2001014177A (ja) 非同期データ入出力処理方法およびそのプログラム記録媒体
JPH09311794A (ja) オペレーティングシステムにおけるカーネルサービス方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040427

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050425

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050707

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20051228

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060427

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071022

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080121

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120125

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130125

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees