JPH11149385A - Multi-OS configuration method - Google Patents
Multi-OS configuration methodInfo
- Publication number
- JPH11149385A JPH11149385A JP10008299A JP829998A JPH11149385A JP H11149385 A JPH11149385 A JP H11149385A JP 10008299 A JP10008299 A JP 10008299A JP 829998 A JP829998 A JP 829998A JP H11149385 A JPH11149385 A JP H11149385A
- Authority
- JP
- Japan
- Prior art keywords
- operating system
- interrupt
- procedure
- configuration method
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
Abstract
(57)【要約】
【課題】本発明は、従来の仮想計算機方式の複雑でオー
バヘッドの大きいOS制御方式に対し、ソフトウエアだ
けで容易に一台の計算機で複数OSを同時走行する方式
を提供する。本発明によれば、第一のOSから完全に独
立して動作する新機能を完全に計算機に組み込むことが
でき、それにより割込応答時間の短縮や信頼性の向上を
実現できる。
【解決手段】第一のOSと他のOSが管理するハードウ
ェア資源を分割する手順と、他のOSを起動する手順
と、実行OSを切替える手順と、割り込み要因により割
り込み処理するOSを決定し、適切な割り込みハンドラ
を起動する手順により、複数のOSの同時実行を実現す
る。
(57) [Summary] The present invention provides a system in which a plurality of OSs can be simultaneously run on a single computer easily with only software, in contrast to the OS control system having a complicated and large overhead of the conventional virtual computer system. I do. According to the present invention, a new function that operates completely independently of the first OS can be completely incorporated into a computer, thereby shortening an interrupt response time and improving reliability. Kind Code: A1 A procedure for dividing a hardware resource managed by a first OS and another OS, a procedure for starting another OS, a procedure for switching an execution OS, and an OS for performing an interrupt process depending on an interrupt factor are determined. The simultaneous execution of a plurality of OSs is realized by a procedure for activating an appropriate interrupt handler.
Description
【0001】[0001]
【発明の属する技術分野】本発明は一台の計算機上で複
数のオペレーティングシステムを稼働させるマルチOS
構成方法に関する。[0001] The present invention relates to a multi-OS for operating a plurality of operating systems on one computer.
Related to the configuration method.
【0002】[0002]
【従来の技術】通常の計算機では1つのオペレーティン
グシステムが動作し、それが計算機のプロセッサ、メモ
リ、および、二次記憶装置等の計算機資源を管理し、計
算機が効率良く動作できるように資源スケジュールを実
施している。オペレーティングシステムには様々な種類
がある。バッチ処理に優れるものや、TSS(TimeSharingS
ystem)に優れるもの、GUI(Graphical User Interface)
に優れているものなど様々である。2. Description of the Related Art An ordinary computer operates one operating system, which manages computer resources such as a processor, a memory, and a secondary storage device of the computer, and sets a resource schedule so that the computer can operate efficiently. We are implementing. There are various types of operating systems. What is excellent in batch processing, TSS (TimeSharingS
ystem), GUI (Graphical User Interface)
There are various things that are excellent.
【0003】一方で、これら複数あるオペレーティング
システムを1台の計算機で同時に実行したいというニー
ズがある。例えば、大型計算機においては、実際の業務
に伴うオンライン処理を実行するオペレーティングシス
テムと、開発用のオペレーティングシステムを一台の計
算機で動作させたいという要求がある。あるいは、GU
Iの整っているオペレーティングシステムと、実時間性
に優れているオペレーティングシステムを同時に稼働さ
せたい等という要求もある。On the other hand, there is a need to execute these operating systems simultaneously on one computer. For example, in a large-scale computer, there is a demand that an operating system for executing online processing associated with actual work and an operating system for development be operated by one computer. Or GU
There is also a demand for simultaneously operating an operating system having the I and an operating system having an excellent real-time property.
【0004】しかしながら、個々のオペレーティングシ
ステムは、単独で計算機資源の管理を実施することを仮
定しており、複数のオペレーティングシステムの共存
は、何らかの機構なしには不可能である。However, it is assumed that each operating system independently manages computer resources, and coexistence of a plurality of operating systems is impossible without some mechanism.
【0005】一台の計算機上で複数のオペレーティング
システムを動作させる機構としては、大型計算機で実現
されている仮想計算機方式(OSシリーズ第11巻 V
M、岡崎 世雄他著、共立出版株式会社)がある。仮想
計算機方式では、仮想計算機制御プログラムが全ハード
ウェア資源を占有して管理し、それを仮想化して仮想計
算機を構成する。仮想計算機を構成する制御部は、物理
メモリ、入出力機器装置、外部割り込み等を仮想化す
る。As a mechanism for operating a plurality of operating systems on a single computer, a virtual computer system (OS series, Vol. 11 V
M, Yoshio Okazaki et al., Kyoritsu Publishing Co., Ltd.). In the virtual machine system, a virtual machine control program occupies and manages all hardware resources, and virtualizes them to configure a virtual machine. The control unit configuring the virtual machine virtualizes a physical memory, an input / output device, an external interrupt, and the like.
【0006】例えば、分割された物理メモリは、各仮想
計算機に対してはあたかも0番地から始まる物理メモリ
のように振舞い、入出力装置を識別する装置番号も同様
に仮想化されている。更に、磁気ディスクの記憶領域も
分割して磁気ディスク装置の仮想化まで実現している。For example, the divided physical memory behaves as if it were a physical memory starting at address 0 for each virtual machine, and the device number for identifying the input / output device is also virtualized. Further, the storage area of the magnetic disk is also divided to realize the virtualization of the magnetic disk device.
【0007】各オペレーティングシステムは、制御プロ
グラムにより構築された仮想計算機上で実行されるよう
に制御プログラムによりスケジュールされる。 しか
し、大型計算機における仮想計算機方式では、計算機資
源を完全に仮想化、および、分割しようとするため、仮
想計算機を構成する制御部分が複雑であり問題である。Each operating system is scheduled by a control program to be executed on a virtual machine constructed by the control program. However, in the virtual computer system of a large computer, since the computer resources are to be completely virtualized and divided, the control part constituting the virtual computer is complicated and problematic.
【0008】また、特別なハードウェア支援がない場
合、仮想計算機上で動作するオペレーティングシステム
が発行する制御レジスタの設定、入出力命令等の特権命
令は、仮想計算機制御プログラムによりエミュレートし
なければならないため、オーバーヘッドが大きくなり問
題である。実際、仮想計算機を実装している大型計算機
では、仮想計算機用に特別なプロセッサ機能やマイクロ
コード等のハードウェアを追加してオーバーヘッドの削
減を図っている。仮想計算機方式は、完全に計算機資源
を仮想化することを目的としているため複雑であり、更
に、仮想計算機の高性能化のためには特殊なハードウェ
ア機構が必要であり問題である。[0008] Also, in the absence of special hardware support, privileged instructions such as control register setting and input / output instructions issued by an operating system running on a virtual machine must be emulated by a virtual machine control program. Therefore, the overhead increases, which is a problem. In fact, in a large-scale computer on which a virtual computer is mounted, a special processor function and hardware such as microcode are added for the virtual computer to reduce overhead. The virtual computer system is complicated because it aims to completely virtualize computer resources, and furthermore, a special hardware mechanism is required for improving the performance of the virtual computer, which is a problem.
【0009】一方、一台の計算機で複数のオペレーティ
ングシステムのインターフェイスを提供する技術とし
て、マイクロカーネルがある。マイクロカーネルでは、
マイクロカーネルの上に、ユーザに見せるオペレーティ
ングシステム機能を提供するオペレーティングシステム
サーバを構築し、ユーザはそのサーバを経由して計算機
資源を利用する。オペレーティングシステム毎のサーバ
を用意すれば、ユーザに様々のオペレーティングシステ
ム環境を提供することができる。On the other hand, there is a microkernel as a technique for providing an interface of a plurality of operating systems with one computer. In the microkernel,
On the microkernel, an operating system server that provides an operating system function to be shown to the user is constructed, and the user utilizes computer resources via the server. By preparing a server for each operating system, various operating system environments can be provided to the user.
【0010】しかし、マイクロカーネル方式では、オペ
レーティングシステムサーバをマイクロカーネルに合わ
せて新規に構築する必要がある。多くの場合、現在ある
オペレーティングシステムをマイクロカーネル上で動作
するように変更することになるが、スケジューリング、
メモリ管理等のカーネルの中枢部分も変更することにな
り、変更箇所が多く、また、変更箇所がオペレーティン
グシステムの中枢部分に及ぶため変更作業が複雑で容易
でなく問題である。However, in the microkernel system, it is necessary to newly construct an operating system server according to the microkernel. Often, you will need to change your existing operating system to run on a microkernel, but scheduling,
The core part of the kernel, such as memory management, is also changed, and there are many changes, and since the change extends to the core part of the operating system, the change operation is complicated, not easy, and is a problem.
【0011】また、オペレーティングシステムサーバは
マイクロカーネルのサービスを利用することになるが、
これは通常のオペレーティングシステムではないことで
あり、オーバーヘッドとなり性能低下をもたらす。The operating system server uses the service of the microkernel,
This is not a normal operating system, resulting in overhead and reduced performance.
【0012】[0012]
【発明が解決しようとする課題】従来の仮想計算機方式
は、複数のオペレーティングシステムを同時に動作させ
るために、全計算機資源を仮想化する手法によってい
た。しかし、この方式では制御プログラムが複雑になる
問題がある。更に、この方式では特権命令のエミュレー
ションが必要となるため、性能を得るには特別なハード
ウェアが必要であり問題である。The conventional virtual computer system relies on a method of virtualizing all computer resources in order to simultaneously operate a plurality of operating systems. However, this method has a problem that the control program becomes complicated. Furthermore, since this method requires emulation of privileged instructions, special hardware is required to obtain performance, which is a problem.
【0013】本発明は、オペレーティングシステムの初
期化処理部分、割り込み管理部分の変更、および、割り
込み管理プログラムの追加により、特別なハードウェア
なしで複数オペレーティングシステムの同時実行を実現
する。本発明では、特権命令のエミュレーションは不要
なため、各オペレーティングシステムの実行に新たなオ
ーバーヘッドは伴わない。The present invention realizes simultaneous execution of a plurality of operating systems without special hardware by changing the initialization processing portion and the interrupt management portion of the operating system, and adding an interrupt management program. In the present invention, emulation of privileged instructions is not required, so that execution of each operating system does not involve new overhead.
【0014】本発明によれば、第一のオペレーティング
システムを補完する機能を容易に追加でき、高機能な計
算機システムの構築が可能になる。更に、デバイスドラ
イバとは異なり、第一のオペレーティングシステムとは
全く独立して動作する機能を組み込むことができるた
め、第一のオペレーティングシステムに依存しない高信
頼化機能を追加することも可能になる。According to the present invention, a function that complements the first operating system can be easily added, and a high-performance computer system can be constructed. Furthermore, unlike the device driver, a function that operates completely independently of the first operating system can be incorporated, so that a high-reliability function independent of the first operating system can be added.
【0015】また、マイクロカーネル方式で複数のマル
チオペレーティングシステム環境を構成する方法では、
それぞれのオペレーティングシステムのインターフェイ
スを提供するオペレーティングシステムサーバの構築が
難しいという問題がある。本発明によれば、オペレーテ
ィングシステムへの変更は初期化部分と割り込み管理部
分のみに限定されるため、簡単にマルチオペレーティン
グシステム環境を構成できる。Further, in a method of configuring a plurality of multi-operating system environments by a microkernel system,
There is a problem that it is difficult to construct an operating system server that provides an interface for each operating system. According to the present invention, the change to the operating system is limited to only the initialization part and the interrupt management part, so that a multi-operating system environment can be easily configured.
【0016】[0016]
【課題を解決するための手段】本発明は、第一のOSに
おいて、第二のOSが必要とする物理メモリ、外部デバ
イス等の計算機資源を予約し、どちらのOSからも独立
した管理プログラムが外部割り込みを横取りして、割り
込み要因によりどのOSの割り込みハンドラを起動すべ
きか決定し、OSの実行状態により割り込みハンドラを
起動するタイミングを決定して、それの基づいて各OS
の割り込みハンドラを起動することにより、2つのOS
を一台の計算機で動作させる。According to the present invention, a first OS reserves computer resources such as a physical memory and an external device required by a second OS, and a management program independent of both OSs. By intercepting an external interrupt, determining which OS's interrupt handler should be activated based on the interrupt factor, determining the timing of activating the interrupt handler based on the execution state of the OS, and determining each OS based on the determined timing.
By starting the interrupt handler of
Is operated by one computer.
【0017】[0017]
【発明の実施の形態】本発明の実施の形態について説明
する。Embodiments of the present invention will be described.
【0018】以下、図面を用いて本発明の実施の形態に
ついて説明する。図1は本発明の実施の形態における計
算機100の構成を示す図である。An embodiment of the present invention will be described below with reference to the drawings. FIG. 1 is a diagram showing a configuration of a computer 100 according to the embodiment of the present invention.
【0019】計算機100は、プロセッサ101、主記
憶装置102、バス109、割り込み信号線110、ク
ロック割り込み生成器111、割り込み制御装置11
2、ブート手順を格納している記憶装置118、およ
び、割り込みバス119より構成されている。The computer 100 includes a processor 101, a main storage device 102, a bus 109, an interrupt signal line 110, a clock interrupt generator 111, and an interrupt control device 11.
2. It is composed of a storage device 118 for storing a boot procedure and an interrupt bus 119.
【0020】割り込み信号線110は、外部の入出力機
器と割り込み制御装置112を接続している。外部機器
が割り込みを発生すると、割り込み信号線110を経由
して割り込み制御装置112が信号を受けとり、割り込
み制御装置112は、この信号を数値化して、割り込み
バス119を介してプロセッサ101に渡す。The interrupt signal line 110 connects an external input / output device and the interrupt control device 112. When an external device generates an interrupt, the interrupt control device 112 receives a signal via the interrupt signal line 110, and the interrupt control device 112 digitizes this signal and passes it to the processor 101 via the interrupt bus 119.
【0021】クロック割り込み生成器111は、周期的
な割り込みを生成する。The clock interrupt generator 111 generates a periodic interrupt.
【0022】割り込み制御装置112は、外部機器から
の割り込み要求を受け付け、要求元にしたがって数値化
された割り込み信号を生成し、プロセッサ101に送
る。また、プロセッサ101からの指示により、特定の
機器からの割り込み信号をプロセッサ101に通知しな
いようにすることができるとする。The interrupt control device 112 receives an interrupt request from an external device, generates a numerically-defined interrupt signal according to the request source, and sends it to the processor 101. It is also assumed that an instruction from the processor 101 can prevent an interrupt signal from a specific device from being notified to the processor 101.
【0023】プロセッサ101は、演算装置103、割
り込みテーブルレジスタ104、ページテーブルレジス
タ105、および、アドレス変換装置106より構成さ
れている。The processor 101 comprises an arithmetic unit 103, an interrupt table register 104, a page table register 105, and an address conversion unit 106.
【0024】割り込みテーブルレジスタ104は、割り
込みテーブル107の仮想アドレスを指し示している。
割り込みテーブルの詳細については後述するが、割り込
み番号毎の割り込みハンドラの開始アドレスを記録して
いる。図1で、割り込みテーブルレジスタ104と割り
込みテーブル107の接続を破線で記載しているのは、
割り込みテーブルレジスタ104が割り込みテーブルの
仮想アドレスを指し示すためである。割り込みが発生す
ると、プロセッサ101は割り込み制御装置112から
数値化された割り込み番号を受ける。この番号をインデ
ックスとして割り込みテーブル107より割り込みハン
ドラアドレスを取得し、割り込みハンドラに制御を渡
す。The interrupt table register 104 indicates a virtual address of the interrupt table 107.
Although details of the interrupt table will be described later, the start address of the interrupt handler for each interrupt number is recorded. In FIG. 1, the connection between the interrupt table register 104 and the interrupt table 107 is indicated by a broken line.
This is because the interrupt table register 104 indicates the virtual address of the interrupt table. When an interrupt occurs, the processor 101 receives a digitized interrupt number from the interrupt controller 112. Using this number as an index, an interrupt handler address is obtained from the interrupt table 107, and control is passed to the interrupt handler.
【0025】ページテーブルレジスタ105は、ページ
テーブル108を指し示している。ページテーブルレジ
スタ105は、ページテーブル108の物理アドレスを
格納している。The page table register 105 points to the page table 108. The page table register 105 stores the physical address of the page table 108.
【0026】アドレス変換装置106は、演算装置が要
求する命令アドレス、あるいは、オペランドが格納され
ているアドレスを受けとり、ページテーブルレジスタ1
05の指しているページテーブル108の内容に基づき
仮想−実アドレス変換を実施する。The address translator 106 receives the instruction address requested by the arithmetic unit or the address where the operand is stored, and
The virtual-to-real address conversion is performed based on the contents of the page table 108 indicated by the reference numeral 05.
【0027】計算機100には外部入出力装置としてキ
ーボード113、ディスプレイ114、磁気ディスク1
15、その他の外部機器116、および、117が接続
している。ディスプレイ114を除く機器は割り込み信
号線110により割り込み制御装置112に接続してい
る。The computer 100 has a keyboard 113, a display 114, and a magnetic disk 1 as external input / output devices.
15, other external devices 116 and 117 are connected. Devices other than the display 114 are connected to the interrupt control device 112 via the interrupt signal line 110.
【0028】主記憶装置102の内容について簡単に説
明する。現在、計算機101では2つのオペレーティン
グシステムが動作している。それぞれを第一のオペレー
ティングシステム、第二のオペレーティングシステムと
呼ぶことにする。また、計算機を起動すると第一のOS
が起動するように設定されており、外部機器116、お
よび、117は第二のOSにより管理される機器である
とする。The contents of the main storage device 102 will be briefly described. At present, two operating systems are operating on the computer 101. These will be referred to as a first operating system and a second operating system, respectively. When the computer is started, the first OS
Are set to be activated, and the external devices 116 and 117 are devices managed by the second OS.
【0029】第一のOSは、起動時の初期化処理で、そ
の他のオペレーティングシステム用に、この場合は第二
のOS用に物理メモリ領域を予約する。つまり、第一の
OSが、第二のOS用に予約された物理メモリ領域を利
用できないように物理メモリ領域を確保する。図1は、
この奪った領域に第二のOSがロードされている様子を
示している。The first OS reserves a physical memory area for other operating systems, in this case, for the second OS in an initialization process at the time of startup. That is, the physical memory area is secured so that the first OS cannot use the physical memory area reserved for the second OS. FIG.
This shows a state where the second OS is loaded in the deprived area.
【0030】更に、第一のOSの初期化過程では、第一
のOSから外部機器116、および、117の利用する
割り込み番号や入出力アドレスを、既に利用済みである
として予約する。Further, in the initialization process of the first OS, the interrupt numbers and input / output addresses used by the external devices 116 and 117 from the first OS are reserved as already used.
【0031】また、第一のOSは、すべてのオペレーテ
ィングシステムから参照可能な共通領域を持つ。その共
通領域に、割り込みテーブル107、割り込み管理プロ
グラム、割り込みハンドラ、各オペレーティングシステ
ムから呼びだし可能なインターフェイスモジュール等を
格納する。The first OS has a common area that can be referred to from all operating systems. The common area stores an interrupt table 107, an interrupt management program, an interrupt handler, an interface module that can be called from each operating system, and the like.
【0032】本発明の実施の形態の、動作概要について
説明する。本実施の形態では、第二のOSは第一のOS
よりも優先して動作する。優先して動作するとは、第一
のOSは第二のOSがアイドル状態であるときのみ動作
可能であることを示す。第二のOSの処理が終了しない
限り、第一のOSは動作できない。An outline of the operation of the embodiment of the present invention will be described. In the present embodiment, the second OS is the first OS
Operate with priority over To operate with priority means that the first OS can operate only when the second OS is in the idle state. Unless the processing of the second OS is completed, the first OS cannot operate.
【0033】また、第二のOSが管理するデバイスが割
り込みを発生すると、第一のOSの処理は中断され、制
御は第二のOSに移る。第二のOS実行中に第一の割り
込みが発生しても、その割り込み処理は第一のOSが実
行されるまで延期される。When a device managed by the second OS generates an interrupt, the processing of the first OS is interrupted, and control is transferred to the second OS. Even if the first interrupt occurs during the execution of the second OS, the interrupt processing is postponed until the first OS is executed.
【0034】さらに、第一のOSと第二のOSは明確に
区分されており、割り込みハンドラなどを配置する共通
領域以外は、互いにアクセスできないようにする。これ
により、2つのオペレーティングシステムが誤って互い
の領域にアクセスして障害が起きることを防いでいる。Further, the first OS and the second OS are clearly separated from each other so that they cannot access each other except for a common area where an interrupt handler and the like are arranged. This prevents the two operating systems from accidentally accessing each other's area and causing a failure.
【0035】以下、上記の機能を実現する本発明の実施
形態について説明する。Hereinafter, embodiments of the present invention that realize the above functions will be described.
【0036】図2は、本発明の実施の形態における2つ
のオペレーティングシステムの関係を概念的に示した図
である。それぞれのオペレーティングシステムは、それ
ぞれ独立したアドレス空間を保持する。201は第一の
OSの仮想空間で、202は第二のOSの仮想空間を示
している。ここで、第二のOSの空間202に対応する
実記憶は、図1の主記憶102の第二のOSの領域にな
る。FIG. 2 is a diagram conceptually showing a relationship between two operating systems according to the embodiment of the present invention. Each operating system has an independent address space. 201 is a virtual space of the first OS, and 202 is a virtual space of the second OS. Here, the real storage corresponding to the space 202 of the second OS is the area of the second OS in the main storage 102 in FIG.
【0037】仮想空間の一部分には、共通領域203が
マップされる。共通領域203に対応する実記憶は、図
1の主記憶102の共通領域として示した領域である。
共通領域203は、もともとは第一のOSのカーネルの
領域の一部である。第二のOSをロードする手順が、ア
ドレス空間202を構築する時に、共通領域203をア
ドレス空間202にマッピングするように第二のOS用
のページテーブルを作成する。この手順については後述
する。The common area 203 is mapped to a part of the virtual space. The real storage corresponding to the common area 203 is the area shown as the common area of the main storage 102 in FIG.
The common area 203 is originally a part of the area of the kernel of the first OS. The procedure for loading the second OS creates a page table for the second OS so that the common area 203 is mapped to the address space 202 when the address space 202 is constructed. This procedure will be described later.
【0038】図2は、各オペレーティングシステムが管
理するハードウェアを示している。第一のOSは、キー
ボード113、ディスプレイ114、および、磁気ディ
スク115を、第二のOSは入出力装置116、およ
び、117を管理することを示している。クロック11
1と割り込み制御装置112は、もともとは第一のOS
が管理しているハードウェアであるが、共通領域203
中のプログラムが管理することを示している。FIG. 2 shows hardware managed by each operating system. The first OS manages the keyboard 113, the display 114, and the magnetic disk 115, and the second OS manages the input / output devices 116 and 117. Clock 11
1 and the interrupt controller 112 are originally the first OS
Is the hardware managed by the common area 203
Indicates that the program inside manages.
【0039】次に、ページテーブルの構成について説明
する。図3は、本発明の実施の実施の形態でのページテ
ーブルの構成を示している。Next, the configuration of the page table will be described. FIG. 3 shows a configuration of the page table according to the embodiment of the present invention.
【0040】300がページテーブルである。ページテ
ーブル300は、プロセッサ101の仮想アドレス空間
の仮想ページ毎に、それぞれの仮想ページを記述するエ
ントリを持っている。それぞれのエントリは、有効ビッ
ト301と、物理ページ番号302により構成される。Reference numeral 300 denotes a page table. The page table 300 has an entry describing each virtual page for each virtual page in the virtual address space of the processor 101. Each entry is composed of a valid bit 301 and a physical page number 302.
【0041】有効ビット301は、その仮想ページに対
応する物理ページが割り当てられているか、つまり、仮
想−実アドレス変換が可能かを示している。例えば、ペ
ージテーブル300の仮想ページ3は、有効ビットがセ
ットされていないので、仮想ページ3に対応する物理ペ
ージが存在しないことを示している。有効ビット301
がセットされていない仮想ページへのアクセスが発生す
ると、プロセッサはページフォルトを発生する。The valid bit 301 indicates whether a physical page corresponding to the virtual page is allocated, that is, whether virtual-real address conversion is possible. For example, the virtual page 3 of the page table 300 has no valid bit set, indicating that there is no physical page corresponding to the virtual page 3. Valid bit 301
When an access to a virtual page for which is not set occurs, the processor generates a page fault.
【0042】物理ページ番号302は、仮想ページに対
応する物理ページ番号を記録している。The physical page number 302 records a physical page number corresponding to a virtual page.
【0043】アドレス変換装置106は、ページテーブ
ルレジスタ105の指し示しているページテーブルの内
容を参照して、演算装置103の生成する仮想アドレス
を実アドレスに変換する。プロセッサ101は、変換に
より得られた実アドレスにより主記憶装置102を参照
する。The address translation unit 106 translates a virtual address generated by the arithmetic unit 103 into a real address with reference to the contents of the page table pointed to by the page table register 105. The processor 101 refers to the main storage device 102 based on the real address obtained by the conversion.
【0044】ページテーブルを切替えることにより独立
した空間を構築することができ、図2に示した第一のオ
ペレーティングシステムの空間、および、第二のオペレ
ーティングシステムの空間の構築が可能である。また、
共通領域203については、両方のオペレーティングシ
ステムのページテーブルの共通領域に対応する部分に、
同じ物理ページをマップするように設定しておけば、共
通領域を実現できる。By switching the page tables, an independent space can be constructed, and a space for the first operating system and a space for the second operating system shown in FIG. 2 can be constructed. Also,
Regarding the common area 203, a portion corresponding to the common area of the page tables of both operating systems includes:
If the same physical page is set to be mapped, a common area can be realized.
【0045】次に、割り込みテーブルの構成について説
明する。図4は、割り込みテーブルの構成を示してい
る。Next, the configuration of the interrupt table will be described. FIG. 4 shows the configuration of the interrupt table.
【0046】400が割り込みテーブルである。割り込
みテーブル400は、プロセッサ101が割り込み制御
装置112から受ける割り込み番号毎の、割り込みハン
ドラの仮想アドレス401を記録している。プロセッサ
101は割り込み要求を割り込み制御装置112から受
けると、割り込み番号に対応する割り込みハンドラのア
ドレスを、割り込みテーブルレジスタ104の指し示し
ている割り込みテーブル400から取得し、そのアドレ
スに制御を移すことで割り込み処理を開始する。Reference numeral 400 denotes an interrupt table. The interrupt table 400 records a virtual address 401 of an interrupt handler for each interrupt number received by the processor 101 from the interrupt controller 112. When receiving an interrupt request from the interrupt control device 112, the processor 101 obtains the address of the interrupt handler corresponding to the interrupt number from the interrupt table 400 indicated by the interrupt table register 104, and transfers control to the address to execute the interrupt processing. To start.
【0047】図5は、割り込み制御装置112を示して
いる。割り込み制御装置112は、割り込みマスクレジ
スタ501、および、選択装置502を持っている。FIG. 5 shows the interrupt control device 112. The interrupt control device 112 has an interrupt mask register 501 and a selection device 502.
【0048】割り込みを発生する入出力装置は、割り込
み信号線110により割り込み制御装置112と接続す
る。入出力機器の発生する割り込みは、割り込み信号線
110のどの信号線に接続するかにより優先順位が付け
られる。ここでは、割り込み0番に対応する割り込み信
号がもっとも優先度が高い割り込みであるとする。An input / output device that generates an interrupt is connected to an interrupt control device 112 through an interrupt signal line 110. The priority of the interrupt generated by the input / output device is determined depending on which signal line of the interrupt signal line 110 is connected. Here, it is assumed that the interrupt signal corresponding to the interrupt 0 is the interrupt having the highest priority.
【0049】割り込み信号線110は、選択装置502
に接続している。選択装置502は、割り込み信号を受
けると、プロセッサがその割り込みを受け付けたことを
通知するまで、未処理の割り込みがあることを記録して
いる。The interrupt signal line 110 is connected to the selection device 502
Connected to Upon receiving the interrupt signal, the selecting device 502 records that there is an unprocessed interrupt until the processor notifies that the interrupt has been received.
【0050】割り込みマスクレジスタ501は、入出力
機器の発生した割り込みをプロセッサに通知してよいか
を記録している。割り込みマスクレジスタ501は、プ
ロセッサ101から入出力命令により設定可能である。The interrupt mask register 501 records whether an interrupt generated by an input / output device may be notified to a processor. The interrupt mask register 501 can be set by an input / output instruction from the processor 101.
【0051】選択装置502は、割り込み信号線110
から割り込み要求を受けた時と、割り込みマスクレジス
タ501の内容が書き換えられた時に、選択装置502
が記録している未処理割り込みと、割り込みマスクレジ
スタ502の内容を比較して、プロセッサに割り込みを
通知するかどうかを決める。具体的には、選択装置50
2が記録している未処理割り込みのうち、割り込みマス
クレジスタ501に割り込み可能と設定されていて、優
先度の最も高い割り込みから順にプロセッサに通知す
る。選択した割り込みについて、選択装置502は、通
知する割り込み信号に対応する数字信号を、割り込みバ
ス119経由でプロセッサ101に送る。The selection device 502 is connected to the interrupt signal line 110
When the interrupt request is received from the CPU and when the contents of the interrupt mask register 501 are rewritten,
Is compared with the contents of the interrupt mask register 502 to determine whether or not to notify the processor of the interrupt. Specifically, the selection device 50
Among the unprocessed interrupts recorded in No. 2, the interrupt mask register 501 is set to enable interrupts, and the interrupt is notified to the processor in order from the interrupt having the highest priority. For the selected interrupt, the selecting device 502 sends a numerical signal corresponding to the interrupt signal to be notified to the processor 101 via the interrupt bus 119.
【0052】プロセッサ101は、割り込みを受けた時
に、入出力命令により選択装置502に記録されている
未処理割り込み記録を解消できる。When receiving an interrupt, the processor 101 can cancel the unprocessed interrupt record recorded in the selecting device 502 by the input / output instruction.
【0053】次に、本発明の実施の形態における、計算
機のブート手順について説明する。Next, a description will be given of a computer boot procedure in the embodiment of the present invention.
【0054】ブート手順の始めの部分は、読みとり専用
記憶装置である118に格納されている。記憶装置11
8は、プロセッサの物理アドレス空間のある決められた
アドレスにマップされるようにバス109を介してプロ
セッサ101に接続している。この手順は、ハードウェ
ア構成の検出、オペレーティングシステムカーネルをロ
ードするプログラムの主記憶へのローディングを実施す
る。The beginning of the boot procedure is stored in a read-only storage device 118. Storage device 11
8 is connected to the processor 101 via the bus 109 so as to be mapped to a predetermined address in the physical address space of the processor. In this procedure, a hardware configuration is detected, and a program for loading an operating system kernel is loaded into a main memory.
【0055】プロセッサ101がリセットされると、プ
ロセッサ101は予め定められた物理アドレスに制御を
移す。記憶装置118は、この時に実行されるプログラ
ムを格納しており、プロセッサ101がリセットされた
時にこのプログラムに制御を渡せるように物理アドレス
空間にマップされている。When the processor 101 is reset, the processor 101 transfers control to a predetermined physical address. The storage device 118 stores a program to be executed at this time, and is mapped to a physical address space so that control can be passed to the program when the processor 101 is reset.
【0056】記憶装置118に格納されているプログラ
ムは、磁気ディスク装置112に格納されている第一の
OSのカーネルローダを主記憶装置102にロードして
実行する。カーネルローダは、磁気ディスク装置112
の予め定められた位置にあり、記憶装置118に格納さ
れたプログラムは、容易にこれを見つけることができ
る。The program stored in the storage device 118 loads the kernel loader of the first OS stored in the magnetic disk device 112 into the main storage device 102 and executes it. The kernel loader is used for the magnetic disk drive 112
The program stored in the storage device 118 at a predetermined position can easily find this.
【0057】カーネルローダの処理手順について説明す
る。図6は、本発明の実施の形態における、オペレーテ
ィングシステムのカーネルローダの処理手順を示すフロ
ーチャートである。The processing procedure of the kernel loader will be described. FIG. 6 is a flowchart showing a processing procedure of the kernel loader of the operating system according to the embodiment of the present invention.
【0058】このカーネルローダは、オペレーティング
システムのファイルシステム構造を理解して、ファイル
名よりファイルの格納位置を特定し、主記憶に読み込む
ことができるよう構成されている。The kernel loader is configured to understand the file system structure of the operating system, specify the storage location of the file from the file name, and read the file into the main memory.
【0059】カーネルローダの処理手順について説明す
る。まず、カーネルにパラメータとして渡す主記憶リス
ト1101、ロードモジュールリスト1104、およ
び、デバイスリスト1102を初期化し、カーネル用の
ページテーブル領域を割り当てる(ステップ601)。
3つのリストの構成については後述する。The processing procedure of the kernel loader will be described. First, a main storage list 1101, a load module list 1104, and a device list 1102 to be passed as parameters to the kernel are initialized, and a page table area for the kernel is allocated (step 601).
The configuration of the three lists will be described later.
【0060】主記憶リスト1101は、主記憶装置10
2の利用状況を示すデータ構造であり、カーネルローダ
が以降の処理で物理メモリの割り当てをする場合は、主
記憶リスト1101を参照、および、変更して実施す
る。The main storage list 1101 stores the main storage device 10
This is a data structure indicating the usage status of the second memory. When the kernel loader allocates physical memory in the subsequent processing, the kernel loader refers to the main storage list 1101 and changes it.
【0061】次に、ハードウェア構成の検査(ステップ
602)、および、ハードウェア構成データの作成(ス
テップ603)を実施する。ステップ602において
は、計算機100にどのような接続されているかハード
ウェアが検査する。続くステップ603では、ステップ
602の結果に基づいてハードウェア構成に関するデー
タ構造であるデバイスリスト1102を作成する。オペ
レーティングシステムカーネルは、このデバイスリスト
1102を参照してカーネル初期化処理を実施する。Next, inspection of the hardware configuration (step 602) and creation of hardware configuration data (step 603) are performed. In step 602, the hardware checks how the computer 100 is connected. In the following step 603, a device list 1102, which is a data structure relating to the hardware configuration, is created based on the result of step 602. The operating system kernel performs kernel initialization processing with reference to the device list 1102.
【0062】次に、オペレーティングシステムカーネル
の構成情報700を磁気ディスク装置112より読み込
み、パラメータテーブル1100に構成情報のアドレス
を設定する(ステップ604)。オペレーティングシス
テムのカーネルは、カーネル本体のファイルと、その他
のデバイスドライバのファイルといったように、複数の
ファイルから構成されていても良い。構成情報700
は、予め決められたファイル名で磁気ディスク112に
格納されており、ロードプログラムはこれを見つけるこ
とができる。Next, the configuration information 700 of the operating system kernel is read from the magnetic disk device 112, and the address of the configuration information is set in the parameter table 1100 (step 604). The kernel of the operating system may be composed of a plurality of files such as a file of the kernel itself and a file of another device driver. Configuration information 700
Is stored on the magnetic disk 112 with a predetermined file name, and the load program can find it.
【0063】本発明の実施形態におけるカーネル構成情
報のデータ構造を図7に示す。700は、カーネル構成
情報を記録しているファイルの内容を示している。構成
情報ファイル700は、カーネルローダやオペレーティ
ングシステムが参照するデータを格納している。格納さ
れているデータには名前がつけられており、プログラム
は名前からそれに対応するデータを取得することができ
る。図7の例では、名前がオブジェクトファイル(70
1)というエントリがあり、そのデータが702に格納
されている。また、secondary OSには、第二のOS用の
データ(704)を格納しているとする。FIG. 7 shows the data structure of the kernel configuration information according to the embodiment of the present invention. Reference numeral 700 denotes the contents of a file recording kernel configuration information. The configuration information file 700 stores data referred to by the kernel loader and the operating system. The stored data is given a name, and the program can obtain the corresponding data from the name. In the example of FIG. 7, the name is the object file (70
There is an entry 1), and its data is stored in 702. It is also assumed that data (704) for the second OS is stored in the secondary OS.
【0064】カーネルローダの処理手順の説明を続け
る。構成情報700を読み込んだ後、構成情報700中
のオブジェクトファイルという名前のつけられたデータ
に格納されているカーネル構成ファイルのすべてについ
て、主記憶装置102に読み込み(ステップ606)、
ロードモジュールリスト1104にエントリを追加し
(ステップ607)、カーネル用のページテーブルの設
定(ステップ608)を実施する。ここでは、kern
el、driver1、および、driver2という
ファイル名のオブジェクトファイルをロードする。The description of the processing procedure of the kernel loader will be continued. After reading the configuration information 700, all the kernel configuration files stored in the data named object file in the configuration information 700 are read into the main storage device 102 (step 606).
An entry is added to the load module list 1104 (step 607), and a page table for the kernel is set (step 608). Here, kern
Load the object files with the file names el, driver1, and driver2.
【0065】ロードモジュールリストエントリの追加
と、カーネル用のページテーブルの設定は、主記憶10
2にロードしたオブジェクトファイルに格納されている
データにしたがって実施する。カーネルを構成するオブ
ジェクトファイルには、そのファイル内容をマップする
仮想アドレス、ファイルの大きさなどが含まれている。
これを参照してページテーブルを構築する。オブジェク
トファイルのデータ構造については後述する。The addition of the load module list entry and the setting of the page table for the kernel are performed in the main memory 10.
2 according to the data stored in the object file loaded. The object file constituting the kernel includes a virtual address for mapping the contents of the file, the size of the file, and the like.
Build a page table by referring to this. The data structure of the object file will be described later.
【0066】最後に、ページテーブルレジスタ105
を、構築したページテーブルのアドレスに設定し、プロ
セッサを仮想アドレス変換モードに移行させ(ステップ
609)、構築した主記憶リスト1101、デバイスリ
スト1102、カーネル構成情報テーブル1103、お
よび、ロードオブジェクトリスト1104の組から成る
パラメータテーブル1110をパラメータとして、カー
ネルの初期化ルーチンに制御を渡す(ステップ61
0)。カーネルのエントリポイントは、カーネルファイ
ル内のデータに記録されている。Finally, the page table register 105
Is set to the address of the constructed page table, the processor is shifted to the virtual address translation mode (step 609), and the constructed main storage list 1101, device list 1102, kernel configuration information table 1103, and load object list 1104 The control is passed to the initialization routine of the kernel using the parameter table 1110 composed of a set as a parameter (step 61).
0). The entry point of the kernel is recorded in data in the kernel file.
【0067】次に、カーネルを構成するオブジェクトフ
ァイルの構造について説明する。図8は、本発明の実施
の形態での、カーネルを構成するオブジェクトファイル
の構造を示す図である。Next, the structure of an object file constituting the kernel will be described. FIG. 8 is a diagram showing a structure of an object file constituting a kernel according to the embodiment of the present invention.
【0068】800は、オブジェクトファイル全体を示
している。オブジェクトファイル800は、801ない
し811のヘッダ部分と、812ないし813のセクシ
ョン部分より構成される。Reference numeral 800 denotes the entire object file. The object file 800 includes a header portion 801 to 811 and a section portion 812 to 813.
【0069】ヘッダ部分の構成について説明する。ヘッ
ダマップアドレス801とヘッダサイズ802は、オブ
ジェクトファイル800ヘッダ部分のカーネル空間での
格納位置を記述している。ヘッダ部分は、ヘッダマップ
アドレス801に記録されているアドレスに読み込まれ
る。The structure of the header will be described. The header map address 801 and the header size 802 describe the storage location of the header portion of the object file 800 in the kernel space. The header portion is read at the address recorded in the header map address 801.
【0070】初期化エントリ803は、オブジェクトフ
ァイル800の初期化用ルーチンのアドレスを記録して
いる。カーネルは、カーネル初期化時に各オブジェクト
ファイルの初期化ルーチンを呼ぶときに、各オブジェク
トファイルの初期化エントリ803を参照して初期化ル
ーチンを見つける。The initialization entry 803 records the address of the initialization routine of the object file 800. When the kernel calls the initialization routine of each object file at the time of kernel initialization, the kernel refers to the initialization entry 803 of each object file to find the initialization routine.
【0071】セクション数804は、オブジェクトファ
イル800に含まれているセクションの数を記録してい
る。セクションとは、オブジェクトファイル内の連続し
ているデータ領域で、これを単位としてカーネルの仮想
空間へのマッピングを決定する。例えば、オブジェクト
ファイルは、実行コードが格納されているセクション
と、そのオブジェクトファイルが参照するデータを格納
しているセクションを含んでいる。これらのセクション
はオブジェクトファイル作成時にコンパイラにより作成
される。The section number 804 records the number of sections included in the object file 800. A section is a continuous data area in an object file, and the mapping of the kernel to the virtual space is determined in units of the data area. For example, the object file includes a section storing the execution code and a section storing data referred to by the object file. These sections are created by the compiler when the object file is created.
【0072】外部参照テーブルオフセット805と外部
参照テーブルサイズ806は、このオブジェクトファイ
ル内の実行コードが参照する、他のオブジェクトファイ
ルの公開参照の情報を格納する外部参照テーブル810
を記述している。外部参照テーブル810は、オブジェ
クトファイル800のヘッダ部分に含まれており、外部
参照テーブルオフセット805は、ヘッダの先頭からの
外部参照テーブル810のオフセットを記録している。The external reference table offset 805 and the external reference table size 806 are the external reference table 810 for storing information of public reference of another object file referred to by the execution code in this object file.
Is described. The external reference table 810 is included in the header part of the object file 800, and the external reference table offset 805 records the offset of the external reference table 810 from the head of the header.
【0073】公開参照テーブルオフセット807と公開
参照テーブルサイズ808は、このオブジェクトファイ
ルが他のオブジェクトファイルの実行コードに公開して
いるモジュールとデータの情報を格納している公開参照
テーブル811を記述している。公開参照テーブル81
1は、オブジェクトファイル800のヘッダ部分に含ま
れており、公開参照テーブルオフセット807は、ヘッ
ダの先頭からの公開参照テーブル811のオフセットを
記録している。The public reference table offset 807 and the public reference table size 808 describe a public reference table 811 that stores information on modules and data that this object file discloses to execution codes of other object files. I have. Public reference table 81
1 is included in the header portion of the object file 800, and the public reference table offset 807 records the offset of the public reference table 811 from the head of the header.
【0074】セクションデータ809は、オブジェクト
ファイル800に含まれる各セクションについてのデー
タを格納している。セクションデータは、セクション数
804の数だけある。セクションデータの構成について
は後述する。The section data 809 stores data on each section included in the object file 800. The number of section data is equal to the number of sections 804. The structure of the section data will be described later.
【0075】セクションデータの後に外部参照テーブル
810と、公開参照テーブル811が続き、ヘッダ部分
を構成する。After the section data, an external reference table 810 and a public reference table 811 follow to form a header portion.
【0076】ヘッダ部分の後には、各セクションの本体
812、813が格納されている。After the header part, main bodies 812 and 813 of each section are stored.
【0077】セクションデータ809の構成について説
明する。セクション開始オフセット820とセクション
サイズ821は、オブジェクトファイル800内での、
当該セクションの開始オフセットと、当該セクションの
大きさを記録している。The configuration of section data 809 will be described. The section start offset 820 and the section size 821 are defined in the object file 800 by:
The start offset of the section and the size of the section are recorded.
【0078】セクションは、セクションマップアドレス
822に記録されたアドレスに配置されるようにカーネ
ルの仮想空間にマップされる。セクション名称823に
は、当該セクションの名前を示す文字列が格納されてい
る。The section is mapped in the kernel virtual space so as to be located at the address recorded in the section map address 822. The section name 823 stores a character string indicating the name of the section.
【0079】外部参照テーブルの構造について説明す
る。図9は、外部参照テーブルの構造を示している。テ
ーブル810の先頭には、このテーブルに含まれる外部
参照情報の数901が格納されている。The structure of the external reference table will be described. FIG. 9 shows the structure of the external reference table. At the head of the table 810, the number 901 of external reference information included in this table is stored.
【0080】続いて、オブジェクトファイル名902、
外部参照名903が格納されている。オブジェクトファ
イル名902と外部参照名903は、文字列テーブル9
05へのオフセット値を格納しており、実際の文字列に
よる名称は文字列テーブル905内に格納されている。Subsequently, an object file name 902,
An external reference name 903 is stored. The object file name 902 and the external reference name 903 correspond to the character string table 9
05, and the actual name of the character string is stored in the character string table 905.
【0081】外部参照アドレス904には、この当該外
部参照エントリで記述される外部参照の実際のアドレス
が格納される。カーネルは、オブジェクトファイルを主
記憶にロードするときに、当該の外部参照を含むオブジ
ェクトファイルの公開参照のテーブルを参照して関数、
あるいは、データのアドレスを取得し、外部参照アドレ
ス904に設定する。オブジェクトファイルの実行コー
ドは、外部関数アドレス904に格納されたアドレスを
参照して、他のオブジェクトファイル内の関数の呼び出
しや、データの参照をするようコンパイルされており、
他オブジェクトモジュールにある関数の実行や、データ
参照が可能である。The external reference address 904 stores the actual address of the external reference described by the external reference entry. When loading the object file into the main memory, the kernel refers to the public reference table of the object file including the external reference, and performs a function,
Alternatively, the address of the data is obtained and set as the external reference address 904. The execution code of the object file is compiled so as to refer to the address stored in the external function address 904, call a function in another object file, and refer to data.
Functions in other object modules can be executed and data can be referenced.
【0082】オブジェクトファイル名902、外部参照
名903、および、外部参照アドレス904が1つの外
部参照を定義し、外部参照数901に記録されている数
だけ、これらのエントリが連続して配置される。その後
に、文字列テーブル905が格納される。文字列テーブ
ルは、オブジェクトファイル名や、外部参照名の文字列
を格納している。The object file name 902, the external reference name 903, and the external reference address 904 define one external reference, and these entries are continuously arranged by the number recorded in the external reference number 901. . After that, the character string table 905 is stored. The character string table stores character strings of object file names and external reference names.
【0083】公開参照テーブルの構造について説明す
る。図10は、公開参照テーブルの構造を示す図であ
る。The structure of the public reference table will be described. FIG. 10 is a diagram showing the structure of the public reference table.
【0084】テーブル811の先頭には、この公開参照
テーブル811により他のオブジェクトモジュールに公
開される参照名の数1001が記録されている。1つの
公開参照は、公開参照名1002と公開参照アドレス1
003により記述される。公開参照名1002は、文字
列テーブル1004へのオフセット値を格納しており、
実際の文字列による名前は文字列テーブル1004に格
納されている。公開参照アドレス1003は、この参照
に対応するアドレスを格納している。At the head of the table 811 is recorded the number 1001 of reference names that are made public to other object modules by the public reference table 811. One public reference is a public reference name 1002 and a public reference address 1
003. The public reference name 1002 stores an offset value to the character string table 1004,
The actual name of the character string is stored in the character string table 1004. The public reference address 1003 stores an address corresponding to this reference.
【0085】次に、ステップ601から始まるブート手
順が作成するハードウェア構成データと、ロードオブジ
ェクトデータの構成について説明する。図11がハード
ウェア構成データとロードオブジェクトデータの構成を
示す図である。Next, the hardware configuration data created by the boot procedure starting from step 601 and the configuration of load object data will be described. FIG. 11 is a diagram showing the configuration of hardware configuration data and load object data.
【0086】パラメータテーブル1100は、カーネル
ローダが作成するデータ構造である。パラメータテーブ
ル1100から始まる3つのリストは、ローダが構築す
るカーネルの仮想空間に配置されるので、カーネルから
参照可能である。The parameter table 1100 is a data structure created by the kernel loader. The three lists starting from the parameter table 1100 are arranged in the virtual space of the kernel constructed by the loader, and can be referred to from the kernel.
【0087】パラメータテーブル1100は、ローダが
構築した3つのリストの先頭へのポインタと、1つのテ
ーブルへのポインタを保持している。3つのリストと
は、主記憶リスト1101、デバイスリスト1102、
および、ロードオブジェクトリスト1104で、1つの
テーブルはカーネル構成情報テーブル1103である。
それぞれについて説明する。The parameter table 1100 holds a pointer to the head of the three lists constructed by the loader and a pointer to one table. The three lists are a main storage list 1101, a device list 1102,
One table in the load object list 1104 is a kernel configuration information table 1103.
Each will be described.
【0088】主記憶リスト1101は、主記憶ブロック
記述データ1110のリストである。主記憶ブロック記
述データ1110は、ベースアドレス1111、ブロッ
クサイズ1112、ブロック利用状況1113、およ
び、次の主記憶ブロック記述データへのポインタ111
4から構成されている。The main storage list 1101 is a list of main storage block description data 1110. The main storage block description data 1110 includes a base address 1111, a block size 1112, a block usage status 1113, and a pointer 111 to the next main storage block description data.
4.
【0089】主記憶ブロック記述データは、ある連続し
た主記憶領域についての利用状況を記録している。ベー
スアドレス1111は連続領域の開始物理アドレスを示
し、ブロックサイズ1112は連続領域の大きさを格納
している。ブロック利用状況1113は、当該連続領域
が未使用であるか、あるいは、ローダにより割り当て済
みであるかを示す値が格納されている。そして、次エン
トリへのポインタ1114によりリストを構成してい
る。図11では、1110の次のエントリは1120で
ある。主記憶リスト1101を参照することで、物理メ
モリの利用状態を知ることができる。The main storage block description data records the usage status of a certain continuous main storage area. The base address 1111 indicates the start physical address of the continuous area, and the block size 1112 stores the size of the continuous area. The block usage status 1113 stores a value indicating whether the continuous area is unused or has been allocated by the loader. The list is constituted by the pointer 1114 to the next entry. In FIG. 11, the entry next to 1110 is 1120. By referring to the main storage list 1101, the use state of the physical memory can be known.
【0090】デバイスリスト1102は、カーネルロー
ダが検出したハードウェアデバイスに関するデータを格
納しており、ステップ603で作成されている。デバイ
スリスト1103は、デバイスデータ1150からなる
リストである。デバイスデータ1150は、デバイスタ
イプ1151、デバイス情報1152、および、次のデ
バイスデータへのポインタ1153より構成される。The device list 1102 stores data relating to the hardware devices detected by the kernel loader, and is created in step 603. The device list 1103 is a list including device data 1150. The device data 1150 includes a device type 1151, device information 1152, and a pointer 1153 to the next device data.
【0091】デバイスタイプ1151は、このデバイス
データエントリ1150により記述されるデバイスの種
類を示す値が格納されている。デバイス情報1152
は、デバイスの種類に特有なデータを格納している。例
えば、割り込み番号やI/Oアドレスなどがそれに相当
する。そして、次エントリへのポインタ1153により
リストを構成している。The device type 1151 stores a value indicating the type of the device described by the device data entry 1150. Device information 1152
Stores data specific to the type of device. For example, an interrupt number or an I / O address corresponds to this. The list is constituted by the pointer 1153 to the next entry.
【0092】カーネル構成情報テーブルへのポインタ1
103は、カーネルローダが主記憶102に読み込んだ
カーネル構成情報ファイル700の内容を指し示してい
る。Pointer 1 to kernel configuration information table
103 indicates the contents of the kernel configuration information file 700 read into the main memory 102 by the kernel loader.
【0093】ロードオブジェクトリスト1104は、カ
ーネルローダが主記憶にロードしたオブジェクトファイ
ルに関するデータを保持している。ロードオブジェクト
リストは、ロードオブジェクトデータ1130のリスト
である。ロードオブジェクトデータ1130は、オブジ
ェクトファイル名1131、オブジェクトアドレス11
32、および、次のロードオブジェクトデータへのポイ
ンタ1133より構成されている。The load object list 1104 holds data relating to the object file loaded into the main memory by the kernel loader. The load object list is a list of the load object data 1130. The load object data 1130 includes an object file name 1131 and an object address 11
32, and a pointer 1133 to the next load object data.
【0094】オブジェクトファイル名1131は、ロー
ドオブジェクトデータ1130により記述されているオ
ブジェクトファイルのファイル名である。オブジェクト
アドレス1132は、当該オブジェクトファイルのヘッ
ダ領域がロードされているカーネル空間のアドレスを格
納している。そして、次エントリへのポインタ1133
によりリストを構成している。The object file name 1131 is the file name of the object file described by the load object data 1130. The object address 1132 stores the address of the kernel space where the header area of the object file is loaded. Then, a pointer 1133 to the next entry
Constitutes a list.
【0095】ロードオブジェクトリスト1104は、カ
ーネルローダがカーネルを構成するオブジェクトファイ
ルを読み込む時に同時に作成している(ステップ60
7)。The load object list 1104 is created at the same time that the kernel loader reads the object file constituting the kernel (step 60).
7).
【0096】次に、本発明の実施の形態における第一の
OSの初期化手順について説明する。図12は、第一の
OSの初期化手順を示すフローチャートである。Next, a procedure for initializing the first OS according to the embodiment of the present invention will be described. FIG. 12 is a flowchart showing a procedure for initializing the first OS.
【0097】まず、パラメータとして渡されたパラメー
タテーブル1100中のロードオブジェクトリスト11
04を参照して、カーネルローダがロードしたオブジェ
クトファイルの外部参照アドレス解決を実施する(ステ
ップ1201)。アドレス解決では、各オブジェクトフ
ァイルにある外部参照テーブル810の、外部参照アド
レス904を決定する。アドレスは、各オブジェクトフ
ァイルの公開参照テーブル811を参照して決定する。First, the load object list 11 in the parameter table 1100 passed as a parameter
Referring to FIG. 04, the external reference address of the object file loaded by the kernel loader is resolved (step 1201). In the address resolution, the external reference address 904 of the external reference table 810 in each object file is determined. The address is determined with reference to the public reference table 811 of each object file.
【0098】続く、ステップ1202では、カーネル起
動時のパラメータとして渡されたパラメータテーブル1
100の主記憶リスト1101を参照して、第二のOS
用に主記憶領域を確保する。In the following step 1202, the parameter table 1 passed as a parameter at the time of kernel startup
100 with reference to the main storage list 1101 of the second OS
A main storage area for
【0099】具体的には、カーネル構成情報テーブル7
00より第二のOSの情報を取り出す。図7の例では、
第二のOSの構成情報は704に格納されている。この
構成情報704を参照して、確保すべき主記憶の大きさ
を決定する。そして、主記憶リスト1101の空きブロ
ックエントリの内容を変更して、主記憶領域を割り当て
る。この処理は、第一のOSが空きメモリ管理を始める
前に実施する。Specifically, the kernel configuration information table 7
The information of the second OS is extracted from 00. In the example of FIG.
The configuration information of the second OS is stored in 704. The size of the main memory to be secured is determined with reference to the configuration information 704. Then, the contents of the empty block entry in the main storage list 1101 are changed, and the main storage area is allocated. This process is performed before the first OS starts managing free memory.
【0100】これにより、第一のOSから見ると、第二
のOSに割り当てた主記憶領域は存在しないことにな
り、第一のOSから参照されることがなくなる。したが
って、割り当てた領域は、第二のOSが自由に使うこと
のできる主記憶領域となる。これは、図1の第二のOS
の領域に相当する。As a result, when viewed from the first OS, the main storage area allocated to the second OS does not exist, and is not referred to by the first OS. Therefore, the allocated area becomes a main storage area that can be used freely by the second OS. This is the second OS in FIG.
Area.
【0101】次のステップ1203では、カーネル内部
のデータ構造の初期化を実施する。この初期化には、後
で述べるデバイス管理テーブルの初期化も含む。In the next step 1203, the data structure in the kernel is initialized. This initialization includes initialization of a device management table described later.
【0102】ステップ1204では、第二のOSが管理
するデバイスを予約する。ここで予約するとは、第一の
OSから利用できないようにすることである。具体的に
は、第一のOSが管理しているデバイス管理テーブルへ
の登録を実施する。In step 1204, a device managed by the second OS is reserved. Here, to make a reservation means to make it unusable from the first OS. Specifically, registration in the device management table managed by the first OS is performed.
【0103】第二のOSが管理するデバイス資源は、パ
ラメータテーブル1100のカーネル構成情報テーブル
1103の指すテーブル700に格納されている、第二
のOSの構成情報を参照して決める。この実施形態で
は、図7の704に格納されているデータがそれに相当
する。The device resources managed by the second OS are determined by referring to the configuration information of the second OS stored in the table 700 indicated by the kernel configuration information table 1103 of the parameter table 1100. In this embodiment, the data stored in 704 in FIG. 7 corresponds thereto.
【0104】デバイス管理テーブルについて説明する。
図13は、第一のOSのデバイス管理テーブルの構造を
示した図である。デバイス管理テーブルは、割り込みベ
クタ管理テーブル1300と、I/Oアドレス管理リス
ト1310の2つのデータ構造からなる。The device management table will be described.
FIG. 13 is a diagram showing the structure of the device management table of the first OS. The device management table has two data structures, an interrupt vector management table 1300 and an I / O address management list 1310.
【0105】割り込みベクタ管理テーブル1300は、
プロセッサ101が受け付ける各割り込み番号につい
て、第一のOSがその割り込み番号を利用するかどうか
を示す値を格納している。カーネルは、デバイスドライ
バが初期化時に割り込み番号を要求した場合に、このテ
ーブル1300を検査し、要求された割り込み番号が利
用されているか検査し、そうでない場合にのみ要求され
た割り込み番号を使用する権利をデバイスドライバに与
える。既に利用済みであると記されている場合は、その
デバイスは第一のOSからは利用できないことになる。The interrupt vector management table 1300 is
For each interrupt number accepted by the processor 101, a value indicating whether the first OS uses the interrupt number is stored. The kernel checks this table 1300 when the device driver requests an interrupt number at initialization, checks whether the requested interrupt number is used, and uses the requested interrupt number only when not. Grant rights to the device driver. If it is described that the device has already been used, the device cannot be used from the first OS.
【0106】図2の入出力装置116と117を例とし
て説明する。入出力装置116と117は、それぞれ割
り込み番号4と5と要求すると仮定する。入出力装置1
16と117は、第二のOSが管理するデバイスであ
る。入出力装置116と117の要求する割り込み番号
は、カーネル構成情報テーブル700の第二のOSの構
成情報704に記録されている。ステップ1204で
は、この構成情報704を参照して、割り込みベクタ管
理テーブルの、割り込み番号4と5のエントリに利用中
であることを示す値を格納する。この処理は、第一のO
Sがデバイス管理を開始する前に実施するため、第一の
OSは、入出力装置116と117にアクセスすること
ができなくなり、装置116と117を第二のOSの管
理下におくことができる。The input / output devices 116 and 117 shown in FIG. 2 will be described as an example. Assume that I / O devices 116 and 117 request interrupt numbers 4 and 5, respectively. I / O device 1
Devices 16 and 117 are devices managed by the second OS. The interrupt numbers requested by the input / output devices 116 and 117 are recorded in the configuration information 704 of the second OS in the kernel configuration information table 700. In step 1204, a value indicating that it is being used is stored in the entry of the interrupt numbers 4 and 5 in the interrupt vector management table with reference to the configuration information 704. This processing is performed by the first O
The first OS cannot access the input / output devices 116 and 117 because the process is performed before S starts device management, and the devices 116 and 117 can be controlled by the second OS. .
【0107】I/Oアドレス管理リスト1310につい
ても同様である。I/Oアドレス管理リスト1310
は、I/Oアドレス範囲を表現するエントリ1320か
らなるリストである。エントリ1320は、第一のOS
が利用するI/Oアドレス範囲1321と、リストを構
成するための次のエントリへのポインタ1322からな
る。割り込みベクタ管理テーブル1300と同様、デバ
イスドライバが初期化時にI/Oアドレス範囲を要求し
た場合、カーネルは、そのアドレス範囲が既に利用され
ているかI/Oアドレス管理リスト1310により検査
し、未使用である場合、このリスト1310にエントリ
を追加して、利用許可を与える。The same applies to the I / O address management list 1310. I / O address management list 1310
Is a list composed of entries 1320 representing I / O address ranges. Entry 1320 is the first OS
Consists of an I / O address range 1321 used by the user and a pointer 1322 to the next entry for composing the list. As in the case of the interrupt vector management table 1300, when the device driver requests an I / O address range at the time of initialization, the kernel checks whether the address range is already used by using the I / O address management list 1310, In some cases, an entry is added to this list 1310 to grant use permission.
【0108】第二のOSが管理するデバイスが要求する
I/Oアドレス範囲は、割り込み番号と同様にカーネル
構成情報テーブル700に格納されているので、それを
参照すれば要求アドレスを知ることができ、第一のOS
がデバイス管理を開始する前にI/Oアドレスを予約で
きる。Since the I / O address range requested by the device managed by the second OS is stored in the kernel configuration information table 700 in the same manner as the interrupt number, the requested address can be known by referring to it. , The first OS
Can reserve I / O addresses before starting device management.
【0109】ステップ1202の処理により、第一のO
Sから完全に独立した第二のOS専用の空間を構築する
ことが可能になる。さらに、ステップ1204の処理に
より、第一のOS上で動作するユーザプログラムは、第
二のオペレーティングシステムが管理するデバイス、こ
の例では、入出力装置116と117へのアクセスが不
可能になる。また、装置116と117の割り込み番号
とI/Oアドレスを利用するデバイスドライバを導入す
ることを禁止できる。By the processing in step 1202, the first O
A space dedicated to the second OS completely independent of S can be constructed. Further, the processing in step 1204 makes it impossible for the user program operating on the first OS to access the devices managed by the second operating system, in this example, the input / output devices 116 and 117. Also, it is possible to prohibit the introduction of a device driver that uses the interrupt numbers and I / O addresses of the devices 116 and 117.
【0110】この2つのステップの処理の効果として、
第一のOSが関知しない部分に第二のOSを導入するこ
とが可能になる。The effect of the two steps is as follows.
It becomes possible to introduce the second OS into a part that the first OS does not care about.
【0111】続くステップ1205、ないし、ステップ
1207は通常のオペレーティングシステムの初期化処
理と同じである。ステップ1205のシステムデバイス
の初期化では、カーネルが直接管理するシステムデバイ
スの初期化を実施する。システムデバイスとは、クロッ
ク割り込みなど、第一のOSの実行に不可欠で、第一の
OSが必ず存在していると仮定しているデバイスであ
る。The following steps 1205 to 1207 are the same as the ordinary operating system initialization processing. In the initialization of the system device in step 1205, the system device that is directly managed by the kernel is initialized. The system device is a device that is indispensable for execution of the first OS, such as a clock interrupt, and assumes that the first OS always exists.
【0112】ステップ1206では、カーネルローダが
ロードしたオブジェクトファイルについて、それぞれの
初期化エントリを実行する。初期化エントリアドレス
は、オブジェクトファイルのヘッダ部分に格納されてい
る。最後に、初期プロセスを作成する(ステップ120
7)。In step 1206, each initialization entry is executed for the object file loaded by the kernel loader. The initialization entry address is stored in the header of the object file. Finally, an initial process is created (step 120).
7).
【0113】次に、本発明の実施の形態における、第二
のOSのロード手順について説明する。図14は、第二
のOSのロード手順を示すフローチャートである。Next, a procedure for loading the second OS according to the embodiment of the present invention will be described. FIG. 14 is a flowchart showing a procedure for loading the second OS.
【0114】まず、第二のOS用に割り当てた物理メモ
リ領域に、第二のOSのオブジェクトファイルを読み込
む必要がある。しかし、第二のOSの物理メモリ領域
は、そのままでは第一のOSから書き込むことはできな
いので、割り当てた物理メモリ領域を第一のOSの仮想
空間に一時的にマッピングする(ステップ1401)。First, it is necessary to read the object file of the second OS into the physical memory area allocated for the second OS. However, since the physical memory area of the second OS cannot be written from the first OS as it is, the allocated physical memory area is temporarily mapped in the virtual space of the first OS (step 1401).
【0115】ステップ1402では、マッピングした領
域に、第一のOSのファイル読み込み手順を利用して、
第二のOSのオブジェクトファイルを読み込む。なお、
第二のOSのオブジェクトファイルの形式は、第一のO
Sのオブジェクトファイル形式800と同じ形式である
とする。In step 1402, the file is read into the mapped area by using the file reading procedure of the first OS.
The object file of the second OS is read. In addition,
The format of the object file of the second OS is the first O
It is assumed that the format is the same as the object file format 800 of S.
【0116】次に、第二のOS用のページテーブルを作
成する(ステップ1403)。このページテーブルも第二
のOS用の領域に作成する。この時に、第一のOSと共
有する部分について、第二のOSの空間からも参照でき
るように、ページテーブルを構築する。Next, a page table for the second OS is created (step 1403). This page table is also created in the area for the second OS. At this time, a page table is constructed so that a portion shared with the first OS can be referred to from the space of the second OS.
【0117】共通領域203について、割り込み処理や
共通データの管理を実施するデバイスドライバ(以下サ
ポートドライバ)をロードした領域を共通領域203と
する。このデバイスドライバがロードされたアドレス
は、ロードオブジェクトリスト1104より知ることが
できる。また、続くステップ1404で、第二のOSの
カーネルの外部参照を解決する。但し、第二のOSが直
接参照できる他のオブジェクトファイルの参照は、共通
領域203に配置されている関数とデータ、つまり、サ
ポートドライバの公開参照のみである。したがって、こ
こでは、サポートドライバのオブジェクトファイルのヘ
ッダ部分に格納されている公開参照テーブル811を参
照して、第二のOSのカーネルオブジェクトファイルの
外部参照テーブル810の外部アドレス904を決定す
る。In the common area 203, an area loaded with a device driver (hereinafter referred to as a support driver) for executing interrupt processing and management of common data is set as the common area 203. The address at which the device driver is loaded can be known from the load object list 1104. In the following step 1404, the external reference of the kernel of the second OS is resolved. However, other object files that can be directly referred to by the second OS are only functions and data located in the common area 203, that is, only public references of the support driver. Therefore, here, the external address 904 of the external reference table 810 of the kernel object file of the second OS is determined with reference to the public reference table 811 stored in the header part of the object file of the support driver.
【0118】次に、第二のOSの公開参照のアドレス
を、共通領域のデータ領域に割り当てられた外部参照ア
ドレステーブルに書き込む。共通領域となっているサポ
ートドライバは、第一のOSのデバイスドライバとし
て、第一のOSの機構にしたがって読み込むため、第二
のOSの公開参照とリンクすることはできない。Next, the address of the public reference of the second OS is written in the external reference address table assigned to the data area of the common area. The support driver serving as the common area is read as the device driver of the first OS according to the mechanism of the first OS, and cannot be linked to the public reference of the second OS.
【0119】ここでは、サポートドライバのデータ領域
内に必要な外部参照名と、それに対応する外部アドレス
を格納するテーブルを予め用意しておく。サポートドラ
イバの実行コードは、このテーブルを参照して第二のO
Sのカーネルの公開関数の呼びだし、公開データの参照
を実施するように記述する。そして、第二のOSのロー
ド時に、このテーブルの外部アドレス欄にサポートドラ
イバの公開参照のアドレスを書き込むこととする。In this case, a table for storing necessary external reference names and corresponding external addresses in the data area of the support driver is prepared in advance. The execution code of the support driver refers to this table and
A call is made to the public function of the kernel of S, and the public data is referred to. Then, when the second OS is loaded, the publicly referenced address of the support driver is written in the external address column of this table.
【0120】これで、第二のOS領域の設定を終了し、
第一のOSのカーネル領域にマップした、第二のOS用
の物理メモリ領域のマッピングを解除する(ステップ1
406)。Thus, the setting of the second OS area is completed.
Release the mapping of the physical memory area for the second OS, which is mapped to the kernel area of the first OS (Step 1)
406).
【0121】次に、OSコンテクストテーブル1510
の第二のOSのコンテクストと、OS識別変数1530
を設定する(ステップ1407)。OSコンテクスト
は、実行オペレーティングシステムを切り替えるときに
参照するデータ構造で、ページテーブルアドレス値とス
タックポインタの初期値とで構成する。ここでは、ペー
ジテーブルレジスタ値として第二のOSをマップするペ
ージテーブルのアドレスを、スタックポインタ値として
第二のOSのカーネルスタックの初期アドレスを設定す
る。OS識別変数1530には、第一のOSが実行中で
あることを示す値を格納する。OSコンテクストテーブ
ル1510とOS識別変数1530については後述す
る。Next, the OS context table 1510
And the OS identification variable 1530
Is set (step 1407). The OS context is a data structure referred to when switching the execution operating system, and includes a page table address value and an initial value of a stack pointer. Here, the address of the page table that maps the second OS is set as the page table register value, and the initial address of the kernel stack of the second OS is set as the stack pointer value. The OS identification variable 1530 stores a value indicating that the first OS is being executed. The OS context table 1510 and the OS identification variable 1530 will be described later.
【0122】次に、第二のOSの初期化モジュールを実
行する(ステップ1408)。これには、オペレーティ
ングシステム空間の切替が伴う。オペレーティングシス
テムの切替えについては、別のフローチャートにより説
明する。また、第二のOSの初期化モジュールは公開参
照になっており、サポートドライバはそのアドレスを知
ることができる。Next, the initialization module of the second OS is executed (step 1408). This involves switching the operating system space. The switching of the operating system will be described with reference to another flowchart. Further, the initialization module of the second OS is publicly referenced, and the support driver can know the address.
【0123】最後に、ステップ1409にて、現在の割
り込みテーブル104に登録されている第一のOSの割
り込みハンドラのアドレスを、割り込み識別テーブル1
520のハンドラの欄1522にコピーし、割り込みテ
ーブルレジスタ値を、サポートドライバに割り当てた割
り込みテーブルのアドレスに変更する。これは、プロセ
ッサ101の割り込みテーブルレジスタ104の変更に
より実施する。Finally, in step 1409, the address of the interrupt handler of the first OS registered in the current interrupt table 104 is stored in the interrupt identification table 1.
Copy to the handler column 522 of 520, and change the interrupt table register value to the address of the interrupt table assigned to the support driver. This is performed by changing the interrupt table register 104 of the processor 101.
【0124】割り込みテーブルをサポートドライバ内の
テーブルに変更するのは、割り込み発生時にどちらのオ
ペレーティングシステムが実行していても、常にプロセ
ッサ101の仮想アドレス空間に割り込みテーブルが存
在している必要があるためである。割り込みテーブルに
登録される割り込みハンドラも、サポートドライバ内に
配置する。サポートドライバの領域は、ステップ140
3にて、第二のOSの仮想空間にもマッピングして共通
領域203とするので、いつでも参照できることにな
る。サポートドライバの割り込み処理については後述す
る。The reason why the interrupt table is changed to the table in the support driver is that the interrupt table must always exist in the virtual address space of the processor 101 regardless of which operating system is executing when the interrupt occurs. It is. The interrupt handler registered in the interrupt table is also located in the support driver. Step 140
In step 3, the virtual area of the second OS is mapped to the common area 203, so that it can be referred to at any time. The interrupt processing of the support driver will be described later.
【0125】また、ステップ1409では、第一のOS
の割り込み管理情報も変更する。具体的には、割り込み
禁止レベルに関連するデータ構造を変更するが、これに
ついては後述する。In step 1409, the first OS
Also change the interrupt management information of. Specifically, the data structure related to the interrupt inhibition level is changed, which will be described later.
【0126】共通領域203に格納するデータ構造につ
いて説明する。図15は、共通領域203のうちのデー
タ領域1500に格納するデータ構造を示した図であ
る。図15にしたがって順に説明する。The data structure stored in the common area 203 will be described. FIG. 15 is a diagram showing a data structure stored in the data area 1500 of the common area 203. This will be described in order according to FIG.
【0127】1510は、OSコンテクストテーブルで
ある。OSコンテクストテーブル1510は、第一のO
Sと第二のOSとの間の切替えに必要なデータを保持す
る。この実施の形態では、第一のOSは第二のOSがア
イドル状態の時のみ走行できるとする。この場合、第一
のOS実行中のある時点で第二のOSへの切替が起こ
り、第二のOSの実行が終了した時点で、第一のOSに
制御を戻せば良い。Reference numeral 1510 denotes an OS context table. The OS context table 1510 stores the first O
Data required for switching between S and the second OS is held. In this embodiment, it is assumed that the first OS can run only when the second OS is in an idle state. In this case, switching to the second OS occurs at some point during execution of the first OS, and control may be returned to the first OS at the end of execution of the second OS.
【0128】したがって、それぞれで保存しておかなけ
ればならないコンテクストは1組で良い。第一のOSの
コンテクストについては、OS切替が要求された時点で
のページテーブルレジスタ値1511と、スタックポイ
ンタ値1512を保存しておけば、第二のOS実行終了
後に、第一のOSに制御を復帰させることができる。Therefore, only one context needs to be stored for each. For the context of the first OS, if the page table register value 1511 and the stack pointer value 1512 at the time when the OS switching is requested are stored, the first OS is controlled by the first OS after the execution of the second OS is completed. Can be restored.
【0129】また、第一のOSから第二のOSへ制御を
切り替えるときには第二のOSは動作していない。した
がって、第二のOSのコンテクストは、ページテーブル
アドレスもスタックポインタも固定の値でよい。第二の
OSのページテーブルレジスタ値1513とスタックポ
インタ値1514は、第二のOSをロードするときに設
定する(ステップ1407)。Further, when the control is switched from the first OS to the second OS, the second OS is not operating. Therefore, in the context of the second OS, both the page table address and the stack pointer may be fixed values. The page table register value 1513 and the stack pointer value 1514 of the second OS are set when loading the second OS (Step 1407).
【0130】1520は、割り込み識別テーブルであ
る。割り込み識別テーブル1520は、外部割り込みの
割り込み番号毎に、どちらのオペレーティングシステム
が割り込みを処理するかを示す値1521と、割り込み
ハンドラのアドレス1522が記録されている。外部割
込みが発生すると、共通領域203内の割り込みハンド
ラが割り込みを捕獲し、この割り込み識別テーブル15
20の処理OS1521を参照して、どちらのOSに処
理させるかを決定し、ハンドラ1522のアドレスへ制
御を渡す。割り込み処理の詳細については、後述する。Reference numeral 1520 denotes an interrupt identification table. The interrupt identification table 1520 records, for each interrupt number of the external interrupt, a value 1521 indicating which operating system processes the interrupt, and an address 1522 of the interrupt handler. When an external interrupt occurs, the interrupt handler in the common area 203 captures the interrupt, and the interrupt identification table 15
With reference to the processing OS 1521, which OS is to be processed, control is passed to the address of the handler 1522. Details of the interrupt processing will be described later.
【0131】1530は、実行中のオペレーティングシ
ステムを示す値を格納しているOS識別変数である。こ
の変数1530は、ステップ1601から始まるOS切
り替え手順でOS切り替えの度に設定する。割り込み処
理では、この変数1530を参照して割り込み処理手順
を決定する。An OS identification variable 1530 stores a value indicating the operating system being executed. This variable 1530 is set each time the OS is switched in the OS switching procedure starting from step 1601. In the interrupt processing, an interrupt processing procedure is determined with reference to the variable 1530.
【0132】1540は、第二のOSの実行中に、第一
のOSが管理しているデバイスの割り込みが発生したか
を示す遅延割り込み状態変数である。この変数1540
は、どの割り込み番号の割り込みが発生したかを記録し
ている。OS切り替え手順は、第二のOSの実行が終了
したときにこの変数1540を検査して、割り込み処理
を起動するか決定する(ステップ1608)。Reference numeral 1540 denotes a delayed interrupt status variable indicating whether an interrupt of a device managed by the first OS has occurred during execution of the second OS. This variable 1540
Records which interrupt number has occurred. The OS switching procedure examines this variable 1540 when the execution of the second OS ends, and determines whether to start the interrupt processing (Step 1608).
【0133】オペレーティングシステムの切替え手順に
ついて説明する。図16は、本発明の実施の形態におけ
る、オペレーティングシステムの切替え手順を示すフロ
ーチャートである。この切り替え手順は、第一のOSの
実行中に呼び出され、第二のOSの切り替えを実施す
る。The procedure for switching the operating system will be described. FIG. 16 is a flowchart illustrating a procedure for switching an operating system according to the embodiment of the present invention. This switching procedure is called during the execution of the first OS, and switches the second OS.
【0134】図16に示した手順は、第二のOSへの切
り替え後に実行する第二のOSのモジュールのアドレス
と、そのモジュールへ渡す引数を引数として受ける。第
二のOSのモジュールのアドレスは、共通領域203内
に設定した、外部参照アドレステーブルを参照すれば知
ることができる。The procedure shown in FIG. 16 receives, as arguments, the address of the module of the second OS to be executed after switching to the second OS and the arguments to be passed to the module. The address of the module of the second OS can be known by referring to the external reference address table set in the common area 203.
【0135】まず、始めのステップ1601で、現在の
スタックポインタ値とページテーブルレジスタ値を、O
Sコンテクストテーブル1510の、第一のOSのコン
テクストとして保存する。ステップ1601では、現在
のスタックポインタ値を1512に、現在のページテー
ブルレジスタ105の値を1511に保存する。First, in the first step 1601, the current stack pointer value and page table register value are
It is stored as the context of the first OS in the S context table 1510. In step 1601, the current stack pointer value is stored in 1512 and the current value of the page table register 105 is stored in 1511.
【0136】他のレジスタコンテクストについて、OS
コンテクストテーブル1510に保存する必要はない。
必要があれば、第一のOSのスタックに保存すればよ
い。For other register contexts, the OS
There is no need to save it in the context table 1510.
If necessary, it may be stored in the stack of the first OS.
【0137】スタックポインタとページテーブルレジス
タ値を保存した後、ステップ1602にて、ページテー
ブルレジスタ105に第二のOSを仮想空間にマップす
るページテーブルのアドレスを設定する。これは、OS
コンテクストテーブル1510の1513に記録されて
いる。更に、スタックポインタを第二のOS用に設定す
る。これも、テーブル1600の第二のOSのスタック
ポインタ1514に格納されている。After saving the stack pointer and the page table register value, in step 1602, the page table register 105 is set with the address of the page table that maps the second OS to the virtual space. This is the OS
It is recorded in 1513 of the context table 1510. Further, a stack pointer is set for the second OS. This is also stored in the stack pointer 1514 of the second OS in the table 1600.
【0138】次のステップ1603で、第一のOSの割
り込み状態を示す遅延割り込み状態変数1540をクリ
アする。状態変数1540は、第二のOS実行中に発生
した、第一のOSが管理しているデバイスからの割り込
みの発生状況を記録する変数である。第二のOSを実行
する前に、これをクリアしておく。In the next step 1603, the delay interrupt status variable 1540 indicating the interrupt status of the first OS is cleared. The status variable 1540 is a variable that records the state of occurrence of an interrupt from a device managed by the first OS, which has occurred during execution of the second OS. This is cleared before executing the second OS.
【0139】そして、現在実行中のOSの示しているO
S識別変数1530を、第二のOSを示す値に書き換え
る(ステップ1604)。スタックポインタ、ページテ
ーブルレジスタ105、および、OS識別変数1530
は、常に一貫した値になっていなければならないので、
ここまでのステップ1601、ないし、1604は全て
の外部割り込みを禁止した状態で実行しなければならな
い。Then, the O indicated by the OS currently being executed is
The S identification variable 1530 is rewritten to a value indicating the second OS (Step 1604). Stack pointer, page table register 105, and OS identification variable 1530
Must always be consistent, so
Steps 1601 to 1604 up to this point must be executed with all external interrupts disabled.
【0140】続くステップ1605で、引数として渡さ
れたモジュールのアドレスへ制御を移し、第二のオペレ
ーティングシステムに制御を渡す。本発明のこの実施の
形態においては、第一のOSは第二のOSが実行してい
ない時、つまり、第二のOSがアイドル状態のときだけ
実行できるとする。したがって、第二のOSの処理が終
了した時に、ステップ1606へ制御が戻る。In the following step 1605, control is transferred to the address of the module passed as an argument, and control is passed to the second operating system. In this embodiment of the present invention, it is assumed that the first OS can be executed only when the second OS is not running, that is, when the second OS is in an idle state. Therefore, when the processing of the second OS ends, the control returns to step 1606.
【0141】ステップ1606では、ステップ1601
でOSコンテクストテーブル15100に保存したペー
ジテーブルレジスタ値1511と、スタックポインタ値
1512のそれぞれを回復する。続くステップ1607
で、OS識別変数1530を第一のOSが実行中である
ことを示す値に変更する。この2つのステップの処理も
割り込みを禁止した状態で実行しなければならない。At step 1606, step 1601
To restore the page table register value 1511 and the stack pointer value 1512 stored in the OS context table 15100 respectively. Following step 1607
Then, the OS identification variable 1530 is changed to a value indicating that the first OS is running. The processing of these two steps must also be executed with interrupts disabled.
【0142】次に、第二のOSの実行中に発生した、第
一のOSが管理するデバイスの外部割り込みを処理す
る。まず、ステップ1608では、遅延割り込み状態変
数1540を検査して、割り込みが発生したかどうか検
査する。発生していない場合は、OS切替え手順は終了
し、呼出元に復帰する。Next, an external interrupt of a device managed by the first OS, which occurs during execution of the second OS, is processed. First, in step 1608, the delay interrupt status variable 1540 is checked to determine whether an interrupt has occurred. If not, the OS switching procedure ends, and the process returns to the calling source.
【0143】そうでない場合、割り込みが発生している
場合は、ステップ1609を実行する。このステップで
は、第二のOSの実行中に発生した割り込みを、第一の
OSが管理している延期割り込み状態変数に、未処理の
割り込みがある旨を記録する。続いて、第一のOSの割
り込み処理を起動する(ステップ1610)。全ての割
り込み処理が終了した時に、OS切替え手順の呼出元に
復帰する。Otherwise, if an interrupt has occurred, step 1609 is executed. In this step, the fact that there is an unprocessed interrupt is recorded in the postponed interrupt status variable managed by the first OS for the interrupt that occurred during the execution of the second OS. Subsequently, the interrupt processing of the first OS is started (step 1610). When all the interrupt processes are completed, the process returns to the call source of the OS switching procedure.
【0144】本発明の実施の形態における割り込み処理
について説明する。図17は、本実施形態の割り込み処
理手順を示すフローチャートである。この手順を実行す
るモジュールは、割り込みハンドラとしてプロセッサの
割り込みテーブル107に登録される。さらに、この割
り込みハンドラは、両方のオペレーティングシステムか
ら参照できる共通領域203に配置する。The interrupt processing according to the embodiment of the present invention will be described. FIG. 17 is a flowchart illustrating an interrupt processing procedure according to the present embodiment. A module that executes this procedure is registered in the interrupt table 107 of the processor as an interrupt handler. Further, this interrupt handler is arranged in a common area 203 that can be referred to by both operating systems.
【0145】外部割り込みが発生して、プロセッサ10
1により割り込みハンドラが起動されると、割り込みハ
ンドラは割り込み要因を検査し、割り込みを発生したデ
バイスが第一のOSが管理するデバイスか、第二のOS
が管理するデバイスか判定する(ステップ1701)。
この判定は、割り込み識別テーブル1520を割り込み
番号をインデックスとしてOS欄1521を参照するこ
とより実施する。第一のOSのデバイスである場合はス
テップ1702へ、第二のOSのデバイスの場合はステ
ップ1705へ進む。例えば、図15でいえば、割り込
み番号が1であれば第一のOSの割り込みであり、割り
込み番号4であれば第二のOSの割り込みとなる。When an external interrupt occurs, the processor 10
When the interrupt handler is activated by step 1, the interrupt handler examines the cause of the interrupt, and determines whether the device that generated the interrupt is a device managed by the first OS or a second OS.
It is determined whether the device is managed by the device (step 1701).
This determination is made by referring to the OS column 1521 in the interrupt identification table 1520 using the interrupt number as an index. If the device is a device of the first OS, the process proceeds to step 1702, and if the device is a device of the second OS, the process proceeds to step 1705. For example, in FIG. 15, if the interrupt number is 1, the interrupt is the first OS interrupt, and if the interrupt number is 4, the interrupt is the second OS.
【0146】割り込みが第一のOSのデバイスの割り込
みである場合、ステップ1702を実行する。ステップ
1702では、割り込み発生時に実行していたOSを判
定する。この判定は、OS識別変数1530を参照して
実施する。実行中のOSが第一のOSの場合はステップ
1703へ、第二のOSの場合はステップ1704へ進
む。If the interrupt is a device interrupt of the first OS, step 1702 is executed. In step 1702, the OS that was being executed when the interrupt occurred is determined. This determination is made with reference to the OS identification variable 1530. If the OS being executed is the first OS, the process proceeds to step 1703. If the OS being executed is the second OS, the process proceeds to step 1704.
【0147】ステップ1703から始まる処理は、第一
のOSが管理しているデバイスが、第一のOSを実行中
に割り込みを発生した場合の処理である。ステップ17
03では、あたかもステップ1701から始まる処理が
存在せず、第一のOSの割り込みハンドラが、直接プロ
セッサ101から制御を受けたように見えるようにコン
テクストを設定する。ここでコンテクストとは、スタッ
クの内容やレジスタの内容を示す。そして、第一のOS
の割り込みハンドラへ制御を渡す。第一のOSの割り込
みハンドラのアドレスは、割り込み識別テーブル152
0のハンドラ欄1522に格納されている。例えば、割
り込み番号1の割り込みであるならば、1をインデック
スとして割り込み識別テーブルを参照して、ハンドラア
ドレスを求める。The process starting from step 1703 is a process performed when a device managed by the first OS generates an interrupt during execution of the first OS. Step 17
In 03, the context is set so that there is no processing starting from step 1701 and the interrupt handler of the first OS appears to be directly controlled by the processor 101. Here, the context indicates the contents of the stack and the contents of the register. And the first OS
Control to the interrupt handler of The address of the interrupt handler of the first OS is stored in the interrupt identification table 152.
0 is stored in the handler field 1522. For example, if the interrupt is interrupt number 1, the handler address is obtained by referring to the interrupt identification table using 1 as an index.
【0148】この場合、ステップ1701から始まる手
順には制御は戻らず、第一のOSが処理を続ける。In this case, control is not returned to the procedure starting from step 1701, and the first OS continues the processing.
【0149】第一のOSが管理しているデバイスが、第
二のOSを実行中に割り込みを発生した場合、ステップ
1704を実行する。ステップ1704では、遅延割り
込み状態変数1540に割り込みを発生したデバイスの
割り込み番号を記録する。割り込みハンドラの処理はこ
れで終了する。この場合の割り込みの処理は、実行OS
が第一のOSに切り替わったときに実行される(ステッ
プ1608)。If the device managed by the first OS generates an interrupt during execution of the second OS, step 1704 is executed. In step 1704, the interrupt number of the device that caused the interrupt is recorded in the delay interrupt status variable 1540. This completes the processing of the interrupt handler. The processing of the interrupt in this case is executed OS
Is switched to the first OS (step 1608).
【0150】発生した外部割込みが、第二のOSが管理
するデバイスの割り込みだった場合、ステップ1705
へ進み、どちらのOSが実行中であるか検査する。ここ
でも、OS識別変数1530によって実行中のOSを判
定する。第一のOSが実行中の場合は、ステップ170
6へ、第二のOSが実行中の場合はステップ1711へ
進む。If the generated external interrupt is an interrupt of a device managed by the second OS, step 1705
To check which OS is running. Here, the OS being executed is determined based on the OS identification variable 1530. If the first OS is running, step 170
If the second OS is being executed, the process proceeds to step 1711.
【0151】第二のOSが管理するデバイスの割り込み
が、第二のOSの実行中に発生した場合、ステップ17
11を実行する。ステップ1711は、第二のOSの割
り込みハンドラを起動する。第二のOSの割り込みハン
ドラのアドレスは、割り込み識別テーブル1520のハ
ンドラ欄1522に記録されている。第二のOSの割り
込みハンドラ処理が終了して制御が戻ってきたら、この
割り込みハンドラも終了し、割り込まれた時のコンテク
ストを回復して制御を元に戻す。If an interrupt of a device managed by the second OS occurs during the execution of the second OS, step 17
Step 11 is executed. Step 1711 activates the interrupt handler of the second OS. The address of the interrupt handler of the second OS is recorded in the handler column 1522 of the interrupt identification table 1520. When the second OS interrupt handler process ends and control returns, this interrupt handler also ends, recovers the context at the time of the interrupt, and returns control.
【0152】第二のOSが管理するデバイスの外部割込
みが、第一のOSの実行中に発生した場合、ステップ1
706を実行する。この場合は、第一のOSの実行より
も第二のOSの処理を優先して実行する。If an external interrupt of a device managed by the second OS occurs during the execution of the first OS, step 1
Step 706 is executed. In this case, the process of the second OS is executed with priority over the execution of the first OS.
【0153】まず、ステップ1706では、コンテクス
トを保存する。ここでのコンテクストとは、割り込み処
理が終了した後で第一のOSに戻すときに、割り込まれ
たときの状態を回復するのに必要なスタックの内容とレ
ジスタの内容を示す。このコンテクストは、第一のOS
のカーネルのスタックに保存する。First, in step 1706, the context is saved. Here, the context indicates the contents of the stack and the contents of the registers necessary for restoring the interrupted state when returning to the first OS after the completion of the interrupt processing. This context is the primary OS
To the kernel stack.
【0154】続いて、実行OSの切り替えと第二のOS
の割り込み処理の起動を実行する(ステップ1707、
1708)。これは、ステップ1601から始まる手順
により実行する。Subsequently, switching of the execution OS and the second OS
Of the interrupt processing of step (1707).
1708). This is performed by a procedure starting from step 1601.
【0155】第二のOSの処理が終了した時点で、第一
のOSへの切り替えを実行し(ステップ1709)、割
り込み時のコンテクストを回復し(ステップ171
0)、第一のOSの処理を再開する。ステップ1709
の処理は、必ずしも、ステップ1701から始まる処理
と同一のモジュール内で実行されなくてもよい。第一の
OSへの切り替えにより処理はこのモジュールへ復帰す
る。When the processing of the second OS is completed, switching to the first OS is executed (step 1709), and the context at the time of interruption is restored (step 171).
0), restart the processing of the first OS. Step 1709
Is not necessarily executed in the same module as the process starting from step 1701. The process returns to this module by switching to the first OS.
【0156】2つのオペレーティングシステムで共有し
ているクロック割り込みの処理について説明する。クロ
ック割り込みはは、共通領域内の割り込みハンドラによ
り捕獲する。この割り込みハンドラでは、まず、第二の
OSのクロック割り込み用の割り込みハンドラを実行す
る。第二のOSの割り込みハンドラはハンドラ2欄15
23に格納されている。第二のOSの割り込みハンドラ
の実行が終了したら、図17のステップ1702から始
まる処理により第一のOSの割り込み処理を実行する。
第一の割り込みハンドラのアドレスはハンドラ欄152
2に格納されている。The processing of a clock interrupt shared by two operating systems will now be described. The clock interrupt is captured by an interrupt handler in the common area. In this interrupt handler, first, an interrupt handler for a clock interrupt of the second OS is executed. The interrupt handler of the second OS is the handler 2 column 15
23. When the execution of the interrupt handler of the second OS is completed, the interrupt process of the first OS is executed by the process starting from step 1702 in FIG.
The address of the first interrupt handler is the handler field 152
2 is stored.
【0157】次に、第一のOSの割り込み制御部分につ
いて説明する。これは、第一のOSの割り込み制御によ
って、誤って第二のOSが管理するデバイスの割り込み
が禁止にされてしまわないようにするための処理であ
る。Next, the interrupt control portion of the first OS will be described. This is a process for preventing the interrupt of the device managed by the second OS from being erroneously prohibited by the interrupt control of the first OS.
【0158】第一のOSは、割り込み禁止レベルにより
割り込みを制御しているとする。割り込み禁止レベル
は、オペレーティングシステムのカーネル内の割り込み
処理の延長で動作する部分と、そうでない部分との間の
排他制御を実現するために必要となる機構である。[0158] It is assumed that the first OS controls the interrupt by the interrupt disable level. The interrupt prohibition level is a mechanism required to realize exclusive control between a part that operates as an extension of interrupt processing in the kernel of the operating system and a part that does not.
【0159】第一のOSは、割り込み制御装置112を
プログラムすることで割り込み禁止レベルを実現する。
つまり、割り込み制御装置112の割り込みマスクレジ
スタ502をプログラムして、選択的に外部割り込みを
マスクにする。第一のOSは第二のOSについて全く知
らないので、第一のOSが割り込み禁止レベルを変更し
たときに、第二のOSのデバイスの割り込みがマスクさ
れてしまう可能性がある。これを防ぐために、第一のO
Sの割り込み制御部分を変更する。The first OS realizes the interrupt inhibition level by programming the interrupt control device 112.
That is, the interrupt mask register 502 of the interrupt controller 112 is programmed to selectively mask external interrupts. Since the first OS does not know anything about the second OS, when the first OS changes the interrupt disable level, the interrupt of the device of the second OS may be masked. To prevent this, the first O
Change the interrupt control part of S.
【0160】図18は、割り込み禁止レベルを実現する
第一のOSが管理しているデータ構造を示している。1
800は、割り込み禁止レベルテーブルである。それぞ
れの割り込みレベルは数値で表現され、それぞれの割り
込み禁止レベルについて、何番の外部割り込みをマスク
するかを示している。テーブル1800のチェックのつ
けられているところは割り込みをマスクする設定するこ
とを示している。例えば、割り込み禁止テーブル180
0では、割り込み禁止レベル0では、どの割り込みもマ
スクされないことを示している。また、割り込み禁止レ
ベル3では、割り込み番号3、ないし、5の割り込みを
割り込み制御装置112によりマスクすることを示して
いる。割り込み禁止レベル5では、すべての割り込みが
割り込み制御装置112によりマスクされる。FIG. 18 shows a data structure managed by the first OS for realizing the interrupt disable level. 1
Reference numeral 800 denotes an interrupt disable level table. Each interrupt level is represented by a numerical value, and indicates which external interrupt is masked for each interrupt disable level. The checked portion of the table 1800 indicates that interrupt masking is set. For example, the interrupt disable table 180
0 indicates that no interrupt is masked at the interrupt inhibition level 0. Further, the interrupt inhibition level 3 indicates that interrupts of interrupt numbers 3 to 5 are masked by the interrupt control device 112. At interrupt disable level 5, all interrupts are masked by the interrupt controller 112.
【0161】本発明では、第二のOSの初期化時に、こ
の割り込み禁止レベルテーブル1800を変更する(ス
テップ1409)。ステップ1409では、第二のOS
が管理するデバイスが発生する割り込みについて、第一
のOSがそれらの割り込みをマスクしないように割り込
み禁止レベルテーブルを変更する。具体的には、割り込
み識別テーブル1520のOS欄1521を参照して、
第二のOSが管理する割り込み番号について、割り込み
禁止レベルテーブル1800のチェックをクリアする。In the present invention, the interrupt disable level table 1800 is changed when the second OS is initialized (step 1409). In step 1409, the second OS
Changes the interrupt prohibition level table so that the first OS does not mask those interrupts generated by the devices managed by. Specifically, referring to the OS column 1521 of the interrupt identification table 1520,
The check of the interrupt disable level table 1800 for the interrupt number managed by the second OS is cleared.
【0162】この例では、割り込み番号4と5が第二の
OSが処理する割り込みとなっている。したがって、割
り込み禁止レベルテーブル1800のすべての割り込み
禁止レベルの、割り込み番号4と5の欄(1801と1
802のすべて)をクリアする。In this example, interrupt numbers 4 and 5 are interrupts processed by the second OS. Accordingly, the columns of the interrupt numbers 4 and 5 (1801 and 1
802) is cleared.
【0163】これにより、第一のOSが割り込み禁止レ
ベルを変更しても、第二のOSが管理するデバイスの割
り込みはマスクされなくなる。Thus, even if the first OS changes the interrupt disable level, the interrupt of the device managed by the second OS is not masked.
【0164】以上により、一台の計算機で2つのオペレ
ーティングシステムを同時に動作させることが可能にな
る。As described above, two operating systems can be operated simultaneously by one computer.
【0165】本発明によれば、第一のOSに変更を加え
て2つのオペレーティングシステムを同時に動作させる
場合、変更箇所がオペレーティングシステムカーネルの
初期化部分、デバイス資源予約、および、割り込み禁止
制御部分に限定されるため、簡単に2つのオペレーティ
ングシステムを動作させることが可能になる。According to the present invention, when two operating systems are operated simultaneously by making a change to the first OS, the changed parts are the initialization part of the operating system kernel, the device resource reservation, and the interrupt inhibition control part. Because of the limitation, it is possible to easily operate the two operating systems.
【0166】仮想計算機による方式では、物理メモリや
I/Oチャネルを仮想化するために特権命令のエミュレ
ーションが必要になるが、これをソフトウェアで実現す
るとオーバーヘッドが大きくなり問題である。仮想計算
機方式では、このオーバーヘッド削減のために、特殊な
ハードウェアを持つことが多くなっている。しかし、本
発明では、それぞれのデバイスについて、デバイスを管
理するオペレーティングシステムを予め決定し、さら
に、物理メモリについて利用できる範囲を初期化時に決
定することにより、オペレーティングシステム同士が互
いに干渉しないようにして、仮想計算機でのような複雑
なソフトウェアによる制御を廃止し、高速化のためのハ
ードウェアも不要とした。In the method using a virtual computer, emulation of a privileged instruction is required to virtualize a physical memory and an I / O channel. However, if this is realized by software, there is a problem in that overhead is increased. The virtual machine system often has special hardware to reduce this overhead. However, in the present invention, for each device, an operating system that manages the device is determined in advance, and furthermore, a range that can be used for the physical memory is determined at initialization, so that the operating systems do not interfere with each other, The control by complicated software such as a virtual machine was abolished, and hardware for speeding up was eliminated.
【0167】本発明によれば、第一のOSの機能を補完
するOSを容易に追加することが可能である。従来技術
においても、第一のOSの構成要素として、例えばデバ
イスドライバとして新たな機能をカーネルに追加するこ
とは可能である。しかし、第一のOSの構成要素として
しまったのでは、その構成要素は第一のOSの管理下で
しか動作できない問題がある。つまり、第一のOSが障
害により停止してしまったとき、追加した機能モジュー
ルも動作することはできないのである。According to the present invention, it is possible to easily add an OS that complements the function of the first OS. Also in the prior art, it is possible to add a new function to the kernel as a component of the first OS, for example, as a device driver. However, if the first OS is used as a component, there is a problem that the component can operate only under the control of the first OS. That is, when the first OS is stopped due to a failure, the added function module cannot operate.
【0168】本発明によれば、新たな機能を実現する構
成要素を、第一のOSと独立して構成することができ、
第一のOSが停止してしまったとしても、その機能モジ
ュールだけは継続して動作することが可能になる。この
実施形態については、後述する。信頼性を要求される機
能モジュールを第二のOSとして組み込めば、第一のO
Sが停止してしまったときでも、何らかの回復処理を実
現させるといったことが可能になる。このように本発明
は、計算機システムの高信頼化を実現する手段となり得
る発明である。According to the present invention, components for realizing a new function can be configured independently of the first OS.
Even if the first OS is stopped, only the functional module can continue to operate. This embodiment will be described later. If a functional module requiring reliability is incorporated as the second OS, the first OS
Even when S has stopped, it is possible to realize some kind of recovery processing. As described above, the present invention is an invention that can be a means for realizing high reliability of a computer system.
【0169】また、この実施形態では、第二のOSが第
一のOSに優先して処理を実行するとして説明した。第
一のOSは、第二のOSがアイドル時にしか動作できな
いことや、第二のOSの割り込みはいつでもすぐに処理
することにより、第二のOSを優先させている。これに
より、第一のOSが実時間処理に適合していなくても、
第二のOSとして実時間処理に向くOSを導入すれば、
第一のOSの特徴を活かしたままで、実時間処理性能に
優れた計算機システムを構築することが可能になる。例
えば、第一のOSが優れたGUI(Graphical UserInter
face)を持っているが実時間処理性能に欠ける場合、第
一のOSよりも優先して動作する実時間処理向きオペレ
ーティングシステムを第二のOSとして導入してやるこ
とで、GUIにも優れ、実時間処理にも優れた計算機シ
ステムの構築ができる。In this embodiment, the description has been given assuming that the second OS executes the process prior to the first OS. The first OS prioritizes the second OS by being able to operate only when the second OS is idle, and by always processing the interruption of the second OS immediately. Thus, even if the first OS is not suitable for real-time processing,
If an OS suitable for real-time processing is introduced as the second OS,
It is possible to construct a computer system having excellent real-time processing performance while utilizing the features of the first OS. For example, the first OS has an excellent GUI (Graphical User Inter
face) but lacks real-time processing performance, an operating system suitable for real-time processing that operates with priority over the first OS is introduced as the second OS, so that it has excellent GUI and real-time processing. A computer system with excellent processing can be constructed.
【0170】このように、本発明は、特別なハードウェ
アの支援なしで、第一のOSに欠けている機能を容易に
導入する方法であり、さらに、その機能は第一のOSと
は全く独立して動作させることを可能にする。As described above, the present invention is a method for easily introducing a function lacking in the first OS without special hardware support, and the function is completely different from that of the first OS. Enables independent operation.
【0171】次に、本発明の第二の実施形態について説
明する。第二の実施形態は、これまで説明してきた実施
の形態の拡張である。この実施の形態では、第一のOS
が障害により停止しても動作しつづける第二のOSの導
入が実現可能である。Next, a second embodiment of the present invention will be described. The second embodiment is an extension of the embodiment described above. In this embodiment, the first OS
It is feasible to introduce a second OS that continues to operate even if the OS is stopped due to a failure.
【0172】第一の実施形態に加えて、第一OS実行状
態変数1550を共通領域に置く。この変数1550
は、第一のOSが通常動作しているか、そうでないかを
示す値を格納している。この変数1550は、第二のO
Sをロードする時の処理で、通常動作を示す値に初期化
する。In addition to the first embodiment, a first OS execution state variable 1550 is placed in a common area. This variable 1550
Stores a value indicating whether the first OS is operating normally or not. This variable 1550 contains the second O
At the time of loading S, it is initialized to a value indicating a normal operation.
【0173】図19は、本発明の第二の実施の形態の第
一のOSの停止処理手順を示すフローチャートである。
この処理手順は、第一のOSの停止処理を実行するモジ
ュールを変更して実装する。FIG. 19 is a flowchart showing a procedure for stopping the first OS according to the second embodiment of this invention.
This processing procedure is implemented by changing the module that executes the stop processing of the first OS.
【0174】まず、第一のOSの停止処理モジュールに
制御がきたら、第一OS実行状態変数1550を第一の
OSが停止していることを示す値に設定する(ステップ
1901)。その後、第一のOSの停止処理を実行する
(ステップ1902)。最後に、第一のOSへの割り込
みをマスクして、第二のOSが処理するデバイスの割り
込みを許可して(ステップ1903)、割り込みが発生
するまで待つ(ステップ1904)。割り込みが発生す
ると、実行OSの切り替えられ、第二のOSが処理を実
行する。First, when the first OS stop processing module is controlled, the first OS execution state variable 1550 is set to a value indicating that the first OS is stopped (step 1901). After that, the first OS stop processing is executed (step 1902). Finally, the interruption to the first OS is masked, the interruption of the device processed by the second OS is permitted (step 1903), and the process waits until an interruption occurs (step 1904). When an interrupt occurs, the execution OS is switched, and the second OS executes the processing.
【0175】更に、実行OS切り替え手順を変更する。
第一の実施の形態では、ステップ1601から始まる手
順により実行OSの切り替えを実行した。第二の実施の
形態では、この手順で第二のOSのモジュールを実行し
た後、つまり、ステップ1605の後で、第一OS実行
状態変数1550を検査する。ここで、第一OS実行状
態変数1550が、第一のOSが停止していることを示
す値になっているならば、ステップ1606以降の処理
を実行せずに、割り込み待ちを実行する。Further, the execution OS switching procedure is changed.
In the first embodiment, the execution OS is switched according to the procedure starting from step 1601. In the second embodiment, after executing the module of the second OS in this procedure, that is, after step 1605, the first OS execution state variable 1550 is checked. Here, if the first OS execution state variable 1550 has a value indicating that the first OS is stopped, the process waits for an interrupt without executing the processing after step 1606.
【0176】以上のデータ構造と手順により、第一のO
Sが停止しても第二のOSの実行を継続することが可能
になる。この実施形態では、第一のOSの停止処理モジ
ュールを変更するとしたが、第一のOSがエラーにより
停止したときの停止処理過程で実行されるモジュールを
変更して、第一のOSの停止を検出して割り込み待ちを
しても同様の効果を実現できる。With the above data structure and procedure, the first O
Even if S stops, the execution of the second OS can be continued. In this embodiment, the stop processing module of the first OS is changed. However, the module executed in the stop processing when the first OS stops due to an error is changed to stop the first OS. The same effect can be realized by detecting and waiting for an interrupt.
【0177】本発明の第3の実施の形態について説明す
る。これまで説明してきた実施の形態では、カーネル本
体を変更することにより2つのOSの同時実行等を実現
してきた。第3の実施の形態では、カーネル本体を変更
せずに、前記の実施の形態の機能を実現する。A third embodiment of the present invention will be described. In the embodiments described above, simultaneous execution of two OSs and the like are realized by changing the kernel body. In the third embodiment, the functions of the above embodiments are realized without changing the kernel body.
【0178】様々の種類のハードウェアをサポートする
オペレーティングシステムでは、ハードウェア依存の処
理がカーネル本体からは切り離されて、別のオブジェク
トファイルとして構成されている場合がある。例えば、
割り込み制御装置112が計算機により異なる場合や、
バス109の構成が異なってI/Oアドレス空間が計算
機により異なる場合である。In an operating system that supports various types of hardware, hardware-dependent processing may be separated from the kernel itself and configured as another object file. For example,
When the interrupt control device 112 differs depending on the computer,
This is a case where the configuration of the bus 109 is different and the I / O address space is different for each computer.
【0179】図20は、このようなオペレーティングシ
ステム、つまり、割り込み制御装置やバスなどの基盤と
なるハードウェアの違いを吸収するためのコードやデー
タがカーネル本体とは分離されたオブジェクトファイル
にある場合の、カーネル領域の様子を示した図である。FIG. 20 shows a case where such an operating system, that is, a code or data for absorbing a difference in underlying hardware such as an interrupt control device and a bus is in an object file separated from the kernel itself. FIG. 3 is a diagram showing a state of a kernel area of FIG.
【0180】カーネル領域2000には、プロセッサ1
01のカーネルモードで実行されるモジュールや、オペ
レーティングシステムが管理するデータ構造がある。カ
ーネル本体2001は、メモリ管理、プロセススケジュ
ーリング、および、ファイルシステムなどの、ハードウ
ェア非依存の処理を実施するコードやデータを持ってい
る。カーネル本体2001とハードウェア依存部200
2の間には、ハードウェア依存部2002の提供しなけ
ればならないモジュールと、カーネル本体2001が提
供するモジュールに関する規約が定められている。ハー
ドウェア依存部2002をこの規約にあわせて構築すれ
ば、様々な計算機上でこのオペレーティングシステムを
動作させることが可能になる。In the kernel area 2000, the processor 1
01 modules executed in the kernel mode and data structures managed by the operating system. The kernel body 2001 has codes and data for performing hardware-independent processing such as memory management, process scheduling, and file system. Kernel body 2001 and hardware dependent part 200
2, a module which must be provided by the hardware dependent unit 2002 and a rule regarding a module provided by the kernel main body 2001 are defined. If the hardware-dependent unit 2002 is constructed in accordance with the rules, the operating system can be operated on various computers.
【0181】この規約に従ったハードウェア依存の処理
は、別オブジェクトファイルに分離され、カーネル本体
とは切り離された領域2002にマップされている。カ
ーネル本体2001とハードウェア依存部2002は、
第一の実施の形態の場合と同様の外部参照機構により互
いの公開モジュールを呼び出すことができ、見かけ上は
1つのカーネルとして機能する。The hardware-dependent processing according to this rule is separated into a separate object file and mapped to an area 2002 separated from the kernel body. The kernel body 2001 and the hardware dependent unit 2002
Public modules can be called from each other by the same external reference mechanism as in the first embodiment, and apparently function as one kernel.
【0182】このような場合は、カーネル本体のオブジ
ェクトファイルを変更することなく、分離されたハード
ウェア依存の処理を実施するオブジェクトファイルの変
更により第一の実施の形態、および、第二の実施の形態
と同様の効果を得ることが可能である。In such a case, without changing the object file of the kernel itself, the first embodiment and the second embodiment can be implemented by changing the object file for executing the separated hardware-dependent processing. The same effect as that of the embodiment can be obtained.
【0183】具体的には、分離されたオブジェクトファ
イルの処理において、物理メモリの割り当てが可能であ
ること、割り込みレベル管理処理を変更できること、お
よび、I/O資源の予約ができることが必要である。さ
らに、このオブジェクトファイル中にステップ1701
から始まる割り込みハンドラと割り込みテーブル107
を配置し、プロセッサの割り込みテーブルレジスタ10
4に登録する。そして、この分離されたオブジェクトフ
ァイルを共通領域203として第二のOSからも参照で
きるようにする。以上により、本発明の第一の実施の形
態と同様の効果を得ることができる。Specifically, in the processing of the separated object file, it is necessary that physical memory can be allocated, interrupt level management processing can be changed, and I / O resources can be reserved. Further, in this object file, step 1701
Handlers and interrupt tables 107 starting with
And the processor interrupt table register 10
Register to 4. Then, the separated object file is referred to as a common area 203 from the second OS. As described above, the same effects as those of the first embodiment of the present invention can be obtained.
【0184】さらに、ハードウェア依存オブジェクトフ
ァイルが、第一のOSが停止したときに実行されるモジ
ュールを持つ規定になっていれば、そのモジュールを変
更すれば第一のOSの停止を検出でき、本発明の第二の
実施の形態と同様の効果を得ることができる。Further, if the hardware-dependent object file is specified to have a module to be executed when the first OS is stopped, the change of the module can detect the stop of the first OS, The same effects as in the second embodiment of the present invention can be obtained.
【0185】この実施の形態においては、カーネル本体
を変更する必要がない。これにより、変更しなければな
らない部分が更に限定できる、カーネル本体を変更する
よりも容易に実施可能となる。In this embodiment, there is no need to change the kernel body. This makes it easier to implement than changing the kernel body, which can further limit the parts that need to be changed.
【0186】次に、本発明の第4の実施の形態について
説明する。これまで説明してきた実施の形態では、共通
領域203に配置していたのはサポートドライバや、ハ
ードウェア依存オブジェクトファイルなどのオブジェク
トファイルであった。しかし、本当に共通領域203に
配置しなければならないモジュールとデータは、割り込
みテーブル107、ステップ1701から始まる割り込
みハンドラ、ステップ1601から始まるOS切り替え
手順、および、図15に示したデータ構造分だけであ
る。特に、第3の実施例でのようにハードウェア依存部
の処理を実施するオブジェクトファイル全体を共通領域
203として第二のOSからも参照できるようにしてし
まうと、第二のOSが誤って第一のOSのデータ構造に
アクセスしてしまう可能性が高くなり問題である。Next, a fourth embodiment of the present invention will be described. In the embodiments described so far, the object files such as the support driver and the hardware-dependent object file are arranged in the common area 203. However, the only modules and data that must be placed in the common area 203 are the interrupt table 107, the interrupt handler starting from step 1701, the OS switching procedure starting from step 1601, and the data structure shown in FIG. In particular, if the entire object file for which the processing of the hardware-dependent unit is performed as in the third embodiment can be referred to from the second OS as the common area 203, the second OS erroneously executes There is a high possibility that the data structure of one OS is accessed, which is a problem.
【0187】第4の実施の形態では、オブジェクトファ
イルの特定のセクションのみを共通領域203として第
二のOSに見せる方法を提供する。この実施の形態で
は、オブジェクトファイルを生成するコンパイラが、命
令コードとデータを配置するセクションをプログラム上
で指定できる機能を持っている必要がある。The fourth embodiment provides a method for showing only a specific section of an object file as a common area 203 to the second OS. In this embodiment, it is necessary that the compiler that generates the object file has a function capable of designating a section in which the instruction code and the data are arranged in the program.
【0188】通常のオブジェクトファイルは、セクショ
ンとして命令コードを含むテキストセクションと、デー
タを含むデータセクションを持っている。これに加え
て、コンパイラの機能により共通領域203のためのセ
クションを追加する。さらに、オブジェクトファイルの
ヘッダ部分に格納されているセクションデータ809を
参照して共通領域セクションのアドレス範囲を決定し、
その部分だけを第二のOSに見せるようにページテーブ
ルを構築すればよい。A normal object file has a text section containing an instruction code and a data section containing data as sections. In addition, a section for the common area 203 is added by the function of the compiler. Further, the address range of the common area section is determined with reference to the section data 809 stored in the header part of the object file,
The page table may be constructed so that only that part is shown to the second OS.
【0189】ハードウェア依存処理をするモジュールを
含むオブジェクトファイルを変更する場合を例として説
明する。変更個所のうち初期化に関連する部分、例え
ば、物理メモリの割り当て、I/O資源の予約、割り込
みレベル管理部分の変更は第二のOSに見せる必要はな
い。第二のOSからも参照できなければならないのは、
割り込みテーブル107、ステップ1701から始まる
割り込みハンドラ、ステップ1601から始まるOS切
り替え手順、および、図15に示したデータ構造分だけ
である。これらを、共通領域セクションに配置するよう
にプログラムを記述し、コンパイラの機能により共通領
域セクションを生成する。A case will be described as an example where an object file including a module that performs hardware-dependent processing is changed. It is not necessary for the second OS to show the part related to the initialization of the changed part, for example, the change of the allocation of the physical memory, the reservation of the I / O resource, and the interrupt level management part. What must be able to be referred from the second OS is
Only the interrupt table 107, the interrupt handler starting from step 1701, the OS switching procedure starting from step 1601, and the data structure shown in FIG. A program is described so that these are arranged in the common area section, and the common area section is generated by the function of the compiler.
【0190】図21は、生成されたオブジェクトファイ
ルの構成を示している。2100は、生成されたオブジ
ェクトファイルを示す。オブジェクトファイル2100
のヘッダ部の2101、ないし、2104は、オブジェ
クトファイル2100に含まれているセクションのデー
タを記述している。このうち2103と2104が、共
通領域203用に新規に作成したセクションを表現する
セクションデータである。対応するセクションは210
7と2108である。セクションデータ2103と21
04の内容にしたがってセクション2107と2108
のアドレスを求め、それらの領域だけを第二のOSのカ
ーネル領域にマップするように第二のOSのページテー
ブルを構成すれば、ハードウェア依存オブジェクトファ
イル2100の他の部分を第二のOSから隠すことがで
きる。FIG. 21 shows the structure of the generated object file. Reference numeral 2100 denotes the generated object file. Object file 2100
2101 to 2104 of the header section describe data of a section included in the object file 2100. Among them, 2103 and 2104 are section data expressing sections newly created for the common area 203. The corresponding section is 210
7 and 2108. Section data 2103 and 21
Sections 2107 and 2108 according to the contents of 04
Of the hardware-dependent object file 2100 from the second OS if the page table of the second OS is configured so that only those areas are mapped to the kernel area of the second OS. Can be hidden.
【0191】第4の実施の形態によれば、これまで説明
した実施の形態よりも、更にOS間の独立性を高めるこ
とができ、OS間の干渉の少ない安全な計算機システム
の構築が可能になる。According to the fourth embodiment, the independence between OSs can be further improved as compared with the above-described embodiments, and a secure computer system with less interference between OSs can be constructed. Become.
【0192】次に、本発明の第5の実施の形態について
説明する。第5の実施の形態では、マルチプロセッサ構
成の計算機で第二のOSを導入が可能になる。Next, a fifth embodiment of the present invention will be described. In the fifth embodiment, the second OS can be introduced by a computer having a multiprocessor configuration.
【0193】図22は、本発明の第5の実施の形態での
計算機装置を示す図である。2200は計算機装置であ
る。計算機2200は2つのプロセッサ2201と22
02、および、主記憶装置2203を持っている。ま
た、第一の実施の形態と同様に、計算機起動プログラム
を格納している記憶装置2204を持っている。FIG. 22 is a diagram showing a computer device according to the fifth embodiment of the present invention. Reference numeral 2200 denotes a computer device. The computer 2200 has two processors 2201 and 220
02 and a main storage device 2203. Further, similarly to the first embodiment, it has a storage device 2204 storing a computer activation program.
【0194】プロセッサ2201と2202について、
プロセッサを起動したときと、初期化のための割り込み
を受けた時とでは、制御を渡す物理アドレスが異なるも
のとする。For the processors 2201 and 2202,
It is assumed that the physical address to which control is transferred differs between when the processor is started and when an interrupt for initialization is received.
【0195】記憶装置2204に格納されている初期化
割り込み処理プログラムは、予め定めた物理アドレスに
格納されている値を物理アドレスとして、そのアドレス
に制御を渡す。The initialization interrupt processing program stored in the storage device 2204 uses the value stored at a predetermined physical address as a physical address and passes control to that address.
【0196】また、バス2209を介して磁気ディスク
装置2206、クロック割り込み生成装置2207、お
よび、入出力装置2207等のデバイスが接続してい
る。割り込みを発生するデバイスは、割り込み制御装置
2205に接続し、更に、割り込みバス2211を介し
てプロセッサ2201と2202に接続している。各プ
ロセッサは他のプロセッサに割り込みを送ることができ
るとする。Also, devices such as a magnetic disk device 2206, a clock interrupt generation device 2207, and an input / output device 2207 are connected via a bus 2209. The device that generates an interrupt is connected to the interrupt control device 2205, and further connected to the processors 2201 and 2202 via the interrupt bus 2211. Assume that each processor can send an interrupt to another processor.
【0197】割り込み制御装置2205について説明す
る。割り込み制御装置2205は、マルチプロセッサ構
成のための機能を持っている。割り込み制御装置220
5は、第一の実施の形態での割り込み制御装置112の
割り込みマスク機能に加えて、それぞれのデバイスから
の割り込みをどのプロセッサ、あるいは、プロセッサ群
に通知するかを指定する機能を持っている。The interrupt control device 2205 will be described. The interrupt control device 2205 has a function for a multiprocessor configuration. Interrupt control device 220
Reference numeral 5 has a function of designating which processor or processor group is to be notified of an interrupt from each device in addition to the interrupt mask function of the interrupt controller 112 in the first embodiment.
【0198】図23は、割り込み制御装置2205の構
成を示す図である。選択装置2301と割り込みマスク
レジスタ2302の働きは、第1の実施の形態と同じで
ある。それらに加えて、割り込み制御装置2205は、
割り込み配送テーブル2310と、割り込み送信装置2
305を持っている。FIG. 23 is a diagram showing a configuration of the interrupt control device 2205. The operations of the selection device 2301 and the interrupt mask register 2302 are the same as in the first embodiment. In addition to them, the interrupt controller 2205
Interrupt delivery table 2310 and interrupt transmission device 2
305.
【0199】割り込み配送テーブル2310は、割り込
み制御装置2205に接続されたそれぞれのデバイスに
ついて、どのプロセッサ、あるいは、プロセッサ群に割
り込みを通知するかを示す値2311と、通知するとき
の割り込み番号2312を記録している。割り込み配送
テーブル2302は、I/O命令により変更することが
でき、自由に設定可能である。The interrupt delivery table 2310 records, for each device connected to the interrupt controller 2205, a value 2311 indicating which processor or a group of processors is notified of the interrupt, and an interrupt number 2312 at the time of notification. doing. The interrupt delivery table 2302 can be changed by an I / O instruction and can be set freely.
【0200】図23の例では、割り込み0と1はCPU
0に、割り込み2はCPU1に配送するように設定され
ている。In the example shown in FIG. 23, interrupts 0 and 1
At 0, interrupt 2 is set to be delivered to CPU1.
【0201】割り込み送信装置2305は、選択装置2
301からの信号を受けて、割り込み配送テーブル23
10を参照して割り込み通知先と割り込み番号を決定す
る。そして、通知先と割り込み番号を表わす信号を割り
込みバス2211へ送信する。The interrupt transmitting device 2305 is connected to the selecting device 2
In response to the signal from 301, the interrupt delivery table 23
10, the interrupt notification destination and the interrupt number are determined. Then, a signal indicating the notification destination and the interrupt number is transmitted to the interrupt bus 2211.
【0202】計算機2200は、起動するとプロセッサ
2201だけが動作を開始するように構成されており、
プロセッサ2201が記憶装置2204に格納されてい
る起動プログラムを実行する。起動プログラムは、第一
の実施の形態の場合と同様に磁気ディスク装置2206
に格納されているカーネルローダを主記憶2203に読
み込み実行する。カーネルローダは、パラメータテーブ
ル1100を作成する。第5の実施の形態では、デバイ
スリストに計算機2200が何個のプロセッサを持って
いるかを示すデータが加えられる。The computer 2200 is configured such that when it starts up, only the processor 2201 starts operating.
The processor 2201 executes a boot program stored in the storage device 2204. The boot program is stored in the magnetic disk device 2206 in the same manner as in the first embodiment.
Is read into the main memory 2203 and executed. The kernel loader creates the parameter table 1100. In the fifth embodiment, data indicating how many processors the computer 2200 has is added to the device list.
【0203】第一のOSのロード後、第一のOSの初期
化処理を実行する。初期化の過程で、非ブートプロセッ
サ以外のプロセッサ用の初期化ルーチンのアドレスを予
め定めた物理アドレスに格納し、プロセッサ2202に
初期化割り込みを送る。プロセッサ2202は初期化割
り込みを受けると、記憶装置2204に格納されている
プログラムを実行し、非ブートプロセッサ初期化ルーチ
ンに制御がわたる。非ブートプロセッサ初期化ルーチン
は、ページテーブルレジスタや割り込みテーブルレジス
タを設定して仮想アドレスモードに移行し、初期化処理
を続ける。After loading the first OS, the first OS is initialized. During the initialization process, the address of the initialization routine for a processor other than the non-boot processor is stored in a predetermined physical address, and an initialization interrupt is sent to the processor 2202. Upon receiving the initialization interrupt, the processor 2202 executes the program stored in the storage device 2204, and passes control to a non-boot processor initialization routine. The non-boot processor initialization routine sets the page table register and the interrupt table register, shifts to the virtual address mode, and continues the initialization processing.
【0204】本発明の第5の実施の形態では、図12の
ステップ1204の第二のOS用のデバイスの予約のと
きに、プロセッサも第二のOS専用であると予約する。
ここでは、プロセッサ2202を予約するとして説明す
る。In the fifth embodiment of the present invention, when the device for the second OS is reserved in step 1204 of FIG. 12, the processor also reserves that the processor is dedicated to the second OS.
Here, description will be made assuming that the processor 2202 is reserved.
【0205】マルチプロセッサ構成の場合、ステップ1
201から始まる第一のOSの初期化手順のシステムデ
バイスの初期化で、非ブートプロセッサに初期化割り込
みを送る。この場合、プロセッサ2201からプロセッ
サ2202に初期化割り込みが送られることになる。本
発明では、予約されているプロセッサについては初期化
割り込みを送らないことにする。したかって、カーネル
の初期化がされてもプロセッサ2202はまだ動作して
いない。In the case of a multiprocessor configuration, step 1
In the initialization of the system device in the first OS initialization procedure starting from 201, an initialization interrupt is sent to the non-boot processor. In this case, an initialization interrupt is sent from the processor 2201 to the processor 2202. In the present invention, an initialization interrupt is not sent for a reserved processor. Therefore, even if the kernel is initialized, the processor 2202 has not been operated yet.
【0206】また、ステップ1205のシステムデバイ
スの初期化では、割り込み制御装置2205の初期化も
実施する。割り込み制御装置2205の初期化では、カ
ーネル構成情報ファイル700の第二のOSの構成デー
タ704を参照して、第二のOSが管理するデバイスの
割り込みがプロセッサ2202に送られるように割り込
み配送テーブル2310を設定する。In the initialization of the system device in step 1205, the interrupt controller 2205 is also initialized. In the initialization of the interrupt controller 2205, the interrupt delivery table 2310 is referred to by referring to the configuration data 704 of the second OS in the kernel configuration information file 700 so that the interrupt of the device managed by the second OS is sent to the processor 2202. Set.
【0207】更に、図14のステップ1401から始ま
る第二のOSの初期化手順において、初期化ルーチンを
第二のOSの初期化ルーチンのアドレスに設定して、ス
テップ1407でプロセッサ2202に初期化割り込み
を送る。これにより、プロセッサ2202上で、第二の
OSが走行を開始する。Further, in the initialization procedure of the second OS starting from step 1401 in FIG. 14, the initialization routine is set to the address of the initialization routine of the second OS, and in step 1407 the processor 2202 is initialized. Send. As a result, the second OS starts running on the processor 2202.
【0208】第1、ないし、第4の実施の形態と異な
り、第二のOSの管理するデバイスの割り込みは、すべ
て割り込み制御装置2205により、第二のOSが動作
しているプロセッサ2202へ送られる。このため、実
行OSを切り替える必要はなくなる。第一のOSはプロ
セッサ2201で動作し、第二のOSはプロセッサ22
02で動作することになる。したがって、ステップ17
01から始まる割り込み処理も不要になる。Unlike the first to fourth embodiments, all the interrupts of the devices managed by the second OS are sent by the interrupt controller 2205 to the processor 2202 running the second OS. . Therefore, there is no need to switch the execution OS. The first OS runs on the processor 2201, and the second OS runs on the processor 221.
02 will work. Therefore, step 17
Interrupt processing starting from 01 is not required.
【0209】第二のOSは、独自の割り込みテーブルを
プロセッサ2202の割り込みテーブルレジスタに設定
し、独自の割り込みハンドラを持てる。第一のOSの割
り込みテーブルを変更する必要はない。但し、第一のO
Sが割り込み制御装置2205の割り込みマスクレジス
タ2302を変更する場合は、第二のOSのデバイスか
らの割り込みをマスクしてしまわないように変更を加え
る必要がある。The second OS sets its own interrupt table in the interrupt table register of the processor 2202 and has its own interrupt handler. There is no need to change the interrupt table of the first OS. However, the first O
When S changes the interrupt mask register 2302 of the interrupt control device 2205, it is necessary to make a change so as not to mask the interrupt from the device of the second OS.
【0210】第5の実施の形態においては、第1ないし
4の実施の形態よりも、性能の良い計算機システムの構
築か可能である。第1ないし4の実施の形態では、第一
のOSは第二のOSがアイドルしている間のみ動作可能
であったが、第5の実施の形態においては、第一のOS
は、プロセッサは奪われてはいるが常に動作することが
可能であり、同時に第二のOSも動作可能である。In the fifth embodiment, it is possible to construct a computer system with higher performance than in the first to fourth embodiments. In the first to fourth embodiments, the first OS is operable only while the second OS is idle, but in the fifth embodiment, the first OS
In this case, the processor can always operate even though the processor has been robbed, and the second OS can also operate at the same time.
【0211】更に、第5の実施の形態によれば、第一の
OSと第二のOSとで共有しなければならない領域を小
さくできる。第1ないし4の実施の形態では、共通領域
203に、割り込みテーブル、割り込みハンドラや割り
込み処理に付随するデータ構造、および、OS切り替え
コードを置かなければならなかった。第5の実施の形態
では、これらはすべて必要なくなり、互いのOSが相手
のOSを誤って破壊してしまう可能性を低くできる。Furthermore, according to the fifth embodiment, the area that must be shared between the first OS and the second OS can be reduced. In the first to fourth embodiments, the interrupt table, the data structure associated with the interrupt handler and the interrupt processing, and the OS switching code have to be placed in the common area 203. In the fifth embodiment, these are all unnecessary, and the possibility that each OS erroneously destroys the other OS can be reduced.
【0212】次に、本発明の第6の実施の形態について
説明する。これまで説明した実施形態が2つのOSを同
時実行する方式であるのに対し、第6の実施形態は2つ
以上の複数のOSを同時実行する方式である。Next, a sixth embodiment of the present invention will be described. While the embodiments described so far are systems in which two OSs are executed simultaneously, the sixth embodiment is a system in which two or more OSs are executed simultaneously.
【0213】第一の実施形態では、第二のOSが第一の
OSよりも優先して実行するように制御するが、ここで
説明する方式では、複数のOS間に実行優先度を設定可
能である。例えば、割り込みについては、実行中のOS
の優先度よりも低い優先度のOSが管理する割り込みの
処理は延期される。実行中のOSの優先度よりも高い優
先度のOSが管理する割り込みが発生した場合は、即座
に実行OSを切替え割り込み処理を開始する。In the first embodiment, the second OS is controlled to be executed prior to the first OS. However, in the method described here, the execution priority can be set among a plurality of OSs. It is. For example, for interrupts,
Of the interrupt managed by the OS having a lower priority than the priority of the OS is postponed. When an interrupt managed by an OS having a higher priority than the priority of the OS being executed occurs, the execution OS is immediately switched to start interrupt processing.
【0214】また、実行中のOSが自分よりの優先度の
高いOSのモジュールを呼び出す場合は即座に実行OS
を切替えてモジュール呼び出しを実施する。その逆の場
合、つまり、優先度の低いOSの側での処理が必要にな
る場合は、そのOSが実行権を得るまで要求された処理
を延期するように制御する。When the OS being executed calls a module of an OS having a higher priority than itself, the execution OS is immediately executed.
Is switched to execute the module call. In the opposite case, that is, when processing on the side of the OS with a lower priority is necessary, control is performed so that the requested processing is postponed until the OS obtains the execution right.
【0215】図24は、本発明の第6の実施形態の計算
機構成を示した図である。計算機構成はこれまでの実施
例と同じであるが、主記憶装置102に複数のOSがロ
ードされている様子を示している。各オペレーティング
システムは、ステップ1401に示した第二のOSをロ
ードする手順と同じ手順でロードできる。FIG. 24 is a diagram showing a computer configuration according to the sixth embodiment of the present invention. The computer configuration is the same as in the previous embodiments, but shows a state in which a plurality of OSs are loaded in the main storage device 102. Each operating system can be loaded in the same procedure as the procedure for loading the second OS shown in step 1401.
【0216】図25は、複数のOSの関係を概念的に示
した図である。第一の実施の形態では2つのOSであっ
たのに対し、ここでは第一のOS以外に複数のOSが1
つのプロセッサ上で動作していることを示している。FIG. 25 is a diagram conceptually showing the relationship between a plurality of OSs. In the first embodiment, two OSs are used.
It is running on one processor.
【0217】第一のOSの一部である共通領域が他の第
2、第3、および、第NのOSの論理空間202、25
03、および、2504にマップされ全OSから共通に
利用できることを示している。各OSの論理空間への共
通領域のマッピングは、ステップ1401に示した手順
により実施する。The common area which is a part of the first OS is the logical space 202, 25 of the other second, third and Nth OSs.
03 and 2504, indicating that they can be shared by all OSs. The mapping of the common area to the logical space of each OS is performed according to the procedure shown in step 1401.
【0218】更に、各OSはそれぞれが管理する外部機
器を持っていることを示している。第二のOSは機器1
16と117、第三のOSは機器2505と2506、
第NのOSは機器2507を管理することを示してい
る。これらの機器を制御するためのI/Oアドレス範
囲、および、割り込み番号は、図7に示すカーネル構成
情報ファイル700に格納しておけば良い。図7では第
二のOS用の構成情報のみを格納しているように記述し
たが、他に第三、第四のOSの構成情報を格納してお
く。ステップ1201からの初期化手順では、第二のO
Sだけでなく第一のOS以外の全てのOSの資源を予約
して、第一のOSが第一のOS以外のOSが管理するデ
バイスへアクセスすることを禁止する。Further, it indicates that each OS has an external device managed by each OS. The second OS is device 1
16 and 117, the third OS is devices 2505 and 2506,
The Nth OS indicates that the device 2507 is managed. The I / O address range and the interrupt number for controlling these devices may be stored in the kernel configuration information file 700 shown in FIG. Although FIG. 7 describes that only the configuration information for the second OS is stored, the configuration information of the third and fourth OSs is also stored. In the initialization procedure from step 1201, the second O
The resources of all the OSs other than the first OS as well as the S are reserved to prohibit the first OS from accessing devices managed by the OSs other than the first OS.
【0219】ステップ1201から始まる手順では、ス
テップ1202で第二のOS用の主記憶を確保してい
る。これを、第一のOS以外の複数のOS用の主記憶を
確保する処理とする。また、ステップ1204は第二の
OSが管理するデバイスを予約する処理であるが、これ
を第一のOS以外のOSが管理するデバイス資源を予約
する処理とする。In the procedure starting from step 1201, main memory for the second OS is secured in step 1202. This is a process for securing main memories for a plurality of OSs other than the first OS. Step 1204 is a process for reserving a device managed by the second OS, which is a process for reserving a device resource managed by an OS other than the first OS.
【0220】本実施形態における第一のOSの初期化手
順を図26に示す。ステップ2602と2604がステ
ップ1202と1204に対応している。ステップ26
04は、カーネル構成情報ファイル700を参照して第
一OS以外のOSのデバイス資源を予約する。FIG. 26 shows the procedure for initializing the first OS in this embodiment. Steps 2602 and 2604 correspond to steps 1202 and 1204. Step 26
04 reserves device resources of OSs other than the first OS with reference to the kernel configuration information file 700.
【0221】この時、同時に割り込み管理テーブル15
20の処理OS1521も設定する。また、各OSの構
成情報には、デバイス資源の他にOSの優先度も記述す
る。At this time, the interrupt management table 15
The processing OS 1521 is also set. The configuration information of each OS describes the priority of the OS in addition to the device resources.
【0222】図27は、共通領域203に配置するデー
タ構造を示す図である。図15に示したデータ構造と比
較して、割り込み識別テーブル1520、OS識別変数
1530、および、遅延割り込み状態変数1540は同
一のデータ構造である。OSコンテクストテーブル27
10は、1510を拡張したデータ構造となっている。FIG. 27 is a diagram showing a data structure arranged in the common area 203. As compared with the data structure shown in FIG. 15, the interrupt identification table 1520, the OS identification variable 1530, and the delayed interrupt state variable 1540 have the same data structure. OS context table 27
10 has a data structure obtained by extending 1510.
【0223】テーブル2710は、各OSの実行を切替
える時に必要になるデータを保存している。ページテー
ブル設定値2701とスタックポインタ設定2702
は、あるOSを実行中に他のOSのモジュールを呼び出
す時に設定するページテーブルとスタックポインタのア
ドレスを示している。また、ページテーブル保存値27
03とスタックポインタ保存値2704は、優先度の高
いOSへの切替を実施した時の優先度が低い方のOSの
ページテーブル値、および、スタックポインタ値を保存
している。The table 2710 stores data required when switching execution of each OS. Page table setting value 2701 and stack pointer setting 2702
Indicates a page table and a stack pointer address set when a module of another OS is called during execution of a certain OS. Also, the page table storage value 27
03 and the stack pointer storage value 2704 store the page table value and the stack pointer value of the lower priority OS when switching to the higher priority OS is performed.
【0224】実行状態2705は、それぞれのOSにつ
いて稼働中であるか、および、処理待ち中であるかを示
す値を格納する。ここで稼働中であるかとは、OSが起
動されているかを示す。ある瞬間に実行中であることを
示しているわけではない。各OSの起動処理は実行状態
2705を設定する。[0224] The execution state 2705 stores a value indicating whether each OS is operating and waiting for processing. Here, whether the OS is running indicates whether the OS has been started. It does not indicate that it is running at any one moment. The activation process of each OS sets the execution state 2705.
【0225】また処理待ち中であるとは、そのOSがア
イドル状態でないことを示す。つまり、優先度の高いO
Sが実行中のため走行待ち状態にあることを示す。処理
待ち中については、具体的にどの処理が待ちになってい
るかを記述してもよい。[0225] Also, "waiting for processing" indicates that the OS is not in an idle state. In other words, O
This indicates that S is running and is in a running waiting state. As for the process waiting, it may be described specifically which process is waiting.
【0226】優先度2706は、各OSの実行優先度を
格納する。優先度は、第一OSの初期化処理手順のステ
ップ2605で、構成ファイル700より読み出し設定
する。The priority 2706 stores the execution priority of each OS. The priority is read and set from the configuration file 700 in step 2605 of the initialization processing procedure of the first OS.
【0227】実行OSの切替え手順について、第二のO
Sが実行中であるとして説明する。また、OSの実行優
先度が第一より第二、第二より第三の方が優先度が高く
設定されているとする。第二のOSの処理により第三の
OS上のプロセスが走行可能になったとする。この場
合、第三のOS内部のプロセス起動モジュールを実行し
て第三のOS上のプロセスをスケジュールする。ここ
で、第三のOSは第二のOSよりも優先度が高いので、
実行OSを即座に切替えて第三のOSのモジュールが実
行される。切替え処理では現在のページテーブルアドレ
スとスタックポインタ値を、第二のOSのページテーブ
ル保存値2703とスタックポインタ保存2704値に
格納し、第三のOSのページテーブル設定値2701と
スタックポインタ設定値2702をページテーブルレジ
スタとスタックポインタに設定して実行OSを切替え
る。Regarding the procedure for switching the execution OS, the second O
It is assumed that S is being executed. Further, it is assumed that the execution priority of the OS is set to be higher than the first and second and the third is higher than the second. It is assumed that the process on the third OS becomes runnable by the processing of the second OS. In this case, the process on the third OS is scheduled by executing the process activation module in the third OS. Here, since the third OS has a higher priority than the second OS,
The execution OS is immediately switched to execute the third OS module. In the switching process, the current page table address and stack pointer value are stored in the second OS page table storage value 2703 and stack pointer storage 2704 value, and the third OS page table setting value 2701 and stack pointer setting value 2702 are stored. Is set in the page table register and the stack pointer to switch the execution OS.
【0228】第二のOSが第一のOSのモジュールを呼
び出す場合、第一のOSの優先度は第二のOSの優先度
よりも低いため、呼び出しは延期する。この場合、呼び
出し要因を実行状態2705記録しておき、第一のOS
が実行権を得た時に、すなわち、第二、および、第三の
OSが処理を終了した時に、モジュール呼び出しを実施
する。When the second OS calls the module of the first OS, the calling is postponed because the priority of the first OS is lower than the priority of the second OS. In this case, the call cause is recorded in the execution state 2705, and the first OS
Executes the module call when the second OS obtains the execution right, that is, when the second and third OSs complete the processing.
【0229】図28は、実行OSの切替え手順を示すフ
ローチャートである。ステップ2801からの処理の大
部分は図16に示したステップ1601からの処理と同
じである。この手順は、OSの優先度については考慮し
ていないが、この手順を呼び出す前に呼出先OSの優先
度と実行中OSの優先度を比較して、実際に呼び出して
良い場合はステップ2801からの処理を実施すれば良
い。FIG. 28 is a flowchart showing a procedure for switching the execution OS. Most of the processing from step 2801 is the same as the processing from step 1601 shown in FIG. Although this procedure does not consider the priority of the OS, it compares the priority of the called OS with the priority of the running OS before calling this procedure. May be performed.
【0230】ステップ2801から始まる処理は、切替
先OSと呼び出しモジュールのアドレスを引数として受
ける。ステップ2801では、現在のページテーブルア
ドレスとスタックポインタを、OSコンテクストテーブ
ル2710の現在実行中のOSのページテーブル保存値
2703と、スタックポインタ保存値2704に保存す
る。現在実行中のOSは、OS識別変数1530により
判定できる。The processing starting from step 2801 receives the switching destination OS and the address of the calling module as arguments. In step 2801, the current page table address and stack pointer are stored as the page table storage value 2703 and stack pointer storage value 2704 of the currently executing OS in the OS context table 2710. The currently running OS can be determined by the OS identification variable 1530.
【0231】次のステップ2802では、OSコンテク
ストテーブル2710より切替先OSのページテーブル
設定値2701とスタックポインタ設定値2702を取
得し、ページテーブルとスタックの切替え処理を実施す
る。In the next step 2802, the page table setting value 2701 and the stack pointer setting value 2702 of the switching destination OS are obtained from the OS context table 2710, and the page table and stack are switched.
【0232】ステップ2803では、遅延割り込み状態
をクリアする。優先度が実行中のOS以上で、切替先未
満のOSが管理するデバイスの遅延割り込み状態154
0をクリアする。At step 2803, the delay interrupt state is cleared. Delay interrupt status 154 of a device managed by an OS whose priority is equal to or higher than the running OS and lower than the switching destination
Clear 0.
【0233】例えば、第一のOSから第三のOSのモジ
ュールを呼び出すとする。この場合、ステップ2803
では第一のOSと第二のOSが管理するデバイスの遅延
割り込み状態1540をクリアする。For example, assume that the first OS calls a module of the third OS. In this case, step 2803
Then, the delay interrupt state 1540 of the device managed by the first OS and the second OS is cleared.
【0234】続くステップ2804では、OSコンテク
ストテーブル2710の現在実行中のOSの実行状態2
705を処理待ち中に設定し、ステップ2805でOS
識別変数を切替先OSに設定し、ステップ2806で引
数として渡されたモジュールを呼び出す。In the following step 2804, the execution state 2 of the currently executing OS in the OS context table 2710 is set.
705 is set to "waiting for processing", and in step 2805, the OS
The identification variable is set in the switching destination OS, and the module passed as an argument in step 2806 is called.
【0235】切替先のOSは実施すべき処理がなくなっ
た時点で、ステップ2807へ制御を戻す。ステップ2
807では、OSコンテクストテーブルの各OSの実行
状態2705と優先度2706を参照して、最も優先度
が高い処理待ち中のOSを見つける。The OS at the switching destination returns control to step 2807 when there is no more processing to be performed. Step 2
In step 807, an OS waiting for processing with the highest priority is found by referring to the execution state 2705 and the priority 2706 of each OS in the OS context table.
【0236】ステップ2808は、ステップ2807で
選択したOSのコンテクストを、OSコンテクストテー
ブル2710のページテーブル保存値2703とスタッ
クポインタ保存値2704より回復する。At step 2808, the OS context selected at step 2807 is recovered from the page table storage value 2703 and stack pointer storage value 2704 of the OS context table 2710.
【0237】次のステップ2809で、OS識別変数1
530を選択したOSに設定する。In the next step 2809, the OS identification variable 1
530 is set to the selected OS.
【0238】OSコンテクストテーブル2700の実行
状態2705に延期されている処理があることが記録さ
れている場合は、その延期されている処理を実行する
(ステップ2810)。If the execution state 2705 of the OS context table 2700 records that there is a postponed process, the postponed process is executed (step 2810).
【0239】続く処理では、遅延された割り込みを処理
する。ステップ2812は、遅延割り込み状態1540
を参照して、ステップ2807で選択されたOSが処理
すべき割り込みが発生していないかを検査する。選択さ
れたOSがどの割り込み番号の割り込みを管理している
かは、割り込み識別テーブル1520の処理OS152
1を参照すれば分かる。In the subsequent processing, the delayed interrupt is processed. Step 2812 is a delay interrupt state 1540
, It is checked whether an interrupt to be processed by the OS selected in step 2807 has occurred. Which interrupt number the selected OS manages is determined by the processing OS 152 in the interrupt identification table 1520.
Reference is made to FIG.
【0240】ステップ2812の検査の結果、処理待ち
の割り込みが発生していると判定した場合はステップ2
813へ進む。ステップ2813では、処理しなければ
ならない割り込みが発生していることを選択されたOS
が認識できるように選択されたOSのデータ構造を設定
する。続くステップ2814は、割り込み識別テーブル
1520を参照して、処理する割り込みの割り込みハン
ドラ1522を呼び出す。ハンドラの処理終了後、回復
したコンテクストにしたがって、選択されたOSの実行
を再開する。If it is determined in step 2812 that an interrupt waiting to be processed has occurred, the process proceeds to step 2
Proceed to 813. At step 2813, it is determined that an interrupt to be processed has occurred.
The data structure of the selected OS is set so that the OS can be recognized. In a succeeding step 2814, the interrupt handler 1522 of the interrupt to be processed is called with reference to the interrupt identification table 1520. After the processing of the handler is completed, the execution of the selected OS is resumed according to the recovered context.
【0241】処理待ち割り込みがなければ、そのまま回
復したコンテクストにしたがって、選択されたOSの実
行を再開する。If there is no processing waiting interrupt, execution of the selected OS is resumed according to the recovered context.
【0242】割り込み処理について説明する。図29
は、割り込み処理手順を示すフローチャートである。図
29に示す手順を実行するルーチンはプロセッサ103
の割り込みハンドラとして割り込みテーブル400に登
録される。また、全てのOSから参照可能な共通領域に
配置される。The interrupt processing will be described. FIG.
9 is a flowchart showing an interrupt processing procedure. The routine for executing the procedure shown in FIG.
Is registered in the interrupt table 400 as the interrupt handler of the. In addition, they are arranged in a common area that can be referenced from all OSs.
【0243】処理手順について説明する。まず、ステッ
プ2901では、割り込み要因より割り込みを処理する
OSを決定する。処理OSは、割り込み識別テーブル1
520の処理OS1521に記録されており、これを参
照して決定する。The processing procedure will be described. First, in step 2901, the OS that processes the interrupt is determined based on the interrupt factor. The processing OS uses the interrupt identification table 1
520 are recorded in the processing OS 1521 and are determined with reference to this.
【0244】割り込み発生時のOSと割り込み処理OS
が同一ならば(ステップ2902)、割り込み識別テー
ブル1520に登録されている割り込みハンドラ152
2を実行する(ステップ2903)。ハンドラ処理終了
時に割り込まれた処理を再開する。OS at the time of occurrence of interrupt and OS for interrupt processing
Are the same (step 2902), the interrupt handler 152 registered in the interrupt identification table 1520
2 is executed (step 2903). Restarts the interrupted process at the end of the handler process.
【0245】割り込み発生時のOSと割り込み処理OS
が異なる場合は、2つのOSの優先度を比較する(ステ
ップ2904)。実行中のOSの優先度の方が高い場
合、ステップ2905へ進み、遅延割り込み状態変数1
540を設定して、割り込まれた処理を再開する。OS at the time of occurrence of interrupt and OS for interrupt processing
Are different from each other, the priorities of the two OSs are compared (step 2904). If the priority of the OS being executed is higher, the process proceeds to step 2905, where the delayed interrupt state variable 1
540 is set to restart the interrupted processing.
【0246】割り込み処理OSの優先度の方が実行中の
OSよりも高い場合は、ステップ2906へ進み、割り
込み処理を開始する。If the priority of the interrupt processing OS is higher than that of the OS being executed, the flow advances to step 2906 to start the interrupt processing.
【0247】ステップ2906では、割り込み識別テー
ブル1520より割り込みハンドラアドレス1522を
取得する。続いて、割り込み発生時のコンテクストを保
存し(ステップ2907)、割り込みハンドラを呼び出
す(ステップ2908)。割り込みハンドラの呼び出し
は、図28のステップ2801から始まる手順により実
施する。At step 2906, an interrupt handler address 1522 is obtained from the interrupt identification table 1520. Subsequently, the context at the time of occurrence of the interrupt is saved (step 2907), and the interrupt handler is called (step 2908). The call of the interrupt handler is performed according to the procedure starting from step 2801 in FIG.
【0248】その後、割り込まれたOSに制御が戻った
時に、割り込み発生時のコンテクストを回復し(ステッ
プ2910)、割り込まれた処理を再開する。Thereafter, when the control returns to the interrupted OS, the context at the time of occurrence of the interrupt is restored (step 2910), and the interrupted process is restarted.
【0249】次に、共通領域203に配置する処理モジ
ュールについて述べる。共通領域203には、ステップ
2801からのOS切替えモジュールと2901から始
まる割り込みハンドラを配置する。この他の全てのOS
から呼び出されるモジュールも共通領域203に配置す
る。例えば、各OSの割り込みハンドラを割り込み識別
テーブル1520に登録するモジュールや、OSコンテ
クストテーブル2710の実行状態2705を設定する
モジュールである。Next, processing modules arranged in the common area 203 will be described. In the common area 203, an OS switching module from step 2801 and an interrupt handler starting from 2901 are arranged. All other OS
Are also arranged in the common area 203. For example, a module that registers the interrupt handler of each OS in the interrupt identification table 1520 and a module that sets the execution state 2705 of the OS context table 2710.
【0250】各OSは、それぞれの初期化処理で共通領
域203の登録モジュールを呼び出して割り込みハンド
ラを登録することにより、外部割り込みの処理が可能に
なる。また、何らかの処理により実行中のOSの優先度
よりも低い優先度の他のOSの処理が可能になる場合、
実行状態2705に処理待ち中であること、あるいは、
処理待ちの要因を示す値を設定しなければならない。こ
の場合も、共通領域203内の実行状態設定モジュール
を呼び出すことにより設定する。Each OS can process an external interrupt by calling the registration module of the common area 203 and registering the interrupt handler in each initialization process. In addition, when some processing enables processing of another OS with a lower priority than the priority of the OS being executed,
Waiting for execution state 2705, or
A value indicating the cause of the processing wait must be set. Also in this case, the setting is made by calling the execution state setting module in the common area 203.
【0251】本実施形態によれば、第一のOSの他に複
数のOSを1つのプロセッサで実行可能となり、特別な
機能に特化したOSを組み合わせることが可能となる。
例えば、リアルタイム性に優れたOSと計算機の信頼性
を補完するOSとを組み合わせて、第一のOSの機能を
補うことができる。各OSは独立しているのでさまざま
のOSを組み合わせることができ、用途に応じた第一の
OSの機能拡張が可能になる。更に、これまで説明した
実施形態により得られる効果も損なわれることはない。According to this embodiment, a plurality of OSs can be executed by one processor in addition to the first OS, and an OS specialized for a special function can be combined.
For example, the function of the first OS can be supplemented by combining an OS with excellent real-time properties and an OS that supplements the reliability of the computer. Since each OS is independent, various OSs can be combined, and the function of the first OS can be expanded according to the application. Further, the effects obtained by the embodiments described above are not impaired.
【0252】更に、OS間に優先度を設定できるので、
リアルタイムOSの優先度を最も高く設定するといった
設定も可能である。これにより、各OSの優れている機
能を有効に利用することが可能になる。Further, since the priority can be set between the OSs,
It is also possible to set the priority of the real-time OS to be the highest. This makes it possible to effectively use the excellent functions of each OS.
【0253】本発明の第7の実施の形態について説明す
る。本実施形態は、第6の実施の形態の拡張である。第
7の実施の形態では、複数動作している内のあるOSが
障害停止した場合に、他の残ったOSが実行継続可能な
制御方法を示す。A description will be given of a seventh embodiment of the present invention. This embodiment is an extension of the sixth embodiment. In the seventh embodiment, a control method will be described in which when one of a plurality of operating OSs fails and stops, the other remaining OSs can continue to execute.
【0254】各OSの障害処理モジュールは、OSの実
行を停止する時に、OSコンテクストテーブル2710
の実行状態2705を、停止中であると設定しなければ
ならない。これは、前記実施形態の、共通領域203に
配置した実行状態設定モジュールの呼び出しにより実施
する。When the execution of the OS is stopped, the failure processing module of each OS executes the OS context table 2710.
Must be set to be stopped. This is performed by calling the execution state setting module arranged in the common area 203 in the embodiment.
【0255】また、各OSは、他のOSが実行を停止し
た時に呼び出されるOS停止通知ハンドラを持ち、割り
込みハンドラと同様に共通領域203内のデータ構造に
登録する。Each OS has an OS stop notification handler which is called when another OS stops execution, and registers it in the data structure in the common area 203 in the same manner as the interrupt handler.
【0256】次に、実行状態設定モジュールの処理につ
いて説明する。図30は、本モジュールの処理を示した
フローチャートである。第三のOSが停止したとして説
明する。Next, the processing of the execution state setting module will be described. FIG. 30 is a flowchart showing the processing of this module. Description will be made assuming that the third OS has stopped.
【0257】ステップ3001では、OSコンテクスト
テーブル2710の実行状態2705を設定する。At step 3001, the execution state 2705 of the OS context table 2710 is set.
【0258】ステップ3002では、設定された実行状
態を検査する。もし、OS実行停止に設定されたらなら
ば、ステップ3003へ進む。そうでなければモジュー
ルの処理は終了する。At step 3002, the set execution state is checked. If it is set to stop OS execution, the process proceeds to step 3003. Otherwise, the processing of the module ends.
【0259】ステップ3003では、停止したOSより
も優先度が高い稼働中のOSのOS停止通知ハンドラを
呼び出す。呼び出しは、ステップ2801からのOS切
替えにより呼び出す。優先度が低いOSについては、実
行状態2706にOS停止ハンドラ実行待ちであること
を記録する。また、各OSのOS停止通知ハンドラは、
割り込みハンドラと同様に、各OSの初期化時に共通領
域内に配置されたデータ領域に登録されるものとする。In step 3003, the OS stop notification handler of the operating OS having a higher priority than the stopped OS is called. The call is made by switching the OS from step 2801. For the OS with a lower priority, the fact that the OS is waiting for the execution of the OS stop handler is recorded in the execution state 2706. The OS stop notification handler of each OS is
Similarly to the interrupt handler, it is assumed that the OS is registered in the data area located in the common area when the OS is initialized.
【0260】実行OS切替え処理では、切替先のOSが
実行を停止していないかを検査する処理が必要である。
図28のフローチャートにしたがって説明する。In the execution OS switching process, it is necessary to perform a process of checking whether the execution of the switching destination OS has stopped.
This will be described with reference to the flowchart of FIG.
【0261】まず、切替え処理を始める前に、切替先が
稼働中かを検査しなければならない。ステップ2801
の前に、OSコンテクストテーブル2710の実行状態
2705を検査して、稼働中でなければ切替え処理を終
了させる。First, before starting the switching process, it is necessary to check whether the switching destination is operating. Step 2801
Before the operation, the execution state 2705 of the OS context table 2710 is checked, and if it is not running, the switching process is terminated.
【0262】更に、ステップ2807での次の実行OS
の選択では、処理待ち中のOSの検索対象から稼働して
いないOSを除外するようにする。Furthermore, the next execution OS in step 2807
In the selection, the inactive OS is excluded from the search target of the OS waiting for processing.
【0263】選択したOSの実行を再開する前に、選択
したOSの実行状態2705を検査し、OS停止通知ハ
ンドラの実行待ちが記録されているならば、OS停止通
知ハンドラを実行する。Before the execution of the selected OS is resumed, the execution state 2705 of the selected OS is checked. If the execution waiting of the OS stop notification handler is recorded, the OS stop notification handler is executed.
【0264】次に、割り込み処理について説明する。図
29のフローチャートにしたがって説明する。ステップ
2901の割り込み処理OS決定の後、処理OSが稼働
中か検査する。ここで稼働中でないと判定した場合、割
り込みを解除して割り込まれた処理を再開させるように
する。Next, the interrupt processing will be described. This will be described with reference to the flowchart in FIG. After the determination of the interrupt processing OS in step 2901, it is checked whether the processing OS is operating. Here, if it is determined that the operation is not being performed, the interrupt is released and the interrupted process is restarted.
【0265】以上の処理により、第一のOS以外に複数
のOSが1つのプロセッサ上で同時に動作している時に
いくつかのOSが障害により停止しても、他の残りのO
Sは動作を継続することが可能になる。According to the above processing, even if some OSs are stopped due to a failure when a plurality of OSs other than the first OS are operating on one processor at the same time, other OSs are stopped.
S can continue to operate.
【0266】また、各OSの障害停止が他のOSに通知
されるので、OS間で連携して処理を実施している場合
でも、その通知をもとに各OSで障害処理を実施するこ
とが可能であり、計算機全体としての信頼性を高めるこ
とができる。Further, since the failure stop of each OS is notified to the other OS, even if the processing is performed in cooperation between the OSs, the failure processing is performed in each OS based on the notification. And the reliability of the computer as a whole can be improved.
【0267】これまで述べた実施の形態では、それぞれ
のOSは互いに異なるOSであっても、同一のOSが含
まれていても良い。In the embodiments described above, the respective OSs may be different from each other or may include the same OS.
【0268】[0268]
【発明の効果】本発明は、特別なハードウェアの支援な
しで、第一のOSに欠けている機能を容易に導入する方
法であり、さらに、その機能は第一のOSとは全く独立
して動作させることを可能にする。The present invention is a method for easily introducing a function lacking in the first OS without special hardware support, and the function is completely independent of the first OS. To operate.
【0269】本発明によれば、第一のOSに対する変更
点は、オペレーティングシステムカーネルの初期化部
分、デバイス資源予約、および、割り込み禁止制御部分
に限定されるため、簡単に2つのオペレーティングシス
テムを同時に動作させることが可能になる。According to the present invention, changes to the first OS are limited to the initialization part of the operating system kernel, the device resource reservation, and the interrupt inhibition control part. It becomes possible to operate.
【0270】仮想計算機による方式で発生するオーバー
ヘッドについて、本発明では、それぞれのデバイスにつ
いて、デバイスを管理するオペレーティングシステムを
予め決定し、さらに、物理メモリについて利用できる範
囲を初期化時に決定することにより、オペレーティング
システム同士が互いに干渉しないようにして、仮想計算
機でのような複雑なソフトウェアによる制御を廃止し、
命令エミュレーションによるオーバーヘッドも削減し、
高速化のためのハードウェアも不要とした。According to the present invention, the operating system for managing each device is determined in advance, and the usable range of the physical memory is determined at the time of initialization. Abolished control by complex software such as virtual machines by preventing operating systems from interfering with each other,
Reduces instruction emulation overhead,
Hardware for speeding up is also unnecessary.
【0271】従来技術においても、第一のOSの構成要
素として新たな機能をカーネルに追加することは可能で
あるが、第一のOSが停止してしまったとき、追加した
機能モジュールも動作することはできない問題があっ
た。本発明によれば、新たな機能を実現する構成要素
を、第一のOSと独立して構成しておけば、第一のOS
が停止してしまったとしても、その機能モジュールだけ
は継続して動作することが可能になる。信頼性が要求さ
れる機能モジュールを第二のOSとして組み込めば、第
一のOSが停止してしまったときでも、何らかの回復処
理を実現させるといったことが可能になる。In the prior art, it is possible to add a new function to the kernel as a component of the first OS, but when the first OS is stopped, the added function module also operates. There was no problem that could not. According to the present invention, if a component realizing a new function is configured independently of the first OS, the first OS
Even if is stopped, only the functional module can continue to operate. By incorporating a functional module requiring reliability as the second OS, it becomes possible to realize some kind of recovery processing even when the first OS is stopped.
【0272】また、第一のOSは、第二のOSがアイド
ル時にしか動作できないことや、第二のOSの割り込み
はいつでもすぐに処理することにより、第二のOSを優
先させることができる。これにより、第一のOSが実時
間処理に適合していなくても、第二のOSとして実時間
処理に向くOSを導入すれば、第一のOSの特徴を活か
したままで、実時間処理性能に優れた計算機システムを
構築することが可能になる。The first OS can give priority to the second OS by operating only when the second OS is idle or by immediately processing an interrupt of the second OS at any time. Thus, even if the first OS is not suitable for real-time processing, if an OS suitable for real-time processing is introduced as the second OS, real-time processing performance can be maintained while maintaining the characteristics of the first OS. It is possible to construct a computer system that is excellent in terms of.
【0273】また、第一のOSのカーネルが、カーネル
本体とハードウェア依存の処理を実行するオブジェクト
ファイルとに分離されている場合、カーネル本体を変更
しなくとも、後者のオブジェクトファイルを変更するこ
とで2つのオペレーティングシステムを同時に動作させ
ることが可能になる。これにより、更に変更しなければ
ならない部分が限定されるため、カーネル本体を変更す
るよりも容易に実施可能となる。In the case where the kernel of the first OS is separated into the kernel itself and an object file for executing hardware-dependent processing, the latter object file may be changed without changing the kernel body. Thus, two operating systems can be operated simultaneously. This limits the parts that need to be further changed, so that it is easier to implement than changing the kernel body.
【0274】また、プログラムの記述によりオブジェク
トファイル中に自由にセクションを設けることができる
ならば、それを利用して第一のOSと第二のOSとで共
通に参照する必要のある領域を特別なセクションに閉じ
込めることで、OS間の独立性を高めることができ、O
S間の干渉の少ない安全な計算機システムの構築が可能
になる。If a section can be freely provided in an object file by a description of a program, an area which must be commonly referred to by the first OS and the second OS by using the section can be specially used. By confining it to a simple section, the independence between OSs can be increased, and O
A secure computer system with little interference between S can be constructed.
【0275】本発明によれば、第一のOSに対する変更
点は、オペレーティングシステムカーネルの初期化部
分、デバイス資源予約、および、割り込み禁止制御部分
に限定されるため、簡単に複数のオペレーティングシス
テムを同時に動作させることが可能になる。According to the present invention, the changes to the first OS are limited to the initialization part of the operating system kernel, the device resource reservation, and the interrupt inhibition control part. It becomes possible to operate.
【0276】複数のオペレーティングシステムを動作実
行させた場合でも、上に示した効果を得ることができ
る。Even when a plurality of operating systems are operated, the effects described above can be obtained.
【0277】従来技術においても、第一のOSの構成要
素として新たな機能をカーネルに追加することは可能で
あるが、第一のOSが停止してしまったとき、追加した
機能モジュールも動作することはできない問題があっ
た。本発明によれば、新たな機能を実現する構成要素
を、第一のOSと独立して構成しておけば、第一のOS
が停止してしまったとしても、その機能モジュールだけ
は継続して動作することが可能になる。信頼性が要求さ
れる機能モジュールを第二、第三のOSとして組み込め
ば、第一のOSが停止してしまったときでも、何らかの
回復処理を実現させるといったことが可能になる。In the prior art, it is possible to add a new function to the kernel as a component of the first OS, but when the first OS is stopped, the added function module also operates. There was no problem that could not. According to the present invention, if a component realizing a new function is configured independently of the first OS, the first OS
Even if is stopped, only the functional module can continue to operate. By incorporating functional modules requiring reliability as the second and third OSs, it becomes possible to realize some kind of recovery processing even when the first OS is stopped.
【0278】また、第一のOSの他に複数のOSを1つ
のプロセッサで実行可能なことにより、特別な機能に特
化したOSを組み合わせることが可能となる。例えば、
リアルタイム性に優れたOSと計算機の信頼性を補完す
るOSとを組み合わせて、第一のOSの機能を補うこと
ができる。各OSは独立しているのでさまざまのOSを
組み合わせることができ、他の効果を損なうことなく用
途に応じた第一のOSの機能拡張が可能になる。In addition, since a plurality of OSs can be executed by one processor in addition to the first OS, it is possible to combine OSs specialized for special functions. For example,
The function of the first OS can be supplemented by combining an OS with excellent real-time properties and an OS that complements the reliability of the computer. Since each OS is independent, various OSs can be combined, and the function of the first OS can be expanded according to the application without impairing other effects.
【0279】また、複数のOS間に実行優先度を設定で
きることにより、第一のOSが実時間処理に適合してい
なくても、実時間処理に向く第二のOSを最高優先度に
設定すれば、第一、および、第二のOS以外のOSの特
徴を活かしたままで、実時間処理性能に優れた計算機シ
ステムを構築できすることが可能となる。Further, since the execution priority can be set among a plurality of OSs, even if the first OS is not suitable for real-time processing, the second OS suitable for real-time processing can be set to the highest priority. For example, it is possible to construct a computer system having excellent real-time processing performance while utilizing the features of the OSs other than the first and second OSs.
【0280】また、第一のOSのカーネルが、カーネル
本体とハードウェア依存の処理を実行するオブジェクト
ファイルとに分離されている場合、カーネル本体を変更
しなくとも、後者のオブジェクトファイルを変更するこ
とで複数のオペレーティングシステムを同時に動作させ
ることが可能になる。また、プログラムの記述によりオ
ブジェクトファイル中に自由にセクションを設けること
ができるならば、それを利用して全てのOSで共通に参
照する必要のある領域を特別なセクションに閉じ込める
ことで、OS間の独立性を高めることができ、OS間の
干渉の少ない安全な計算機システムの構築が可能にな
る。When the kernel of the first OS is separated into a kernel body and an object file for executing hardware-dependent processing, the latter object file may be changed without changing the kernel body. Allows multiple operating systems to operate simultaneously. Also, if sections can be freely set in the object file according to the description of the program, the area that needs to be commonly referred to by all OSs is confined to a special section by using the sections. Independence can be enhanced, and a secure computer system with less interference between OSs can be constructed.
【図1】本発明の実施の形態の、計算機構成を示す図で
ある。FIG. 1 is a diagram showing a computer configuration according to an embodiment of the present invention.
【図2】本発明の実施の形態の、計算機構成を示す図で
ある。FIG. 2 is a diagram illustrating a computer configuration according to the embodiment of this invention.
【図3】本発明の実施の形態の、ページテーブルの構成
を示す図である。FIG. 3 is a diagram showing a configuration of a page table according to the embodiment of the present invention.
【図4】本発明の実施の形態の、割り込みテーブルの構
成を示す図である。FIG. 4 is a diagram illustrating a configuration of an interrupt table according to the embodiment of this invention.
【図5】本発明の実施の形態の、割り込み制御装置の構
成を示す図である。FIG. 5 is a diagram showing a configuration of an interrupt control device according to the embodiment of the present invention.
【図6】本発明の実施の形態の、計算機のブート手順を
示すフローチャートである。FIG. 6 is a flowchart illustrating a boot procedure of a computer according to the embodiment of this invention.
【図7】本発明の実施の形態の、第一のOSのカーネル
構成情報ファイルの構成を示す図である。FIG. 7 is a diagram illustrating a configuration of a kernel configuration information file of a first OS according to the embodiment of this invention.
【図8】本発明の実施の形態の、オブジェクトファイル
の構成を示す図である。FIG. 8 is a diagram illustrating a configuration of an object file according to the embodiment of this invention.
【図9】本発明の実施の形態の、オブジェクトファイル
の構成を示す図である。FIG. 9 is a diagram illustrating a configuration of an object file according to the embodiment of this invention.
【図10】本発明の実施の形態の、オブジェクトファイ
ルの構成を示す図である。FIG. 10 is a diagram illustrating a configuration of an object file according to the embodiment of this invention.
【図11】本発明の実施の形態の、カーネル起動パラメ
ータテーブルのデータ構造を示す図である。FIG. 11 is a diagram illustrating a data structure of a kernel startup parameter table according to the embodiment of this invention.
【図12】本発明の実施の形態の、第一のOSの初期化
手順を示すフローチャートである。FIG. 12 is a flowchart illustrating a procedure for initializing a first OS according to the embodiment of this invention.
【図13】本発明の実施の形態の、第一のOSのデバイ
ス管理テーブルのデータ構造を示す図である。FIG. 13 is a diagram illustrating a data structure of a device management table of the first OS according to the embodiment of this invention.
【図14】本発明の実施の形態の、第二のOSの起動手
順を示すフローチャートである。FIG. 14 is a flowchart illustrating a startup procedure of a second OS according to the embodiment of this invention.
【図15】本発明の実施の形態の、第一のOSと第二の
OSが共有するデータ構造を示す図である。FIG. 15 is a diagram illustrating a data structure shared by a first OS and a second OS according to the embodiment of this invention.
【図16】本発明の実施の形態の、実行OSの切り替え
手順を示すフローチャートである。FIG. 16 is a flowchart illustrating a procedure for switching an execution OS according to the embodiment of this invention.
【図17】本発明の実施の形態の、割り込み処理手順を
示すフローチャートである。FIG. 17 is a flowchart illustrating an interrupt processing procedure according to the embodiment of this invention.
【図18】本発明の実施の形態の、第一のOSの割り込
みマスク処理のためのデータ構造を示す図である。FIG. 18 is a diagram illustrating a data structure for interrupt mask processing of a first OS according to the embodiment of this invention.
【図19】本発明の第2の実施の形態の、第一のOSの
障害停止処理を示すフローチャートである。FIG. 19 is a flowchart illustrating failure stop processing of a first OS according to the second embodiment of this invention.
【図20】本発明の第3の実施の形態の、第一のOSと
第二のOSのカーネル領域の構成を示す図である。FIG. 20 is a diagram illustrating a configuration of a kernel area of a first OS and a second OS according to the third embodiment of this invention;
【図21】本発明の第4の実施の形態の、オブジェクト
ファイルの構成を示す図である。FIG. 21 is a diagram illustrating a configuration of an object file according to a fourth embodiment of this invention.
【図22】本発明の第5の実施の形態の、計算機システ
ムの構成を示す図である。FIG. 22 is a diagram illustrating a configuration of a computer system according to a fifth embodiment of this invention.
【図23】本発明の第5の実施の形態の、割り込み制御
装置の構成を示す図である。FIG. 23 is a diagram illustrating a configuration of an interrupt control device according to a fifth embodiment of the present invention.
【図24】本発明の第6の実施の形態の、計算機構成を
示す図である。FIG. 24 is a diagram illustrating a computer configuration according to a sixth embodiment of this invention.
【図25】本発明の第6の実施の形態の、計算機構成を
示す図である。FIG. 25 is a diagram illustrating a computer configuration according to a sixth embodiment of this invention.
【図26】本発明の第6の実施の形態の、第一のOSの
初期化手順を示すフローチャートである。FIG. 26 is a flowchart illustrating a procedure for initializing a first OS according to a sixth embodiment of the present invention.
【図27】本発明の第6の実施の形態の、全てのOSが
共有するデータ構造を示す図である。FIG. 27 is a diagram illustrating a data structure shared by all OSs according to the sixth embodiment of this invention.
【図28】本発明の第6の実施の形態の、実行OSの切
り替え手順を示すフローチャートである。FIG. 28 is a flowchart illustrating a procedure for switching an execution OS according to the sixth embodiment of this invention.
【図29】本発明の第6の実施の形態の、割り込み処理
手順を示すフローチャートである。FIG. 29 is a flowchart illustrating an interrupt processing procedure according to the sixth embodiment of this invention.
【図30】本発明の第6の実施の形態の、OS実行状態
設定手順を示すフローチャートである。FIG. 30 is a flowchart illustrating an OS execution state setting procedure according to the sixth embodiment of this invention.
100は計算機、101はプロセッサ、102は主記憶
装置、103は演算装置、104は割り込みレジスタ、
105はページテーブルレジスタ、106はアドレス変
換装置、107は割り込みテーブル、108はページテ
ーブル、109はバス、110は割込み信号線、111
はクロック生成装置、112は割り込み制御装置、11
3ないし117は外部入出力装置、118は割り込みバ
スである。100 is a computer, 101 is a processor, 102 is a main memory, 103 is an arithmetic unit, 104 is an interrupt register,
105 is a page table register, 106 is an address converter, 107 is an interrupt table, 108 is a page table, 109 is a bus, 110 is an interrupt signal line, 111
Is a clock generator, 112 is an interrupt controller, 11
3 to 117 are external input / output devices, and 118 is an interrupt bus.
───────────────────────────────────────────────────── フロントページの続き (72)発明者 大野 洋 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内 (72)発明者 井上 太郎 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 柴田 隆 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内 ──────────────────────────────────────────────────続 き Continued on the front page (72) Inventor Hiroshi Ohno 5-2-1 Omikacho, Hitachi City, Ibaraki Prefecture Inside the Omika Plant, Hitachi, Ltd. (72) Inventor Taro Inoue 1099 Ozenji Temple, Aso-ku, Kawasaki City, Kanagawa Prefecture (72) Inventor Takashi Shibata 5030 Totsuka-cho, Totsuka-ku, Yokohama-shi, Kanagawa Prefecture Software Development Division, Hitachi, Ltd.
Claims (20)
ティングシステムの起動時に他のオペレーティングシス
テムが利用するハードウェア資源を第一のOSの管理対
象から外して他のオペレーティングシステムに与える手
順と、すべてのオペレーティングシステムで共有してい
る領域に配置した共通の割り込み処理手順とを有し、前
記割り込み処理手順が各オペレーティングシステムの実
行をスケジュールすることにより、各オペレーティング
システムが実行する特権命令のエミュレート処理、およ
び、装置なしで、複数のオペレーティングシステムを一
台の計算機で同時に動作させることを特徴とするマルチ
OS構成方法。The present invention relates to a method for controlling a computer, wherein when a first operating system is started, hardware resources used by the other operating system are excluded from the management of the first OS and are given to the other operating system. Emulating privileged instructions executed by each of the operating systems by scheduling the execution of each of the operating systems. And a multi-OS configuration method wherein a plurality of operating systems are simultaneously operated on a single computer without using a device.
第一のオペレーティングシステムの初期化処理時に、第
二のオペレーティングシステム用のハードウェア資源を
第一のオペレーティングシステムの初期化以降の処理で
はアクセスできないように予約する手順と、予約した物
理メモリに第二のオペレーティングシステムをロードし
て第一のオペレーティングシステムとは別の仮想アドレ
ス空間で第二のオペレーティングシステムを起動する手
順と、第一のオペレーティングシステムのカーネル領域
の一部分を第二のオペレーティングシステムと共有する
ように設定する手順と、第二のオペレーティングシステ
ムが受け取る外部割り込みについて、第一のオペレーテ
ィングシステムからは割り込み禁止にできないように第
一のオペレーティングシステムのデータ構造を変更する
手順とを有することを特徴とするマルチOS構成方法。2. The multi-OS configuration method according to claim 1, wherein:
A procedure for reserving hardware resources for the second operating system so that they cannot be accessed in the processing after the initialization of the first operating system during the initialization processing of the first operating system; Loading the operating system and launching the second operating system in a virtual address space separate from the first operating system, and sharing a portion of the kernel area of the first operating system with the second operating system And changing the data structure of the first operating system so that the first operating system cannot disable the external interrupt received by the second operating system. Multi-OS configuration wherein the.
割り込みを捕獲したときに割り込み要因よりどのオペレ
ーティングシステムに割り込み処理させるかを決定する
手順と、第一のオペレーティングシステムから第二のオ
ペレーティングシステムのモジュールを呼び出す手順
と、第二のオペレーティングシステムの処理が終了した
ときに第一のオペレーティングシステムに復帰する手順
を有することにより、2つのオペレーティングシステム
を一台の計算機上で同時に動作させることを特徴とする
マルチOS構成方法。3. The multi-OS configuration method according to claim 1, wherein:
The procedure for determining which operating system should perform the interrupt processing based on the interrupt factor when the interrupt is captured, the procedure for calling the module of the second operating system from the first operating system, and the processing of the second operating system are completed A multi-OS configuration method characterized by having a procedure for returning to the first operating system when the two operating systems are operated simultaneously on one computer.
あって、第一のオペレーティングシステムが回復不可能
な障害で停止したときに第二のオペレーティングシステ
ムにそのことを通知する手順と、停止時に第二のオペレ
ーティングシステムが管理しているデバイスの割り込み
を許可する手順と、第二のオペレーティングシステムの
処理終了時に、第一のオペレーティングシステムが停止
しているかを判定し、停止している場合は割り込み待ち
を実施する手順を有することにより、第一のオペレーテ
ィングシステムが停止しても第二のオペレーティングシ
ステムが動作を継続できることを特徴とするマルチOS
構成方法。4. A multi-OS configuration method according to claim 1, wherein when the first operating system is stopped due to an unrecoverable failure, a procedure for notifying the second operating system of the stop is provided. Sometimes the procedure to allow interrupts for devices managed by the second operating system, and at the end of processing of the second operating system, determine whether the first operating system is stopped, and if it is stopped A multi-OS, wherein the second operating system can continue to operate even when the first operating system is stopped by having a procedure for executing an interrupt wait.
Configuration method.
あって、両方のオペレーティングシステムで共有しなけ
ればならない命令コードとデータを専用の領域に閉じ込
めたカーネルオブジェクトファイルを利用し、第二のオ
ペレーティングシステム起動時に第一のカーネルオブジ
ェクトファイルの前記領域を見つけ、その領域のみを共
有領域に設定する手順を有することで、共有領域を小さ
くできることを特徴とするマルチOS構成方法。5. The multi-OS configuration method according to claim 1, further comprising the step of using a kernel object file in which an instruction code and data that must be shared by both operating systems are locked in a dedicated area. A multi-OS configuration method comprising: a step of finding the area of a first kernel object file at the time of starting an operating system and setting only the area as a shared area, whereby the shared area can be reduced.
あって、第二のオペレーティングシステムの実行中に第
一のオペレーティングシステムの管理するデバイスから
の割り込みを受けたときにはそれを記録する手順、ある
いは、装置と、第二のオペレーティングシステムの処理
が終了して第一のオペレーティングシステムに制御を戻
す時に、第二のオペレーティングシステム実行中に発生
した割り込みの処理を開始する手順と、第二のオペレー
ティングシステムが管理しているデバイスからの割り込
みは、第一のオペレーティングシステムが実行中であっ
ても即座にオペレーティングシステムを切り替えて割り
込み処理を開始する手順とを有し、これらの手順により
第一のオペレーティングシステムを、第二のオペレーテ
ィングシステムのアイドル時だけ動作するようにスケジ
ュールして、第二のオペレーティングシステムが管理す
るデバイスが発生する割り込みに対する応答時間を短縮
することを特徴とするマルチOS構成方法。6. A multi-OS configuration method according to claim 1, wherein when an interrupt is received from a device managed by the first operating system during execution of the second operating system, the procedure is recorded. Alternatively, when the processing of the device and the second operating system is completed and control is returned to the first operating system, a procedure for starting processing of an interrupt generated during execution of the second operating system; An interrupt from a device managed by the system includes a procedure for immediately switching the operating system and starting interrupt processing even when the first operating system is running, and the first operating system System for the second operating system Only then scheduled to operate at idle, multi-OS configuration method, wherein a second operating system to shorten the response time for interrupt device may occur to manage.
あって、複数のプロセッサと、外部機器からの割り込み
を特定のプロセッサ、あるいは、プロセッサ群に通知す
ることを指定できる装置を持っている計算機で、第一の
オペレーティングシステムの初期化時に第二のオペレー
ティングシステム用にプロセッサを予約する手順と、第
二のオペレーティングシステムを前記手順で予約したプ
ロセッサで起動する手順と、外部機器からの割り込みを
それぞれの機器を管理するオペレーティングシステムが
走行しているプロセッサ、あるいは、プロセッサ群に通
知するように設定する手順を有することを特徴とするマ
ルチOS構成方法。7. The multi-OS configuration method according to claim 1, further comprising a plurality of processors and a device capable of designating notification of an interrupt from an external device to a specific processor or a group of processors. In the computer, a procedure for reserving a processor for the second operating system at the time of initialization of the first operating system, a procedure for starting the second operating system with the processor reserved in the above procedure, and an interrupt from an external device. A multi-OS configuration method comprising a procedure of setting a processor or a group of processors running an operating system that manages each device to notify the processor or the group of processors.
ティングシステムが起動時に読み込まれる複数のファイ
ルから構成されていて、ハードウェア依存の処理がカー
ネル本体のファイルから分離されている場合に、前記ハ
ードウェア依存処理ファイルを変更して、請求項1ない
し7を実現することを特徴とするマルチOS構成方法。8. A computer control method according to claim 1, wherein when the first operating system is constituted by a plurality of files read at the time of booting and hardware-dependent processing is separated from a file of the kernel itself, 8. The multi-OS configuration method according to claim 1, wherein the hardware-dependent processing file is changed to implement the claims 1 to 7.
第一のオペレーティングシステムの初期化処理時に、他
の複数のオペレーティングシステム用のハードウェア資
源を第一のオペレーティングシステムの初期化以降の処
理ではアクセスできないように予約する手順と、予約し
た物理メモリに他の複数のオペレーティングシステムを
ロードして第一のオペレーティングシステムとは別の仮
想アドレス空間で他のオペレーティングシステムを起動
する手順と、第一のオペレーティングシステムのカーネ
ル領域の一部分を他の複数のオペレーティングシステム
と共有するように設定する手順とを有することにより、
1プロセッサの計算機で複数のオペレーティングシステ
ムが動作可能であることを特徴とするマルチOS構成方
法。9. The multi-OS configuration method according to claim 1, wherein:
During the initialization processing of the first operating system, a procedure for reserving hardware resources for a plurality of other operating systems so that the hardware resources cannot be accessed in the processing after the initialization of the first operating system. Loading a plurality of operating systems and starting another operating system in a virtual address space different from the first operating system; and Having the steps to set to share,
A multi-OS configuration method, wherein a plurality of operating systems can operate on one processor computer.
て、第一のオペレーティングシステムの内の他の複数の
オペレーティングシステムと共有している領域にあるモ
ジュールを介して、実行中のオペレーティングシステム
以外のオペレーティングシステムのモジュールを呼び出
す手順を有することを特徴とするマルチOS構成方法。10. The multi-OS configuration method according to claim 9, wherein the operating system other than the operating system is executed via a module in an area shared with a plurality of other operating systems in the first operating system. A procedure for calling a module of the operating system according to (1).
法であって、割り込みを捕獲したときに割り込み要因よ
り複数実行されているオペレーティングシステムのうち
のどのオペレーティングシステムに割り込み処理させる
かを決定する手順と、前記手順により決定したオペレー
ティングシステムの割り込み処理モジュールを呼び出す
手順と、割り込み発生時に実行していたオペレーティン
グシステムに制御を戻す手順を有することにより、1つ
のプロセッサを有する計算機で複数のオペレーティング
システムを同時に動作させることを特徴とするマルチO
S構成方法。11. The multi-OS configuration method according to claim 9, wherein when an interrupt is captured, which of the plurality of operating systems being executed is to be subjected to interrupt processing based on an interrupt factor. And a procedure for calling the interrupt processing module of the operating system determined by the above procedure, and a procedure for returning control to the operating system that was being executed when the interrupt occurred, so that a computer having one processor can simultaneously operate a plurality of operating systems. Multi-O characterized by operating
S configuration method.
法であって、1つ以上のオペレーティングシステムが回
復不可能な障害で停止したときに、他の停止していない
複数のオペレーティングシステムにそのことを通知する
手順と、停止しているオペレーティングシステムが管理
している割り込みを禁止する手順と、停止したオペレー
ティングシステムのモジュール呼び出しを禁止する手順
を有することにより、停止した以外の複数のオペレーテ
ィングシステムが動作を継続できることを特徴とするマ
ルチOS構成方法。12. The multi-OS configuration method according to claim 9, wherein when one or more operating systems are stopped due to an unrecoverable failure, the other operating systems are stopped. , A procedure for disabling interrupts managed by a stopped operating system, and a procedure for disabling module calls of the stopped operating system, thereby operating multiple operating systems other than the stopped operating system. A multi-OS configuration method characterized by being able to continue.
法であって、複数のオペレーティングシステムで共有し
なければならない命令コードとデータを専用の領域に閉
じ込めたオブジェクトファイルを利用し、第一のオペレ
ーティングシステム以外のオペレーティングシステム起
動時に第一のオペレーティングシステムのオブジェクト
ファイルの前記領域を見つけ、その領域のみを共有領域
に設定する手順を有することで、共有領域を小さくでき
ることを特徴とするマルチOS構成方法。13. The multi-OS configuration method according to claim 9, wherein the first operating system uses an object file in which an instruction code and data that must be shared by a plurality of operating systems are locked in a dedicated area. A multi-OS configuration method comprising: a step of finding the area of an object file of a first operating system at the time of starting an operating system other than the system and setting only the area as a shared area, whereby the shared area can be reduced.
法であって、複数のオペレーティングシステムの間に実
行優先度を設定する手順を有することを特徴とするマル
チOS構成方法。14. The multi-OS configuration method according to claim 9, further comprising a step of setting an execution priority among a plurality of operating systems.
て、実行中のオペレーティングシステムが他のオペレー
ティングシステムのモジュールを呼び出す時に、実行中
のオペレーティングシステムの優先度が呼出先のオペレ
ーティングシステムの優先度よりも低ければ、即座に実
行オペレーティングシステムを切替えてモジュール呼び
出しを実施する手順と、実行中のオペレーティングシス
テムの優先度が呼出先のオペレーティングシステムの優
先度よりも高ければ、モジュール呼び出し要求があるこ
とを記録して呼び出しを延期し、呼出先のオペレーティ
ングシステムよりも優先度の高いオペレーティングシス
テムの処理が終了して、呼出先のオペレーティングシス
テムが実行可能になった時にモジュール呼び出しを実施
する手順を有することを特徴とするマルチOS構成方
法。15. The multi-OS configuration method according to claim 14, wherein when the running operating system calls a module of another operating system, the priority of the running operating system is changed to the priority of the called operating system. If the priority is lower, the execution operating system is immediately switched to execute the module call, and if the priority of the operating system being executed is higher than the priority of the called operating system, it is determined that there is a module call request. Recording and postponing the call, and performing a module call when the processing of the operating system having a higher priority than that of the called operating system is completed and the called operating system becomes executable. Multi-OS configuration wherein the door.
て、実行中のオペレーティングシステムAの優先度より
も低い優先度のオペレーティングシステムBが処理する
割り込みが発生した時にそれを記録して処理を延期する
手順、あるいは、装置と、オペレーティングシステムA
の処理が終了してオペレーティングシステムBが実行さ
れる時に、オペレーティングシステムA実行中に発生し
た割り込みの処理を開始する手順と、実行中のオペレー
ティングシステムよりも優先度の高いオペレーティング
システムが管理しているデバイスからの割り込みは、即
座に実行オペレーティングシステムを切り替えて割り込
み処理を開始する手順とを有し、優先度の高いオペレー
ティングシステムが管理するデバイスが発生する割り込
みに対する応答時間を短縮することを特徴とするマルチ
OS構成方法。16. The multi-OS configuration method according to claim 14, wherein when an interrupt is processed by an operating system B having a lower priority than that of the operating system A being executed, the interrupt is recorded and the processing is performed. Postponing procedure or device and operating system A
When the operating system B is executed upon completion of the processing, the procedure for starting the processing of the interrupt generated during the execution of the operating system A is controlled by the operating system having a higher priority than the operating system being executed. Interrupting from the device, immediately switching the execution operating system to start interrupt processing, and shortening the response time to the interrupt generated by the device managed by the operating system with the higher priority. Multi-OS configuration method.
て、各オペレーティングシステムが管理する割り込み
と、各オペレーティングシステムに割り当てられている
優先度と、実行中のオペレーティングにしたがって、外
部機器からの割り込みの許可と禁止の設定をする手段を
有することを特徴とするマルチOS構成方法。17. The multi-OS configuration method according to claim 16, wherein an interrupt from an external device according to an interrupt managed by each operating system, a priority assigned to each operating system, and an operating system being executed. A method for configuring a multi-OS, comprising means for setting permission and prohibition of an OS.
法であって、複数のプロセッサと、外部機器からの割り
込みを特定のプロセッサ、あるいは、プロセッサ群に通
知することを指定できる装置を持っている計算機で、第
一のオペレーティングシステムの初期化時に他の複数の
オペレーティングシステム用にプロセッサを予約する手
順と、他の複数のオペレーティングシステムを前記手順
で予約したプロセッサで起動する手順と、外部機器から
の割り込みをそれぞれの機器を管理するオペレーティン
グシステムが走行しているプロセッサ、あるいは、プロ
セッサ群に通知するように設定する手順を有することを
特徴とするマルチOS構成方法。18. A multi-OS configuration method according to claim 9, further comprising a plurality of processors and a device capable of designating notification of an interrupt from an external device to a specific processor or a group of processors. A step of reserving a processor for a plurality of other operating systems at the time of initialization of the first operating system in the computer, a step of starting the other plurality of operating systems with the processor reserved in the above procedure, and A multi-OS configuration method comprising a step of setting an interrupt to be notified to a processor or a group of processors running an operating system that manages each device.
て、第一のオペレーティングシステム以外のオペレーテ
ィングシステムが受け取る外部割り込みについて、第一
のオペレーティングシステムからは前記割り込みを禁止
にできないように第一のオペレーティングシステムのデ
ータ構造を変更する手順とを有することを特徴とするマ
ルチOS構成方法。19. The multi-OS configuration method according to claim 9, wherein a first operating system does not prohibit an external interrupt received by an operating system other than the first operating system from being disabled. Changing the data structure of the operating system.
いし17のマルチOS構成方法であって、1つのプロセ
ッサで複数のオペレーティングシステムを動作させるこ
とを特徴とするマルチOS構成方法。20. The multi-OS configuration method according to claim 1, wherein a plurality of operating systems are operated by one processor.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP00829998A JP3546678B2 (en) | 1997-09-12 | 1998-01-20 | Multi-OS configuration method |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP24817897 | 1997-09-12 | ||
| JP9-248178 | 1997-09-12 | ||
| JP00829998A JP3546678B2 (en) | 1997-09-12 | 1998-01-20 | Multi-OS configuration method |
Related Child Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000391839A Division JP2001216172A (en) | 1997-09-12 | 2000-12-20 | Multi-OS configuration method |
| JP2003319222A Division JP2004038995A (en) | 1997-09-12 | 2003-09-11 | Multi-OS configuration method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH11149385A true JPH11149385A (en) | 1999-06-02 |
| JP3546678B2 JP3546678B2 (en) | 2004-07-28 |
Family
ID=26342792
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP00829998A Expired - Fee Related JP3546678B2 (en) | 1997-09-12 | 1998-01-20 | Multi-OS configuration method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3546678B2 (en) |
Cited By (45)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2001093032A1 (en) * | 2000-05-31 | 2001-12-06 | Hitachi, Ltd. | Computer system, method of controlling computer, and medium storing control program |
| JP2002318719A (en) * | 2001-04-24 | 2002-10-31 | Hitachi Ltd | Highly reliable computer system |
| EP1318645A3 (en) * | 2001-12-05 | 2005-04-20 | Hitachi, Ltd. | Network system enabling transmission control |
| JP2005228323A (en) * | 2004-02-12 | 2005-08-25 | Internatl Business Mach Corp <Ibm> | Technology usage tracking and billing methods and systems |
| JP2005327269A (en) * | 2004-04-30 | 2005-11-24 | Microsoft Corp | System application in multimedia console |
| JP2006012122A (en) * | 2004-04-30 | 2006-01-12 | Microsoft Corp | Parallel system application in multimedia console |
| US6996828B1 (en) | 1997-09-12 | 2006-02-07 | Hitachi, Ltd. | Multi-OS configuration method |
| US7069519B1 (en) | 1999-09-24 | 2006-06-27 | Hitachi, Ltd. | Method, apparatus and navigation apparatus for sharing display by plural operating systems |
| EP1703385A2 (en) | 2005-03-18 | 2006-09-20 | Fujitsu Limited | Operating system switchover method |
| JP2006522971A (en) * | 2003-04-09 | 2006-10-05 | ジャルナ エスアー | operating system |
| US7127723B2 (en) | 2000-03-02 | 2006-10-24 | Hitachi, Ltd. | Information processing apparatus with multiple operating systems |
| US7243266B2 (en) | 2003-10-09 | 2007-07-10 | Hitachi, Ltd. | Computer system and detecting method for detecting a sign of failure of the computer system |
| JP2007323142A (en) * | 2006-05-30 | 2007-12-13 | Toshiba Corp | Information processing apparatus and control method thereof |
| US7366814B2 (en) | 2005-11-28 | 2008-04-29 | Hitachi, Ltd. | Heterogeneous multiprocessor system and OS configuration method thereof |
| JP2008251000A (en) * | 2007-03-16 | 2008-10-16 | Symantec Corp | Fail-safe computer assistance assistant |
| JP2009032241A (en) * | 2008-06-05 | 2009-02-12 | Hitachi Ltd | Computer system, computer control method, and storage medium storing control program |
| US7529861B2 (en) | 2006-07-25 | 2009-05-05 | Ntt Docomo, Inc. | Peripheral switching device and a peripheral switching control device |
| JP2009175971A (en) * | 2008-01-23 | 2009-08-06 | Hitachi Ltd | Control device |
| WO2009113394A1 (en) * | 2008-03-14 | 2009-09-17 | 三菱電機株式会社 | Multi-operating system (os) start device, multi-os start program, recording medium, and multi-os start method |
| US8032786B2 (en) | 2007-06-06 | 2011-10-04 | Hitachi, Ltd. | Information-processing equipment and system therefor with switching control for switchover operation |
| JP2011243216A (en) * | 2002-03-29 | 2011-12-01 | Intel Corp | System and method for execution of secured environment initialization instruction |
| WO2011148447A1 (en) * | 2010-05-24 | 2011-12-01 | パナソニック株式会社 | Virtual computer system, area management method, and program |
| JP2012089147A (en) * | 2006-05-26 | 2012-05-10 | Intel Corp | Execution of secure environment initialization instruction on point-to-point interconnect system |
| JP2013515293A (en) * | 2009-12-24 | 2013-05-02 | ▲華▼▲為▼▲終▼端有限公司 | Method and apparatus for managing an operating system in an embedded system |
| JP2013517552A (en) * | 2010-01-13 | 2013-05-16 | マーベル・イスラエル・(エム・アイ・エス・エル)・リミテッド | Hardware virtualization for media processing |
| DE112010005951T5 (en) | 2010-10-22 | 2013-07-25 | Mitsubishi Electric Corporation | Interrupt signal accepting device and computer device |
| US8555285B2 (en) | 2003-08-26 | 2013-10-08 | Fujitsu Limited | Executing a general-purpose operating system as a task under the control of a real-time operating system |
| EP2808786A1 (en) | 2013-05-31 | 2014-12-03 | Hitachi Ltd. | Method of controlling computer system and computer system |
| JP2015526789A (en) * | 2012-06-15 | 2015-09-10 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Program interrupt filter processing in transaction execution |
| US9361124B2 (en) | 2013-06-13 | 2016-06-07 | Hitachi, Ltd. | Computer system and startup method |
| US9740521B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Constrained transaction execution |
| US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
| US9766925B2 (en) | 2012-06-15 | 2017-09-19 | International Business Machines Corporation | Transactional processing |
| US9772854B2 (en) | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
| US9792125B2 (en) | 2012-06-15 | 2017-10-17 | International Business Machines Corporation | Saving/restoring selected registers in transactional processing |
| US9811337B2 (en) | 2012-06-15 | 2017-11-07 | International Business Machines Corporation | Transaction abort processing |
| US9851978B2 (en) | 2012-06-15 | 2017-12-26 | International Business Machines Corporation | Restricted instructions in transactional execution |
| US9977740B2 (en) | 2014-03-07 | 2018-05-22 | Hitachi, Ltd. | Nonvolatile storage of host and guest cache data in response to power interruption |
| US9983883B2 (en) | 2012-06-15 | 2018-05-29 | International Business Machines Corporation | Transaction abort instruction specifying a reason for abort |
| US10185588B2 (en) | 2012-06-15 | 2019-01-22 | International Business Machines Corporation | Transaction begin/end instructions |
| US10223214B2 (en) | 2012-06-15 | 2019-03-05 | International Business Machines Corporation | Randomized testing within transactional execution |
| US10289564B2 (en) | 2015-07-08 | 2019-05-14 | Hitachi, Ltd. | Computer and memory region management method |
| US10599435B2 (en) | 2012-06-15 | 2020-03-24 | International Business Machines Corporation | Nontransactional store instruction |
| JP2023503110A (en) * | 2019-11-22 | 2023-01-26 | 華為技術有限公司 | Method and apparatus for a first operating system to access resources of a second operating system |
| CN115981924A (en) * | 2022-12-26 | 2023-04-18 | 元心信息科技集团有限公司 | Device control method, electronic device, and storage medium |
-
1998
- 1998-01-20 JP JP00829998A patent/JP3546678B2/en not_active Expired - Fee Related
Cited By (78)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6996828B1 (en) | 1997-09-12 | 2006-02-07 | Hitachi, Ltd. | Multi-OS configuration method |
| US7069519B1 (en) | 1999-09-24 | 2006-06-27 | Hitachi, Ltd. | Method, apparatus and navigation apparatus for sharing display by plural operating systems |
| US7127723B2 (en) | 2000-03-02 | 2006-10-24 | Hitachi, Ltd. | Information processing apparatus with multiple operating systems |
| WO2001093032A1 (en) * | 2000-05-31 | 2001-12-06 | Hitachi, Ltd. | Computer system, method of controlling computer, and medium storing control program |
| US7210043B2 (en) | 2001-04-24 | 2007-04-24 | Hitachi, Ltd. | Trusted computer system |
| JP2002318719A (en) * | 2001-04-24 | 2002-10-31 | Hitachi Ltd | Highly reliable computer system |
| EP1318645A3 (en) * | 2001-12-05 | 2005-04-20 | Hitachi, Ltd. | Network system enabling transmission control |
| US7047407B2 (en) | 2001-12-05 | 2006-05-16 | Hitachi, Ltd. | Network system enabling transmission control |
| US9361121B2 (en) | 2002-03-29 | 2016-06-07 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
| US10175994B2 (en) | 2002-03-29 | 2019-01-08 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
| JP2011243216A (en) * | 2002-03-29 | 2011-12-01 | Intel Corp | System and method for execution of secured environment initialization instruction |
| JP2014089753A (en) * | 2002-03-29 | 2014-05-15 | Intel Corp | Processor, method, system and medium for executing secured environment initialization instruction |
| US10042649B2 (en) | 2002-03-29 | 2018-08-07 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
| US9990208B2 (en) | 2002-03-29 | 2018-06-05 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
| US10031759B2 (en) | 2002-03-29 | 2018-07-24 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
| JP2006522971A (en) * | 2003-04-09 | 2006-10-05 | ジャルナ エスアー | operating system |
| US8555285B2 (en) | 2003-08-26 | 2013-10-08 | Fujitsu Limited | Executing a general-purpose operating system as a task under the control of a real-time operating system |
| US7243266B2 (en) | 2003-10-09 | 2007-07-10 | Hitachi, Ltd. | Computer system and detecting method for detecting a sign of failure of the computer system |
| JP2005228323A (en) * | 2004-02-12 | 2005-08-25 | Internatl Business Mach Corp <Ibm> | Technology usage tracking and billing methods and systems |
| 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 |
| JP2006012122A (en) * | 2004-04-30 | 2006-01-12 | Microsoft Corp | Parallel system application in multimedia console |
| JP2005327269A (en) * | 2004-04-30 | 2005-11-24 | Microsoft Corp | System application in multimedia console |
| EP1703385A3 (en) * | 2005-03-18 | 2009-01-21 | Fujitsu Limited | Operating system switchover method |
| EP1703385A2 (en) | 2005-03-18 | 2006-09-20 | Fujitsu Limited | Operating system switchover method |
| US7366814B2 (en) | 2005-11-28 | 2008-04-29 | Hitachi, Ltd. | Heterogeneous multiprocessor system and OS configuration method thereof |
| JP2012089147A (en) * | 2006-05-26 | 2012-05-10 | Intel Corp | Execution of secure environment initialization instruction on point-to-point interconnect system |
| US8973094B2 (en) | 2006-05-26 | 2015-03-03 | Intel Corporation | Execution of a secured environment initialization instruction on a point-to-point interconnect system |
| JP2007323142A (en) * | 2006-05-30 | 2007-12-13 | Toshiba Corp | Information processing apparatus and control method thereof |
| US7529861B2 (en) | 2006-07-25 | 2009-05-05 | Ntt Docomo, Inc. | Peripheral switching device and a peripheral switching control device |
| JP2008251000A (en) * | 2007-03-16 | 2008-10-16 | Symantec Corp | Fail-safe computer assistance assistant |
| US8032786B2 (en) | 2007-06-06 | 2011-10-04 | Hitachi, Ltd. | Information-processing equipment and system therefor with switching control for switchover operation |
| JP2009175971A (en) * | 2008-01-23 | 2009-08-06 | Hitachi Ltd | Control device |
| JPWO2009113394A1 (en) * | 2008-03-14 | 2011-07-21 | 三菱電機株式会社 | Multi-operating system (OS) booting apparatus, multi-OS booting program, recording medium, and multi-OS booting method |
| 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 |
| DE112009000612T5 (en) | 2008-03-14 | 2011-03-10 | Mitsubishi Electric Corp. | Multi-OS boot facility (OS), multi-OS boot utility, recording media and multi-OS boot process |
| WO2009113394A1 (en) * | 2008-03-14 | 2009-09-17 | 三菱電機株式会社 | Multi-operating system (os) start device, multi-os start program, recording medium, and multi-os start method |
| JP2009032241A (en) * | 2008-06-05 | 2009-02-12 | Hitachi Ltd | Computer system, computer control method, and storage medium storing control program |
| JP2013515293A (en) * | 2009-12-24 | 2013-05-02 | ▲華▼▲為▼▲終▼端有限公司 | Method and apparatus for managing an operating system in an embedded system |
| JP2013517552A (en) * | 2010-01-13 | 2013-05-16 | マーベル・イスラエル・(エム・アイ・エス・エル)・リミテッド | Hardware virtualization for media processing |
| US9063868B2 (en) | 2010-05-24 | 2015-06-23 | Panasonic Intellectual Property Corporation Of America | Virtual computer system, area management method, and program |
| JP5612681B2 (en) * | 2010-05-24 | 2014-10-22 | パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America | Virtual computer system, area management method, and program |
| WO2011148447A1 (en) * | 2010-05-24 | 2011-12-01 | パナソニック株式会社 | Virtual computer system, area management method, and program |
| KR101475640B1 (en) * | 2010-10-22 | 2014-12-22 | 미쓰비시덴키 가부시키가이샤 | Interrupt signal accepting device and computer device |
| 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 |
| DE112010005951T5 (en) | 2010-10-22 | 2013-07-25 | Mitsubishi Electric Corporation | Interrupt signal accepting device and computer device |
| US10430199B2 (en) | 2012-06-15 | 2019-10-01 | International Business Machines Corporation | Program interruption filtering in transactional execution |
| US10599435B2 (en) | 2012-06-15 | 2020-03-24 | International Business Machines Corporation | Nontransactional store instruction |
| US9766925B2 (en) | 2012-06-15 | 2017-09-19 | International Business Machines Corporation | Transactional processing |
| US9772854B2 (en) | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
| US9792125B2 (en) | 2012-06-15 | 2017-10-17 | International Business Machines Corporation | Saving/restoring selected registers in transactional processing |
| US9811337B2 (en) | 2012-06-15 | 2017-11-07 | International Business Machines Corporation | Transaction abort processing |
| US9851978B2 (en) | 2012-06-15 | 2017-12-26 | International Business Machines Corporation | Restricted instructions in transactional execution |
| US9858082B2 (en) | 2012-06-15 | 2018-01-02 | International Business Machines Corporation | Restricted instructions in transactional execution |
| US11080087B2 (en) | 2012-06-15 | 2021-08-03 | International Business Machines Corporation | Transaction begin/end instructions |
| US9983882B2 (en) | 2012-06-15 | 2018-05-29 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
| US9983883B2 (en) | 2012-06-15 | 2018-05-29 | International Business Machines Corporation | Transaction abort instruction specifying a reason for abort |
| US9983915B2 (en) | 2012-06-15 | 2018-05-29 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
| US9983881B2 (en) | 2012-06-15 | 2018-05-29 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
| US10719415B2 (en) | 2012-06-15 | 2020-07-21 | International Business Machines Corporation | Randomized testing within transactional execution |
| US9996360B2 (en) | 2012-06-15 | 2018-06-12 | International Business Machines Corporation | Transaction abort instruction specifying a reason for abort |
| US9740521B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Constrained transaction execution |
| US10684863B2 (en) | 2012-06-15 | 2020-06-16 | International Business Machines Corporation | Restricted instructions in transactional execution |
| US10606597B2 (en) | 2012-06-15 | 2020-03-31 | International Business Machines Corporation | Nontransactional store instruction |
| US10185588B2 (en) | 2012-06-15 | 2019-01-22 | International Business Machines Corporation | Transaction begin/end instructions |
| US10223214B2 (en) | 2012-06-15 | 2019-03-05 | International Business Machines Corporation | Randomized testing within transactional execution |
| US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
| US10353759B2 (en) | 2012-06-15 | 2019-07-16 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
| JP2015526789A (en) * | 2012-06-15 | 2015-09-10 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Program interrupt filter processing in transaction execution |
| US10437602B2 (en) | 2012-06-15 | 2019-10-08 | International Business Machines Corporation | Program interruption filtering in transactional execution |
| US10558465B2 (en) | 2012-06-15 | 2020-02-11 | International Business Machines Corporation | Restricted instructions in transactional execution |
| US9495172B2 (en) | 2013-05-31 | 2016-11-15 | Hitachi, Ltd. | Method of controlling computer system and computer system |
| EP2808786A1 (en) | 2013-05-31 | 2014-12-03 | Hitachi Ltd. | Method of controlling computer system and computer system |
| US9361124B2 (en) | 2013-06-13 | 2016-06-07 | Hitachi, Ltd. | Computer system and startup method |
| US9977740B2 (en) | 2014-03-07 | 2018-05-22 | Hitachi, Ltd. | Nonvolatile storage of host and guest cache data in response to power interruption |
| US10289564B2 (en) | 2015-07-08 | 2019-05-14 | Hitachi, Ltd. | Computer and memory region management method |
| JP2023503110A (en) * | 2019-11-22 | 2023-01-26 | 華為技術有限公司 | Method and apparatus for a first operating system to access resources of a second operating system |
| CN115981924A (en) * | 2022-12-26 | 2023-04-18 | 元心信息科技集团有限公司 | Device control method, electronic device, and storage medium |
| CN115981924B (en) * | 2022-12-26 | 2023-10-13 | 元心信息科技集团有限公司 | Device control method, electronic device and storage medium |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3546678B2 (en) | 2004-07-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3546678B2 (en) | Multi-OS configuration method | |
| US7712104B2 (en) | Multi OS configuration method and computer system | |
| US9304794B2 (en) | Virtual machine control method and virtual machine system using prefetch information | |
| EP4195020B1 (en) | Computer device, exception processing method and interrupt processing method | |
| US9009701B2 (en) | Method for controlling a virtual machine and a virtual machine system | |
| EP2296089B1 (en) | Operating systems | |
| CN100392598C (en) | operating system | |
| US7937700B1 (en) | System, processor, and method for incremental state save/restore on world switch in a virtual machine environment | |
| US6996828B1 (en) | Multi-OS configuration method | |
| US7552434B2 (en) | Method of performing kernel task upon initial execution of process at user level | |
| US7546600B2 (en) | Method of assigning virtual process identifier to process within process domain | |
| JP2539913B2 (en) | Data processing system | |
| JP2001216172A (en) | Multi-OS configuration method | |
| US11385927B2 (en) | Interrupt servicing in userspace | |
| JP4026667B2 (en) | Multi-OS configuration method | |
| US7096472B2 (en) | Systems and methods for ensuring atomicity of processes in a multitasking computing environment | |
| JP2001236237A (en) | Multi-OS configuration method | |
| JP2001175486A (en) | Computer system | |
| JP2004038995A (en) | Multi-OS configuration method | |
| JPS6097440A (en) | Virtual multiprocessor device | |
| JP2014017024A (en) | Method for controlling virtual computer, virtualization program and virtual computer system | |
| JP2022055002A (en) | Information processing device, information processing method, and information processing program | |
| JPS6139135A (en) | Interval timer interrupt controller in virtual computer system | |
| Halvorsen et al. | Operating System Fundamentals |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 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: 20040323 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040405 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090423 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090423 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100423 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110423 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120423 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120423 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130423 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140423 Year of fee payment: 10 |
|
| LAPS | Cancellation because of no payment of annual fees |