JP2007257257A - マルチタスクシステムにおけるタスク実行環境切替え方法 - Google Patents

マルチタスクシステムにおけるタスク実行環境切替え方法 Download PDF

Info

Publication number
JP2007257257A
JP2007257257A JP2006080330A JP2006080330A JP2007257257A JP 2007257257 A JP2007257257 A JP 2007257257A JP 2006080330 A JP2006080330 A JP 2006080330A JP 2006080330 A JP2006080330 A JP 2006080330A JP 2007257257 A JP2007257257 A JP 2007257257A
Authority
JP
Japan
Prior art keywords
execution environment
task
stack
function
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006080330A
Other languages
English (en)
Inventor
Keita Kobayashi
圭太 小林
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2006080330A priority Critical patent/JP2007257257A/ja
Priority to US11/723,576 priority patent/US20070226747A1/en
Priority to CNA2007100895083A priority patent/CN101042660A/zh
Publication of JP2007257257A publication Critical patent/JP2007257257A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

【課題】マルチタスクシステムにおいて、メイン関数からサブ関数を呼び出す場合のようにタスク処理途中で通信する可能性がある場合や同時に起動する可能性のあるタスク間での処理においても、タスクスタック領域の共用化が行え、システム全体でメモリ使用量を削減できるようにする。
【解決手段】タスクT1内のメイン関数f1からサブ関数f2を呼び出すに際して、タスクT1専用の実行環境スタックST1における現在のタスク実行環境情報をコンテキスト退避領域B1に退避させ、実行環境テーブルA0からサブ関数の実行環境情報を関数用実行環境スタックSPfにストアした上でサブ関数を呼び出し、サブ関数から処理が戻ってきた直後に、コンテキスト退避領域B1に退避させておいたタスク実行環境情報をタスク専用の実行環境スタックST1にストアさせ、メイン関数f1にリターンする。
【選択図】図1

Description

