JP5452427B2 - マルチオペレーティングシステム計算機、マルチオペレーティングシステム管理方法およびマルチオペレーティングシステム管理プログラム - Google Patents

マルチオペレーティングシステム計算機、マルチオペレーティングシステム管理方法およびマルチオペレーティングシステム管理プログラム Download PDF

Info

Publication number
JP5452427B2
JP5452427B2 JP2010196270A JP2010196270A JP5452427B2 JP 5452427 B2 JP5452427 B2 JP 5452427B2 JP 2010196270 A JP2010196270 A JP 2010196270A JP 2010196270 A JP2010196270 A JP 2010196270A JP 5452427 B2 JP5452427 B2 JP 5452427B2
Authority
JP
Japan
Prior art keywords
time
task
operating
priority
operating system
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.)
Expired - Fee Related
Application number
JP2010196270A
Other languages
English (en)
Other versions
JP2012053717A (ja
Inventor
寛隆 茂田井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2010196270A priority Critical patent/JP5452427B2/ja
Publication of JP2012053717A publication Critical patent/JP2012053717A/ja
Application granted granted Critical
Publication of JP5452427B2 publication Critical patent/JP5452427B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、複数のOS(オペレーティングシステム)を管理するマルチオペレーティングシステム計算機、マルチオペレーティングシステム管理方法およびマルチオペレーティングシステム管理プログラムに関するものである。
一般に、1つの計算機において1つのOSが動作する。OSは、プロセッサ、主記憶、2次記憶、デバイスなどの計算機資源(ハードウェア)を管理し、計算機を効率良く動作させるためにタスクのスケジューリングを行う。
OSには多機能で豊富な資産を持つ事務処理OSやリアルタイム処理機能に特化したリアルタイムOSなどの種類があり、各OSは種類毎に異なる特長を有している。パーソナルコンピュータで使用されているWindows(登録商標)やLinux(登録商標)は事務処理OSの代表例である。
一方で、1つの計算機において複数のOS(例えば、リアルタイムOSと事務処理OS)を動作させる方式をマルチOSまたはハイブリッドOSと呼ぶ。これらの方式において、計算機は単一または複数のプロセッサを備える。
特許文献1〜3はマルチOSに関する技術を開示し、特許文献4はハイブリッドOSに関する技術を開示している。
特開平11−149385号公報 特開2001−229038号公報 特開2009−176139号公報 特開2005−71161号公報
従来のマルチOSまたはハイブリッドOSは、リアルタイムOSがアイドル状態になった場合に事務処理OSへ動作を切り替える。つまり、リアルタイムOSがアイドル状態に遷移しない場合、事務処理OSは動作しない。このため、「画面が更新されない」「キーボードやマウスからの入力が受け付けられない」などの事務処理の不具合が生じる。
特許文献4の技術は、ある一定のタイミングで事務処理OSを動作すべきか判断し、事務処理OSを動作すべきと判断した場合に事務処理OSを優先的に動作させることにより、上記の不具合に対処している。
しかし、特許文献4の技術では、割込みハンドラやTCB(タスクコントロールブロック)などの事務処理OSの構成を変更する必要がある。
本発明は、例えば、リアルタイムOSと事務処理OSとを動作させるマルチOSにおいて、事務処理OSへ動作が切り替わらないという不具合を事務処理OSの構成を変更せずに抑止できるようにすることを目的とする。
本発明のマルチオペレーティングシステム計算機は、
優先度が設定された複数のタスクを優先度順に実行する第1のOS(オペレーティングシステム)と、前記第1のOSと異なる第2のOSとを動作OSとして交互に動作させるマルチオペレーティングシステム計算機であって、
前記第1のOSが動作OSとして動作しているときに前記複数のタスクのうち所定の優先度が設定された所定のタスクであって動作OSの切替え契機を特定するための切替え契機タスクとして用いられるタスクが実行された場合に、動作OSを前記第1のOSから前記第2のOSに切り替えるOS切替え部を備える。
本発明によれば、例えば、リアルタイムOSと事務処理OSとを動作させるマルチOSにおいて、事務処理OSへ動作が切り替わらないという不具合を事務処理OSの構成を変更せずに抑止することができる。
実施の形態1におけるマルチOS計算機100の機能構成図。 実施の形態1における予約時間管理テーブル241を示す図。 実施の形態1におけるマルチOS管理方法を示すフローチャート。 実施の形態1における切替え契機タスク421の状態変更方法を示すフローチャート。 実施の形態1におけるリアルタイムタスクと周期時間との関係図。 実施の形態1における予約時間設定処理を示すフローチャート。 実施の形態1における予約時間管理テーブル241の別例を示す図。 実施の形態1におけるマルチOS計算機100のハードウェア資源の一例を示す図。 実施の形態2におけるマルチOS計算機100の機能構成図。 実施の形態2における周期割込み処理を示すフローチャート。 実施の形態3における予約時間管理テーブル241を示す図。 実施の形態3における周期割込み処理を示すフローチャート。 実施の形態4における予約時間管理テーブル241を示す図。 実施の形態4における周期割込み処理を示すフローチャート。
実施の形態1.
リアルタイムOSと事務処理OS(汎用OSともいう)とを交互に動作させるマルチOS計算機、マルチOS管理方法およびマルチOS管理プログラムについて説明する。
図1は、実施の形態1におけるマルチOS計算機100の機能構成図である。
実施の形態1におけるマルチOS計算機100の機能構成について、図1に基づいて説明する。
マルチOS計算機100は、RTOS400(リアルタイムOS)と事務処理OS300とを備える(インストールされる)。
RTOS400はリアルタイム処理用の機能に特化したオペレーティングシステムであり、事務処理OS300は事務処理(文書編集、表計算など)用の機能を有する汎用のオペレーティングシステムである。
マルチOS計算機100は、RTOS400と事務処理OS300とを交互に切り替えて動作させる。
但し、マルチOS計算機100は、RTOS400を事務処理OS300より優先して動作させる。また、RTOS400が動作し続けてしまうことにより事務処理OS300が動作しなくなってしまう不具合を抑止する。
RTOS400は、優先度が設定された複数のタスク(プロセス、プログラムともいう)をCPU(Central Processing Unit)を用いて優先度順に実行する。
以下、RTOS400により実行されるタスクを「リアルタイムタスク」という。
RTOS400は、リアルタイムタスクとして一般タスク420と切替え契機タスク421とアイドルタスク422とを実行する。
一般タスク420は、特定のリアルタイム処理を行うためのリアルタイムタスクである。一般タスク420は複数有り、複数の一般タスク420にはそれぞれに高い優先度から低い優先度までリアルタイム処理の内容に応じた優先度を設定する。
切替え契機タスク421は、動作するOSをRTOS400から事務処理OS300に切り替えるためのリアルタイムタスクである。切替え契機タスク421には中程度の優先度を設定する。
アイドルタスク422は、リアルタイムタスク群の中で優先度が最も低いタスクである。つまり、アイドルタスク422は、他に実行可能なリアルタイムタスクがない場合にのみ動作する。
RTOS400は、ハードウェア101からの割込み(通常割込み)を処理する割込みハンドラ410やリアルタイムタスクを管理(ディスパッチ、スケジューリングなど)するタスク管理部411などの機能部を有する。
事務処理OS300は、ワープロソフトや表計算ソフトなどのアプリケーションプログラム(以下、アプリ320という)を実行する。
事務処理OS300は、ハードウェア101からの割込み(通常割込み)を処理する割込みハンドラ310やアプリ320を管理するタスク管理部(図示省略)などの機能部を有する。
マルチOS計算機100は、RTOS400と事務処理OS300とを管理するOS管理機構200を備える。
OS管理機構200は、OS切替え部210、割込み割付部220、予約時間通知部230および予約時間設定部240を備える。
OS切替え部210は、RTOS400(第1のOSの一例)が動作OSとして動作しているときに切替え契機タスク421が実行された場合に、動作OSをRTOS400から事務処理OS300(第2のOSの一例)に切り替える。
前述の通り、切替え契機タスク421は、複数のリアルタイムタスクのうち所定の優先度が設定された所定のタスクであって動作OSの切替え契機を特定するためのタスクである。
具体的に、切替え契機タスク421は、高い優先度が設定される高優先度タスク(一般タスク420)の優先度よりも低い優先度であって低い優先度が設定される低優先度タスク(一般タスク420)よりも高い優先度が設定される所定の中優先度タスクである。
割込み割付部220は、ハードウェア101に所定の割込み設定を行う。所定の割込み設定とは、ハードウェア101から割込み(通常割込み)が発生した場合に割込み要因(割込み番号)に応じてRTOS400の割込みハンドラ410、事務処理OS300の割込みハンドラ310またはOS管理機構200のOS切替え部210を呼び出すための設定である。
予約時間通知部230(タスク状態変更部の一例)は、所定の状態変更周期(後述する周期時間)毎に周期割込みと経過割込みとをハードウェア101のタイマデバイスに設定する。
予約時間通知部230は、経過割込みが発生したときに切替え契機タスク421の状態を待機状態から実行可能状態に変更し、周期割込みが発生したときに切替え契機タスク421の状態を待機状態に変更する。
周期割込みは、状態変更周期(後述する周期時間)の終了時に発生し、経過割込みは、状態変更周期の開始時から状態変更周期より短い所定の第1OS割当時間(後述するRTOS動作割合時間)が経過した場合に発生する。
実施の形態において、周期割込みおよび経過割込み以外の割込みを「通常割込み」という。
予約時間設定部240は、ユーザ、アプリ320またはリアルタイムタスクから指定されるマルチOS管理用の定義値(後述する周期時間やRTOS動作割合など)をメモリに設定する。
例えば、予約時間設定部240は、以下に説明するような予約時間管理テーブル241にマルチOS管理用の定義値を設定する。
図2は、実施の形態1における予約時間管理テーブル241を示す図である。
実施の形態1における予約時間管理テーブル241について、図2に基づいて説明する。
予約時間設定部240は、予約時間管理テーブル241にマルチOS管理用の定義値を設定する。予約時間管理テーブル241はメモリに記憶され、OS管理機構200の各部によって参照または更新される。
予約時間管理テーブル241には「周期時間」と「RTOS動作割合」とが設定される。
周期時間は、切替え契機タスク421の状態を変更する周期を示す。
RTOS動作割合は、周期時間内でRTOS400を事務処理OS300より優先して動作させる時間の割合を示す。
以下、周期時間とRTOS動作割合とによって特定される時間を「RTOS動作割合時間」という。
例えば、周期時間が「10ミリ秒(ms)」であり、RTOS動作割合が「70%」である場合、RTOS動作割合時間は「7ミリ秒(=10ミリ秒×0.7)」である。
RTOS動作割合の代わりに、又は、RTOS動作割合と共にRTOS動作割合時間を予約時間管理テーブル241に設定しても構わない。
周期時間は周期割込みの設定時間として使用され、RTOS動作割合時間は経過割込みの設定時間として使用される。
図3は、実施の形態1におけるマルチOS管理方法を示すフローチャートである。
マルチOS計算機100のマルチOS管理方法の処理の流れについて、図3に基づいて説明する。
RTOS400が動作OSとして動作しているものとする。
また、リアルタイムタスクの優先度および状態情報は、RTOS用に割り当てられたメモリ内の記憶領域に記憶されているものとする。
リアルタイムタスクの状態には、実行状態、実行可能状態および待機状態がある。
実行状態とは実行中を示す状態である。
実行可能状態とはCPUの割り当てを待っている状態であり、実行可能状態のタスクは、当該タスクより優先度が高い実行可能状態のタスクがない場合に実行される。
待機状態とはハードウェア101の割込み待ちなどの状態であり、待機状態のタスクは、当該タスクより優先度が高い実行可能状態のタスクがない場合であっても実行されない。
S110において、RTOS400のタスク管理部411は、実行可能状態のリアルタイムタスクを特定する。
以下、切替え契機タスク421より高い優先度が設定された一般タスク420を「高優先度タスク」といい、切替え契機タスク421より低い優先度が設定された一般タスク420を「低優先度タスク」という。
少なくともいずれかの高優先度タスクの状態が実行可能状態である場合(YES)、S111に進む。
全ての高優先度タスクの状態が待機状態である場合(NO)、S120に進む。
S111において、RTOS400のタスク管理部411は、実行可能状態の高優先度タスクのうち最も優先度が高いタスクにCPU(の使用権)を割り当てる。
CPUを割り当てられた高優先度タスクはCPUを用いて動作する。
所定の割り当て時間が経過した場合や動作した高優先度タスクが割り込み待ち(待機状態)になった場合、S110に戻る。
S120において、切替え契機タスク421の状態が実行可能状態である場合(YES)、S121に進む。
切替え契機タスク421の状態が待機状態である場合(NO)、S130に進む。
S121において、RTOS400のタスク管理部411は、切替え契機タスク421にCPUを割り当てる。
CPUを割り当てられた切替え契機タスク421はCPUを用いて動作を開始し、OS管理機構200のOS切替え部210を呼び出す。
S121の後、S122に進む。
S122において、OS切替え部210は、動作OSをRTOS400から事務処理OS300に切り替える。
動作OSを切り替える際、OS切替え部210は、動作しているOS(RTOS400)の状態情報を所定の記憶領域に保存し、前回保存した動作していないOS(事務処理OS300)の状態情報をCPUやチップセットのレジストリに設定する。OSの状態情報とは、CPUやチップセットのレジストリに設定されたデータである。OSの状態情報をCPUやチップセットのレジストリに設定することにより、前回動作していたときのOSの状態を復元することができる。
動作OSがRTOS400から事務処理OS300に切り替わると事務処理OS300が動作し、アプリ320が実行される。
S122の後、S140に進む。
S140において、RTOS400に対する割込みが発生した場合、ハードウェア101からOS切替え部210に割込みが通知される。
割込みを通知されたOS切替え部210は、動作OSを事務処理OS300からRTOS400に切り替え、RTOS400の割込みハンドラ410を呼び出す。
RTOS400の割込みハンドラ410は、発生した割込みに応じて所定の割込み処理を実行する。
S140の後、S110に戻る。
S130において、少なくともいずれかの低優先度タスクの状態が実行可能状態である場合(YES)、S131に進む。
全ての低優先度タスクの状態が待機状態である場合(NO)、S132に進む。
S131において、RTOS400のタスク管理部411は、実行可能状態の低優先度タスクのうち最も優先度が高いタスクにCPUを割り当てる。
CPUを割り当てられた低優先度タスクはCPUを用いて動作する。
所定の割り当て時間が経過した場合や動作した低優先度タスクが割り込み待ち(待機状態)になった場合、S110に戻る。
S132において、RTOS400のタスク管理部411は、アイドルタスク422にCPUを割り当てる。
CPUを割り当てられたアイドルタスク422はCPUを用いて動作を開始し、OS管理機構200のOS切替え部210を呼び出す。
S132の後、S133に進む。
S133において、OS切替え部210は、動作OSをRTOS400から事務処理OS300に切り替える。
動作OSが事務処理OS300に切り替わった後、前述したS140に進む。
図4は、実施の形態1における切替え契機タスク421の状態変更方法を示すフローチャートである。
切替え契機タスク421の状態変更方法の処理の流れについて、図4に基づいて説明する。
予約時間設定部240は、予約時間管理テーブル241(図2参照)に基づいて周期割込みと経過割込みとをハードウェア101に予め設定する。
周期割込みまたは経過割込みが発生した場合、ハードウェア101から予約時間通知部230に割込みが通知される。
以下、周期割込みの発生時に行う処理を「周期割込み処理」といい、経過割込みの発生時に行う処理を「経過割込み処理」という。
周期割込みが通知された場合、予約時間通知部230は以下のように動作する。
S210において、予約時間通知部230はRTOS400のタスク管理部411に停止通知を行い、停止通知を受けたタスク管理部411は切替え契機タスク421の状態情報を「待機状態」に変更する。
S210の後、S220に進む。
S220において、予約時間通知部230は、予約時間管理テーブル241の周期時間(例えば、10ミリ秒)をハードウェア101のタイマデバイスに設定することにより、周期割込みを設定する。
S220の後、S230に進む。
S230において、予約時間通知部230は、予約時間管理テーブル241の周期時間およびRTOS動作割合に基づいてRTOS動作割合時間を算出する。
そして、予約時間通知部230は、算出したRTOS動作割合時間をハードウェア101のタイマデバイスに設定することにより、経過割込みを設定する。
例えば、周期時間が「10ミリ秒」であり、RTOS動作割合が「70%」である場合、RTOS動作割合時間は「7ミリ秒(=10ミリ秒×0.7)」である。
但し、RTOS動作割合時間を予約時間管理テーブル241に予め設定しておいても構わない。
経過割込み(S230)を設定した後、RTOS動作割合時間が経過すると経過割込みが発生し、ハードウェア101から予約時間通知部230に経過割込みが通知される。
予約時間通知部230に経過割込みが通知された場合、S240に進む。
S240において、予約時間通知部230はRTOS400のタスク管理部411に動作通知を行い、動作通知を受けたタスク管理部411は切替え契機タスク421の状態情報を「実行可能状態」に変更する。
実行可能状態になった切替え契機タスク421は、マルチOS管理方法(図3)で説明したように、実行可能状態の高優先度タスクがない場合に動作する。
そして、切替え契機タスク421が動作した場合(S121)、OS切替え部210が動作OSをRTOS400から事務処理OS300に切り替え(S122)、RTOS400の割込みが発生するまで事務処理OS300が動作する(S140)。
周期割込み(S220)を設定した後、周期時間が経過すると周期割込みが発生し、ハードウェア101から予約時間通知部230に周期割込みが通知される。
予約時間通知部230に周期割込みが通知された場合、S210に戻る。
図5は、実施の形態1におけるリアルタイムタスクと周期時間との関係図である。
リアルタイムタスクとリアルタイムタスクが動作する時間帯との関係について、図5に基づいて説明する。
周期時間(例えば、10ミリ秒)のうちRTOS動作割合時間(例えば、7ミリ秒)には、高優先度タスク、低優先度タスクまたはアイドルタスク422が動作する。
つまり、RTOS動作割合時間において、実行可能状態の一般タスク420が有る場合、RTOS400が優先され、事務処理OS300は動作しない。
周期時間のうちRTOS動作割合時間を除いた残り時間(例えば、3ミリ秒)には、高優先度タスクまたは切替え契機タスク421が動作する。
つまり、RTOS動作割合時間を除いた残り時間において、実行可能状態の高優先度タスクが無ければ、実行可能状態の低優先度タスクが有っても、事務処理OS300が優先して動作する。
図6は、実施の形態1における予約時間設定処理を示すフローチャートである。
実施の形態1における予約時間設定処理の流れについて、図6に基づいて説明する。
ユーザ、アプリ320またはリアルタイムタスクからマルチOS計算機用の定義値(周期時間、RTOS動作割合など)が指定された場合、予約時間設定部240は、以下のように動作する。
S310において、予約時間設定部240はRTOS400のタスク管理部411に停止通知を行い、停止通知を受けたタスク管理部411は切替え契機タスク421の状態情報に「待機状態」を設定する。
S310の後、S320に進む。
S320において、予約時間設定部240は、指定された定義値(周期時間、RTOS動作割合など)を予約時間管理テーブル241に設定する。
さらに、予約時間設定部240は、指定された周期時間およびRTOS動作割合に基づいてRTOS動作割合時間を算出し、算出したRTOS動作割合時間を予約時間管理テーブル241に設定してもよい。
S320の後、S330に進む。
S330において、予約時間設定部240は、予約時間管理テーブル241の周期時間をハードウェア101のタイマデバイスに設定することにより、周期割込みを設定する。
S330の後、S340に進む。
S340において、予約時間設定部240は、予約時間管理テーブル241の周期時間およびRTOS動作割合に基づいてRTOS動作割合時間をハードウェア101のタイマデバイスに設定することにより、経過割込みを設定する。
S340により、予約時間設定処理は終了する。
切替え契機タスク421の状態を待機状態にし(S310)、周期割込みおよび経過割込みを設定(S330、S340)することにより、予約時間管理テーブル241の設定直後からRTOS400と事務処理OS300とを新たな定義値に基づいて管理することができる。
設定された割込みを繰り返し実行するタイマデバイスを使用する場合、切替え契機タスク421の状態変更方法(図4参照)において周期割込み(S220)および経過割込み(S230)を設定しなくて構わない。また、割込みの設定時間(周期時間、RTOS動作割合時間)が予約時間管理テーブル241の設定値に対して正しいか否かを判定し、正しくない場合に周期割込みおよび経過割込みを設定しても構わない。
動作通知(図4のS240)や停止通知(図4のS210、図6のS310)は、予約時間通知部230または予約時間設定部240による状態情報(例えば、フラグ)の設定動作や、資源待ち機能(例えば、セマフォ)を使用した管理動作に置き換えても構わない。
図7は、実施の形態1における予約時間管理テーブル241の別例を示す図である。
図7に示すように、予約時間管理テーブル241に「切替え契機タスク優先度」を設定してもよい。
切替え契機タスク優先度は、切替え契機タスク421に設定する優先度を示す。
予約時間設定部240は、切替え契機タスク優先度が指定された場合、指定された切替え契機タスク優先度を予約時間管理テーブル241に設定し、指定された切替え契機タスク優先度を切替え契機タスク421に設定する。
これにより、切替え契機タスク421の優先度を必要に応じて変更することができる。
図8は、実施の形態1におけるマルチOS計算機100のハードウェア資源の一例を示す図である。
図8において、マルチOS計算機100は、CPU911を備えている。CPU911は、バス912を介してROM913、RAM914、通信ボード915、表示装置901、キーボード902、マウス903、ドライブ装置904、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。ドライブ装置904は、FD(Flexible・Disk・Drive)、CD(Compact Disc)、DVD(Digital・Versatile・Disc)などの記憶媒体を読み書きする装置である。
通信ボード915は、有線または無線で、LAN(Local Area Network)、インターネット、電話回線などの通信網に接続している。
磁気ディスク装置920には、RTOS400、事務処理OS300、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
プログラム群923には、実施の形態において「〜部」として説明する機能を実行するマルチOS管理プログラムが含まれる。マルチOS管理プログラムは、CPU911により読み出され実行される。すなわち、マルチOS管理プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
ファイル群924には、実施の形態において説明する「〜部」で使用される各種データ(入力、出力、判定結果、計算結果、処理結果など)が含まれる。
実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
実施の形態において「〜部」として説明するものは「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
実施の形態1で説明したマルチOS計算機100、マルチOS管理方法およびマルチOS管理プログラムにより、事務処理OS300に変更を加えずに、以下の効果を奏することができる(図5参照)。
(1)切替え契機タスク421より優先度が高い一般タスク420(高優先度タスク)を優先して実行することができる。
(2)RTOS400が動作し続けて事務処理OS300が動作しなくなってしまう不具合を抑止することができる。
実施の形態2.
RTOS動作割合時間を調整することにより、事務処理OS300が動作しなくなってしまう不具合を抑止する形態について説明する。
以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項は実施の形態1と同様である。
図9は、実施の形態2におけるマルチOS計算機100の機能構成図である。
実施の形態2におけるマルチOS計算機100の機能構成について、図9に基づいて説明する。
マルチOS計算機100のOS管理機構200は、実施の形態1で説明した機能(図1参照)に加えて、OS動作時刻記録部250とOS動作時間調整部260とを備える。
OS動作時刻記録部250は、動作OSの切り替え時に切り替え情報をメモリに記録する。切り替え情報は、切り替え時刻と切り替え前の動作OSと切り替え後の動作OSとを含む。
OS動作時間調整部260(動作時間特定部の一例)は、OS動作時刻記録部250により記録された切り替え情報に基づいて、状態変更周期(周期時間)毎にRTOS400(第1のOSの一例)が動作OSとして動作した時間を第1OS動作時間(後述するRTOS実動時間)として特定する。
予約時間通知部230(タスク状態変更部の一例)は、今回の第1OS動作時間が今回の第1OS割当時間(RTOS動作)を超えた場合、次回の第1OS割当時間(RTOS動作割合時間)に今回の第1OS割当時間より短い時間を設定する。
今回の第1OS動作時間とは、今回の状態変更周期でOS動作時間調整部260により特定された第1OS動作時間のことである。また、今回の第1OS割当時間とは今回の状態変更周期で使用された第1OS割当時間のことであり、次回の第1OS割当時間とは次回の状態変更周期で使用する第1OS割当時間のことである。
例えば、予約時間通知部230は、今回の第1OS動作時間と今回の第1OS割当時間との差分の時間だけ今回の第1OS割当時間より短い時間を次回の第1OS割当時間に設定する。
マルチOS管理方法は実施の形態1(図3参照)と同じである。
但し、切替え契機タスク421の状態変更方法における周期割込み処理は、実施の形態1(図4参照)と異なる。
図10は、実施の形態2における周期割込み処理を示すフローチャートである。
実施の形態2における周期割込み処理について、図10に基づいて説明する。
周期割込みが発生した場合、予約時間通知部230に周期割込みが通知され、以下の処理が実行される。
S410において、予約時間通知部230は、S210(図4参照)と同様に、停止通知により切替え契機タスク421の状態情報を「待機状態」に変更する。
S410の後、S420に進む。
S420において、OS動作時間調整部260は、OS動作時刻記録部250により記録された切り替え情報(切り替え時刻、切り替え前の動作OS、切り替え後の動作OS)に基づいて、前回の周期時間内でRTOS400が動作した時間を算出する。RTOS400が動作した時間とは、切り替え後の動作OSが「RTOS400」である切り替え時刻から切り替え後の動作OSが「事務処理OS300」である切り替え時刻までの時間を合計した時間である。
以下、S420で算出した時間を「RTOS実動時間」という。
S420の後、S421に進む。
S421において、OS動作時間調整部260は、予約時間管理テーブル241(図2参照)の周期時間およびRTOS動作割合に基づいて、RTOS動作割合時間を算出する。但し、予約時間設定部240がRTOS動作割合時間を予約時間管理テーブル241に予め設定し、OS動作時間調整部260が予約時間管理テーブル241からRTOS動作割合時間を参照しても構わない。
OS動作時間調整部260は、RTOS実動時間とRTOS動作割合時間とを比較する。
RTOS実動時間がRTOS動作割合時間以下の時間である場合(YES)、S430に進む。
RTOS実動時間がRTOS動作割合時間より長い時間である場合(NO)、S422に進む。
S422において、OS動作時間調整部260は、RTOS実動時間とRTOS動作割合時間との差分時間を算出する。
S422の後、S423に進む。
S423において、OS動作時間調整部260は、S422で算出した差分時間に相当する割合(調整割合)を算出する。
OS動作時間調整部260は、予約時間管理テーブル241のRTOS動作割合から調整割合を差し引いた割合(設定割合)を算出する。但し、RTOS動作割合から所定の変更割合を差し引いた割合を設定割合として算出しても構わない。
OS動作時間調整部260は、算出した設定割合を予約時間管理テーブル241に新たなRTOS動作割合として設定する。
例えば、RTOS400の動作時間が「8ミリ秒」であり、RTOS動作割合時間が「7ミリ秒」である場合、差分時間は「1ミリ秒(=8ミリ秒−7ミリ秒)」である。
また、周期時間が「10ミリ秒」であり、RTOS動作割合が「70%」であり、差分時間が「1ミリ秒」である場合、調整割合は「10%(=1ミリ秒/10ミリ秒)」であり、設定割合は「60%(=70%−10%)」である。
RTOS動作割合を「70%」から「60%」に減らすことにより、RTOS動作割合時間を「7ミリ秒」から「6ミリ秒」に減らすことができる。
但し、予約時間設定部240がRTOS動作割合時間を予約時間管理テーブル241に予め設定し、OS動作時間調整部260が予約時間設定部240により設定されたRTOS動作割合時間から差分時間を差し引いた時間を新たなRTOS動作割合時間として予約時間管理テーブル241に設定しても構わない。
また、OS動作時間調整部260は、RTOS動作割合の初期値またはRTOS動作割合時間の初期値を予約時間管理テーブル241に記憶しておく。初期値とは、予約時間設定部240により予約時間管理テーブル241に設定された値のことである。
S423の後、S440に進む。
S430において、OS動作時間調整部260は、予約時間管理テーブル241のRTOS動作割合およびRTOS動作割合時間を初期値に戻す。
S430の後、S440に進む。
S440において、予約時間通知部230は、S220(図4参照)と同様に、予約時間管理テーブル241の周期時間に基づいて周期割込みを設定する。
S440の後、S441に進む。
S441において、予約時間通知部230は、S230(図4参照)と同様に、予約時間管理テーブル241の周期時間およびRTOS動作割合(またはRTOS動作割合時間)に基づいて、経過割込みを設定する。
S441により、周期割込み処理は終了する。
実施の形態2により、RTOS400が動作し続けて事務処理OS300が動作しなくなってしまう事象の発生を実施の形態1よりも抑止することができる。
実施の形態3.
RTOS動作割合時間を調整しても事務処理OS300を動作できない状況を検出する形態について説明する。
以下、実施の形態1および実施の形態2と異なる事項について主に説明する。説明を省略する事項は実施の形態1または実施の形態2と同様である。
マルチOS計算機100の機能構成は実施の形態2(図9参照)と同じである。
但し、OS動作時間調整部260(超過回数特定部の一例)は、今回の第1OS動作時間(RTOS実動時間)が今回の第1OS割当時間(RTOS動作割合時間)を超えた超過回数(後述する周期オーバ数)を特定する。
OS動作時間調整部260は、超過回数が所定の優先度変更回数(後述する周期オーバ上限値)以上である場合、RTOS400に周期オーバ通知を出力する。
図11は、実施の形態3における予約時間管理テーブル241を示す図である。
実施の形態3における予約時間管理テーブル241について、図11に基づいて説明する。
予約時間管理テーブル241には、実施の形態1(図7参照)で説明した定義値に加えて、「周期オーバ数」と「周期オーバ上限値」とを設定する。
周期オーバ数は、RTOS実動時間がRTOS動作割合時間を超えた回数を示す。
周期オーバ上限値は、周期オーバ数と比較する閾値を示す。
図12は、実施の形態3における周期割込み処理を示すフローチャートである。
実施の形態3における周期割込み処理について、図12に基づいて説明する。
実施の形態3における周期割込み処理では、実施の形態2で説明した処理(図10参照)に加えて、S424、S431およびS450〜S451を実行する。
以下、S424、S431およびS450〜S451について主に説明する。
RTOS実動時間がRTOS動作割合時間より長い時間である場合(S421:NO)、OS動作時間調整部260は、RTOS実動時間とRTOS動作割合時間との差分時間を算出し(S422)、RTOS動作割合時間を差分時間だけ減らす(S423)。
S423の後、S424に進む。
S424において、OS動作時間調整部260は、予約時間管理テーブル241の周期オーバ数をカウントアップ(インクリメント)する。
S424の後、S450に進む。
S450において、OS動作時間調整部260は、予約時間管理テーブル241の周期オーバ数と周期オーバ上限値とを比較する。
周期オーバ数が周期オーバ上限値未満である場合(YES)、S440に進む。
周期オーバ数が周期オーバ上限値以上である場合(NO)、S451に進む。
S451において、OS動作時間調整部260は、周期オーバ数が周期オーバ上限値に達したことを知らせる周期オーバ通知をRTOS400に送る。
周期オーバ通知を受けたRTOS400は、所定の周期オーバ処理を行う。例えば、RTOS400は、マルチOS計算機100を再起動する。
RTOS実動時間がRTOS動作割合時間以下の時間である場合(S421:YES)、OS動作時間調整部260は、予約時間管理テーブル241のRTOS動作割合を初期クリアする(S430)。
S430の後、S431に進む。
S431において、OS動作時間調整部260は、予約時間管理テーブル241の周期オーバ数を「0」にクリアする。
S431の後、S440に進む。
実施の形態3により、RTOS動作割合時間を調整しても事務処理OS300を動作できない状況を検出し、所定の周期オーバ処理によって対処することができる。
実施の形態4.
RTOS動作割合時間を調整しても事務処理OS300を動作できない場合に切替え契機タスク421の優先度を高くする形態について説明する。
以下、実施の形態1〜3と異なる事項について主に説明する。説明を省略する事項は実施の形態1〜3と同様である。
マルチOS計算機100の機能構成は実施の形態2(図9参照)と同じである。
但し、OS動作時間調整部260(優先度変更部の一例)は、超過回数(周期オーバ数)が所定の優先度変更回数(周期オーバ上限値)以上である場合、切替え契機タスク421の優先度を上げる。
図13は、実施の形態4における予約時間管理テーブル241を示す図である。
実施の形態4における予約時間管理テーブル241について、図13に基づいて説明する。
予約時間管理テーブル241には、実施の形態3で説明した定義値(図11参照)に加えて、「優先度変更値」を設定する。
優先度変更値は、切替え契機タスク421の優先度を変更する大きさを示す。
図14は、実施の形態4における周期割込み処理を示すフローチャートである。
実施の形態4における周期割込み処理について、図14に基づいて説明する。
実施の形態4における周期割込み処理では、実施の形態3で説明したS451の代わりにS452を実行する。但し、S451とS452との両方を実行してもよい。
さらに、実施の形態4における周期割込み処理ではS432を実行する。
以下、S452およびS432について主に説明する。
周期オーバ数が周期オーバ上限値以上である場合(S450:NO)、S452に進む。
S452において、OS動作時間調整部260は、切替え契機タスク421の優先度を予約時間管理テーブル241に設定されている優先度変更値だけ高い優先度に変更する。
S452により、周期割込み処理は終了する。
RTOS実動時間がRTOS動作割合時間以下の時間である場合(S421:YES)、OS動作時間調整部260は、予約時間管理テーブル241のRTOS動作割合および周期オーバ数を初期クリアする(S430、S431)。
S431の後、S432に進む。
S432において、OS動作時間調整部260は、切替え契機タスク421の優先度を予約時間管理テーブル241に設定されている切替え契機タスク優先度(初期値)に変更する。
S432の後、S440に進む。
実施の形態4により、RTOS動作割合時間を調整しても事務処理OS300を動作できない場合に切替え契機タスク421の優先度を高くすることができる。
これにより、RTOS400が動作し続けて事務処理OS300が動作しなくなってしまう不具合を実施の形態1〜3よりも抑止することができる。
100 マルチOS計算機、101 ハードウェア、200 OS管理機構、210 OS切替え部、220 割込み割付部、230 予約時間通知部、240 予約時間設定部、241 予約時間管理テーブル、250 OS動作時刻記録部、260 OS動作時間調整部、300 事務処理OS、310 割込みハンドラ、320 アプリ、400 RTOS、410 割込みハンドラ、411 タスク管理部、420 一般タスク、421 切替え契機タスク、422 アイドルタスク、901 表示装置、902 キーボード、903 マウス、904 ドライブ装置、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 磁気ディスク装置、921 OS、922 ウィンドウシステム、923 プログラム群、924 ファイル群。

Claims (8)

  1. 優先度が設定された複数のタスクを優先度順に実行する第1のOS(オペレーティングシステム)と、前記第1のOSと異なる第2のOSとを動作OSとして交互に動作させるマルチオペレーティングシステム計算機において、
    前記第1のOSが動作OSとして動作しているときに前記複数のタスクのうち所定の優先度が設定された所定のタスクであって動作OSの切替え契機を特定するための切替え契機タスクとして用いられるタスクが実行された場合に、動作OSを前記第1のOSから前記第2のOSに切り替えるOS切替え部と、
    所定の状態変更周期毎に前記状態変更周期の開始時から前記状態変更周期より短い所定の第1OS割当時間が経過した場合に、前記切替え契機タスクの状態を待機状態から実行可能状態に変更するタスク状態変更部とを備え、
    前記OS切替え部は、実行可能状態になった前記切替え契機タスクが前記第1のOSにより実行された場合に、動作OSを前記第1のOSから前記第2のOSに切り替える
    ことを特徴とするマルチオペレーティングシステム計算機。
  2. 前記切替え契機タスクは、高い優先度が設定される高優先度タスクの優先度よりも低い優先度であって低い優先度が設定される低優先度タスクよりも高い優先度が設定される所定の中優先度タスクである
    ことを特徴とする請求項1記載のマルチオペレーティングシステム計算機。
  3. 前記タスク状態変更部は、前記状態変更周期の終了時に前記切替え契機タスクの状態を待機状態に変更する
    ことを特徴とする請求項1または請求項2記載のマルチオペレーティングシステム計算機。
  4. 前記マルチオペレーティングシステム計算機は、さらに、
    状態変更周期毎に前記第1のOSが動作OSとして動作した時間を第1OS動作時間として特定する動作時間特定部を備え、
    前記タスク状態変更部は、今回の状態変更周期で前記動作時間特定部により特定された今回の第1OS動作時間が今回の状態変更周期で使用された今回の第1OS割当時間を超えた場合、次回の状態変更周期で使用する次回の第1OS割当時間に今回の第1OS割当時間より短い時間を設定する
    ことを特徴とする請求項記載のマルチオペレーティングシステム計算機。
  5. 前記タスク状態変更部は、今回の第1OS動作時間と今回の第1OS割当時間との差分の時間だけ今回の第1OS割当時間より短い時間を次回の第1OS割当時間に設定する
    ことを特徴とする請求項記載のマルチオペレーティングシステム計算機。
  6. 前記マルチオペレーティングシステム計算機は、さらに、
    今回の第1OS動作時間が今回の第1OS割当時間を超えた超過回数を特定する超過回数特定部と、
    前記超過回数特定部により特定された超過回数が所定の優先度変更回数以上である場合、前記切替え契機タスクの優先度を上げる優先度変更部とを備える
    ことを特徴とする請求項記載のマルチオペレーティングシステム計算機。
  7. 優先度が設定された複数のタスクを優先度順に実行する第1のOS(オペレーティングシステム)と、前記第1のOSと異なる第2のOSとを動作OSとして交互に動作させるコンピュータによって実行されるマルチオペレーティングシステム管理方法において、
    タスク状態変更部が、所定の状態変更周期毎に前記状態変更周期の開始時から前記状態変更周期より短い所定の第1OS割当時間が経過した場合に、動作OSの切替え契機を特定するための切替え契機タスクの状態を待機状態から実行可能状態に変更し、
    OS切替え部が、前記第1のOSが動作OSとして動作しているときに前記複数のタスクのうち所定の優先度が設定されて実行可能状態になった前記切替え契機タスクが前記第1のOSにより実行された場合に、動作OSを前記第1のOSから前記第2のOSに切り替えることを特徴とするマルチオペレーティングシステム管理方法。
  8. 優先度が設定された複数のタスクを優先度順に実行する第1のOS(オペレーティングシステム)と、前記第1のOSと異なる第2のOSとを動作OSとして交互に動作させるマルチオペレーティングシステム管理プログラムであって、
    所定の状態変更周期毎に前記状態変更周期の開始時から前記状態変更周期より短い所定の第1OS割当時間が経過した場合に、動作OSの切替え契機を特定するための切替え契機タスクの状態を待機状態から実行可能状態に変更するタスク状態変更処理と、
    前記第1のOSが動作OSとして動作しているときに前記複数のタスクのうち所定の優先度が設定されて実行可能状態になった前記切替え契機タスクが前記第1のOSにより実行された場合に、動作OSを前記第1のOSから前記第2のOSに切り替えるOS切替え処理と
    をコンピュータに実行させるためのマルチオペレーティングシステム管理プログラム。
JP2010196270A 2010-09-02 2010-09-02 マルチオペレーティングシステム計算機、マルチオペレーティングシステム管理方法およびマルチオペレーティングシステム管理プログラム Expired - Fee Related JP5452427B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010196270A JP5452427B2 (ja) 2010-09-02 2010-09-02 マルチオペレーティングシステム計算機、マルチオペレーティングシステム管理方法およびマルチオペレーティングシステム管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010196270A JP5452427B2 (ja) 2010-09-02 2010-09-02 マルチオペレーティングシステム計算機、マルチオペレーティングシステム管理方法およびマルチオペレーティングシステム管理プログラム

Publications (2)

Publication Number Publication Date
JP2012053717A JP2012053717A (ja) 2012-03-15
JP5452427B2 true JP5452427B2 (ja) 2014-03-26

Family

ID=45906943

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010196270A Expired - Fee Related JP5452427B2 (ja) 2010-09-02 2010-09-02 マルチオペレーティングシステム計算機、マルチオペレーティングシステム管理方法およびマルチオペレーティングシステム管理プログラム

Country Status (1)

Country Link
JP (1) JP5452427B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106941516B (zh) * 2017-02-09 2020-04-24 北京东土科技股份有限公司 基于工业互联网操作系统的异构现场设备控制管理系统
CN108491268B (zh) * 2018-03-15 2021-10-08 浙江大学 一种面向智能网联汽车的混核操作系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468533B2 (en) * 2008-04-28 2013-06-18 Panasonic Corporation Virtual machine control device, method, and program wherein a switching task used to switch to the highest priority virtual machines is the highest priority task in the current virtual machine and the virtual machine that is the switching target

Also Published As

Publication number Publication date
JP2012053717A (ja) 2012-03-15

Similar Documents

Publication Publication Date Title
US10437639B2 (en) Scheduler and CPU performance controller cooperation
US7487503B2 (en) Scheduling threads in a multiprocessor computer
US8370846B2 (en) Task execution device and method
US8504753B2 (en) Suspendable interrupts for processor idle management
EP2885707B1 (en) Latency sensitive software interrupt and thread scheduling
JP4747307B2 (ja) ネットワーク処理制御装置,プログラムおよび方法
JP5050601B2 (ja) ジョブへの資源割当方式、ジョブへの資源割当方法およびプログラム
WO2009150815A1 (ja) マルチプロセッサシステム
CN111897637A (zh) 作业调度方法、装置、主机及存储介质
JP5452427B2 (ja) マルチオペレーティングシステム計算機、マルチオペレーティングシステム管理方法およびマルチオペレーティングシステム管理プログラム
JP4523910B2 (ja) 並列処理装置及び並列処理方法及び並列処理プログラム
CN114461365A (zh) 一种进程调度处理方法、装置、设备和存储介质
JP2008204243A (ja) ジョブ実行制御方法およびシステム
JP4048638B2 (ja) スケジューリング装置及び方法並びに記録媒体
JP4363417B2 (ja) コンピュータ装置およびコンピュータ制御方法
WO2022095862A1 (zh) 调整线程优先级的方法、终端及计算机可读存储介质
CA2767782A1 (en) Suspendable interrupts for processor idle management
WO2018211865A1 (ja) 車両制御装置
WO2017002812A1 (ja) 仮想化インフラストラクチャ管理装置、仮想ネットワークファンクション管理装置、仮想マシンの管理方法及びプログラム
JP5526748B2 (ja) パケット処理装置、パケット振り分け装置、制御プログラム及びパケット分散方法
JP2015121963A (ja) 情報処理システム、監視方法、及び、プログラム
JP2002049497A (ja) データ処理方法および処理装置
JP2004070582A (ja) イベント通知タスク制御処理方式及び方法並びにプログラム
WO2022168661A1 (ja) スケジューラ、スケジューリング方法、及び、コンピュータ読み取り可能な記憶媒体
WO2016151654A1 (ja) 並列処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131022

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131112

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: 20131203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131227

R150 Certificate of patent or registration of utility model

Ref document number: 5452427

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees