JPH06236286A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH06236286A
JPH06236286A JP2141393A JP2141393A JPH06236286A JP H06236286 A JPH06236286 A JP H06236286A JP 2141393 A JP2141393 A JP 2141393A JP 2141393 A JP2141393 A JP 2141393A JP H06236286 A JPH06236286 A JP H06236286A
Authority
JP
Japan
Prior art keywords
operation mode
interrupt vector
device driver
vector table
interrupt
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2141393A
Other languages
English (en)
Inventor
Shigeru Tanabe
滋 田辺
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2141393A priority Critical patent/JPH06236286A/ja
Publication of JPH06236286A publication Critical patent/JPH06236286A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 2つ以上の動作モードを動的に切り換えてそ
れぞれの動作モード上でアプリケーションを動作させる
ことのできる情報処理装置において、動作モードの切り
換えを意識しないデバイスドライバや常駐プログラムを
正常動作させることを目的とする。 【構成】 マシンが起動した直後に、動作モードの切り
換えにより内容が変化する割り込みベクタをトラップ処
理する。動作モードが切り換わるごとにデータの受け渡
しを行い、トラップした内容を常に正しいアドレスに書
き換える。トラップした割り込みが発生したときに書き
換えた正しいアドレスに処理を分岐する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数の動作モードを起
動後に切り換えることのできる情報処理装置に関するも
のである。
【0002】
【従来の技術】パーソナルコンピュータのユーザーは、
オペレーティングシステム(以下OSとする)を立ち上
げた後、様々なデバイスドライバや常駐プログラムを組
み込んでアプリケーションをより快適な環境で動作させ
るようにしている。例えばさらに広いメモリを得るため
のメモリドライバやかな漢字入力を行うためのモジュー
ルがこれに該当する。常駐プログラムを常駐させた場合
のメモリマップを図8を用いて説明する。なお、図は本
願の説明に必要な部分のみ概念的に示しており、一部省
略している。パーソナルコンピュータが立ち上がると、
BIOSプログラムによりシステム領域81、BIOS
領域84、割り込みベクタテーブル85が割り付けら
れ、OSがOS領域83にロードされる。残りの部分は
ユーザーエリア82と呼ばれ、この中にアプリケーショ
ンプログラム領域86、常駐プログラム領域87がその
プログラムの実行に必要な分確保される。割り込みベク
タテーブル85にはプログラムの「飛び先」を記述した
テーブルがあり、このテーブルによってBOIS領域8
4内の処理ルーチンが呼び出され、BIOS処理やハー
ドウエア割り込み等の処理が行われる。常駐プログラム
は主メモリ上に常に存在し、必要に応じて割り込みベク
タテーブル85の内容を割り込みベクタ格納領域88に
格納した後、割り込みベクタテーブル85に自身をポイ
ントするアドレスを設定することにより(この操作をト
ラップという)、本来の処理に換わって、または本来の
処理の前に独自の処理を行う。
【0003】ところで、パーソナルコンピュータのよう
な小型で個人向けの計算機システムでは従来から単一な
OS、単一な動作モードで起動しアプリケーションを動
作しそして終了することが通常であった。このためデバ
イスドライバ、常駐プログラムはある固定の環境下での
み正常動作するように作成されていた。その一方で最
近、第1のOSの上で第2のOSが立ち上がりこの第2
のOSの管理下で仮想的な第1のOSが複数存在する仮
想計算機システムをサポートするOSが登場してきた。
この新しいOSでは複数の従来の旧いOSのアプリケー
ションをそれぞれ異なった動作モードで実行することが
できるものがある。
【0004】複数の動作モードの切り換えについてより
具体的な例で説明すると、例えばユーザの指定により表
示画面の解像度をシステムのリセットを行うことなしに
変えることができれば大変に便利である。なぜならば最
近までは国内のパーソナルコンピュータでは640ドッ
ト×400ドットという比較的解像度の低い表示画面を
持ったものが広く普及していた。ところがマンマシンイ
ンタフェースの向上や表示する情報量が増えるというメ
リットから、より高解像度の表示画面を持ったものがで
てきたが、これに対応したアプリケーションの数は少な
いからである。これらの2つのモードはVRAMの大き
さが異なるためメモリーの配置を変える必要があるがハ
ードは使用中に解像度を切り換えることができてもメモ
リ配置やBIOSが換わるので旧いOSではこれらの切
り換えを動的に行うことができず、第2のOSでの制御
が必要になる。
【0005】
【発明が解決しようとする課題】ところが、新しいOS
が立ち上がる前に起動されメモリに常駐しているデバイ
スドライバやプログラムについては新しいOSで完全に
制御することはむずかしく動作モードが途中で切り換わ
ることに対応できずに固定の動作モードのまま処理を行
うため、正常動作しなくなってしまう問題が発生する。
このため新しいOSを立ち上げるときはこのようなデバ
イスドライバ、常駐プログラムは使用できないように制
限をつけるか、または複数の動作モードで正常動作でき
るようにおのおのデバイスドライバ、常駐プログラムを
手直ししなければならなかった。
【0006】図9は動作モード1で第1のOSが立ち上
がった直後を示している。INTnの割り込みベクタテ
ーブル91nの内容はBIOS領域90の中の処理ルー
チンA1をポイントしており、INT nによりA1が
実行される。
【0007】図10は前記とは異なる動作モード2で第
1のOSが立ち上がった直後を示しており、割り込みベ
クタテーブル91に動作モード1と異なる値が設定され
ているのが分かる。動作モード2ではINT nで処理
ルーチンA2が実行される。
【0008】次に図11を用いて常駐プログラムの動作
を説明する。パーソナルコンピュータが図9の状態で立
ち上がった後、常駐プログラムbが起動されINT n
をトラップする。具体的にはINT nの割り込みベク
タテーブル91nの内容は常駐プログラムbのエントリ
ーアドレス(処理ルーチンの先頭アドレス)bに書き換
えられ、処理ルーチンA1のエントリーアドレスA1が
常駐プログラムb内に格納される。以上の設定によりI
NT nで常駐プログラムbを介し処理ルーチンA1が
実行される。
【0009】このように常駐プログラムbがメモリに常
駐した後、INT nの割り込みが起こると常駐プログ
ラムbに制御が移る。この後、常駐プログラムbの内部
だけで処理が終了しINT nの呼び出し元にリターン
する場合と、トラップする前のBIOSのエントリーア
ドレスA1に処理を戻す場合とがある。常駐プログラム
bが動作モード1で常駐した後動作モード2に切り換わ
り、トラップ前のBIOSへ処理を戻す場合に不具合が
発生する。
【0010】この状態で動作モード2に切り換えた場合
を図12を用いて説明する。動作モード2では割り込み
ベクターテーブル91及びBOIS領域90の内容が再
配置され、一部を除き動作モード1との共通性はない。
ここでは動作モード2のINT nの割り込みベクタア
ドレスは処理ルーチンA2に設定されている。ところが
動作モード1で常駐した常駐プログラムbはINT n
で処理ルーチンA1のエントリーアドレスをポイントし
ているが、処理ルーチンA1は存在せず、そのエントリ
ーアドレスのポイントする処理ルーチンB2に制御が移
り誤動作に至る。このため動作モードを切り換えるとき
に第2のOSでこのような常駐プログラムが内部領域に
持っているトラップ前の割り込みベクタテーブルの内容
を正しい値に書き直さないかぎりこれらの常駐プログラ
ムやデバイスドライバを第2のOS以前に組み込むこと
はできなかった。
【0011】
【課題を解決するための手段】本発明の情報処理装置は
割り込みベクタテーブルを用いて割り込み処理を行う第
1のOSが起動した後、前記のOS上で第2のOSが起
動し、又第2のOSの上で2つ以上の動作モードを切り
換えてそれぞれの動作モード上でアプリケーションプロ
グラムを動作させることのできる情報処理装置におい
て、第1のOSが起動した直後に任意の割り込みベクタ
テーブルをトラップする手段と、トラップした割り込み
べクタテーブルを格納するテーブルと、第2のOS上の
アプリケーションプログラムの動作モードが変更される
と、前記テーブルの内容を変更後の動作モードに対応し
た割り込みべクタテーブルに書き換える手段と、を有す
ることを特徴とし、動作モードの変化によって割り込み
ベクタテーブルの内容が変わる割り込みベクタ番号につ
いてすべてトラップを行い内部に格納したトラップ以前
の割り込みベクタテーブルの内容を第2のOS下で動作
モードが変化するタイミングで正しい値に変更させるよ
うに第2のOSとの間でデータのやり取りを行う割り込
みベクタテーブル制御のための専用デバイスドライバを
第1のOSが立ち上がった直後に組み込むことにより、
従来からのデバイスドライバ、常駐プログラムは動作モ
ードによる割り込みベクタテーブルの内容の変化を受け
なくなり正常に動作することができる。
【0012】
【実施例】図1は第1のOSと第2のOSの関係、本発
明により生み出された割り込みベクタテーブルをトラッ
プするための割り込みベクタテーブル制御用デバイスド
ライバ(以下デバイスドライバ)aと第2のOSとの関
係を概念的に図式化したものである。第1のOS上で常
駐プログラム、常駐プログラム、デバイスドライバ
及び第2のOSが動作し、さらに第2のOS上で各動
作モードのアプリケーションが動作している。第2のO
S上のアプリケーションはデバイスドライバaを介して
常駐プログラム、デバイスドライバにアクセスすること
になる。
【0013】第1のOSが起動された直後の割り込みベ
クタテーブルとBIOS領域中の処理ルーチンは従来と
同様に図9で示すようになる。ここでA1、B1……は
割り込みベクタであり、動作モード1と動作モード2で
値が変更される。(以後動作モードは2つで説明する
が、それ以上であっても本質的に同様である) この状態にデバイスドライバaを組み込んだものが図2
である。第1のOSが立ち上がった直後にデバイスドラ
イバaが起動されると、動作モードによって変更のある
割り込みベクタをすべてトラップする。割り込みベクタ
テーブル1上のトラップ前の割り込みベクタA1、B1
……はデバイスドライバa内のテーブル3に格納され、
割り込みベクタテーブル1にはデバイスドライバa内の
処理ルーチンをポイントする割り込みベクタa11、a
12……が設定される。INTnが実行されるとデバイ
スドライバa内の処理ルーチンa11の制御によりテー
ブル3で設定されたA1がポイントするBIOS処理ル
ーチンA1が実行される。
【0014】割り込みベクタのトラップ処理の手順を図
5を用いて説明する。デバイスドライバaは動作モード
1と動作モード2の割り込みベクタテーブルを認識して
おり、従って動作モード1と動作モード2でどの割り込
みベクタを変更すればよいかを知ることができる。デバ
イスドライバaが起動されるとトラップが必要な割り込
みベクタアドレスを順次指定する(S1)。次に指定し
た割り込みベクタiの内容をデバイスドライバa内のメ
モリ(テーブル3)に格納する(S2)。割り込みベク
タiにデバイスドライバa内の処理ルーチンa1iのエ
ントリーアドレスa1iを設定する(S3)。上記をト
ラップが必要なすべて割り込みベクタについて行なった
ことを確認し(S4)、トラップ処理を終了する。
【0015】この後常駐プログラム(デバイスドライバ
でもよい)bがINT nの割り込みベクタをトラップ
したのを示したのが図3である。常駐プログラムbは割
り込みベクタを自身のエントリーアドレスb1に換え、
デバイスドライバaの処理ルーチンa11のアドレスを
自身の内部メモリ領域に格納する。INT nにより常
駐プログラムb、デバイスドライバaを経てBIOS処
理ルーチンA1が実行される。
【0016】この状態で動作モード2に切り換わった場
合、正常動作するためにはINTxxに対するBIOS
のエントリーアドレスはA1がA2に、B1がB2にと
いったように切り換わらなければならない。第2のOS
はオペレータの指示により動作モード変更を認識し、図
6で示すように、デバイスドライバaに対して動作モー
ド1の割り込みベクタを動作モード2の割り込みベクタ
に変更するよう指示する。ここで第2のOSはあらかじ
め動作モード1、2の割り込みベクタテーブルの値がわ
かっており、ある特定の割り込みまたはデバイスコント
ロール等によりこれらの値を順にデバイスドライバaに
通知することができる。
【0017】図4は動作モード2に切り換えた後のメモ
リの変移の概要を示す。また図7には、前述の処理によ
りデバイスドライバa内のテーブル3の割り込みベクタ
がモード2に対応した値に切り換わった状態を示す。図
4の割り込みべクタa12、a13…はデバイスドライ
バaの処理ルーチンの先頭アドレスにすでに変更されて
いるのでモードが変わっても不変である。ここでINT
nが発生すると割り込みベクタテーブル1内の値b1
により常駐プログラムbの処理ルーチンb1に制御が移
る。さらにトラップ前の処理を行うときはテーブル3に
格納されているa11の値によってデバイスドライバa
の処理ルーチンa11に制御が移り、処理ルーチンa1
1はテーブル3の値A2によりBIOS処理ルーチンA
2をポイントする。よってINT nにより動作モード
2の正しい処理ルーチンA2を実行することができる。
【0018】このように見てきた時、デバイスドライバ
aを組み込んだ後にトラップを行うデバイスドライバや
常駐プログラムは動作モードの切り換えによるBIOS
のエントリーアドレスの変更から切り放され、動作モー
ドに関わりなく動作することがわかる。
【0019】なお本発明の実施例はデバイスドライバa
の形式で説明したが、常駐プログラムの形式であって
も、一部制約はあるが同様の効果を得ることは可能であ
る。
【0020】
【発明の効果】以上述べた如く、本発明による複数の動
作モードの切り換えによる割り込みベクタテーブルの変
化を制御する専用のデバイスドライバをマシンの起動時
に組み込むことにより、動作モードが固定であることを
前提として作成された、割り込みベクタテーブルをトラ
ップする常駐プログラムやデバイスドライバ(ほぼ全数
がこの形態)がこれらに修正を加えることなく、動作モ
ードの切り換えをサポートするOSで利用できるので、
従来の常駐プログラムやデバイスドライバを有効に活用
できるとともに前記のOSの制御が簡便になるという効
果を有する。
【図面の簡単な説明】
【図1】第1のOSと第2のOSと割り込みベクタテー
ブル制御デバイスドライバとの関係を示す概念図。
【図2】図9の後、割り込みベクタテーブル制御デバイ
スドライバaが組み込まれたときの割り込みベクタテー
ブルの内容の変化を示した図。
【図3】図2の後、常駐プログラムbが組み込まれたと
きの割り込みベクタテーブルの内容の変化を示した図。
【図4】図3の後、動作モードが切り換わり、デバイス
ドライバaの内部メモリに格納したトラップ時の割り込
みベクタテーブルの値が変わったことを示す図。
【図5】デバイスドライバaの初期化時に、必要な割り
込みべクタのトラップ処理行なうことを示すフローチャ
ート。
【図6】デバイスドライバaの動作モード変更時、第2
のOSによって呼ばれる処理フローチャート。
【図7】デバイスドライバaの内部メモリの割り込みベ
クタの格納領域が動作モードによって内容が書き換わっ
たことを示した概念図。
【図8】常駐プログラムを示すメモリマップ。
【図9】動作モード1で第1のOS起動直後の割り込み
ベクタテーブルとBIOSとを示した図。
【図10】動作モード2で第1のOS起動直後の割り込
みベクタテーブルとBIOSとを示した図。
【図11】図9の後、常駐プログラムbが常駐し、元の
割り込みベクタテーブルの内容が常駐プログラムbの内
部メモリに格納されたことを示す図。
【図12】図11の後、動作モードが2になり、BIO
Sの内容とそれにともなう割り込みベクタテーブルが変
化することを示した図。
【符号の説明】
1:割り込みべクタテーブル 2:BIOS領域 3:テーブル 81:システム領域 82:ユーザーエリア82 83:OS領域 84:BIOS領域 85:割り込みべクタテーブル 86:アプリケーションプログラム領域 87:常駐プログラム領域 88:割り込みべクタ格納領域

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 割り込みベクタテーブルを用いて割り込
    み処理を行う第1のOSが起動した後、前記のOS上で
    第2のOSが起動し、又第2のOSの上で2つ以上の動
    作モードを切り換えてそれぞれの動作モード上でアプリ
    ケーションプログラムを動作させることのできる情報処
    理装置において、 第1のOSが起動した直後に任意の割り込みベクタテー
    ブルをトラップする手段と、トラップした割り込みべク
    タテーブルを格納するテーブルと、 第2のOS上のアプリケーションプログラムの動作モー
    ドが変更されると、前記テーブルの内容を変更後の動作
    モードに対応した割り込みべクタテーブルに書き換える
    手段と、を有することを特徴とする情報処理装置。
JP2141393A 1993-02-09 1993-02-09 情報処理装置 Pending JPH06236286A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2141393A JPH06236286A (ja) 1993-02-09 1993-02-09 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2141393A JPH06236286A (ja) 1993-02-09 1993-02-09 情報処理装置

Publications (1)

Publication Number Publication Date
JPH06236286A true JPH06236286A (ja) 1994-08-23

Family

ID=12054340

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2141393A Pending JPH06236286A (ja) 1993-02-09 1993-02-09 情報処理装置

Country Status (1)

Country Link
JP (1) JPH06236286A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08286972A (ja) * 1995-04-19 1996-11-01 Nec Corp 情報処理装置
US6715016B1 (en) * 2000-06-01 2004-03-30 Hitachi, Ltd. Multiple operating system control method
JP2007164421A (ja) * 2005-12-13 2007-06-28 Mitsubishi Electric Corp 並列処理装置及び並列処理方法及び並列処理プログラム
US7725903B2 (en) 2002-05-17 2010-05-25 Ntt Docomo, Inc. Method for providing event to application, and electronic device using this method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08286972A (ja) * 1995-04-19 1996-11-01 Nec Corp 情報処理装置
US6715016B1 (en) * 2000-06-01 2004-03-30 Hitachi, Ltd. Multiple operating system control method
US6892261B2 (en) * 2000-06-01 2005-05-10 Hitachi, Ltd. Multiple operating system control method
US7725903B2 (en) 2002-05-17 2010-05-25 Ntt Docomo, Inc. Method for providing event to application, and electronic device using this method
JP2007164421A (ja) * 2005-12-13 2007-06-28 Mitsubishi Electric Corp 並列処理装置及び並列処理方法及び並列処理プログラム