本発明は、マルチタスクOS(Operating System)のタスク実行環境情報の切替え方法にかかわり、特には、複数タスク間でのスタックメモリ共用やその他のCPU資源の排他制御を行うための技術に関する。
図6は、従来の技術におけるマルチタスクシステムの処理方法を示すフローチャートである。これは、複数のタスクに同一スタック領域を共用させ、個々の共用スタック領域に対しては、タスクの実行開始から終了までを単位として、共用スタック領域に対するタスクの割り付けを排他的に制御するものである。この従来技術の特徴は、タスク間でのスタックメモリ共用を行う際の処理割り付けの単位を、“タスクの実行開始から終了まで”としていることである。
図6を用いて、従来の技術におけるマルチタスク処理システムのスタック制御の動作を説明する。
タスクの実行が要求されたとき、まずステップS41において、スタック領域を共用する他のタスクが共用スタック領域を使用しているか否かを判定する。その結果、他のタスクが共用スタック領域を使用中でなければ、ステップS42に進んで、当該タスクを実行可能にする。一方、他のタスクが共用スタック領域を使用中であれば、ステップS43に進んで、当該タスクの実行可能な状態への遷移を遅延させる。これにより、共用スタック領域のメモリ利用効率を向上させることができる(例えば、特許文献1参照)。
特許文献1のオペレーティングシステムは、同一の優先度を有する複数のタスクに1つのスタック領域を割り当てるようなスタック管理機能を備えている。したがって、1つのスタック領域は同一優先度を持つ複数のタスクに共用される。ただし、1つのスタック領域を共通利用する複数のタスクは、それらが同時に実行されないもので、かつ、それらの実行順序が予め決定できるタスクとされる。例えば、3つのタスクA,BおよびCに1つのスタック領域を共用させる場合、タスクAの実行終了後にタスクBが実行され、タスクBの実行終了後にタスクCが実行されるといった具合である。つまり、共用スタック領域は、排他的に実行される1つのタスクのみに割り付けられる。また、1つのタスクに対して1つのスタック領域を専用として割り当てることも可能となっている。例えば、10個のタスクを管理するとき、OSは、2つのタスクにそれぞれ専用のスタック領域を割り当て、ある同一の優先度を有する4つのタスクに1つの共用スタック領域を割り当て、他の同一の優先度を有する4つのタスクに1つの共用スタック領域を割り当てる。結果的に、タスクは10個あるのに対して、全スタック領域の数は4つとされる。したがって、タスクの総数がn個(nは正の整数)に対して、スタック領域の総数m(mは正の整数)を、m<nとして、RAM(Random Access Memory)の全メモリ容量に対する全スタック領域の割合を低減することができる。その結果、内蔵RAMの記憶容量が制限されるシングルチップコンピュータでもマルチタスクのOSプログラムを搭載することが可能となる。
特開平6−168145号公報(第3−4頁、第1図)
しかし、上記従来の技術にあっては、複数タスク間でのスタックメモリ共用を行う際の処理割り付けの単位を、タスクの実行開始から終了までとしているために、次のような課題がある。例えば、メイン関数からサブ関数を呼び出す場合のようにタスク処理途中で通信する可能性がある場合や、同時に起動する可能性のあるタスク間での処理の場合に対して、タスクスタック領域の共用が行えない。このような場合、他タスクの処理とは排他的な処理に使用するスタックについては、これを個別に確保する必要があり、メモリを削減することができない。
本発明は、このような事情に鑑みて創作したものであり、メイン関数からサブ関数を呼び出す場合のようにタスク処理途中で通信する可能性がある場合や同時に起動する可能性のあるタスク間での処理の場合においても、タスクスタック領域の共用が行え、システム全体でメモリ使用量を削減できるようにすることを目的としている。
本発明によるマルチタスクシステムにおけるタスク実行環境切替え方法は、
マルチタスクOSにおいて、タスク内のメイン関数からサブ関数を呼び出すに際して、タスク専用の実行環境スタックにおける現在のタスク実行環境情報をコンテキスト退避領域に退避させる第1のステップと、
実行環境テーブルから前記サブ関数の実行環境情報を関数用実行環境スタックにストアさせる第2のステップと、
前記サブ関数を呼び出す第3のステップと、
前記サブ関数から処理が戻ってきたときに、前記第1のステップで前記コンテキスト退避領域に退避させておいた前記タスク実行環境情報を前記タスク専用の実行環境スタックタスクにストアさせる第4のステップとを備えるものである。
これは、関数の開始から終了までを1つの単位として複数タスク間でのスタック領域を共用するものである。この点において、従来の技術の場合の、タスクの実行開始から終了までを単位としてスタック領域を共用するものと相違する。すなわち、タスク単位より細かい関数単位でタスク間のスタック共用を行うことが特徴である。
具体的には、OSが管理する各タスクごとに専用の実行環境スタックが割り当てられる一方、関数の開始から終了までを1つの単位として共用の関数用実行環境スタックが割り当てられている。サブ関数の呼び出し要求があったときに、共用の関数用実行環境スタックが使用中か判断し、使用中の場合はタスクを実行待ち状態に移行させ、使用中で無い場合は現在のタスク実行環境情報をコンテキスト退避領域へ退避させ、サブ関数に割り当てられた共用の関数用実行環境スタックを使用中にし、サブ関数の実行環境情報を関数用実行環境スタックに代入し、それを用いてサブ関数を呼び出す。サブ関数から処理が戻ってきたときに、退避させておいたタスク実行環境情報をタスク専用の実行環境スタックに代入し、サブ関数呼び出し直前のタスク実行環境情報へ戻す。
以上の結果、本発明によれば、タスク処理途中で通信する可能性がある場合や同時に起動する可能性のあるタスク間においても、スタック領域の共用化が行え、システム全体でメモリ使用量を削減することができる。
上記において、前記第2のステップの直前に、前記実行環境テーブルのタスク実行環境情報を他タスクとは排他的に使用する排他状態に移行させ、前記第4ステップの直後に、前記排他状態を解除するという態様がある。
これには、次のようないくつかの態様がある。
前記第1のステップにおいて、前記実行環境テーブルの各タスク実行環境情報に設けた他タスクが使用中のフラグがセットされている場合は前記タスクを待ち状態に移行させ、前記フラグがセットされていない場合に前記フラグをセットすることで前記排他状態に移行させ、前記排他状態の解除は、前記フラグをクリアすることである。
この場合、前記第1ステップにおいて、前記フラグがセットされている場合はサブ関数が呼ばれずにエラーを返すものとする。
また、前記排他状態への移行をタスクディスパッチ禁止状態に変更することで実行し、前記排他状態の解除をタスクディスパッチ許可状態とすることで実行するのでもよい。ディスパッチ(dispatch)とは、OSが処理する複数のタスクに対するCPUの割り当て(スケジューリング)のことである。
また、前記排他状態への移行を割り込み禁止状態に変更することで実行し、前記排他状態の解除を割り込み許可状態とすることで実行するのでもよい。
このほか、ディスパッチ・割り込みを根本的に抑止するCPUロック状態にして排他状態へ移行するのでもよい。
以下のような排他状態への移行を利用する態様においては、サブ関数呼び出しの確認やタスクの待ち状態移行の必要がないため、処理効率が高いものとなる。
また上記において、前記タスク実行環境はスタックレジスタであり、前記タスク実行環境情報は前記サブ関数で使用するスタック領域アドレスであるという態様がある。
また上記において、前記コンテキスト退避領域は、スタック領域アドレスを指すという態様がある。
本発明によれば、タスク単位より細かい関数単位でタスク間のスタック領域が共用可能となり、システム全体でメモリ使用量を削減することができる。したがって、小容量のメモリでマルチタスクシステムを稼動させることができるという利点がある。
以下、本発明にかかわるマルチタスクシステムにおけるタスク実行環境切替え方法の実施の形態を図面に基づいて詳細に説明する。
(実施の形態1)
図1は本発明の実施の形態1におけるマルチタスクシステムの構成を示すブロック図である。このマルチタスクシステムにおいて、オペレーティングシステム(OS)1は、複数のタスクTi(i=1,2…n)を並列的に管理して、その実行を制御する。個々のタスクTiは、それぞれに専用の実行環境としてスタックSTi(i=1,2…n)を備えている。タスクT1においては、メイン関数f1がサブ関数f2を呼び出すようになっている。
オペレーティングシステム1は、実行環境テーブルA0とコンテキスト退避領域B0を備えている。実行環境テーブルA0は、サブ関数f2用実行環境情報A1、サブ関数f2′用実行環境情報A2…を含む。サブ関数f2用実行環境情報A1は、タスクT1がサブ関数f2を実行する際に使用する実行環境スタックのアドレス値を格納する。コンテキスト退避領域B0は、タスクT1退避領域B1、タスクT1退避領域B2…を含む。これらのタスク用退避領域は、スタックレジスタであるタスク専用の実行環境スタックST1を変更する前の現在のスタックレジスタ値を退避しておく。サブ関数用実行環境情報、タスク用退避領域は、それぞれ少なくとも1つあればよい。SPfは関数用実行環境スタックである。
図2は、タスクT1においてメイン関数f1からサブ関数f2を呼び出す処理の手順を示すフローチャートである。
まずステップS1において、実行環境テーブルA0におけるサブ関数f2用実行環境情報A1が使用中になっているか否かを確認する。未使用であればステップS2に処理を移し、使用中であればステップS11へ処理を移す。
ステップS2において、タスク専用の実行環境スタックST1における現在のタスク実行環境情報をコンテキスト退避領域B0のタスクT1退避領域B1へ退避させて保存する。
次いでステップS3において、実行環境テーブルA0におけるサブ関数f2用実行環境情報A1をスタックレジスタである関数用実行環境スタックSPfへストアする。これは、サブ関数f2を実行するための準備である。
次いでステップS4において、実行環境テーブルA0におけるサブ関数f2用実行環境情報A1を使用中にする。実行環境情報A1を使用中にすることに関しては、フラグをセットすればよい。例えば、実行環境テーブルA0(配列変数)の実行環境情報A1の最下位ビットを“1”にすることで使用中にし、“0”にすることで未使用中にする。
次いでステップS5において、サブ関数f2を呼び出し、ステップS6において、サブ関数f2の処理を開始し、サブ関数f2の処理の実行の終了を待って、ステップS7でサブ関数f2からリターンする。
そして、ステップS8において、ステップS2でコンテキスト退避領域B0のタスクT1退避領域B1に退避しておいた実行環境情報をタスク専用の実行環境スタックST1へ代入する。
次いでステップS9において、実行環境テーブルA0におけるサブ関数f2用実行環境情報A1を未使用にする。例えば、実行環境情報A1の最下位ビットを“0”にすることで未使用とする。未使用とした際には、必要に応じてサブ関数f2用実行環境情報A1の使用待ち状態になっているタスクを検索する。もし待ち状態のタスクが存在する場合は、そのタスクの待ち状態を解除する必要があるが、今回はその詳細な処理に関しては示さない。
最後に、ステップS10で、メイン関数f1へ処理を戻す。
一方、ステップS1の判断において、実行環境テーブルA0におけるサブ関数f2用実行環境情報A1が使用中であった場合は、ステップS11に進んで、サブ関数f2を呼び出せるか否かの確認を行う。サブ関数f2を呼び出せると判断したときはステップS2に移行するが、呼び出せないと判断したときはステップS12に進んで、メイン関数f1へ処理を戻す。
図3は、サブ関数f2を呼び出せるか否かの確認の手順を示すフローチャートである。以下、これについて説明する。
まずステップS21において、タスクを待ち状態に移行させるかどうかの確認を行い、待ち状態に移行させない場合はステップS22へ処理を移し、待ち状態に移行させる場合はステップS23へ処理を移す。この場合、例えば、あるOS内部の特定変数の値が“1”の場合は待ち状態へ移行させ、特定変数が“0”の場合は、待ち状態へ移行させない等の方法がある。
ステップS21の確認で待ち状態に移行させないとした場合は、ステップS22に進んで終了処理を行い、呼び出せない値を返す。一方、ステップS21の確認で待ち状態に移行させるとした場合は、ステップS23へ処理を移す。
ステップS23において、タスクT1を待ち状態へ移行させる。この際に、サブ関数f2用実行環境情報A1を使用待ち状態にし、OS内部の待ちキューに繋ぎ、タスクT1の状態変数を変更し、OS内で管理されている他のタスクへの遷移処理を行う。ここでは、待ち状態に移行させる際の処理の詳細は示さない。
ステップS23においてタスクT1を待ち状態へ移行させ、何かの要因によって待ち状態が解除されたら、ステップS24へ処理を移す。
ステップS24において、待ち状態が正常に解除されたかの確認を行い、正常に解除された場合はステップS26へ処理を移すが、異常の場合はステップS25へ処理を移す。待ち状態が正常に解除されたかの確認は、例えば、他タスクがサブ関数f2用実行環境情報A1の使用が終了し解放した場合に正常に解除とする。一方で、例えば、強制待ち解除要求などでタスクT1の待ち状態が解除された場合は、異常と判断する。
ステップS24で異常と確認された場合は、ステップS25に処理を移し、ステップS25では終了処理を行い、呼び出せない値を返す。ステップS24で正常と確認された場合は、ステップS26へ処理を移し、終了処理を行い、呼び出せる値を返す。
ステップS11の確認処理で、呼び出せないと確認した場合は、ステップS12へ処理を移し、メイン関数f1へ処理を戻す。この際に、メイン関数f1にサブ関数f2が呼び出せなかったことを伝えるため、例えばエラー値を返却する。ステップS11の確認処理で呼び出せると判断した場合、ステップS2へ処理を移す。ここで、ステップS2以降の処理は、上記で説明した通りになる。
上記のステップS2において、コンテキスト退避領域B0がサブ関数f2用実行環境情報A1の値「(SP)+4」を指した場合の関数用実行環境スタックSPfの使われ方を図4に示す。サブ関数f2用実行環境情報A1の値は、サブ関数f2処理用スタック領域2を指しており、戻りSP保存領域3はサブ関数f2用実行環境情報A1の値「(SP)+4」を指し、タスクT1で使用していた最終のアドレスをサブ関数f2用のスタック領域の戻りSP保存領域3に保存する。
以上のように本実施の形態によれば、関数の開始から終了までを1つの単位としてタスク間でのスタック領域を共用するもので、タスク単位より細かい関数単位でタスク間のスタック共用を行うので、タスク処理途中で通信する可能性がある場合や同時に起動する可能性のあるタスク間においても、スタック領域の共用化が行え、システム全体でメモリ使用量を削減することができる。
(実施の形態2)
図5は、本発明の実施の形態2におけるメイン関数f1からサブ関数f2の呼び出し処理のフローチャートを示している。実施の形態1の場合の図2と対比すると、ステップS4の使用中のフラグを立てたり、ステップS9の未使用中のフラグを立てる代わりに、ステップS31において排他状態へ移行する点、およびステップS38において排他状態を解除する点が異なっている。
まずステップS31において、排他状態へ移行する。排他状態とは、例えば、タスクディスパッチ禁止状態や、割り込み禁止状態や、CPUロック状態のことを指す。
次いでステップS32において、タスク専用の実行環境スタックST1における現在のタスク実行環境情報をコンテキスト退避領域B0のタスクT1退避領域B1へ退避させて保存する。
次いでステップS33において、実行環境テーブルA0におけるサブ関数f2用実行環境情報A1を関数用実行環境スタックSPfへストアする。
次いでステップS34において、サブ関数f2を呼び出し、ステップS35において、サブ関数f2の処理を開始し、サブ関数f2の処理の実行の終了を待って、ステップS36でサブ関数f2からリターンする。
そして、ステップS37において、ステップS32でコンテキスト退避領域B0のタスクT1退避領域B1に退避しておいた実行環境情報をタスク専用の実行環境スタックST1へ代入する。
その後、ステップS38で排他状態を解除する。排他状態を解除する際は、ステップS31でタスクディスパッチ禁止状態にした場合は、タスクディスパッチ許可状態にする。また、ステップS31で割り込み禁止状態にした場合は、割り込み許可状態にする。また、ステップS31でCPUロック状態にした場合は、CPUロック状態を解除させる。
最後に、ステップS39で、メイン関数f1へ処理を戻す。
以上のように本実施の形態においても、関数の開始から終了までを1つの単位としてタスク間でのスタック領域を共用するもので、タスク単位より細かい関数単位でタスク間のスタック共用を行うので、タスク処理途中で通信する可能性がある場合や同時に起動する可能性のあるタスク間においても、スタック領域の共用化が行え、システム全体でメモリ使用量を削減することができる。
加えて、図2の場合のサブ関数f2を呼び出せるか否かの確認は必要でなく、タスクの待ち状態移行もないため、処理効率が高いものとなる。
(実施の形態3)
上記で説明した実施の形態1および実施の形態2では、サブ関数f2用実行環境情報A1をタスク実行環境情報としたが、これに代えて、サブ関数f2用実行環境情報A1をCPUの動作モードとし、メイン関数f1からサブ関数f2の呼び出し処理の中でメイン関数f1を実行中の動作モードをコンテキスト退避領域B0へ退避させて保存し、サブ関数f2のCPU動作モードを切り替えるように構成してもよい。
また、複数のCPUが存在するマルチプロセッサの場合、サブ関数f2用実行環境情報A1に特定のCPUを指定し、メイン関数f1からサブ関数f2の呼び出し処理で使用CPUを切り替えるように構成してもよい。
本発明は、マルチタスクシステムにおけるタスク実行環境切替え方法において、タスク処理途中で通信する可能性がある場合や同時に起動する可能性のあるタスク間においても、スタック領域の共用化が行え、システム全体でメモリ使用量を削減する技術として有用である。
本発明の実施の形態1におけるマルチタスクシステムの構成を示すブロック図 本発明の実施の形態1におけるメイン関数からサブ関数の呼び出し処理のフローチャート 本発明の実施の形態1におけるサブ関数呼び出し確認処理のフローチャート 本発明の実施の形態1におけるコンテキスト退避領域がサブ関数用実行環境情報を指す際のスタック領域の使われ方を示した図 本発明の実施の形態2におけるメイン関数からサブ関数の呼び出す際に排他状態にする処理のフローチャート 従来の共用スタック領域を排他的に制御するフローチャート
符号の説明
1 OS(オペレーティングシステム)
A0 実行環境テーブル領域
A1 サブ関数f2用実行環境情報
B0 コンテキスト退避領域
B1 タスクT1用退避領域
f1 メイン関数
f2 サブ関数
SPf 関数用実行環境スタック
ST1 タスク専用の実行環境スタック
T1 タスク

Claims (7)

  1. マルチタスクOSにおいて、タスク内のメイン関数からサブ関数を呼び出すに際して、タスク専用の実行環境スタックにおける現在のタスク実行環境情報をコンテキスト退避領域に退避させる第1のステップと、
    実行環境テーブルから前記サブ関数の実行環境情報を関数用実行環境スタックにストアさせる第2のステップと、
    前記サブ関数を呼び出す第3のステップと、
    前記サブ関数から処理が戻ってきたときに、前記第1のステップで前記コンテキスト退避領域に退避させておいた前記タスク実行環境情報を前記タスク専用の実行環境スタックタスクにストアさせる第4のステップとを備えるマルチタスクシステムにおけるタスク実行環境切替え方法。
  2. 前記第2のステップの直前に、前記実行環境テーブルのタスク実行環境情報を他タスクとは排他的に使用する排他状態に移行させ、
    前記第4ステップの直後に、前記排他状態を解除する請求項1に記載のタスク実行環境切替え方法。
  3. 前記第1のステップにおいて、前記実行環境テーブルの各タスク実行環境情報に設けた他タスクが使用中のフラグがセットされている場合は前記タスクを待ち状態に移行させ、前記フラグがセットされていない場合に前記フラグをセットすることで前記排他状態に移行させ、
    前記排他状態の解除は、前記フラグをクリアすることである請求項2に記載のタスク実行環境切替え方法。
  4. 前記排他状態への移行をタスクディスパッチ禁止状態に変更することで実行し、前記排他状態の解除をタスクディスパッチ許可状態とすることで実行する請求項2に記載のタスク実行環境切替え方法。
  5. 前記排他状態への移行を割り込み禁止状態に変更することで実行し、前記排他状態の解除を割り込み許可状態とすることで実行する請求項2に記載のタスク実行環境切替え方法。
  6. 前記タスク実行環境はスタックレジスタであり、前記タスク実行環境情報は前記サブ関数で使用するスタック領域アドレスである請求項1から請求項5までのいずれかに記載のタスク実行環境切替え方法。
  7. 前記コンテキスト退避領域は、スタック領域アドレスを指す請求項1から請求項6までのいずれかに記載のタスク実行環境切替え方法。
JP2006080330A 2006-03-23 2006-03-23 マルチタスクシステムにおけるタスク実行環境切替え方法 Pending JP2007257257A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006080330A JP2007257257A (ja) 2006-03-23 2006-03-23 マルチタスクシステムにおけるタスク実行環境切替え方法
US11/723,576 US20070226747A1 (en) 2006-03-23 2007-03-21 Method of task execution environment switch in multitask system
CNA2007100895083A CN101042660A (zh) 2006-03-23 2007-03-22 多任务系统中的任务执行环境切换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006080330A JP2007257257A (ja) 2006-03-23 2006-03-23 マルチタスクシステムにおけるタスク実行環境切替え方法

Publications (1)

Publication Number Publication Date
JP2007257257A true JP2007257257A (ja) 2007-10-04

Family

ID=38535162

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006080330A Pending JP2007257257A (ja) 2006-03-23 2006-03-23 マルチタスクシステムにおけるタスク実行環境切替え方法

Country Status (3)

Country Link
US (1) US20070226747A1 (ja)
JP (1) JP2007257257A (ja)
CN (1) CN101042660A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101290591B (zh) * 2008-06-03 2011-10-12 北京中星微电子有限公司 一种嵌入式操作系统中切换任务的方法和单元

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4873423B2 (ja) * 2007-12-27 2012-02-08 東芝ソリューション株式会社 仮想化プログラム、シミュレーション装置、仮想化方法
CN101262498B (zh) * 2008-04-22 2011-01-05 华为技术有限公司 一种分布式调用消息的方法和装置
US20120192147A1 (en) * 2011-01-25 2012-07-26 Argen Wong Develop real time software without an RTOS
CN102521037B (zh) * 2011-12-05 2013-12-25 晶门科技(深圳)有限公司 使用双上下文存储的密码学算法协处理器及数据流处理方法
KR102006470B1 (ko) 2011-12-28 2019-08-02 삼성전자 주식회사 사용자 디바이스에서 멀티태스킹 운용 방법 및 장치
CN103412796A (zh) * 2013-08-30 2013-11-27 北京经纬恒润科技有限公司 操作系统中任务的堆栈分配方法及装置
CN109376284B (zh) * 2014-09-24 2022-11-25 创新先进技术有限公司 数据处理方法及系统
JP6771272B2 (ja) * 2015-07-01 2020-10-21 日立オートモティブシステムズ株式会社 車載電子制御装置及びスタック使用方法
US11120036B2 (en) * 2016-08-03 2021-09-14 Oracle International Corporation System and method for efficient repurposing of connections in a multi-tenant database environment
CN108536527B (zh) * 2018-02-08 2020-10-30 山东省科学院自动化研究所 一种嵌入式软件的任务调度方法及装置
CN111240824B (zh) * 2018-11-29 2023-05-02 中兴通讯股份有限公司 一种cpu资源调度方法及电子设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63211060A (ja) * 1987-02-27 1988-09-01 Nippon Telegr & Teleph Corp <Ntt> マルチプロセツサシステムにおける負荷分散制御方式
JPH04373026A (ja) * 1991-06-24 1992-12-25 Fuji Electric Co Ltd プログラム中断方法
JPH06168145A (ja) * 1991-02-08 1994-06-14 Hitachi Ltd スタック制御方式及びマイクロコンピュータ
JPH08272757A (ja) * 1995-03-31 1996-10-18 Toshiba Corp マルチプロセッサシステム及びプログラム起動方法
JP2001043093A (ja) * 1999-07-30 2001-02-16 Kenji Kobayashi スタックを共用するタスク・コンテキスト・スイッチ
JP2001109634A (ja) * 1999-10-05 2001-04-20 Pfu Ltd システムコール制御装置および記録媒体
JP2002229805A (ja) * 2001-01-30 2002-08-16 Canon Inc 組み込み用リアルタイムオペレーティングシステムの再構築方式および記憶媒体
JP2002333985A (ja) * 2001-05-09 2002-11-22 Toshiba Corp レジスタ退避復旧方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5168566A (en) * 1983-11-25 1992-12-01 Sharp Kabushiki Kaisha Multi-task control device for central processor task execution control provided as a peripheral device and capable of prioritizing and timesharing the tasks
US6243762B1 (en) * 1994-08-08 2001-06-05 Mercury Computer Systems, Inc. Methods and apparatus for data access and program generation on a multiprocessing computer
US6553487B1 (en) * 2000-01-07 2003-04-22 Motorola, Inc. Device and method for performing high-speed low overhead context switch
US7213247B1 (en) * 2000-01-10 2007-05-01 Wind River Systems, Inc. Protection domains for a computer operating system
US20050066302A1 (en) * 2003-09-22 2005-03-24 Codito Technologies Private Limited Method and system for minimizing thread switching overheads and memory usage in multithreaded processing using floating threads
CN101091166B (zh) * 2004-12-30 2010-05-05 英特尔公司 保存多个执行上下文的方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63211060A (ja) * 1987-02-27 1988-09-01 Nippon Telegr & Teleph Corp <Ntt> マルチプロセツサシステムにおける負荷分散制御方式
JPH06168145A (ja) * 1991-02-08 1994-06-14 Hitachi Ltd スタック制御方式及びマイクロコンピュータ
JPH04373026A (ja) * 1991-06-24 1992-12-25 Fuji Electric Co Ltd プログラム中断方法
JPH08272757A (ja) * 1995-03-31 1996-10-18 Toshiba Corp マルチプロセッサシステム及びプログラム起動方法
JP2001043093A (ja) * 1999-07-30 2001-02-16 Kenji Kobayashi スタックを共用するタスク・コンテキスト・スイッチ
JP2001109634A (ja) * 1999-10-05 2001-04-20 Pfu Ltd システムコール制御装置および記録媒体
JP2002229805A (ja) * 2001-01-30 2002-08-16 Canon Inc 組み込み用リアルタイムオペレーティングシステムの再構築方式および記憶媒体
JP2002333985A (ja) * 2001-05-09 2002-11-22 Toshiba Corp レジスタ退避復旧方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101290591B (zh) * 2008-06-03 2011-10-12 北京中星微电子有限公司 一种嵌入式操作系统中切换任务的方法和单元

