JP2007094941A - オペレーティングシステム,電子機器 - Google Patents

オペレーティングシステム,電子機器 Download PDF

Info

Publication number
JP2007094941A
JP2007094941A JP2005286145A JP2005286145A JP2007094941A JP 2007094941 A JP2007094941 A JP 2007094941A JP 2005286145 A JP2005286145 A JP 2005286145A JP 2005286145 A JP2005286145 A JP 2005286145A JP 2007094941 A JP2007094941 A JP 2007094941A
Authority
JP
Japan
Prior art keywords
task
system call
context information
executed
program address
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
JP2005286145A
Other languages
English (en)
Inventor
Tadashi Ito
忠 伊藤
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.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Mita 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 Kyocera Mita Corp filed Critical Kyocera Mita Corp
Priority to JP2005286145A priority Critical patent/JP2007094941A/ja
Publication of JP2007094941A publication Critical patent/JP2007094941A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】システムコールの要求によるタスクの中断時に記憶手段に格納されるコンテキスト情報の小容量化,及びそのコンテキスト情報の前記記憶手段への格納処理の迅速化を実現することのできるオペレーティングシステム及びこれが搭載された電子機器を提供すること。
【解決手段】実行中のタスクにおいて予め定められた複数のタスクに共通のプログラムアドレスからシステムコールが要求された場合に,該実行中のタスクに関するコンテキスト情報であって前記共通のプログラムアドレスを含まない簡略コンテキスト情報を第1の記憶手段に格納し,前記システムコールに対応する処理の実行後に,該システムコールにより中断した前記タスクの実行を,前記共通のプログラムアドレスと前記第1の記憶手段に格納された前記簡略コンテキスト情報とに基づいて再開させるように構成する。
【選択図】図3

Description

本発明は,電子計算機においてタスクの管理を行うオペレーティングシステムに関し,特に,複数のタスクの並行処理を実行するマルチタスク機能を有するオペレーティングシステムに関するものである。
プリンタ,複写機,デジタルカメラ,携帯電話などの電子機器には,小規模なCPUやメモリ(主記憶装置)等を有するコンピュータシステム(以下「組み込みシステム」という)が組み込まれている。そして,この組み込みシステムにおいてCPUによって実行されるアプリケーションの各タスク(プロセス)は,オペレーティングシステム(以下「OS」という)によって管理される。
また,一般にマルチタスクOSと呼ばれるOSは,タスクスケジューリング機能やシステムコール機能などを実現するカーネルを有しており,これらの機能によって複数のタスクを見かけ上並行して実行させる(例えば,特許文献1参照)。
ここで,図4を用いて,従来のOSが搭載されたシステムYについて説明する。
図4に示すように,前記システムYは,ROM101,CPU102及びRAM103を備えて概略構成されている。前記ROM101には,前記CPU102によって実行されるOSやアプリケーションなどのプログラムが記憶されている。
前記RAM103には,前記アプリケーションに含まれる複数のタスク111〜113のコンテキスト情報を格納するためのTCB121〜123が確保されている。前記TCB121〜123に格納されるコンテキスト情報には,前記CPU102内のレジスタによって管理されるプログラムカウンタ(PC)やステータスレジスタ(SR),各種の演算に利用される汎用レジスタ(R0,R1,…R7)などの情報が含まれている。
このように構成された前記システムYでは,前記CPU102により実行中のタスク111においてシステムコールが要求されると,そのタスク111のコンテキスト情報が前記CPU102内のレジスタから前記RAM103のTCB121に退避され,前記システムコールに対応する処理(例えば,タスクの生成・起動・終了,セマフォやイベントフラグの生成・管理など)が実行される。
そして,前記システムコールに対応する処理が終了すると,前記RAM103のTCB121に格納された前記タスク111のコンテキスト情報が読み出され,そのコンテキスト情報に含まれた前記プログラムアドレスに従ってタスク111が再開される。
ここで,前記コンテキスト情報に含まれる前記プログラムカウンタ(PC)は,前記タスク111〜113の各々においてシステムコールが要求されるプログラムアドレスが異なるために,前記システムコールに対応する処理の次工程の処理の開始に必要なものであって,システムコールが要求されたプログラムアドレスを示す。なお,前記システムコールを要求したタスク,即ちシステムコールに対応する処理の実行後に再開するべきタスクがタスク111〜113のいずれであるかについては,前記マルチタスクOSのタスクスケジューリング機能により管理されている。
特開2002−229805号公報
ところで,前記TCB121〜123に格納されるコンテキスト情報の情報量が多いほど,前記RAM103に大きな記憶領域を確保しておく必要があるため,前記コンテキスト情報の情報量は可能な限り少ないことが望ましい。特に,組み込みシステムにおいては,一般に大容量のメモリを有するパーソナルコンピュータ等とは異なり,メモリの小容量化が強く望まれるという背景がある。さらに,前記コンテキスト情報の情報量が多いほど,前記コンテキスト情報を前記TCB121〜123に格納するための処理に費やす時間が長くなるため,処理速度向上の観点からも前記コンテキスト情報の情報量は可能な限り少ないことが望ましい。
従って,本発明は上記事情に鑑みてなされたものであり,その目的とするところは,システムコールの要求によるタスクの中断時に記憶手段に格納されるコンテキスト情報の小容量化,及びそのコンテキスト情報の前記記憶手段への格納処理の迅速化を実現することのできるオペレーティングシステム及びこれが搭載された電子機器を提供することにある。
上記目的を達成するために本発明は,実行中のタスクから要求されるシステムコールに応じて該実行中のタスクを中断し,前記システムコールに対応する処理を実行するオペレーティングシステムに適用されるものであって,前記実行中のタスクにおいて予め定められた複数のタスクに共通のプログラムアドレスから前記システムコールが要求された場合に,該実行中のタスクに関するコンテキスト情報であって前記共通のプログラムアドレスを含まない簡略コンテキスト情報を第1の記憶手段に格納する簡略コンテキスト情報格納処理と,前記システムコールに対応する処理の実行後に,該システムコールにより中断した前記タスクの実行を,前記共通のプログラムアドレスと前記第1の記憶手段に格納された前記簡略コンテキスト情報とに基づいて再開させるタスク再開処理とを実行するように構成される。
本発明によれば,前記システムコールの要求に応じて実行中のタスクを中断するときに,前記共通のプログラムアドレスを除くコンテキスト情報(前記簡略コンテキスト情報)が前記第1の記憶手段に格納されるため,従来に比べて前記第1の記憶手段の小容量化を実現することができる。また,前記第1の記憶手段に格納される前記簡略コンテキスト情報の情報量が,従来に比べて前記共通のプログラムアドレスを除く分だけ削減されているため,該簡略コンテキスト情報を前記第1の記憶手段へ格納するための処理速度も向上する。
より具体的には,前記タスク再開処理において,前記共通のプログラムアドレスが予め記憶された前記複数のタスクに共通の第2の記憶手段から前記共通のプログラムアドレスが取得されることが考えられる。
また,本発明は,前記オペレーティングシステムが搭載された電子機器として捉えてもよい。
本発明によれば,前記システムコールの要求に応じて実行中のタスクを中断するときに,前記共通のプログラムアドレスを除くコンテキスト情報(前記簡略コンテキスト情報)が前記第1の記憶手段に格納されるため,従来に比べて前記第1の記憶手段の小容量化を実現することができる。また,前記第1の記憶手段に格納される前記簡略コンテキスト情報の情報量が,従来に比べて前記共通のプログラムアドレスを除く分だけ削減されているため,該簡略コンテキスト情報を前記第1の記憶手段へ格納するための処理速度も向上する。
以下添付図面を参照しながら,本発明の実施の形態について説明し,本発明の理解に供する。尚,以下の実施の形態は,本発明を具体化した一例であって,本発明の技術的範囲を限定する性格のものではない。
ここに,図1は本発明の実施の形態に係るオペレーティングシステムが搭載されたシステムXの概略構成図,図2は前記システムXで実行されるアプリケーションの一例を示す図,図3は前記システムXで実行されるシステムコール処理の手順の一例を説明するためのフローチャートである。
まず,図1を用いて,本発明の実施の形態に係るオペレーティングシステム(以下「OS」と略称する)が搭載されたシステムXの概略構成について説明する。前記システムXは,プリンタ装置,複写機,デジタルカメラ,携帯電話などの電子機器に実装されて,該電子機器を制御する組み込みシステムの一例である。
図1に示すように,前記システムXは,OS及びアプリケーションなどのプログラムや,後述するシステムコール番地(システムコールが要求されるプログラムアドレスに相当)などの各種の情報が格納されたROM1(第2の記憶手段の一例)と,該ROM1に格納されたプログラムを実行することにより当該システムXが搭載された電子機器を制御するCPU2と,該CPU2によって実行される後述のシステムコール処理(図3のフローチャート参照)においてコンテキスト情報の読み書きが行われるRAM3(第1の記憶手段の一例)とを備えて構成されている。前記RAM3には,前記アプリケーションに含まれる複数のタスク11〜13のコンテキスト情報を,前記CPU2内のレジスタから退避するためのTCB21〜23が確保されている。なお,前記TCB21〜23は,例えば,前記システムXにおいて初めに前記タスク11〜13の実行が開始されたときに,前記RAM3に確保されるものである。
このように構成された前記システムXでは,前記タスク11〜13のいずれかのタスクにおいてシステムコールが要求された場合,その実行中のタスクのコンテキスト情報が前記RAM3に退避されて該タスクが中断された後,要求されたシステムコールに対応する処理(例えば,タスクの生成・起動・終了,セマフォやイベントフラグの生成・管理など)が実行される。
ここで,前述したように,従来のOSが搭載されたシステムY(図4参照)では,前記タスク111〜113の各々においてシステムコールが要求されるプログラムアドレスが異なるため,そのタスク111〜113の中断時には,システムコールに対応する処理の次工程の処理を開始するために必要なプログラムカウンタ(PC),即ちシステムコールが要求されたプログラムアドレスを含むコンテキスト情報が前記RAM103に退避される。
しかし,前記システムXで実行されるアプリケーションでは,前記タスク11〜13のいずれのタスクにおいても,前記CPU2のレジスタで管理されるプログラムカウンタ(PC)が,予め定められた各タスクに共通のプログラムアドレスであるシステムコール番地となる状態でのみシステムコールの要求が行われる。なお,前記したように前記システムコール番地は,前記ROM1に予め記憶されている。
ここで,図2を用いて,システムコールの要求が常に同一のプログラムアドレスであるシステムコール番地から行われる前記アプリケーションの一例について説明する。なお,図2に示すプログラムはC言語による記述であるが,これに限られるものではない。
図2に示すように,前記ROM1に記憶されたアプリケーションのプログラムには,タスク11〜13及びこれらに共通する共通ライブラリが含まれている。前記タスク11〜13各々は,プログラムアドレス1000番地,2000番地,3000番地から開始され,前記共通ライブラリは,プログラムアドレス4000番地,5000番地,6000番地のいずれかから開始される。
このアプリケーションでは,例えばタスク11におけるプログラムアドレス1010番地のsyscallA()の関数によって,プログラムアドレス4000番地から開始される前記共通ライブラリのsyscallA()に処理が移行される。このsyscallA()では,プログラムアドレス4010番地においてsyscall(1)の関数によって,プログラムアドレス6000番地から開始されるsyscall()に処理が移行される。ここで,前記syscall(1)は,システムコールの引数を“1”に設定するものである。なお,前記引数“1”は,例えば他のタスクへのデータ送信を示すものである。
続いて,前記syscall()では,プログラムアドレス6010番地においてasm(“trap”)の関数によって,システムコールが要求される。これにより,前記システムXでは,前記タスク11から要求されたシステムコールに対応する処理,ここでは他のタスクへのデータ送信処理が前記CPU2によって実行される。
また,前記アプリケーションでは,前記タスク12におけるプログラムアドレス2010番地のsyscallB()の関数によって,プログラムアドレス5000番地から開始される前記共通ライブラリのsyscallB()に処理が移行され,プログラムアドレス5010番地においてsyscall(2)の関数によって,プログラムアドレス6000番地に移行して,プログラムアドレス6010番地においてシステムコールを要求するasm(“trap”)が実行される。ここで,前記syscall(2)は,システムコールの引数を“2”に設定するものである。なお,前記引数“2”は,例えば他のタスクからのデータ受信を示すものである。
なお,前記タスク13についても同様にシステムコールが要求される。
即ち,前記アプリケーションでは,前記タスク11〜13のいずれにおいても,前記CPU102内のレジスタで管理されるプログラムカウンタ(PC)が同一の6010番地となる状態で,システムコールが要求される。この6010番地が前記システムコール番地に相当し,前記ROM1に予め記憶されている。
このように前記システムXでは,システムコールが要求されるプログラムアドレスであるシステムコール番地が,複数の前記タスク11〜13において共通であるため,前記OSに従って実行される後述のシステムコール処理(図3のフローチャート参照)において,前記タスク11〜13の中断時に前記RAM3に退避されるコンテキスト情報から前記プログラムカウンタ(PC)を削減することが可能である。
以下,図3のフローチャートを用いて,前記CPU2によって前記OSに従って実行されるシステムコール処理の手順の一例について説明する。なお,図示するS1,S2,…は処理手順(ステップ)番号を示している。
図3のフローチャートに示すように,ステップS1では,前記タスク11〜13のいずれかのタスクの実行中にシステムコールが要求された否かが前記CPU2によって判断される。ここで,前記システムコールが要求されていないと判断されている間(S1のNo側)は,前記タスク11〜13のいずれかのタスクが実行されるが,前記システムコールが要求されたと判断されると(S1のYes側),処理はステップS2に移行する。ここでは,前記タスク11(図2参照)の実行中にシステムコールが要求されたと仮定する。したがって,処理はステップS2に移行する。
そして,ステップS2では,前記CPU2内のレジスタで管理された前記タスク11のコンテキスト情報のうち,プログラムカウンタ(PC)を除くステータスレジスタ(SR)や汎用レジスタ(R0〜R7)などの情報(以下,「簡略コンテキスト情報」という)が,前記CPU2内部のレジスタから前記RAM3のTCB21に退避される簡略コンテキスト情報格納処理が前記CPU2によって実行される。このとき,前記簡略コンテキスト情報格納処理は,従来のように前記プログラムカウンタ(PC)を含むコンテキスト情報を退避する場合に比べて,前記プログラムカウンタ(PC)が含まれていない分だけ迅速に行われる。
前記タスク11の簡略コンテキスト情報が退避されると,該タスク11の処理は中断され,続くステップS3において,前記タスク11から要求されたシステムコールに対応する処理,例えば,他のタスクへのデータ送信の処理が前記CPU2によって実行される。
その後,前記システムコールに対応する処理が終了すると,処理はステップS4に移行して,前記OSのタスクスケジュール機能によって,次に実行するべきタスクを選定して切り替えるタスクスケジューリングが実行される。ここでは,前記タスク11が選定されたと仮定する。
続くステップS5では,前記ステップS2において前記RAM3のTCB21に退避された前記タスク11の簡略コンテキスト情報が読み出される。ここで,前記したように前記TCB21に退避された簡略コンテキスト情報には,前記システムコールが要求されたときのプログラムアドレスを示すプログラムカウンタ(前記システムコール番地)が含まれていない。
そのため,当該システムコール処理においては,ステップS6において,前記ROM1に記憶された前記システムコール番地を取得するべく,前記CPU2によって前記ROM1から前記システムコール番地が読み出される。
これにより,続くステップS7では,前記簡略コンテキスト情報及び前記システムコール番地に基づいて,前記システムコールに対応する処理の次工程の処理が前記CPU2によって実行される。具体的には,前記システムコール番地の次の番地をプログラムの開始(再開)アドレスとして前記タスク11の実行を再開するタスク再開処理が実行される。なお,前記タスク再開処理は,前記システムコールに対応する処理の終了直後に実行されるとは限らない。
このように,前記システムXでは,前記タスク11〜13の各々においてシステムコールが要求されるプログラムアドレスが共通であるため,前記システムコールに対応する処理が実行された後に,前記RAM3のTCB21に格納された簡略コンテキスト情報及び前記ROM1に記憶されたシステムコール番地が読み出されることによって,前記タスク11から要求されたシステムコールに対応する処理の次工程の処理を開始すること,即ち中断したタスクの実行をその続きから再開すること等が可能である。
したがって,前記OSが搭載された前記システムXでは,前記タスク11〜13のいずれかのタスクからシステムコールが要求されて,該タスクを中断する場合であっても,そのシステムコールが要求されたときのプログラムアドレスをコンテキスト情報に含めて前記RAM3のTCB11〜13に格納する必要がないため,該TCB11〜13の各々のために確保するべき記憶領域を削減することができ,ひいては前記RAM3の小容量化を実現することができる。
本発明の実施の形態に係るオペレーティングシステムが搭載されたシステムの概略構成図。 本発明の実施の形態に係るオペレーティングシステムが搭載されたシステムで実行されるアプリケーションの一例を示す図 本発明の実施の形態に係るオペレーティングシステムが搭載されたシステムで実行されるシステムコール処理の手順の一例を説明するためのフローチャート。 従来のオペレーティングシステムが搭載されたシステムの概略構成図。
符号の説明
1,101…ROM
2,102…CPU
3,103…RAM
11〜13,111〜113…タスク
21〜23,121〜123…タスクコントロールブロック(TCB)
X,Y…システム

Claims (3)

  1. 実行中のタスクから要求されるシステムコールに応じて該実行中のタスクを中断し,前記システムコールに対応する処理を実行するオペレーティングシステムであって,
    前記実行中のタスクにおいて予め定められた複数のタスクに共通のプログラムアドレスから前記システムコールが要求された場合に,該実行中のタスクに関するコンテキスト情報であって前記共通のプログラムアドレスを含まない簡略コンテキスト情報を第1の記憶手段に格納する簡略コンテキスト情報格納処理と,
    前記システムコールに対応する処理の実行後に,該システムコールにより中断した前記タスクの実行を,前記共通のプログラムアドレスと前記第1の記憶手段に格納された前記簡略コンテキスト情報とに基づいて再開させるタスク再開処理と,
    を実行してなることを特徴とするオペレーティングシステム。
  2. 前記タスク再開処理において,前記共通のプログラムアドレスが予め記憶された前記複数のタスクに共通の第2の記憶手段から前記共通のプログラムアドレスが取得されてなる請求項1に記載のオペレーティングシステム。
  3. 請求項1又は2のいずれかに記載のオペレーティングシステムが搭載された電子機器。
JP2005286145A 2005-09-30 2005-09-30 オペレーティングシステム,電子機器 Pending JP2007094941A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005286145A JP2007094941A (ja) 2005-09-30 2005-09-30 オペレーティングシステム,電子機器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005286145A JP2007094941A (ja) 2005-09-30 2005-09-30 オペレーティングシステム,電子機器

Publications (1)

Publication Number Publication Date
JP2007094941A true JP2007094941A (ja) 2007-04-12

Family

ID=37980553

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005286145A Pending JP2007094941A (ja) 2005-09-30 2005-09-30 オペレーティングシステム,電子機器

Country Status (1)

Country Link
JP (1) JP2007094941A (ja)

Similar Documents

Publication Publication Date Title
KR100746797B1 (ko) 프로세서 및 정보처리 방법
WO2009157178A1 (ja) 仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路
JP5214537B2 (ja) マルチプロセッサシステム
US20110107344A1 (en) Multi-core apparatus and load balancing method thereof
US20080140896A1 (en) Processor and interrupt controlling method
JP2011164971A (ja) Biosとbmcとの間の通信パス強化方法、その装置及びそのプログラム
JP2010140290A (ja) マルチプロセッサシステム及びその排他制御の調停方法
JP2011103093A (ja) 高速で起動するコンピュータ
CN110737453A (zh) 安全芯片的升级方法、装置及安全芯片
JP2009157684A (ja) 仮想化プログラム、シミュレーション装置、仮想化方法
JPWO2011096163A1 (ja) 情報処理システム、排他制御方法および排他制御用プログラム
JP4609113B2 (ja) プロセッサ
JP2008108075A (ja) タスク切替え制御方法及びコンピュータシステム
JP4523910B2 (ja) 並列処理装置及び並列処理方法及び並列処理プログラム
JP2005190207A (ja) 割り込み制御装置、制御方法
US8555285B2 (en) Executing a general-purpose operating system as a task under the control of a real-time operating system
KR20100108578A (ko) 컴퓨팅 장치 셧다운 방법, 컴퓨팅 장치 및 컴퓨터 판독가능 저장 매체
JP2006146758A (ja) コンピュータシステム
JP3893136B2 (ja) 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム
JP2007094941A (ja) オペレーティングシステム,電子機器
JP4597032B2 (ja) コンピュータシステム、それにおける基本プログラムの起動方法、及びローダプログラム
JP2005092708A (ja) ソフトウェア更新システム及びソフトウェア更新方法並びにコンピュータプログラム
JP4325466B2 (ja) タスク実行システム
JP3797274B2 (ja) ファームウェアディスパッチ方式,方法,およびプログラム
JP2010026575A (ja) スケジューリング方法およびスケジューリング装置並びにマルチプロセッサシステム