JP2000330806A - 計算機システム - Google Patents
計算機システムInfo
- Publication number
- JP2000330806A JP2000330806A JP11140914A JP14091499A JP2000330806A JP 2000330806 A JP2000330806 A JP 2000330806A JP 11140914 A JP11140914 A JP 11140914A JP 14091499 A JP14091499 A JP 14091499A JP 2000330806 A JP2000330806 A JP 2000330806A
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- operating system
- input
- processing
- output
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Hardware Redundancy (AREA)
- Stored Programmes (AREA)
- Multi Processors (AREA)
Abstract
単一のプロセッサで動作させる計算機システムにおい
て、計算機に接続された周辺デバイスを該複数個のオペ
レーティングシステムから共有するあたり、各オペレー
ティングシステムの優れた特長を引き出し、かつシステ
ムコストを削減することを目的とする。 【解決手段】複数個のオペレーティングシステム11
6,117と、実行環境を切り替えるOSコンテクスト
切換127と、発生した割込みを各オペレーティングシ
ステムに振り分ける共通割込みハンドラ128とを有す
る計算機システムにおいて、共通割込みハンドラ128
は割込み要因毎に起動するオペレーティングシステムを
記憶する優先割込みテーブル128を参照し、割込み要
因に応じたオペレーティングシステムに切り替えるよう
にOSコンテクスト切換127に依頼すると共に、割込
みハンドラ122ないし123を起動する手段を有す
る。
Description
ィングシステムを単一のプロセッサで動作させる計算機
システムにおける周辺デバイスとのデータ入出力方法を
対象とし、特に、複数個のオペレーティングシステムが
同一の周辺デバイスを共有に使用するための制御方法に
関連する。
ングシステムが動作し、それが計算機のプロセッサ,メ
モリ、および2次記憶装置といった計算機資源を管理
し、計算機が効率よく動作できるように資源スケジュー
ルを実施している。ところで、オペレーティングシステ
ムには様々な種類がある。バッチ処理に優れるものや、
事務処理といったGUIに優れるもの、実時間処理に優
れているものなど様々である。これら複数の特徴を引き
出すため、複数あるオペレーティングシステムを1台の
計算機で同時に実行したいというニーズがある。例え
ば、大型計算機においては、実際の業務に伴うオンライ
ン処理を実行するオペレーティングシステムと、開発用
のオペレーティングシステムを1台の計算機で動作させ
たいという要求がある。あるいはGUIが整っているオ
ペレーティングシステムと実時間性に優れているオペレ
ーティングシステムを同時に稼働させたいという要求も
ある。
システムを動作させる機構としては、大型計算機で実現
されている仮想計算機方式(OSシリーズ第11巻,V
M,岡崎世雄著,共立出版株式会社)がある。仮想計算
機方式では、仮想計算制御プログラムが全ハードウェア
を占有して管理し、それを仮想化して仮想計算機を構成
する。仮想計算機を構成する制御部は、物理メモリ,入
出力機器装置,外部割り込み等を仮想化する。例えば、
分割された物理メモリは、仮想計算機に対してはあたか
も0番地から始まる物理メモリのように振る舞い、入出
力装置を識別する装置番号も同様に仮想化されている。
更に、磁気ディスクの記憶領域も分割して磁気ディスク
装置の仮想化まで実現している。
ングシステムのインタフェースを提供する技術としてマ
イクロカーネルがある。マイクロカーネルでは、マイク
ロカーネルの上にユーザに見せるオペレーティングシス
テム機能を提供するオペレーティングシステムサーバを
構築し、ユーザはそのサーバを経由して計算機資源を利
用する。オペレーティングシステム毎のサーバを用意す
れば、ユーザに様々のオペレーティングシステム環境を
提供することができる。
ションシステムでは、外部環境変化に対して即座に応答
するというリアルタイム性と、いかなる場合でもシステ
ムが停止しないという信頼性が重要視されている。この
ため、割込み応答性が高く、かつ、コンパクトでモジュ
ール構成を有するリアルタイム用オペレーティングシス
テム(リアルタイムOS)が用いられることが多い。し
かしながら、リアルタイムOSは、リアルタイム性・信
頼性を重要視する反面、人間とのインタフェースに優れ
ているとは言い難い。一方、一般のパソコン(PC)に
用いられている事務処理用オペレーティングシステム
(事務処理OS)は、GUIといった直接画面を操作す
る環境が準備され、対人間インタフェースに優れてい
る。このため、従来はリアルタイムOSを使用していた
分野にも事務処理OSのユーザインタフェースを使用し
たいという要求が高まっている。しかし、事務処理OS
は人間との対話を主な処理としているため、割込み応答
性よりも処理のスループットを重要視し、比較的長時間
割込み禁止状態のまま処理を実行することもある。ま
た、コンパクトな構成を有するリアルタイムOSに対
し、信頼性において匹敵するとは言い難い。
計算機(オペレーティングシステム)を並行して動作させ
る方式と同様に、組み込みシステムにおいて同一計算機
システム上で事務処理OSとリアルタイムOSとを動作
させ、必要に応じてこれらのオペレーティングシステム
を切り替えることができれば、優れたユーザインタフェ
ースとリアルタイム性・信頼性とを両立させることがで
きる。マイクロプロセッサの性能向上を考慮すれば、複
数のオペレーティングシステムを一つの計算機システム
上で動作させることは、大型計算機だけに許された技術
ではなくなってきている。
要があるが、組み込み機器では最低限シングルユーザに
対応できればよい。そこで、リアルタイムOSと事務処
理OSを一つの計算機システムで動作させるとき、それ
ぞれのオペレーティングシステムの重要性を考慮し、リ
アルタイムOSが実行すべき処理がある場合はリアルタ
イムOSを優先的に動作させ、リアルタイムOS上で実
行するタスクがなくなったとき事務処理OSを実行する
という最も単純なオペレーティングシステム切替え方式
が適用可能である。このようなオペレーティングシステ
ムの切替え方法では、周辺デバイスとの入出力におい
て、入出力装置毎に割込み要求を受けるオペレーティン
グシステムを静的に決定し、発生した割込み番号を判定
することでオペレーティングシステムを切り替える方法
が用いられる。例えば、前記手法を車載ナビゲーション
システムに適用したとき、位置決定に必要なセンサから
の割込みはリアルタイムOSの、人間とのインタフェー
スに用いるスイッチやディスプレイコントローラからの
割込みは事務処理OSの割込みハンドラを起動するよう
にオペレーティングシステムを切り替える。しかしなが
ら事務処理OSの信頼性は必ずしも高くないため、本適
用例では事務処理OSの処理が停止すると同時にユーザ
インタフェースも使用不可能になり、車載ナビゲーショ
ンシステム全体の信頼性をも低下させてしまう。前記課
題を解決するには、絶対に停止させたくない処理はリア
ルタイムOS側に、停止を許容する処理は事務処理OS
にそれぞれ分離すればよいが、例えばユーザインタフェ
ースのための入出力処理をリアルタイムOS側で処理し
てしまうと、ユーザインタフェースに優れた事務処理O
Sを導入した意味がなくなってしまう。よって、入出力
デバイスを複数のオペレーティングシステム、即ち事務
処理OSとリアルタイムOSの両方から使用できること
が必須となり、上記説明した割込み番号から入出力処理
を実行するオペレーティングシステムを静的に決定する
方法では不十分であり、実用に耐えないという課題を有
する。
ティングシステムを一つの計算機システム上で動作させ
るマルチオペレーティングシステム制御装置において、
計算機に備えられた入出力デバイスを複数のオペレーテ
ィングシステムで共有する仕組みを提供することにあ
る。
解決するため、第1の発明では、割込み要因毎に起動す
るオペレーティングシステムを記憶する優先割込みテー
ブルと、優先割込みテーブルを書き換える優先割込みテ
ーブル書き換え手段とを備え、OS切換手段は割込み要
因から優先割込みテーブルを参照し対応するオペレーテ
ィングシステムに切り替えると共に、該オペレーティン
グシステムが備える割込み処理手段を呼び出すことで計
算機に備えられた入出力デバイスを複数のオペレーティ
ングシステムで共有する。
システムから共有する周辺デバイスと、前記共有する周
辺デバイスとデータ入出力するデータ入出力サーバを該
一つのオペレーティングシステムに備え、前記オペレー
ティングシステム以外に備えられた前記共有する周辺デ
バイスとデータ入出力するデータ入出力クライアント
は、データ入出力サーバにデータ入出力を依頼し、デー
タ入出力サーバが周辺デバイスとデータ入出力した結果
を受信しデータ入出力処理することで計算機に備えられ
た入出力デバイスを複数のオペレーティングシステムで
共有する。
る。
構成を示す。通常、計算機システムは、プロセッサ10
0,メモリ101,入出力制御装置102,ディスプレ
イ104,スイッチ105,センサ106などから構成
される。プロセッサ100,メモリ101,入出力制御
装置102はプロセッサバス103によって接続され
る。プロセッサ100は複数個のオペレーティングシス
テムを動作させるためのマイクロプロセッサである。メ
モリ101は、オペレーティングシステム116,11
7,各オペレーティングシステム上で動作するタスクプ
ログラム110〜115,各オペレーティングシステム
のための入出力ドライバプログラム120,121,割
込みハンドラプログラム122,123,OS間制御機
能プログラム124を保持する。これらのプログラムは
プロセッサ100によって読み出されて実行される。
イスであるディスプレイ104,ユーザからの指示を受
けるスイッチ105,周囲環境の変化を測定するセンサ
106等を接続する。また、工場/プラント制御用、あ
るいは、組込み向け計算機システムを実現する場合、入
出力制御装置102にはネットワーク109が接続され
ることがある。ネットワーク109には、通信機器など
の入出力機器が接続される。なお、入出力制御装置10
2に接続される入出力装置104〜106のうち、いず
れかまたは全ては、システム構成によって省略されるこ
ともあり、さらに多様な入出力装置が接続されることも
ある。入出力制御装置102は、割込み信号線108に
よってプロセッサ100と接続され、入出力動作完了な
どを通知する。図1では説明のため割込み信号線108
とプロセッサバス103が別の装置であるように記載し
ているが、実際には、割込み信号線108はプロセッサ
バス103の一部である。プロセッサ100内部にはタ
イマ装置107が設けられており、一定周期毎に内部割
込みを発生させる。タイマ装置107からの割込みは、
オペレーティングシステムの計時などに使用される。
よって通知される外部割込みやタイマ装置107などか
らの内部割込みをマスクできる機能を装備するものとす
る。割込みマスクとは、プログラムが割込みマスクを解
除するまで、特定の割込みが入ることを遅延させる機能
である。一般に、割込みマスク機能には、下記の三種類
が存在する。
スクする。
それぞれマスクできるようにする。 (3)割込みレベルマスク:各割込みにレベルを設定
し、指定レベル以下の割込みをマスクする。
(1)(2)の組合せ、または(1)(3)の組合せの
いずれかを装備することが多い。後者の組合せを装備す
るプロセッサを採用する場合、対応する入出力装置の重
要性や最小応答時間に応じ割込みレベルを割り当てるこ
とになる。例えば、短い応答時間が要求されるネットワ
ーク109からの割込みを、ディスプレイ104,スイ
ッチ105および記憶装置106などからの割込みより
高いレベルに設定する。
オペレーティングシステム116,117が存在する場
合を説明する。オペレーティングシステム116,11
7は、各自に割り当てられたメモリ、及びプロセッサ資
源を用い、タスク110〜115を実行する。図1で
は、オペレーティングシステム数が2個,全タスク数が
6個の例を示しているが、これらの数値よりも多い、ま
たは、少ないオペレーティングシステム,タスクを実装
することも可能である。本実施例では、オペレーティン
グシステム数の動的な変更は想定しないが、各オペレー
ティングシステムが動的にタスク生成・削除を行うこと
は可能である。さらに本実施例では、オペレーティング
システム116が事務処理OS,オペレーティングシス
テム117がリアルタイムOSであると仮定するが、実際
に、各オペレーティングシステムがいかなる種類であっ
ても、本発明で述べる技術は適用可能である。タスク11
0〜112は事務処理OSで実行される事務処理タスク
であり、タスク113〜115はリアルタイムOSで実
行されるリアルタイムタスクである。さらに、リアルタ
イムOSでの応答時間を保証するため、事務処理OSよ
りリアルタイムOSの割込み優先順位が高いと仮定し以
下説明する。前記仮定では、リアルタイムOSのいずれ
かのタスクが実行状態の場合はリアルタイムOS116
がプロセッサ資源が使用し、すべてのタスクがアイドル
状態またはウェイト状態の場合は事務処理OSにコンテ
クストが切り替えプロセッサ資源が使用する。
117を一つのプロセッサ上で連携しながら動作させる
ため、OS間制御機能124を備える。OS間制御機能
124は、事務処理OSとリアルタイムOS間の両者から
アクセス可能な共有メモリ125,事務処理OSとリア
ルタイムOS間でメッセージ転送を行うOS間通信機能
126,事務処理OSとリアルタイムOS実行環境を切
り替えるOSコンテクスト切換127,発生した割込み
を各オペレーティングシステムに振り分ける共通割込み
ハンドラ128,割込み要求に対応するオペレーティン
グシステムや割込み開始アドレスを記憶する優先管理テ
ーブル129とを備える。
ステム間で高速なデータ交換を実現することを目的と
し、事務処理OSとリアルタイムOSの両者から読み書
きが可能である。ここで、データ競合を防止するためセ
マフォ機能を用い排他的に共有メモリをアクセスするこ
とが望ましい。OS間通信機能126は、各オペレーテ
ィングシステムに対応するメッセージキューを準備し、
各オペレーティングシステム間でメッセージを受け渡
す。共通割込みハンドラ128は、割込み要求が発生し
たとき最初に呼び出され、優先割込みテーブル129に
記憶された割込み番号毎のオペレーティングシステムを
判定し、対応する割込みハンドラ122,123を呼び
出す。OSコンテクスト切換127は、割込み要求やO
S間制御機能の呼び出しによりオペレーティングシステ
ムの切換が必要と判断されたときコンテクストを切り替
える。割込み管理テーブル129は、割込み番号毎に呼
び出される割込みハンドラが所属するオペレーティング
システム情報や、各オペレーティングシステム毎の割込
みハンドラの開始アドレス情報を保持する。従来の方法
では、割込み管理テーブル129をシステム起動時に静
的に決定していたため、システム動作中にその内容を書
き換えることはできなかった。本システムでは、システ
ム動作中でも割込み管理テーブル129を書き換える手
段を提供することで、一つの入出力装置を複数のオペレ
ーティングシステムが共用することを可能としたことを
特徴とする。
は、入出力装置との間でデータ入出力を処理する入出力
ドライバ120,121,入出力装置からの割込み要求
を受ける割込みハンドラ122,123を備える。割込
みハンドラ122,123は、共通割込みハンドラ12
8から呼び出され、ユーザが定義した割込み処理プログ
ラムを実行する。入出力ドライバ120,121は、各
タスクから入出力装置を制御するためのインタフェース
を提供し、入出力装置を読み書きすることでデータ入出
力したり、入出力装置を制御するといった機能を提供す
る。リスケジューラ118,119は、タスクの生成・
削除・停止・再開や、外部割込み・内部割込みに伴って
タスク切り替えを行わなければならない場合に起動され
る。リスケジューラは直前に実行していたタスクの実行
環境(プログラムカウンタ,ステータスレジスタ,汎用
レジスタなど)をタスク管理テーブルに格納し、新たに
実行すべきタスクを決定し、そのタスクの実行環境をタ
スク管理テーブルから取り出し各レジスタに設定するこ
とで、選択したタスクを実行する。
00の内部構成例を示す。キャッシュメモリ130はメ
モリ101上のデータまたは命令を一時的に格納するバ
ッファ記憶装置である。CPU131は演算回路であ
り、メモリ101若しくはキャッシュメモリ130上に
存在する命令を順次読み出して実行する。命令実行に際
して、演算結果を一時的に保持するための汎用レジスタ
132、実行命令アドレスを保持するプログラムカウン
タ133,実行状態を保持するステータスレジスタ13
4を用いる。キャッシュメモリ130,CPU131,
汎用レジスタ132,プログラムカウンタ133、ステータ
スレジスタ134は、互いに、データ転送を行うデータ
バス135、アドレス指定を行うアドレスバス136に
よって接続されている。
割込みコントローラ137に接続される。割込みコント
ローラ137は、CPU130に対して割込み状態信号
138を生成する役割を有する。割込み状態信号138
は、プロセッサ100に対して現在如何なる種類の割込
みが発生しているかを示す信号線である。通常、ステー
タスレジスタ134は現在の割込みマスクに関する情報
を有しており、割込み状態信号138で指定される割込
みを受け付けるか否かを決定する。割込みを受け付ける
場合、割込みコントローラ137は、プログラムカウン
タ133,ステータスレジスタ134などの値を書き換
え、対応する割込み処理プログラムを実行させる。
に示す。ここでは、プロセッサ100が全割込みマスク機
能と割込みレベルマスク機能とを装備している場合の例
を示す。図3の例では、ステータスレジスタ134が割
込みブロックビット140と割込みマスクレベルフィー
ルド141を有する。割込みブロックビット140がO
Nである場合、プロセッサ100に対する全ての割込み
がマスクされる。割込みマスクレベルフィールド141
は現在の割込みマスクレベル値を示し、これ以下の割込
みレベルは受け付けられない。図3の例では、割込みマ
スクレベルフィールド141は4ビット長である。この
ため、合計16種類のマスクレベルを指定可能であるが
(通常、割込みレベル0は「割込みが発生していない」
ことを意味し、割込みマスクレベルを0とすることは
「割込みマスクを行わない」ことを意味するため、実質
的には15種類となる)、割込みマスクレベルフィール
ド141のビット数を変更することにより、受理できる
割込みレベルの種類を増減させることができる。
ク機能と個別割込みマスク機能とを装備している場合の
ステータスレジスタ134である。この例では、ステー
タスレジスタ134は実際には2つのレジスタ(実行状
態レジスタ142と割込みマスクレジスタ143)から
構成される。図3と同様、実行状態レジスタ142内に
割込みブロックビット140が設けられている。割込み
マスクレジスタ143内の割込みマスクビット144〜
147はそれぞれ別々の割込みに対応しており、該割込
みマスクビットのいずれかをONとした場合、対応する
割込みが受け付けられなくなる。図3に示すステータス
レジスタの例は、図4のステータスレジスタの特殊例で
ある。例えば、割込みマスクビット144のみONとな
っている状態をレベル1とし、割込みマスクビット14
4,145の二つがONとなっている状態をレベル2,
割込みマスクビット144〜146の三つがONとなっ
ている状態をレベル3,…、のように対応させることが
できる。このため、以降、ステータスレジスタ134は
図4に示す構成を有するとして説明する。
ると、ハードウェアによって自動的に割込みブロックビ
ット140がONに書き換えられる。必要に応じて、割
込み処理プログラムが割込みブロックビット140をO
FFに書き換えて割込み受付けを許可することができ
る。また、オペレーティングシステムおよびタスクが、
一時的に割込みブロックビット140や割込みマスクレ
ジスタ143の内容を書き換え、特定割込みの受付けを
待たせることもできる。割込みマスク機能は、排他制御
の実現や、割込み処理実行中に再び同一割込みが発生す
ることを避けるために用いられる。
通割込みハンドラ128,OSコンテクスト切替12
7,割込み管理テーブル129の詳細を示す。
発生時のレジスタなどの保存,一時変数の保持を行うた
めの領域として、それぞれ、割込みスタック151,1
53を所有する。割込み発生時には、割込み発生直前の
レジスタ値を保存し、割込み処理終了後にはこのレジス
タ値を元に復帰するため、割込みスタック151,15
3を備える。使用するプロセッサ100の種類によって
は、割込み発生時に自動的にレジスタが切り替わり、か
つ、割込み処理終了後に切替え前のレジスタに戻す機能
を備えているものもある。しかしながら、多重割込みが
可能なシステムを考慮した場合には、このようなハード
ウェアを使用していても、割込みスタックが必要となる
(割込み処理中により高い緊急性を有する割込みが発生
した場合、新たに発生した割込み処理を優先的に実行
し、次いで、元の割込み処理に戻る必要がある)。割込
みハンドラ122,123は、割込みスタック151,
153において、どの領域まで使用したかを示すための
ポインタとして、割込みスタックポインタ150,15
2を所有する。割込みハンドラ122,123は、割込
みスタック、および、割込みスタックポインタを用いて
割込み発生前の実行環境(レジスタなど)を保存し、必
要な割込み処理を実行する。割込み処理終了後、割込み
発生前の実行環境を復帰して元々動作していたプログラ
ムの実行を継続するように動作する。
込みを前記割込みハンドラ122,123に対して振り
分ける役割を有する。このため、共通割込みハンドラ1
28は、現在実行しているオペレーティングシステムが
事務処理OS116であるかリアルタイムOS117で
あるかを記憶する領域として、実行OS記憶変数154を
所有する。例えば、図5に示した時点で事務処理OSが
処理を実行しているものと仮定すると、この場合、実行
OS記憶変数154には、「事務処理OS」が記憶され
ている。勿論、実行OS記憶変数154が文字列「事務
処理OS」を記憶することは非常に非効率的であるた
め、例えば、事務処理OSであれば0,リアルタイムO
Sであれば1といった整数形式で記憶するとよい。
込みがいずれのオペレーティングシステムの割込みハン
ドラを起動するかを示す優先割込みテーブル156、お
よび各オペレーティングシステムが備える割込みハンド
ラの開始アドレスを示す割込みアドレステーブル155
を有する。優先割込みテーブル156は、例えば図7に
示したような個々の割込みがどちらのオペレーティング
システムで処理されるべきかを示す対応表で構成され、
フラグ1が立っているオペレーティングシステムが備え
る割込みハンドラに処理を依頼する。さらに、複数のオ
ペレーティングシステムで共有する入出力装置からの割
込みにはフラグ1を、共有しない割込みにはフラグ0を
記憶する。本実施例では、16種類の割込み要因が存在
すると仮定すると、割込み対応テーブル156も16個
のエントリ(IRQ#0〜IRQ#15)の構成にな
る。なお、本説明では優先ドライバテーブル160にフ
ラグを記録する方法を想定したが、何らかの識別可能な
情報を記録すればいかなる方法でも実現可能である。割
込みアドレステーブル155は、例えば図6に示すよう
な各々のオペレーティングシステムが備える割込みハン
ドラの開始アドレスを保持する表である。
ペレーティングシステムから共用するという目的を達成
するため、共通割込みハンドラ128が受けた割込み要
求から起動するオペレーティングシステムを動的に変更
する仕組みを提供する。優先割込みテーブル156の内
容は、ユーザオペレーションや入出力機器の使用状況に
よって更新され、共通割込みハンドラ128は優先割込
みテーブル156の内容に従って割込みハンドラを呼び
出すように動作する。さらに詳細を説明すると、共通割
込みハンドラ128は、実行OS記憶変数154を参照
し、現在実行しているオペレーティングシステムの種類
を判定する。オペレーティングシステムの種類が優先割
込みテーブル156から得られた振り分け先オペレーテ
ィングシステムに一致しなければ、OSコンテクスト切
替えモジュール127にオペレーティングシステム切替
えを依頼する。前記オペレーティングシステム切替えが
終了した場合、ないしオペレーティングシステムが一致
し切り替えが不要な場合は、該当するオペレーティング
システムの割込みハンドラに処理を依頼する。なお、実
行OS記憶変数154はOSコンテクスト切替モジュー
ル127からも参照される。このように、OS間制御機
能プログラム内の各モジュールが有する内部構造は、個
々のモジュールによって占有されるものとは限らず、各
モジュールが必要に応じて共用できるものとする。
は、OS間制御機能の呼び出しや割込み発生の結果、オ
ペレーティングシステムを切り替えなければならない場
合に起動される。二つのオペレーティングシステムを切
り替えるため、これらの実行環境(すなわち、レジスタ
値)を保存しておくための領域を所有する。図中では、
事務処理OSの実行環境を保存するための領域として、
事務処理OS用保存コンテクスト157,リアルタイム
OSの実行環境を保存するための領域として、リアルタ
イムOS用保存コンテクスト158を用意する。OSコ
ンテクスト切替モジュール127は、コンテクストを切
り替える際に現在実行しているオペレーティングシステ
ムに対応する保存コンテクストに実行環境を保存し、次
に、もう一方の保存コンテクストから実行環境を読み出
して、プロセッサ100のレジスタに設定する。これに
より、オペレーティングシステムの切替えを実施でき
る。以降、図5で示したモジュールのうち、OSコンテ
クスト切替モジュール127,共通割込みハンドラ12
8,割込みハンドラ122の処理フローの説明を行う。
割込みハンドラ123に関しては、割込みハンドラ12
2と同様の処理フローを有するため、説明を省略する。
127の処理フローである。OSコンテクスト切替モジ
ュール127は、実行するオペレーティングシステムを
切り替えなければならない場合にのみ呼び出され、切替
えが必要か否かのチェックは呼出し前に行われている。
従って、実行OS記憶変数154を参照し、どちらのオ
ペレーティングシステムへ切り替えなければならないか
をチェックする(処理160)。ここで、事務処理OS
116からリアルタイムOS117への切替えを行う場
合、事務処理OS用保存コンテクスト157内に使用中
レジスタの値を退避する(処理161)。次に、リアル
タイムOS用保存コンテクスト158から実行環境を復
帰して、レジスタに設定することにより(処理16
2)、以前退避した状態からリアルタイムOS117を
再実行させることができる。リアルタイムOS117か
ら事務処理OS116への切替えを行う場合、逆に、リ
アルタイムOS用保存コンテクスト158に使用中レジ
スタの値を退避し(処理163)、次に、事務処理OS用
保存コンテクスト157からレジスタを復帰する(処理
164)。いずれの場合においても、最後に、切替え後
のオペレーティングシステムの種類を実行OS記憶変数
154に書き込む(処理165)。
フローを示している。一般に、単一のオペレーティング
システムによって制御される計算機システムでは、一
旦、全ての割込みを割込みハンドラと呼ばれるモジュー
ルが処理し、次いで、各プログラムに振り分ける。しか
しながら、本実施例で説明するような複数個のオペレー
ティングシステムを動作させる計算機システムでは、こ
の更に前に、共通割込みハンドラが全ての割込みを受付
け、これを対応するオペレーティングシステムの割込み
ハンドラに振り分ける形となる。各オペレーティングシ
ステムに割込みを振り分けるに当たって、割込み発生時
に、割込み対象とは別のオペレーティングシステムが処
理を実行していることもある。この場合、割込みに対応
するオペレーティングシステムに切り替える必要があ
り、共通割込みハンドラはこのような役割も有すること
になる。
後、第一に、実行OS記憶変数154の内容を取り出し
て、現在実行中のオペレーティングシステムが事務処理
OS116であるかリアルタイムOS117であるかをチェ
ックする(処理170)。次に、優先割込みテーブル15
6を参照し、発生した割込み要求がいずれのオペレーテ
ィングシステムの割込みハンドラを起動すべきかを入手
する(処理171)。図6に示す優先割込みテーブル15
6に記載された値を用いた場合を想定すると、割込みI
RQ#0が発生した場合にはリアルタイムOS117,
割込みIRQ#1が発生した場合には事務処理OS11
6,…、割込みIRQ#15が発生した場合にはリアル
タイムOS117、というように対応するオペレーティ
ングシステムを入手することができる。次に、得られた
割込み対象オペレーティングシステムが実行中オペレー
ティングシステムに等しいか否かをチェックする(処理
172)。割込み要求が現在実行中のオペレーティングシス
テムに対するものでなければ、一旦、オペレーティング
システムの切替えを行わなければならない。この切替え
処理は、OSコンテクスト切替モジュール127に依頼
することによって行う(処理173)。次に割込み対象オ
ペレーティングシステムが事務処理OS116であるか
リアルタイムOS117であるかをチェックし(処理1
74)、対象が事務処理OS116であれば、割込みア
ドレステーブル155を参照し事務処理OSの割込みハ
ンドラ122を起動する(処理175)。リアルタイムO
S117への割込みが発生していれば、同様に割込みア
ドレステーブル155を参照しリアルタイムOSの割込
みハンドラ123を起動することになる(処理17
6)。一般に、割込みハンドラ122,123は、割込
み処理でタスク切替えを行わなければならないとき、リ
スケジューラ118,119を呼び出し、共通割込みハ
ンドラ128に制御を戻すことはない。しかし、タスク
切替えが発生しない場合、そのまま割込みハンドラの処
理を終了する。このとき、割込みハンドラ122,12
3は、共通割込みハンドラへ制御を戻し(図10で後
述)、共通割込みハンドラは処理177から動作を再開
する。処理177は、割込み発生時にオペレーティング
システムを切り替えたかどうかをチェックする処理であ
る。処理173によってオペレーティングシステムを切
り替えた場合、ここで再び、オペレーティングシステム
を切り替え、元の実行環境に戻す必要がある。このた
め、もう一度OSコンテクスト切替モジュール127に
依頼して、切替え処理を実行させる(処理178)。
び出される事務処理OSの割込みハンドラ122の処理
フローを示したものである。第一に、使用中レジスタを
割込みスタック151に退避し(処理180)、割込み
処理を実行する(処理181)。ここで、オペレーティン
グシステムがリスケジューリング中か否か(すなわち、
リスケジューラ118の処理実行中か否か)をチェック
する(処理182)。リスケジューリング中とは、次に
実行すべきタスクを選択している最中であり、実際には
タスクを実行していないことを意味する。したがって、
オペレーティングシステムの処理を単純化させるなら
ば、この場合、再びリスケジューリングを最初からやり
直せば良いことになる。すなわち、リスケジューリング
中であると判定した場合、割込みスタックの退避レジス
タを破棄し(処理187)、リスケジューラ118を最
初から起動する(処理188)。なお、リスケジューリ
ング中に割込みが発生しても、実行すべきタスクを新た
に選択し直す必要がない場合もある。本方式は、この状
況でもリスケジューリングを最初から行うことになり、
効率的でないこともある。このため、リスケジューリン
グ中に発生し、リスケジューラ118の実行に影響を与
える処理(例えば、タスク起動・終了など)を待ち行列
などに登録しておく方法を用いることもできる。この場
合、リスケジューラ118の終了前で該待ち行列に登録
しておいた処理を纏めて実行する。この方式を採用する
と、割込み発生のたびに途中まで実行していたリスケジ
ューリングをやり直す必要が無い。しかしながら、当該
待ち行列に登録していた処理を纏めて実行した後、これ
によってリスケジューリングが再び必要となるか否かを
再チェックしなければならない。なお、本実施例では、
単純化のため、前者の方式で説明を行う。しかし、後者
の方式を用いる場合、リスケジューリング中か否かを示
すフラグ、ないし処理待ち行列を用意すればよい。オペ
レーティングシステムが提供するシステムコールなどに
おいて、リスケジューラ118の実行に影響を与える処
理を、リスケジューリング中であれば、該待ち行列に登
録する。更に、リスケジューラ118の処理フロー中
に、該待ち行列に登録された処理を一括して実行するモ
ジュールを挿入する。
グ中でないと判定した場合、当該オペレーティングシス
テムはその時点で何らかのタスクを実行している。この
ため、第一に、タスク切替えが必要か否かを判定する
(処理183)。タスク切替えが必要なければ(現実行
タスクが最高優先順位であり、かつ、実行可能であれ
ば)、このまま、割込みハンドラ122の処理を終了す
る。このため、割込みスタック151上に退避しておい
たレジスタ値を復帰し(処理184)、共通割込みハン
ドラへ制御を戻す(処理185)。タスク切替えが必要
であると判定した場合、割込みスタック151上に退避
したレジスタの値をタスク管理テーブルにコピーし(処
理186)、割込みスタック上の退避レジスタを破棄す
る(処理187)。この後、リスケジューラ118を起
動する(処理188)。なお、プロセッサ100に、メ
モリ101上のデータの参照を行うと共に割込みスタッ
クポインタ150の値を増減できる機能が備わっていれ
ば、処理186と処理187を纏めて実行することがで
きる。
優先割込みテーブル156を参照し、動作させるオペレ
ーティングシステムを決定した後、割込みハンドラを起
動することで、入出力装置を複数のオペレーティングシ
ステムで共用する方法を説明したが、入出力装置によっ
ては割込み番号から一意に動作させるオペレーティング
システムを決定できない場合も発生する。例えば図11
に示す車載ナビゲーションシステムの入出力パネルに
は、ユーザが指示を入力するためのスイッチ105と、結
果を表示するディスプレイ104とを備える。スイッチ
105は、それぞれのリアルタイムOS117に備えら
れたタスクのみが使用するリアルタイムOS専用スイッ
チ190,事務処理専用スイッチ191,双方のオペレ
ーティングシステムに備えられたタスクから共用可能な
共用スイッチ192を備えることが望ましい。このよう
に、オペレーティングシステム毎に専用スイッチを設け
ることで、頻繁に使用する機能を固定のスイッチに割り
当てることが可能になり、操作性が向上するという特徴
が得られる。さらに固定のスイッチに機能を割り当てる
ことで、ボタンに機能名称を表示可能になり識別性が向
上する。しかし、これらスイッチ毎に異なる割込み番号
を付与することは、割込み信号線数の制約やハードウェ
アの簡略化の観点より不利である。一方、スイッチに同
一の割込み番号を付与すると、スイッチが押下されたと
きいずれのオペレーティングシステムが備える割込みハ
ンドラを起動すべきか判定できない。この問題を解決す
るため、OS間制御機能124に備えられた共有メモリ
125に、スイッチテーブル200を設ける。スイッチ
テーブルには、各スイッチ毎にいずれのオペレーティン
グシステムで使用するスイッチかの情報を記憶する。図
12では、スイッチテーブルには「リアルタイムO
S」,「事務処理OS」,「共用」が記憶される。勿
論、テーブルに文字列を記憶することは非常に非効率的
であるため、例えばリアルタイムOSであれば0,事務
処理OSであれば1,共用であれば2といった正数形式
で情報を記憶するとよい。
複数のオペレーティングシステムで入出力装置を共有す
る共通割込みハンドラ128の処理フローを図13を用
い説明する。なお、ここで説明する処理はスイッチのみ
ならず、割込みの内容を判断することで起動するオペレ
ーティングシステムを判定することが必要な他の入出力
装置に適用することも可能である。
後、実行OS記憶変数154の内容を参照し、現在実行
中のオペレーティングシステムが事務処理OS116で
あるかリアルタイムOS117であるかをチェックする
(処理210)。次に、優先割込みテーブル156を参
照し、共有フラグが立っていない場合は、優先割込みテ
ーブル156を参照し、発生した割込みがいずれのオペ
レーティングシステムに対応しているかを入手する(処
理212)。共有フラグが立っている場合は、入出力装
置にアクセスし割込み内容を判定することで割込み対象
オペレーティングシステムを判定する(処理213)。
ここでは、割込み内容とスイッチテーブル200を比較
し、リアルタイムOS専用スイッチが押されたと判定し
た場合はリアルタイムOS117を、事務処理OS専用
スイッチが押されたと判定した場合は事務処理OS11
6を割込み対象OSとしてそれぞれ記憶する。また共用
スイッチが押されたと判定した場合は、優先割込みテー
ブル156を参照し、発生した割込みがいずれのオペレ
ーティングシステムに対応しているかを入手する。ここ
で図7の優先割込みテーブル156と、図12のスイッ
チテーブル200に記憶された値を用い処理した場合を
想定すると、スイッチ割込みにIRQ#2が割り当てら
れていれば、スイッチ#0が入力された場合はリアルタ
イムOS、スイッチ#2が入力された場合は事務処理O
S、スイッチ#3が入力された場合は共用なので再度優
先割込みテーブル156を参照しリアルタイムOSとい
うように対応する割込み対象オペレーティングシステム
を入手する。
ムが実行中オペレーティングシステムに等しいか否かを
チェックする(処理214)。発生した割込みが現在実
行中のオペレーティングシステムに対するものでなけれ
ば、一旦、オペレーティングシステムの切替えを行わな
ければならない。この切替え処理は、OSコンテクスト
切替モジュール127に依頼することによって行う(処
理215)。次に割込み対象オペレーティングシステム
が事務処理OS116であるかリアルタイムOS117
であるかをチェックし(処理216)、対象が事務処理
OS116であれば、割込みアドレステーブル155を
参照し事務処理OSの割込みハンドラ122を起動する
(処理217)。リアルタイムOS117への割込みが
発生していれば、同様に割込みアドレステーブル155
を参照しリアルタイムOSの割込みハンドラ123を起
動することになる(処理218)。一般に、割込みハン
ドラ122,123は、割込み処理によってタスク切替
えを行わなければならないとき、リスケジューラ11
8,119を呼び出し、共通割込みハンドラ128に制
御を戻すことはない。しかし、タスク切替えが発生しな
い場合、そのまま割込みハンドラの処理を終了する。こ
のとき、割込みハンドラ122,123は、共通割込み
ハンドラ128へ制御を戻し、共通割込みハンドラ12
8は処理219から動作を再開する。処理219は、割込
み発生時にオペレーティングシステムを切り替えたかど
うかをチェックする処理である。処理215によってオ
ペレーティングシステムを切り替えた場合、ここで再
び、オペレーティングシステムを切り替え、元の実行環
境に戻す必要がある。このため、もう一度OSコンテク
スト切替モジュール127に依頼して、切替え処理を実
行させる(処理220)。以上、OS間制御機能124
に備えられた共通割込みハンドラから割込み管理テーブ
ル129に記憶された優先割込みテーブル156を参照
し、複数のオペレーティングシステムを1つの計算機で
動作させるシステムにおいて入出力装置を共有する方法
を説明したが、前記説明した方法で全てのケースに対応
することはできない。例えば、グラフィックスアクセラ
レータやシリアルコミュニケーションといった入出力装
置では、入出力ドライバから動作条件や各種動作パラメ
ータを設定し、ハードウェア内部のレジスタで前記パラ
メータや動作状態を保持する。このような入出力装置に
対し単純に前記処理を適用すると、各々のオペレーティ
ングシステム内の入出力ドライバ、及び割込みハンドラ
は、オペレーティングシステムが切り替わったことを認
識することができないため、以前のオペレーティングシ
ステムの入出力ドライバが設定した状態から処理を継続
しようとする。しかし、設定しようとするパラメータ
は、自オペレーティングシステムの入出力ドライバが最
後に設定した値から継続したときのみ正常に動作し、オ
ペレーティングシステムが切り替えられる前に何らかの
パラメータが入出力装置に書き込まれていれば希望に沿
った動作をしないのは明確である。
14に示すように各々のオペレーティングシステムに備
えられた入出力ドライバ120,121、及び割込みハ
ンドラ122,123といった入出力処理にクライアン
ト−サーバモデルを適用したことを特徴とする。即ち、
複数のオペレーティングシステムの入出力処理の一つで
サーバ側入出処理222を実行し、その他のオペレーテ
ィングシステムの入出力処理でクライアント側入出力処
理221を実行する。サーバ側入出力処理222は、複数
のオペレーティングシステムで共有する入出力装置22
6を管理するように動作し、入出力ドライバ121から
入出力装置226へのデータ入出力225を実行したり、
入出力装置226からの割込み要求を割込みハンドラ1
23で受けるように動作する。さらに、クライアント側
入出力処理221からの依頼通知223を受け、その内
容を判断し入出力装置226とデータ入出力225し、
その結果を結果通知224としてクライアント側入出力
装置221に返信するように動作する。一方、クライア
ント側入出力処理221は、入出力装置226へのデー
タ入出力をサーバ側入出力装置222に依頼通知223
を送信し、返信された結果通知224を用い入出力処理
を実行する。従って、クライアント側入出力処理221
から入出力装置226のハードウェアを直接制御するこ
とはなく、常にサーバ側入出力装置が入出力装置を管理
するため、動作状態に矛盾は生じない。
位の高いオペレーティングシステムに設定することが望
ましい。本実施例では事務処理OSよりリアルタイムO
Sの優先順位が高いと仮定しているため、サーバ側入出
力処理222をリアルタイムOSに備える。優先順位の
高いオペレーティングシステムにサーバ側入出力処理2
22を備えることで、割込み要求といった処理がマスク
されることを防止できる。従って、割込み要求発生での
応答時間が不当に遅くなることを防ぎ、データの取りこ
ぼしを無くすことができるという特徴が得られる。
共通割込みハンドラ128,割込みハンドラ122,1
23の処理フローの説明を行う。
を入出力処理に適用したとき、共通割込みハンドラ12
8の動作フローを図15を用い説明する。なお、基本的
なシステム構成は図1、及び図5と同様であり、さらに
優先割込みテーブル156では、複数のオペレーティン
グシステムで共有する入出力装置の割込み番号には共有
フラグ1が、特定のオペレーティングシステムが使用す
る入出力装置の割込み番号には0がそれぞれ記憶されて
いるものとする。さらに、図14に示したように、サー
バ側入出力処理222をリアルタイムOS117に、ク
ライアント側入出力処理を事務処理OSにそれぞれ備え
ると仮定する。
後、第一に、実行OS記憶変数154の内容を取り出し
て、現在実行中のオペレーティングシステムが事務処理
OS116であるかリアルタイムOS117であるかをチェ
ックする(処理230)。次に、優先割込みテーブル1
56を参照し(処理231)、共有フラグが立っていな
い場合は優先割込みテーブル156を参照し、発生した
割込みがいずれのオペレーティングシステムに対応して
いるかを入手する(処理232)。共有フラグ1が立っ
ている場合は、リアルタイムOSを割込み対象オペレー
ティングシステムと判定する(処理233)。
ムが実行中オペレーティングシステムに等しいか否かを
チェックする(処理234)。発生した割込みが現在実
行中のオペレーティングシステムに対するものでなけれ
ば、一旦、オペレーティングシステムの切替えを行わな
ければならない。この切替え処理は、OSコンテクスト
切替モジュール127に依頼することによって行う(処
理235)。次に割込み対象オペレーティングシステム
が事務処理OS116であるかリアルタイムOS117
であるかをチェックし(処理236)、対象が事務処理
OS116であれば、割込みアドレステーブル155を
参照し事務処理OSの割込みハンドラ122を起動する
(処理237)。リアルタイムOS117への割込みが
発生していれば、同様に割込みアドレステーブル155
を参照しリアルタイムOSの割込みハンドラ123を起
動することになる(処理238)。一般に、割込みハン
ドラ122,123は、割込み処理によってタスク切替
えを行わなければならないとき、リスケジューラ11
8,119を呼び出し、共通割込みハンドラ128に制
御を戻すことはない。しかし、タスク切替えが発生しな
い場合、そのまま割込みハンドラの処理を終了する。こ
のとき、割込みハンドラ122,123は、共通割込み
ハンドラへ制御を戻し、共通割込みハンドラは処理23
9から動作を再開する。処理239は、割込み発生時に
オペレーティングシステムを切り替えたかどうかをチェ
ックする処理である。処理235によってオペレーティ
ングシステムを切り替えた場合、ここで再び、オペレー
ティングシステムを切り替え、元の実行環境に戻す必要
がある。このため、もう一度OSコンテクスト切替モジ
ュール127に依頼して、切替え処理を実行させる(処
理240)。
び出されるサーバ側入出力装置222の一部であるリアル
タイムOSの割込みハンドラ123の処理フローを示し
たものである。
153に退避し(処理250)、優先先割込みテーブル
156を参照することで割込み要求した入出力装置が複
数のオペレーティングシステムから共有されているか判
定する(処理251)。共有していない場合は、リアル
タイムOSに対する割込み要求であり、対応する割込み
処理を実行する(処理253)。共有している場合は、
再度優先先割込みテーブル156を参照し、発生した割
込み要求がいずれのオペレーティングシステムに対応し
ているかを判定する(処理252)。リアルタイムOS
側のフラグが立っている場合、ないし共有フラグが立っ
ていない場合は、リアルタイムOS割込みに対する割込
み処理を実行する(処理253)。事務処理OS割込み
側のフラグが立っている場合は、事務処理OS割込みに
対する割込み処理を実施する(処理254)。ここで、
事務処理OS割込みにおける割込み処理254は、割込
みが発生したことをクライアント側の割込みハンドラ1
22に通知するため、事務処理OS116へのソフトウ
ェア割込みを生成する。さらに必要があれば前記ソフト
ウェア割込み処理で入手した情報を、共有メモリ125
に書き込む。なお生成するソフトウェア割込みは、該実
行中の割込み処理より優先順位を低くする必要がある。
事務処理OS割込みに対する割込み処理実行では、何ら
リアルタイムOSに影響を与えないためタスク切替判定
255は必要としないため、このまま割込みハンドラ1
23の処理を終了する。このため、割込みスタック15
3上に退避しておいたレジスタ値を復帰し(処理25
9)、共通割込みハンドラへ制御を戻す(処理26
0)。なお、処理255を省くのは処理高速化のためで
あり、処理255を実行するように動作しても何ら問題
はない。
込み処理実行後(処理253)、タスク切替えが必要か
否かを判定する(処理255)。タスク切替えが必要な
ければ、割込みハンドラ123の処理を終了する。この
ため、割込みスタック151上に退避しておいたレジス
タ値を復帰し(処理259)、共通割込みハンドラへ制
御を戻す(処理260)。タスク切替えが必要であると
判定した場合、割込みスタック151上に退避したレジ
スタの値をタスク管理テーブルにコピーし(処理25
6)、割込みスタック上の退避レジスタを破棄する(処
理257)。この後、リスケジューラ119を起動する
(処理258)。なお、プロセッサ100に、メモリ1
01上データ参照と同時に割込みスタックポインタ15
2の値を増減できる機能が備わっていれば、処理256
と処理257を纏めて実行することができる。
フトウェア割込みにより起動される事務処理OSの割込
みハンドラ122は、その大部分を図10で説明した動
作フローと同内容で処理を実行する。なお、一部動作が
異なるのが処理181に示した割込みに対応する割込み
処理の実行である。本動作例では、図16の処理254に
おいて事務処理OS割込みに対する割込み処理を実行
し、ここで入手した情報は、共有メモリ125に書き込
まれているものとする。従って、割込みハンドラ122
内の処理181は共有メモリ125に記録された前記情
報を読み出し、割込みに対応する処理を実行するように
動作することで、直接入出力装置をアクセスすることな
く割込み処理が実現される。
ト−サーバモデルを適用し複数のオペレーティングシス
テムで入出力装置を共用する場合においても、図11〜
図13の説明同様、割込みの内容を診断しないといずれ
のオペレーティングシステムの割込み処理を実行してよ
いか判断できないケースが発生する。本ケースでのリア
ルタイムOS117に備えられた割込みハンドラ123
の処理フローを図17を用い説明する。なお、割込み内
容を判定するためのテーブルは前記説明同様にスイッチ
テーブル200を用いた場合を想定するが、ここで説明
する処理はスイッチのみならず、他の入出力装置に適用
することも可能である。
153に退避し(処理270)、優先先割込みテーブル
156を参照することで割込み要求した入出力装置が複
数のオペレーティングシステムから共有されているか判
定する(処理271)。共有していない場合は、リアル
タイムOSに対する割込み要求であり、対応する割込み
処理を実行する(処理274)。共有フラグが立ってい
る場合は、割込み内容を判定することで割込み対象オペ
レーティングシステムを判定する(処理272)。割込み
内容とスイッチテーブル200を比較し、リアルタイム
OS専用スイッチが押されたと判定した場合はリアルタ
イムOS117を、事務処理OS専用スイッチが押され
たと判定した場合は事務処理OS116を割込み対象O
Sとしてそれぞれ記憶する。また共用スイッチが押され
たと判定した場合は、優先割込みテーブル156を参照
し、フラグが立っているOSを割込み対象OSとして記
憶する。図7に示す優先割込みテーブル156と、図1
2のスイッチテーブル200を用い、かつスイッチ割込み
にIRQ#2が割り当てられている場合を想定すると、
スイッチ#0が入力された場合はリアルタイムOS,ス
イッチ#2が入力された場合は事務処理OS,スイッチ
#3が入力された場合は共用なのでさらに優先割込みテ
ーブル156を参照しリアルタイムOSというように対
応する割込み対象オペレーティングシステムを入手する
ことができる。
3)、リアルタイムOS117であればリアルタイムO
S割込みに対する割込み処理を実行する(処理27
4)。事務処理OS116であれば事務処理OS割込み
に対する割込み処理274をそれぞれ実行する(処理2
75)。ここで、なお、事務処理OS割込みに対する割
込み処理275は、割込みが発生したことをクライアン
ト側の割込みハンドラ122に知らせるため、事務処理
OS116へのソフトウェア割込みを生成する。さらに
必要があれば前記ソフトウェア割込み処理で入手した情
報を、共有メモリ125に書き込む。なお生成するソフト
ウェア割込みは、該実行中の割込み処理より優先順位を
低くする必要がある。
実行では、何らリアルタイムOSに影響を与えないため
タスク切替判定276は必要としない。従って、このま
ま割込みハンドラ123の処理を終了する。そこで、割
込みスタック153上に退避しておいたレジスタ値を復
帰し(処理280)、共通割込みハンドラへ制御を戻す
(処理281)。なお、処理276を省くのは処理高速
化のためであり、処理276を実行するように動作して
も何ら問題はない。
込み処理実行後、タスク切替えが必要か否かを判定する
(処理276)。タスク切替えが必要なければ、割込み
ハンドラ123の処理を終了する。このため、割込みス
タック153上に退避しておいたレジスタ値を復帰し
(処理280)、共通割込みハンドラへ制御を戻す(処
理281)。タスク切替えが必要であると判定した場
合、割込みスタック151上に退避したレジスタの値を
タスク管理テーブルにコピーし(処理277)、割込み
スタック上の退避レジスタを破棄する(処理278)。
この後、リスケジューラ119を起動する(処理27
9)。
ら同一の入出力装置を共有するための方法としてクライ
アント−サーバモデルを適用する方法について説明し
た。この中でサーバ側のオペレーティングシステムから
他方のオペレーティングシステムへ割込み発生をソフト
ウェア割込みで知らせる方法につき説明したが、何らか
の通信手段を備えていれば割込み発生をサーバ側入出力
処理222からクライアント側入出力処理221へ通知
することが可能であり、前記説明したソフトウェア割込
みと置き換えることができる。本実施例では、2つのオ
ペレーティングシステムの間で通信するため、図1に示
すようにOS間通信機能126を備える。そこでOS間
通信機能126を用い、複数のオペレーティングシステ
ムから同一の入出力装置を共有するための方法を図18
を用い説明する。
図1および図5で説明した構成要素と同一であるが、事
務処理OS116に備えられていた入出力ドライバ12
0,割込みハンドラ122に代えて仮想入出力ドライバ
290,仮想割込みハンドラ291を備えたところが異
なる。仮想入出力ドライバ290は、アプリケーション
タスクから入出力装置をアクセスするためのインタフェ
ースを提供するが、直接入出力装置に読み書きしたり、
直接入出力装置を制御することはしない。ここでは、O
S間通信機能126が提供するメッセージ通信を用い、
入出力ドライバ121に入出力装置への読み書きや制御
を依頼するとともに、その結果もメッセージ通信を用い
入出力ドライバ121から受け取るように動作する。仮
想割込みハンドラ291は、割込みハンドラ123から
送られるメッセージで起動され、割込み処理を実行す
る。
共有する入出力装置割込み要求が発生したときの処理の
流れを図18を用い説明する。説明の都合上、ここで扱
う入出力装置が生成する割込み番号の優先割込みテーブ
ルには、共有フラグ1がセットされ、さらに事務処理O
S側にフラグが立っているものとする。
共通割込みハンドラ128にトラップされ、図15のフ
ローに従って処理を実行する。ここでは両方のオペレー
ティングシステムが共有する入出力装置からの割込みで
あると仮定しているため、リアルタイムOSに備えられ
た割込みハンドラ123を起動する。割込みハンドラ1
23は、図16で説明したフローに従って処理を実行す
る。ここでは、優先割込みテーブル156に共有フラ
グ、及び事務処理OSにフラグが立っていると仮定して
いるため、事務処理OS割込みに対応する割込み処理2
54が実行される。ここで、事務処理OS割込みに対す
る割込み処理254は、割込みが発生したことをクライ
アント側の仮想割込みハンドラ291に知らせるため、
OS間通信機能126を用い仮想割込みハンドラ291
へメッセージを送る。なお、割込み処理で入手した情報
は、メッセージに添付して送信してもよいし、共有メモ
リ125に書き込み仮想割込みハンドラ291から参照
することで情報転送してもよい。さらに、仮想割込みハ
ンドラ291にメッセージを受信するためのメッセージ
キューを設けられない時は、アプリケーションタスクと
して備えられたサーバタスク112に一旦メッセージを
送り、該サーバタスク112から仮想割込みハンドラ2
91を呼び出すことで仮想割込みハンドラ291を起動
してもよい。仮想割込みハンドラ291は、メッセージ
に添付された割込み処理の処理結果、ないし共有メモリ
125を参照することで割込み処理を実行される。
依頼された入出力処理を実行する処理の流れを図19を
用い説明する。事務処理OS内の仮想入出力ドライバ2
90は、事務処理OSから入出力装置をアクセスするた
めの唯一のインタフェースであり、依頼された入出力処
理はOS間通信機能126を用い入出力ドライバ121へ
転送される。なお、仮想入出力ドライバ290で入手し
た情報は、メッセージに添付して送信してもよいし、共
有メモリ125に書き込み入出力ドライバ121から参照
することで情報転送してもよい。さらに、入出力ドライ
バ121にメッセージを受信するためのメッセージキュ
ーを設けられない時は、アプリケーションタスクとして
備えられたサーバタスク113に一旦メッセージを送
り、サーバタスク113から入出力ドライバ121を呼
び出すことで入出力ドライバ121を起動してもよい。
入出力ドライバ121は、メッセージに添付された依頼
内容、ないし共有メモリ125を参照することで入出力
処理を実行する。
優先割込みテーブル156の書き換えフローを図20を
用い説明する。優先割込みテーブル156は、ユーザ要
求を管理する管理タスク115等によって書き換える。
しかし、優先割込みテーブル156を書き換えている最
中に、割込み処理が優先割込みテーブル156を参照す
ると不整合が発生するおそれがある。そこで最初に全割
込み要求をマスクし、割込みが発生しないようにする
(処理301)。なお書き換えを実施する割込み番号の
み割込み要求をマスクしてもよい。割込みマスクの設定
後、優先割込みテーブル156の内容を更新し(処理3
02)、設定した割込みマスクを解除する(処理30
3)ことで優先割込みテーブル156の書き換えが実施
できる。
ら入出力装置を共有する方法を説明したが、実際の応用
例として車載ナビゲーション装置といったユーザインタ
フェースを備える組み込み装置のグラフィックス表示に
本発明を適用した例を図21を用い説明する。なお、グ
ラフィックス表示システム上で動作するオペレーティン
グシステムは、図1同様に事務処理OS116、及びリ
アルタイムOS117で、リアルタイムOS上で動作す
るタスク/スレッドは事務処理OS上で動作するタスク
/スレッドより優先順位が高いと仮定する。
いったコマンドを解釈しグラフィックスハードウェア3
14を制御するグラフィックスドライバ310,31
2,グラフィックスハードウェア314が生成する割込
み要求で起動するグラフィックス割込みハンドラ31
1,313、及び画素に展開されたイメージデータをデ
ィスプレイに表示するグラフィックスハードウェア31
4で構成する。グラフィックスハードウェア314は、
各画素の輝度値を保持するフレームメモリ316、及び
垂直同期周波数毎にフレームメモリ316から各画素の
輝度値を取り出し、ディスプレイ104に出力する表示
制御315とを備える。ここで、フレームメモリ316
では、事務処理OSのグラフィックスドライバ310が
作成したイメージを蓄える事務処理OS用描画領域31
7と、リアルタイムOSのグラフィックスドライバ31
2が作成したイメージを蓄えるリアルタイムOS用描画
領域318とを独立・分離することで、リソースの衝突
を防ぐ。これにより、オペレーティングシステムを切り
替えた場合でも、各々の描画イメージは保持されるた
め、再度オペレーティングシステムが切り替わったとき
でも、切り替わり前の状態から処理を続行できるという
利点を有する。また、リアルタイムOSに備えられたグ
ラフィックスドライバ312、及びグラフィックス割込
みハンドラ313はサーバとして動作し、事務処理OS
に備えられたグラフィックスドライバ310、及びグラフ
ィックス割込みハンドラ311はクライアントとして動
作すると仮定する。
プリケーションタスクからの描画,表示要求における動
作フローを最初に説明する。アプリケーションタスク
は、グラフィックスドライバ312に備えられた描画コ
マンドを呼び出し、描画処理を実行する。描画コマンド
は、線や多角形の描画するためのコマンドや線幅や塗り
つぶしパターンといった属性を指定するコマンドで構成
され、グラフィックスドライバ312は描画コマンドを
解釈し、リアルタイムOS用描画領域318に画素展開
する。グラフィックスハードウェア314が、画素展開
をハードウェアで実行するアクセラレーション機能を有
していれば、それを活用してもよい。描画が終了する
と、次にグラフィックスドライバ312に備えられた表
示コマンドを実行する。表示コマンドは、フレームメモ
リ316における表示開始アドレスや画面サイズを指定
するコマンドで構成され、表示制御315内のレジスタ
を制御することで指定された画像を表示する。指定され
た画面の表示が開始されると、表示制御315は割込み
要求を生成する。割込み要求は、一旦共通割込みハンド
ラ128にトラップされるが、直ちに共通デバイスから
の割込み要求と判定し、グラフィックス割込みハンドラ
313を呼び出す。これによりグラフィックス割込みハ
ンドラ313は、画面が表示されたことを識別する。
アプリケーションタスクからの描画,表示要求における
動作フローを次に説明する。アプリケーションタスク
は、グラフィックスドライバ310に備えられた描画コ
マンドを呼び出し、事務処理OS用描画領域317に画
素展開する。描画が終了すると、次にグラフィックスド
ライバ310に備えられた表示コマンドを実行する。表
示コマンドは、フレームメモリ316における表示開始
アドレスや画面サイズを指定するメッセージをOS間通
信機能126を用いグラフィックスドライバ312に転
送する。その要求を受けたグラフィックスドライバ31
2は、表示制御315内のレジスタを制御することで指
定された画像を表示する。なお、グラフィックスドライ
バ312は、いずれのオペレーティングシステムからの
表示要求が優先であるかを判定し、常に優先的に表示す
べきフレームメモリを表示する。指定された画面の表示
が開始されると、表示制御315は割込み要求を生成す
る。割込み要求は、一旦共通割込みハンドラ128でト
ラップされるが、直ちに共通デバイスからの割込み要求
と判定し、グラフィックス割込みハンドラ313を起動
する。グラフィックス割込みハンドラ313は、OS間
通信機能126を用い、割込み要求を受けたことをグラ
フィックス割込みハンドラ311に伝える。これにより
グラフィックス割込みハンドラ311は、画面が表示さ
れたことを識別する。
示装置の具体的な実施例を説明したが、本発明を適用す
ることで例えばシリアル/ネットワーク通信やCD−R
OM/DVD−ROM記憶装置といった様々な周辺装置
を複数のオペレーティングシステムから共有することが
可能になる。
ングシステムを単一のプロセッサで動作させる計算機シ
ステムにおいて、各オペレーティングシステムが実行す
るアプリケーションタスクから同一の入出力装置を共有
することが可能になるため、入出力装置の総数を削減す
ることが可能になる。さらに、本発明によれば、複数個
のオペレーティングシステムが共有する入出力装置とデ
ータ入出力するための入出力ドライバ、及び割込みハン
ドラを該一つのオペレーティングシステムに実装し、そ
れ以外のオペレーティングシステムから該入出力ドライ
バ及び割込みハンドラに入出力処理を依頼することで、
入出力装置をリセットすることなく入出力処理を継続す
ることが可能になり、操作性が向上する。
示す図である。
ある。
ータスレジスタを示す図である。
タスレジスタを示す図である。
ある。
る。
を示す図である。
図である。
である。
成を示す図である。
の図である。
を示す図である。
の図である。
である。
である。
である。
である。
である。
システムの構成を示す図である。
制御装置、103…プロセッサバス、104…ディスプ
レイ、105…スイッチ、106…センサ、107…タ
イマ装置、108…割込み信号線、109…ネットワー
ク、110…タスクA、111…タスクB、112,1
13…サーバタスク、114…タスクC、115…管理
タスク、116…事務処理OS、117…リアルタイム
OS、118,119…リスケジューラ、120,12
1…入出力ドライバ、122,123…割込みハンド
ラ、124…OS間制御機能、125…共有メモリ、12
6…OS間通信機能、127…OSコンテクスト切換、
128…共通割込みハンドラ、129…割込み管理テー
ブル、130…キャッシュメモリ、131…CPU、1
32…汎用レジスタ、133…PC、134…SR、1
35…データバス、136…アドレスバス、137…割
込みコントローラ、140…割込みブロックビット、1
41…割込みマスクレベル、142…実行状態レジス
タ、143…割込みマスクレジスタ、144〜147…
割込みマスクビット、150,152…割込みスタック
ポインタ、151,153…割込みスタック、154…
実行OS記憶、155…割込みアドレステーブル、15
6…優先割込みテーブル、157…事務処理OS用保存
コンテクスト、158…リアルタイムOS用保存コンテ
クスト、190…リアルタイムOS専用スイッチ、19
1…事務処理OS専用スイッチ、192…共用スイッ
チ、200…スイッチテーブル、221…クライアント
側入出力処理、222…サーバ側入出力処理、226…
入出力装置、290…仮想入出力ドライバ、291…仮
想割込みハンドラ、310,312…グラフィックスド
ライバ、311,313…グラフィックス割込みハンド
ラ、314…グラフィックスハードウェア、315…表
示制御、316…フレームメモリ、317…事務処理OS
用描画領域、318…リアルタイムOS用描画領域。
Claims (7)
- 【請求項1】複数個のオペレーティングシステムと、複
数個のオペレーティングシステムを切り替えるOS切替
手段とを有する計算機システムにおいて、 割込み要因毎に起動するオペレーティングシステムを記
憶する優先割込みテーブルと、優先割込みテーブルを書
き換える優先割込みテーブル書き換え手段とを備え、 OS切換手段は割込み要因から優先割込みテーブルを参
照し対応するオペレーティングシステムに切り替えると
共に、該オペレーティングシステムが備える割込み処理
手段を呼び出すことを特徴とする計算機システム。 - 【請求項2】請求項1に記載の計算機システムにおい
て、 優先割込みテーブルは、割込み要因毎に起動するオペレ
ーティングシステムに加え、複数のオペレーティングシ
ステムで共有する周辺デバイスからの割込みか否かを記
憶することを特徴とする計算機システム。 - 【請求項3】請求項2に記載の計算機システムにおい
て、 OS切換手段は、割込み要因から優先割込みテーブルを
参照し、該割込み要求が複数のオペレーティングシステ
ムで共有する割込みか否かを判定し、共有する割込みと
判断したとき割込みを生成した周辺デバイスの内容を解
析することで割込み対象とするオペレーティングシステ
ムを判定し、オペレーティングシステムを切り替えると
共に、該オペレーティングシステムが備える割込み処理
手段を呼び出すことを特徴とする計算機システム。 - 【請求項4】複数個のオペレーティングシステムと、複
数個のオペレーティングシステムを切り替えるOS切替
手段とを有する計算機システムにおいて、 複数のオペレーティングシステムから共有する周辺デバ
イスと、前記共有する周辺デバイスとデータ入出力する
データ入出力サーバを該一つのオペレーティングシステ
ムに備え、 前記オペレーティングシステム以外に備えられた前記共
有する周辺デバイスとデータ入出力するデータ入出力ク
ライアントは、データ入出力サーバにデータ入出力を依
頼し、データ入出力サーバにおいて周辺デバイスとデー
タ入出力した結果を受信することでデータ入出力を実行
することを特徴とする計算機システム。 - 【請求項5】請求項4に記載の計算機システムにおい
て、 割込み要因毎に起動するオペレーティングシステムを記
憶する優先割込みテーブルと、優先割込みテーブルを書
き換える優先割込みテーブル書き換え手段とを備え、 OS切換手段は、割込み要因から優先割込みテーブルを
参照し、該割込み要求が複数のオペレーティングシステ
ムで共有する割込みかを判定し、共有する割込みと判断
したとき該データ入出力サーバが備える割込み処理手段
を呼び出すことを特徴とする計算機システム。 - 【請求項6】請求項4又は5に記載の計算機システムに
おいて、 データ入出力サーバは最も優先順位の高いオペレーティ
ングシステムが管理する領域に実装することを特徴とす
る計算機システム。 - 【請求項7】請求項4,5又は6に記載の計算機システ
ムにおいて、 複数のオペレーティングシステムの間で互いに通信する
OS間通信手段とを備え、 OS間通信手段を用いデータ入出力サーバとデータ入出
力クライアントとの間で通信することを特徴とする計算
機システム。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14091499A JP3659062B2 (ja) | 1999-05-21 | 1999-05-21 | 計算機システム |
| KR1020000026970A KR100733852B1 (ko) | 1999-05-21 | 2000-05-19 | 계산기 시스템 |
| US09/574,839 US6615303B1 (en) | 1999-05-21 | 2000-05-19 | Computer system with multiple operating system operation |
| EP00304271.0A EP1054322B1 (en) | 1999-05-21 | 2000-05-19 | Computer system with multiple operating system operation |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14091499A JP3659062B2 (ja) | 1999-05-21 | 1999-05-21 | 計算機システム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2000330806A true JP2000330806A (ja) | 2000-11-30 |
| JP3659062B2 JP3659062B2 (ja) | 2005-06-15 |
Family
ID=15279763
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP14091499A Expired - Fee Related JP3659062B2 (ja) | 1999-05-21 | 1999-05-21 | 計算機システム |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US6615303B1 (ja) |
| EP (1) | EP1054322B1 (ja) |
| JP (1) | JP3659062B2 (ja) |
| KR (1) | KR100733852B1 (ja) |
Cited By (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006085400A (ja) * | 2004-09-16 | 2006-03-30 | Hitachi Ltd | データ処理システム |
| JP2006522971A (ja) * | 2003-04-09 | 2006-10-05 | ジャルナ エスアー | オペレーティングシステム |
| JP2007220086A (ja) * | 2006-01-17 | 2007-08-30 | Ntt Docomo Inc | 入出力制御装置、入出力制御システム及び入出力制御方法 |
| JP2007537498A (ja) * | 2003-10-16 | 2007-12-20 | クーカ・ロボター・ゲゼルシャフト・ミット・ベシュレンクテル・ハフツング | 1次オペレーティングシステムと並存して2次オペレーティングシステムを作動させる方法および装置 |
| JP2008503015A (ja) * | 2004-06-30 | 2008-01-31 | インテル・コーポレーション | 複数クライアントによる単一物理デバイスの共有 |
| JP2008033672A (ja) * | 2006-07-28 | 2008-02-14 | Toshiba Information Systems (Japan) Corp | Hils装置 |
| US7448050B2 (en) | 2002-11-18 | 2008-11-04 | Arm Limited | Handling multiple interrupts in a data processing system utilising multiple operating systems |
| JP2008269177A (ja) * | 2007-04-18 | 2008-11-06 | Ntt Docomo Inc | 情報処理装置及び制御方法 |
| US7502674B2 (en) | 2001-07-25 | 2009-03-10 | Hitachi, Ltd. | On-vehicle terminal system |
| JP2009145932A (ja) * | 2007-12-11 | 2009-07-02 | Toshiba Corp | 画像情報の更新を検出するプログラム、方法および画像処理装置 |
| JP2009211505A (ja) * | 2008-03-05 | 2009-09-17 | Nec Corp | エミュレータ、エミュレーション方法、プログラム、及び、記録媒体 |
| JP2010055641A (ja) * | 2009-12-07 | 2010-03-11 | Fuji Xerox Co Ltd | 情報処理装置及びプログラム |
| US7730249B2 (en) | 2006-12-25 | 2010-06-01 | Kabushiki Kaisha Toshiba | Device control apparatus that calls an operating system to control a device |
| JP2010170320A (ja) * | 2009-01-22 | 2010-08-05 | Denso Corp | プログラム、及び制御装置 |
| JP2010191791A (ja) * | 2009-02-19 | 2010-09-02 | Ntt Docomo Inc | 情報処理装置 |
| JP2010257099A (ja) * | 2009-04-23 | 2010-11-11 | Fujitsu Ltd | ドライバ・プログラム、デバイス管理方法及びコンピュータ装置 |
| WO2012053095A1 (ja) * | 2010-10-22 | 2012-04-26 | 三菱電機株式会社 | 割込み信号受付け装置及びコンピュータ装置 |
| US8484452B2 (en) | 2008-03-14 | 2013-07-09 | Mitsubishi Electric Corporation | Multi-operating system (OS) booting apparatus, multi-OS booting program, recording medium, and multi-OS booting method |
| US8601105B2 (en) | 2008-01-31 | 2013-12-03 | Kabushiki Kaisha Toshiba | Apparatus, method and computer program product for faciliating communication with virtual machine |
| US8718629B2 (en) | 2006-07-18 | 2014-05-06 | Nec Corporation | Information communication processing device, information communication terminal, information communication system, function switching method and function switching program |
| US8812829B2 (en) | 2010-06-24 | 2014-08-19 | Fujitsu Limited | Information processing apparatus and start-up method |
| JP2021517291A (ja) * | 2018-03-05 | 2021-07-15 | アーム・リミテッド | 外部例外処理 |
| US11188399B2 (en) | 2017-09-15 | 2021-11-30 | Kabushiki Kaisha Toshiba | Determining whether to suppress an interrupt indicating completion of processing of a frame based on priority of the frame and current value information |
Families Citing this family (62)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4072271B2 (ja) * | 1999-02-19 | 2008-04-09 | 株式会社日立製作所 | 複数のオペレーティングシステムを実行する計算機 |
| JP4402797B2 (ja) * | 2000-03-02 | 2010-01-20 | 株式会社日立製作所 | 情報処理装置 |
| US7089562B1 (en) * | 2000-05-04 | 2006-08-08 | International Business Machines Corporation | Universal driver server |
| US6715016B1 (en) * | 2000-06-01 | 2004-03-30 | Hitachi, Ltd. | Multiple operating system control method |
| WO2001099081A1 (en) | 2000-06-20 | 2001-12-27 | Hitachi, Ltd. | Vehicle control device |
| US20040226020A1 (en) * | 2000-09-28 | 2004-11-11 | Ati Technologies, Inc. | Method and system for using general and appliance operating systems in a single information handling device |
| US6948001B1 (en) * | 2000-11-02 | 2005-09-20 | Radiant Data Corporation | Modular software method for independent storage nodes |
| JP2002259201A (ja) * | 2001-03-02 | 2002-09-13 | Hitachi Ltd | 計算機システムの起動方法 |
| US6820254B2 (en) * | 2001-03-19 | 2004-11-16 | International Business Machines Corporation | Method and system for optimizing code using an optimizing coprocessor |
| US7428485B2 (en) * | 2001-08-24 | 2008-09-23 | International Business Machines Corporation | System for yielding to a processor |
| US7251814B2 (en) | 2001-08-24 | 2007-07-31 | International Business Machines Corporation | Yield on multithreaded processors |
| US7257701B2 (en) * | 2001-11-21 | 2007-08-14 | Lenovo (Singapore) Pte. Ltd. | Method and system for configuring an operating system in a computer system |
| DE10239805A1 (de) * | 2002-08-29 | 2004-03-18 | Siemens Ag | Betriebsverfahren für einen Rechner |
| US8682636B2 (en) * | 2002-08-30 | 2014-03-25 | Sap Ag | Non-client-specific testing of applications |
| US7032107B2 (en) * | 2002-10-30 | 2006-04-18 | Symantec Corporation | Virtual partition for recording and restoring computer data files |
| GB2395583B (en) | 2002-11-18 | 2005-11-30 | Advanced Risc Mach Ltd | Diagnostic data capture control for multi-domain processors |
| GB2411254B (en) | 2002-11-18 | 2006-06-28 | Advanced Risc Mach Ltd | Monitoring control for multi-domain processors |
| AU2003278342A1 (en) | 2002-11-18 | 2004-06-15 | Arm Limited | Security mode switching via an exception vector |
| US7383587B2 (en) | 2002-11-18 | 2008-06-03 | Arm Limited | Exception handling control in a secure processing system |
| WO2004046916A2 (en) | 2002-11-18 | 2004-06-03 | Arm Limited | Exception types within a secure processing system |
| US7117284B2 (en) | 2002-11-18 | 2006-10-03 | Arm Limited | Vectored interrupt control within a system having a secure domain and a non-secure domain |
| GB0226874D0 (en) | 2002-11-18 | 2002-12-24 | Advanced Risc Mach Ltd | Switching between secure and non-secure processing modes |
| RU2005115094A (ru) | 2002-11-18 | 2006-01-20 | Арм Лимитед (Gb) | Отображение адресов виртуальной памяти на физические адреса в системе с наличием защищенного домена и незащищенного домена |
| US7231476B2 (en) | 2002-11-18 | 2007-06-12 | Arm Limited | Function control for a processor |
| US7000051B2 (en) * | 2003-03-31 | 2006-02-14 | International Business Machines Corporation | Apparatus and method for virtualizing interrupts in a logically partitioned computer system |
| US8612992B2 (en) | 2003-04-09 | 2013-12-17 | Jaluna Sa | Operating systems |
| ES2315469T3 (es) * | 2003-04-09 | 2009-04-01 | Virtuallogix Sa | Sistemas operativos. |
| US7281075B2 (en) * | 2003-04-24 | 2007-10-09 | International Business Machines Corporation | Virtualization of a global interrupt queue |
| JP3952992B2 (ja) * | 2003-06-03 | 2007-08-01 | ソニー株式会社 | 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム |
| EP1503286B1 (en) * | 2003-07-30 | 2014-09-03 | Jaluna SA | Multiple operating system networking |
| KR20070005917A (ko) | 2003-09-30 | 2007-01-10 | 쟈루나 에스에이 | 운영체제 |
| US20050228921A1 (en) * | 2004-03-31 | 2005-10-13 | Prashant Sethi | Sharing of interrupts between operating entities |
| JP2005309553A (ja) * | 2004-04-19 | 2005-11-04 | Hitachi Ltd | 計算機 |
| KR100575156B1 (ko) * | 2004-05-19 | 2006-04-28 | 삼성전자주식회사 | 컴퓨터 시스템 및 그 제어방법 |
| US7827558B2 (en) * | 2004-06-30 | 2010-11-02 | Devicevm, Inc. | Mechanism for enabling a program to be executed while the execution of an operating system is suspended |
| US7424601B2 (en) * | 2004-07-07 | 2008-09-09 | Yongyong Xu | Methods and systems for running multiple operating systems in a single mobile device |
| JP2008510238A (ja) * | 2004-08-18 | 2008-04-03 | ジャルナ エスアー | オペレーティングシステム |
| US20060047878A1 (en) * | 2004-08-25 | 2006-03-02 | Zilavy Daniel V | GPE register block |
| US20060058658A1 (en) * | 2004-09-13 | 2006-03-16 | Siemens Medical Solutions Usa, Inc. | Communications between co-located operating systems for medical diagnostic ultrasound and other systems |
| US7529921B2 (en) * | 2004-12-17 | 2009-05-05 | Cardiac Pacemakers, Inc. | Fast initialization of medical device system having multiple operating systems |
| CN100383744C (zh) * | 2004-12-24 | 2008-04-23 | 联想(北京)有限公司 | 一种计算机多操作系统的切换方法 |
| TW200627277A (en) * | 2005-01-24 | 2006-08-01 | Lite On Technology Corp | OS selection method and computer system utilizing same |
| KR100746025B1 (ko) * | 2006-01-12 | 2007-08-06 | 삼성전자주식회사 | 운영체제 스위칭 장치 및 방법 |
| CN100458701C (zh) * | 2006-01-17 | 2009-02-04 | 株式会社Ntt都科摩 | 输入输出控制装置、输入输出控制系统以及输入输出控制方法 |
| US8769528B2 (en) * | 2006-07-14 | 2014-07-01 | Moka5, Inc. | Fixed-function consumer-electronics device providing general-computing functions with virtual machines |
| JP4342576B2 (ja) * | 2006-07-25 | 2009-10-14 | 株式会社エヌ・ティ・ティ・ドコモ | 複数オペレーティングシステム切替制御装置及びコンピュータシステム |
| US8312476B2 (en) * | 2007-09-05 | 2012-11-13 | Htc Corporation | Method for synchronizing information of dual operating systems |
| CN101477476B (zh) * | 2008-01-02 | 2012-02-29 | 联想(北京)有限公司 | 多操作系统之间切换显示的控制方法和装置 |
| US8533707B2 (en) * | 2008-03-04 | 2013-09-10 | Lsi Corporation | Linux matrix compilation system and method |
| US8281169B2 (en) | 2008-08-27 | 2012-10-02 | Wireless Silicon Group, Inc. | Method and system for power management for a handheld mobile electronic device executing-in-place an application kernel from execute-in-place non-volatile memory (XIP NVM) |
| US8713241B2 (en) * | 2008-08-27 | 2014-04-29 | Wireless Silicon Group, Llc | Method and apparatus for an active low power mode of a portable computing device |
| CN101776877A (zh) * | 2009-01-12 | 2010-07-14 | 鸿富锦精密工业(深圳)有限公司 | 可编程逻辑控制器程序编辑系统及方法 |
| JP4888742B2 (ja) * | 2009-02-25 | 2012-02-29 | ソニー株式会社 | 情報処理装置および方法、並びにプログラム |
| CN101782861A (zh) * | 2009-12-24 | 2010-07-21 | 华为终端有限公司 | 在嵌入式系统中操作系统的管理方法及装置 |
| CN102567103B (zh) * | 2010-12-27 | 2015-03-25 | 联想(北京)有限公司 | 一种终端及切换方法 |
| GB2487575B (en) | 2011-01-28 | 2017-04-12 | Advanced Risc Mach Ltd | Controlling generation of debug exceptions |
| EP3053025A4 (en) * | 2013-09-30 | 2017-05-17 | Hewlett-Packard Development Company, L.P. | Selecting operating systems based on a computing device mode |
| CN104572287B (zh) * | 2015-01-30 | 2018-12-25 | 西安酷派软件科技有限公司 | 一种系统切换时保持应用状态的方法、装置及终端 |
| JP6615726B2 (ja) * | 2016-09-16 | 2019-12-04 | 株式会社東芝 | 情報処理装置、情報処理方法及びプログラム |
| CN109039428B (zh) * | 2018-08-17 | 2020-08-21 | 中南大学 | 基于冲突消解的中继卫星单址天线调度随机搜索方法 |
| US11604657B2 (en) * | 2021-04-30 | 2023-03-14 | Ncr Corporation | Containerized point-of-sale (POS) system and technique for operating |
| CN115328586B (zh) * | 2021-05-11 | 2026-02-10 | Oppo广东移动通信有限公司 | 应用程序运行的控制方法、装置、电子设备和存储介质 |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4747040A (en) * | 1985-10-09 | 1988-05-24 | American Telephone & Telegraph Company | Dual operating system computer |
| US4993017A (en) * | 1988-03-15 | 1991-02-12 | Siemens Aktiengesellschaft | Modularly structured ISDN communication system |
| DE3831048A1 (de) * | 1988-09-12 | 1990-03-15 | Nixdorf Computer Ag | Betriebsprogramm fuer eine datenverarbeitungsanlage |
| US5596500A (en) * | 1993-10-25 | 1997-01-21 | Trimble Navigation Limited | Map reading system for indicating a user's position on a published map with a global position system receiver and a database |
| US5901319A (en) * | 1996-06-14 | 1999-05-04 | The Foxboro Company | System and methods for generating operating system specific kernel level code from operating system independent data structures |
| US6047280A (en) * | 1996-10-25 | 2000-04-04 | Navigation Technologies Corporation | Interface layer for navigation system |
| US6269409B1 (en) * | 1997-09-02 | 2001-07-31 | Lsi Logic Corporation | Method and apparatus for concurrent execution of operating systems |
| US6121924A (en) * | 1997-12-30 | 2000-09-19 | Navigation Technologies Corporation | Method and system for providing navigation systems with updated geographic data |
| WO2001099081A1 (en) * | 2000-06-20 | 2001-12-27 | Hitachi, Ltd. | Vehicle control device |
-
1999
- 1999-05-21 JP JP14091499A patent/JP3659062B2/ja not_active Expired - Fee Related
-
2000
- 2000-05-19 EP EP00304271.0A patent/EP1054322B1/en not_active Expired - Lifetime
- 2000-05-19 KR KR1020000026970A patent/KR100733852B1/ko not_active Expired - Fee Related
- 2000-05-19 US US09/574,839 patent/US6615303B1/en not_active Expired - Lifetime
Cited By (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7502674B2 (en) | 2001-07-25 | 2009-03-10 | Hitachi, Ltd. | On-vehicle terminal system |
| US7448050B2 (en) | 2002-11-18 | 2008-11-04 | Arm Limited | Handling multiple interrupts in a data processing system utilising multiple operating systems |
| JP2006522971A (ja) * | 2003-04-09 | 2006-10-05 | ジャルナ エスアー | オペレーティングシステム |
| JP2007537498A (ja) * | 2003-10-16 | 2007-12-20 | クーカ・ロボター・ゲゼルシャフト・ミット・ベシュレンクテル・ハフツング | 1次オペレーティングシステムと並存して2次オペレーティングシステムを作動させる方法および装置 |
| JP2008503015A (ja) * | 2004-06-30 | 2008-01-31 | インテル・コーポレーション | 複数クライアントによる単一物理デバイスの共有 |
| JP2006085400A (ja) * | 2004-09-16 | 2006-03-30 | Hitachi Ltd | データ処理システム |
| US7877526B2 (en) | 2004-09-16 | 2011-01-25 | Hitachi, Ltd. | Data processing system having a channel adapter shared by multiple operating systems |
| JP2007220086A (ja) * | 2006-01-17 | 2007-08-30 | Ntt Docomo Inc | 入出力制御装置、入出力制御システム及び入出力制御方法 |
| JP5621191B2 (ja) * | 2006-07-18 | 2014-11-05 | 日本電気株式会社 | 情報通信処理装置、情報通信端末、情報通信システム、機能切替方法及び機能切替プログラム |
| US8718629B2 (en) | 2006-07-18 | 2014-05-06 | Nec Corporation | Information communication processing device, information communication terminal, information communication system, function switching method and function switching program |
| JP2008033672A (ja) * | 2006-07-28 | 2008-02-14 | Toshiba Information Systems (Japan) Corp | Hils装置 |
| US7730249B2 (en) | 2006-12-25 | 2010-06-01 | Kabushiki Kaisha Toshiba | Device control apparatus that calls an operating system to control a device |
| JP2008269177A (ja) * | 2007-04-18 | 2008-11-06 | Ntt Docomo Inc | 情報処理装置及び制御方法 |
| JP2009145932A (ja) * | 2007-12-11 | 2009-07-02 | Toshiba Corp | 画像情報の更新を検出するプログラム、方法および画像処理装置 |
| US8416253B2 (en) | 2007-12-11 | 2013-04-09 | Kabushiki Kaisha Toshiba | Apparatus, method, and recording medium for detecting update of image information |
| US8601105B2 (en) | 2008-01-31 | 2013-12-03 | Kabushiki Kaisha Toshiba | Apparatus, method and computer program product for faciliating communication with virtual machine |
| JP2009211505A (ja) * | 2008-03-05 | 2009-09-17 | Nec Corp | エミュレータ、エミュレーション方法、プログラム、及び、記録媒体 |
| US8484452B2 (en) | 2008-03-14 | 2013-07-09 | Mitsubishi Electric Corporation | Multi-operating system (OS) booting apparatus, multi-OS booting program, recording medium, and multi-OS booting method |
| JP2010170320A (ja) * | 2009-01-22 | 2010-08-05 | Denso Corp | プログラム、及び制御装置 |
| JP2010191791A (ja) * | 2009-02-19 | 2010-09-02 | Ntt Docomo Inc | 情報処理装置 |
| JP2010257099A (ja) * | 2009-04-23 | 2010-11-11 | Fujitsu Ltd | ドライバ・プログラム、デバイス管理方法及びコンピュータ装置 |
| JP2010055641A (ja) * | 2009-12-07 | 2010-03-11 | Fuji Xerox Co Ltd | 情報処理装置及びプログラム |
| US8812829B2 (en) | 2010-06-24 | 2014-08-19 | Fujitsu Limited | Information processing apparatus and start-up method |
| WO2012053095A1 (ja) * | 2010-10-22 | 2012-04-26 | 三菱電機株式会社 | 割込み信号受付け装置及びコンピュータ装置 |
| JP5372262B2 (ja) * | 2010-10-22 | 2013-12-18 | 三菱電機株式会社 | 割込み信号受付け装置及びコンピュータ装置 |
| KR101475640B1 (ko) * | 2010-10-22 | 2014-12-22 | 미쓰비시덴키 가부시키가이샤 | 인터럽트 신호 접수 장치 및 컴퓨터 장치 |
| US9361251B2 (en) | 2010-10-22 | 2016-06-07 | Mitsubishi Electric Corporation | Interrupt signal accepting apparatus and computer apparatus managing operations of at least two operating systems |
| US11188399B2 (en) | 2017-09-15 | 2021-11-30 | Kabushiki Kaisha Toshiba | Determining whether to suppress an interrupt indicating completion of processing of a frame based on priority of the frame and current value information |
| JP2021517291A (ja) * | 2018-03-05 | 2021-07-15 | アーム・リミテッド | 外部例外処理 |
| JP7257407B2 (ja) | 2018-03-05 | 2023-04-13 | アーム・リミテッド | 外部例外処理 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP1054322A2 (en) | 2000-11-22 |
| EP1054322B1 (en) | 2015-07-29 |
| EP1054322A3 (en) | 2003-10-01 |
| KR100733852B1 (ko) | 2007-06-29 |
| KR20010014944A (ko) | 2001-02-26 |
| US6615303B1 (en) | 2003-09-02 |
| JP3659062B2 (ja) | 2005-06-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3659062B2 (ja) | 計算機システム | |
| JP4072271B2 (ja) | 複数のオペレーティングシステムを実行する計算機 | |
| EP3798835B1 (en) | Method, device, and system for implementing hardware acceleration processing | |
| US5127098A (en) | Method and apparatus for the context switching of devices | |
| US4553202A (en) | User controlled dialog resource switching in a multi-tasking word processor | |
| JP3546678B2 (ja) | マルチos構成方法 | |
| US5799188A (en) | System and method for managing variable weight thread contexts in a multithreaded computer system | |
| US9798565B2 (en) | Data processing system and method having an operating system that communicates with an accelerator independently of a hypervisor | |
| US7673304B2 (en) | Multithreaded kernel for graphics processing unit | |
| TW200411403A (en) | System and method for transferring data between virtual machines or other computer entities | |
| US20190227918A1 (en) | Method for allocating memory resources, chip and non-transitory readable medium | |
| KR100988395B1 (ko) | 태스크 스케줄링 방법, 태스크 스케줄링 지원 장치, 코프로세싱 스케줄러에 관련하여 사용하기 위한 코프로세서, 및 컴퓨터 판독가능 저장 매체 | |
| US20250173198A1 (en) | Data processing system | |
| US20240126600A1 (en) | Service process invoking method and related apparatus | |
| JP4026667B2 (ja) | マルチos構成方法 | |
| JP2001216172A (ja) | マルチos構成方法 | |
| JP2001236237A (ja) | マルチos構成方法 | |
| JP3349547B2 (ja) | スケジューリングシステム | |
| KR101130361B1 (ko) | 코프로세서 내의 연산을 스트림라인하는 방법 | |
| JP2021060707A (ja) | 同期制御システムおよび同期制御方法 | |
| JPH08297585A (ja) | オペレーティングシステムによるデータ転送方法 | |
| JPH07105120A (ja) | 入出力制御装置 | |
| JPH06110717A (ja) | 複合計算機システム | |
| CN118779126A (zh) | 一种进程间通信方法、装置、存储介质及电子设备 | |
| JP3585956B2 (ja) | 情報処理装置及びその方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040427 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040624 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050222 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050307 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090325 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090325 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100325 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110325 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110325 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120325 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130325 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130325 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140325 Year of fee payment: 9 |
|
| LAPS | Cancellation because of no payment of annual fees |