Similar Documents

Publication Publication Date Title
JP2590267B2 (ja) 仮想計算機における表示制御方式
JP3546678B2 (ja) マルチos構成方法
JP3659062B2 (ja) 計算機システム
US4859995A (en) Mouse pointer with switchable emulation mode
KR20130012126A (ko) 예외 이벤트 처리 장치 및 방법
US20030105927A1 (en) Method for use of stack
JPH02267634A (ja) 割込み処理装置
JP2001265609A (ja) 演算処理装置
JP2001202253A (ja) データ処理方法およびデータ処理装置
US6718539B1 (en) Interrupt handling mechanism in translator from one instruction set to another
EP0074479A2 (en) Data processing apparatus with intersegment call
US7552434B2 (en) Method of performing kernel task upon initial execution of process at user level
JPH06242987A (ja) コンピュータ装置においてマイクロプロセッサの正常な処理の引継ぎをホストプロセッサが実行する方法および装置
JP2005122334A (ja) メモリダンプ方法、メモリダンプ用プログラム及び仮想計算機システム
JPH06236286A (ja) 情報処理装置
US6820153B2 (en) Interrupt processing and memory management method in an operation processing device and a device using the same
JP2003345624A (ja) デバッグ装置及びデバッグ方法
CN1867895B (zh) 用于除了操作一个主操作系统外还操作一个辅助操作系统的方法和装置
US20080229054A1 (en) Method for performing jump and translation state change at the same time
JP2001216172A (ja) マルチos構成方法
US20040059890A1 (en) Executing variable length instructions stored within a plurality of discrete memory address regions
JP2007035066A (ja) マルチos構成方法
JPH09231069A (ja) 情報処理方法及び装置
JP2004287618A (ja) オペレーティングシステム起動制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム起動制御装置
JPH02133833A (ja) インサーキツトエミユレータ制御装置