Also Published As

Publication number Publication date
US20070226747A1 (en) 2007-09-27
CN101042660A (zh) 2007-09-26

Similar Documents

Publication Publication Date Title
JP2007257257A (ja) マルチタスクシステムにおけるタスク実行環境切替え方法
JP5546529B2 (ja) 待機状態にあるプロセッサ実行リソースの共有
US7840775B2 (en) Storage system in which resources are dynamically allocated to logical partition, and logical division method for storage system
US20090019449A1 (en) Load balancing method and apparatus in symmetric multi-processor system
US8375390B2 (en) Scheduling method and scheduling apparatus
CN100578459C (zh) 线程调度方法及其装置
WO2017056725A1 (ja) 車載制御装置
JPH03144847A (ja) マルチプロセッサ・システムおよびそのプロセス同期方法
JP2007156824A (ja) プロセッサシステム、タスク制御方法
JP5745868B2 (ja) マルチプロセッサシステム
US20080168465A1 (en) Data processing system and semiconductor integrated circuit
US20090178045A1 (en) Scheduling Memory Usage Of A Workload
JP7006451B2 (ja) 電子制御装置及びマルチコアの割当て方法
US9081576B2 (en) Task scheduling method of a semiconductor device based on power levels of in-queue tasks
JP2010113488A (ja) オペレーティングシステムおよび情報処理装置
US8219992B2 (en) Data processing system having a plurality of processors and operating systems
JP3893136B2 (ja) 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム
JP2022079764A (ja) 同期制御システムおよび同期制御方法
JP2008225641A (ja) コンピュータシステム、割り込み制御方法及びプログラム
JP4017005B2 (ja) 演算装置
JP2007141155A (ja) マルチコアプロセッサにおけるマルチコア制御方法
JPH1011412A (ja) マルチcpu構成システムにおける初期処理負荷分散方式
US7996848B1 (en) Systems and methods for suspending and resuming threads
CN108009005A (zh) 一种线程池管理方法及装置
JP2008176646A (ja) マルチプロセッサシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101129

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110726