JP5644307B2 - 情報処理装置、情報処理装置の制御方法及び制御プログラム - Google Patents

情報処理装置、情報処理装置の制御方法及び制御プログラム Download PDF

Info

Publication number
JP5644307B2
JP5644307B2 JP2010208958A JP2010208958A JP5644307B2 JP 5644307 B2 JP5644307 B2 JP 5644307B2 JP 2010208958 A JP2010208958 A JP 2010208958A JP 2010208958 A JP2010208958 A JP 2010208958A JP 5644307 B2 JP5644307 B2 JP 5644307B2
Authority
JP
Japan
Prior art keywords
frequency
information
register
processing unit
processing apparatus
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.)
Active
Application number
JP2010208958A
Other languages
English (en)
Other versions
JP2012064086A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010208958A priority Critical patent/JP5644307B2/ja
Priority to US13/210,586 priority patent/US9032417B2/en
Priority to EP11179600A priority patent/EP2431867A3/en
Publication of JP2012064086A publication Critical patent/JP2012064086A/ja
Application granted granted Critical
Publication of JP5644307B2 publication Critical patent/JP5644307B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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
    • G06F9/462Saving or restoring of program or task context with multiple register sets

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Advance Control (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、情報処理装置、情報処理装置の制御方法及び制御プログラムに関する。
近年のオペレーティングシステム(OS:Operating System)は、単一の計算機上で複数の処理(プロセス)を並行して実行するマルチプロセス機能を備えている。一般的なマルチプロセス機能では、情報処理装置の資源を時分割で特定のプロセスに割り当てる。
従って、オペレーティングシステムによって情報処理装置の資源を割り当てられたプロセスは、割り当てられた情報処理装置の資源の使用権を有し、あたかも1台の情報処理装置を占有しているかのように振舞うことができる。このようなプロセスの振る舞いを可能とするため、オペレーティングシステムは、これから情報処理装置の資源の使用権を剥奪されるプロセス固有のコンテキスト情報(レジスタ/カーネルスタック/Translation Lookaside Buffer(TLB)が使用するページテーブルに含まれるアドレス変換情報など)をカーネルメモリ領域に退避させ、次に使用権を得るプロセスのコンテキスト情報をハードウェア資源に復元する機能(以下、「コンテキストスイッチ」という)を提供している。
近年のCentral Processing Unit (CPU)は計算能力を向上させるアプローチとして、レジスタを追加するとともに、追加されたレジスタを効率的に操作する命令セット拡張を施している。結果としてプロセスが退避するコンテキストサイズ情報が増加し、コンテキストのスイッチングによるオペレーティングシステムのオーバーヘッド等のコストが増加する傾向にある。
この問題に対処するため、近年のオペレーティングシステムでは、コンテキストスイッチ時に退避する必要の無いレジスタは意図的に退避を行わず、コンテキストスイッチ後に退避する必要が発生した場合に限って退避するというアプローチ(StateOwner機能によるアプローチ)を採用している。
また、CPUの改造は、ソフトウェアの改造と比較してコストがかかるため、ソフトウェアの改造のみによるコンテキストスイッチにかかるコストを削減する方式が存在する。当該方式ではコンテキストスイッチの発生を計数するカウンタを用意し、カウント回数がカーネルに埋め込まれた閾値を超えた場合にコンテキストスイッチの方式を切替える。その後、カウンタがラップアラウンドして初期値に戻った場合に再度コンテキストスイッチの方式を元に戻し、再び閾値を超えた場合に再度コンテキストスイッチの方式を切替える。
特開2005−18610号公報 特開平2−146631号公報
Daniel P. Bovet、 Marco Cesati、「詳解Linuxカーネル 第3版」、オライリー・ジャパン、2007年2月22日、3.3節 Fujitsu Limited、"SPARC64TM VIIIfx Extensions" Ver.15、2010年4月26日、インターネット<http://img.jp.fujitsu.com/downloads/jp/jhpc/sparc64viiifx-extensions.pdf> Intel、"Intel(R) 64 and IA-32 Architectures Software Developer’s Manual Volume 3A; System Programming Guide, Part 1"、2010年3月、インターネット<http://www.intel.com/Assets/PDF/manual/253668.pdf> LXR community、"the Linux Cross Reference"、2009年12月2日、インターネット<http://lxr.linux.no/#linux+v2.6.32/include/linux/sched.h#L1249>
StateOwner機能は、不要なレジスタ退避を遅延させることでコンテキストスイッチによるコストの低減を図っている。ここで、プログラムのプロセスが退避を遅延させられた情報処理装置の資源にアクセスしようとした場合、OSは実際に退避処理を実行しなければならない。プロセスが遅延退避対象の資源にアクセスしたことを知ることができるコンポーネントはCPUであり、プロセスによるアクセスを検知したCPUはOSに対して割り込むことにより例外が発生する。CPUに割り込まれたOSは、現在実行中のプロセスを中断して、遅延していたコンテキスト情報の退避処理を行う。
このようにOSの例外処理は、プロセス実行の中断を招く上に、カーネル内で例外処理を実行するためのレジスタ退避処理が実行され、CPUによるプログラム実行のスループットを低下させる問題がある。従って、StateOwner機能の対象となる資源を頻繁に利用するプロセスにおいては、例外発生の頻発によってシステム全体の性能低下を招くという問題がある。
ここで、スーパーコンピュータが実行する高度科学技術計算(High Performance Computing)のジョブは、応答性を犠牲にしても一定時間内におけるCPU占有時間を長く確保したい性質を持つプログラムである。従ってCPU例外によるOSの例外処理が頻発することはジョブのスループットを悪化させ、スーパーコンピュータとしての性能の低下要因となる。
従来技術で実現されるStateOwner機能は、CPU内部にStateOwnerを記録する専用のレジスタを準備し、オペレーティングシステムは、このStateOwner専用レジスタを管理する必要がある。そのため、CPUの回路設計の複雑さや製造コストが増加するという問題がある。
ジョブ実行のみの観点からは、上記で言及した通り、CPU例外発生を抑制する必要がある。このためにはコンテキスト切り替え発生時にすべてのコンテキスト情報を退避すべきである。しかし、近年のスーパーコンピュータでは応答性を重視するプログラムも同時に実行される。このとき、コンテキスト切り替え発生時に全てのコンテキストを退避させる方式を採用すると、コンテキストスイッチにかかる処理時間が増加し、プログラムの応答性が損なわれるという問題がある。
プログラムの実行中にコンテキストスイッチ方式を切り替える方法では、コンテキストスイッチ方式の切替がプログラムの走行中に頻繁に発生してしまうため、ジョブの様にプログラムの実行前から最適なコンテキストスイッチ方式が判明しているプログラムではオーバーヘッドを生じると共に、コンテキストスイッチの発生を計数するカウンタの閾値監視を行う処理がシステムにとって余計な負荷となるという問題がある。
本発明の課題は、プログラムの種別に応じたコンテキストスイッチ方式を実行するプログラムを提供することである。
実施の形態の制御プログラムは、複数のレジスタを有しプロセスを実行する演算処理装置と前記演算処理装置に接続された主記憶装置とを備える情報処理装置の制御プログラムにおいて、前記演算処理装置に、前記演算処理装置が実行している第1のプロセスを第2のプロセスに切り替える場合、前記複数のレジスタのうち前記第2のプロセスが使用する対象レジスタの使用頻度を示す使用頻度情報を前記主記憶装置から読み出させ、前記使用頻度情報が示す前記対象レジスタの使用頻度が所定の使用頻度より大きい使用頻度であることを表す場合、前記第1のプロセスが使用していたレジスタの値を前記主記憶装置に退避させ、前記使用頻度情報が示す前記対象レジスタの使用頻度が所定の使用頻度より大きい使用頻度であることを表す場合、前記主記憶装置から前記第2のプロセスの実行に必要な値を前記対象レジスタに復元させ、前記第2のプロセスを実行させ、前記演算処理装置が実行している前記第2のプロセスを前記第1のプロセスに切り替える場合、前記第1のプロセスを実行させ、前記演算処理装置が前記第1のプロセスを実行したことにより、例外が発生したとき、前記第2のプロセスが使用していた前記対象レジスタの値を前記主記憶装置に退避させ、前記主記憶装置から前記第1のプロセスの実行に必要な値を前記レジスタに復元させる
実施の形態のプログラムによれば、プログラムの種別に応じたコンテキストスイッチ方式を実行することで、スループットを向上することが出来る。
実施の形態に係る情報処理装置の構成図である。 FP状態レジスタの形式を示す図である。 プロセス管理情報格納領域の形式を示す図である。 FPowner記憶領域の形式を示す図である。 実施の形態に係るプロセス起動処理のフローチャートである。 実施の形態に係るコンテキストスイッチのフローチャートである。 実施の形態に係るコンテキストスイッチのフローチャートである。 従来技術および実施の形態に係るコンテキストスイッチのタイムチャートである。
以下、図面を参照しながら実施の形態について説明する。
実施の形態では、汎用のオペレーティングシステム(例えば、Linux(登録商標))が動作する計算ノードをクラスタ接続したスーパーコンピュータにおいて本発明を適用した場合について述べる。
尚、計算ノードでは科学技術計算を実施するユーザジョブと、ファイル操作などを行うためのコマンドが並列に動作する。
ユーザジョブは、計算を短い時間で完了できるように、オペレーティングシステムからの介入を必要最低限とし、ジョブへのCPU割り当て時間をより長くする事が求められる。一方、コマンドはCPU時間以外にも、I/O処理も含めたコマンドの応答性を重視し、ユーザへの処理結果を迅速に返すことが重視される。
実施の形態では、ユーザジョブは、例えば、CPUが具備する浮動小数点数レジスタを頻繁に使用するプロセスと定義する。
また、コマンドは、例えば、CPUが具備する浮動小数点数レジスタの使用頻度が低いプロセスと定義する。
実施の形態では、StateOwner機能の対象とする資源を、CPUが装備する浮動小数点数レジスタ群に適用した場合のプロセスによるコンテキストスイッチに対する例を記載する。以下、StateOwner機能を実施の形態で採用した資源(浮動小数点数レジスタ)に合わせてFPowner機能と表現し、浮動小数点演算ユニット(FPU:Floating Point Unit)についてのデバイス使用不可例外をFPU使用不可例外と表現する。
また、浮動小数点数レジスタを全く使用しないか、ほとんど使用しないプロセスをLAZYプロセス、浮動小数点数レジスタを多用するプロセスをUNLAZYプロセスと呼ぶ。
例えば、ソースコードに基づき、浮動小数点数演算を頻繁に行うアルゴリズムのプログラムのプロセスをUNLAZYプロセス、浮動小数点数演算を全く行わないか、局所的にしか使用しないアルゴリズムのプログラムのプロセスをLAZYプロセスと定義してもよい。
例えば、浮動小数点数レジスタの使用頻度が閾値より高いプロセスをUNLAZYプロセス、浮動小数点数レジスタの使用頻度が閾値以下のプロセスをLAZYプロセスと定義してもよい。
例えば、使用頻度は、一定時間あたりの浮動小数点数レジスタに対する読み出しおよび書き込み回数と定義することが出来る。例えば、使用頻度は、実際にプロセスを動作させて、浮動小数点数レジスタへのアクセスをモニタすることにより計測することが出来る。
尚、以下に示す実施の形態では、浮動小数点数演算を多用する科学技術計算向けのプロセスはUNLAZYプロセスとして起動し、コマンドやデーモン等に通常のプロセスはLAZYプロセスとして起動することが望ましい。
図1は、実施の形態に係る情報処理装置の構成図である。
情報処理装置(コンピュータ)101は、CPU(Central Processing Unit)201およびメモリ301を備える。
CPU201は、各種の演算処理を実行する演算処理装置である。
CPU201は、例えば、一つ又は複数のコア202−n(n=1〜3)を有する。
コア202−nは、複数の浮動小数点数レジスタからなる浮動小数点数レジスタ群203−nおよびFP(Floating Point)状態レジスタ群204−nを備える。また、コア202−nは、浮動小数点演算を行うFloating Point Unit(FPU)を含む演算部(不図示)および汎用レジスタ(不図示)を備える。
図1においては、コア202−1のみ詳細を示す。尚、コア202−1以外の他のコアも同様に浮動少数点レジスタ群およびFP状態レジスタを有している。
浮動小数点数レジスタ群203を構成する浮動小数点数レジスタは、浮動小数点数演算を行う際にデータを一時的に保持するレジスタである。尚、実施の形態において、例えば、浮動小数点数レジスタ群は、64bit長の浮動小数点数レジスタ64本で構成される。
FP状態レジスタ204は、使用可能または使用不可能等のFPUの状態および浮動小数点数レジスタ群203の使用状況を格納する。
図2は、FP状態レジスタの形式を示す図である。
FP状態レジスタ203は、FPUの使用可能または使用不可能を表すbit、および現在使用中の浮動小数点数レジスタをビットフィールドで表す領域を有する。
FP状態レジスタ203のbit32は、FPUが使用可能か使用不可能かを示す。例えば、bit32が0の場合は、FPUが使用不可能、1の場合は、FPUが使用可能であることを示す。
FP状態レジスタ203のbit0からbit7は、浮動小数点数レジスタの使用状況を示す。ここで、64本の浮動小数点数レジスタには、それぞれ%f0から%f63まで番号が割り当てられているものとする。例えば、bit0は、浮動小数点数レジスタ%f0から%f7までの使用状況を示す。例えば、bit0が0の場合は、浮動小数点数レジスタ%f0から%f7は使用されていないことを示し、1の場合は、浮動小数点数レジスタ%f0から%f7の一部または全てが使用されていることを示す。
メモリ301は、CPU201が実行するプログラムおよびデータを格納する主記憶装置である。
メモリ301は、オペレーティングシステム401、プロセス411、プロセス管理情報格納領域412、FPowner記憶領域413、FPレジスタ退避領域414を有する。
オペレーティングシステム401は、コマンド実行部402、カーネルサービス403、例外入口処理部404、例外出口処理部405、スケジューラ406、およびFPU使用不可例外処理部407を備える。
コマンド実行部402は、オペレーティングシステム401が提供するシステムコールと呼ばれる関数を呼び出す。
カーネルサービス403は、ユーザプログラムに対してサービスを提供する。具体的には、I/O装置への入出力やメモリ確保等のサービスを提供する。
カーネルサービス403は、プロセス起動部408およびシステムコール処理部409を備える。
プロセス起動部408は、プロセスを起動する。
システムコール処理部409は、呼び出されたシステムコールに対応したカーネルサービスを実行する。
例外入口処理部404は、ユーザ空間451で動作していたプロセスが例外処理の発生によりカーネルサービス等を利用する際に、カーネル空間452へ遷移するために必要な処理を行う。
例外出口処理部405は、例外処理の終了によりカーネル空間452からユーザ空間451に復帰し、ユーザ空間451のプロセスを動作させるための処理を行う。また、例外出口処理部405は、FPowner記憶領域413の設定および初期化およびFPレジスタ退避領域414から浮動小数点数レジスタ群203へ値を復元する機能を具備する。
スケジューラ406は、プロセススイッチを行うためのコンポーネントである。
スケジューラ406は、コンテキストスイッチ部410を備える。
コンテキストスイッチ部410は、カーネルスタック416を切替えることにより、プロセスの切替えを行うとともに、プロセスの切替えに伴うコンテキストの切替えも行う。
FPU使用不可例外処理部407は、ユーザ空間で動作していたプロセスがカーネルサービス等を利用する際に、ユーザ空間からカーネル空間へ遷移するために必要な処理を行う。
プロセス411は、ユーザが動作させるプログラムをカーネルが管理するためのインスタンスである。
プロセス411は、ユーザプログラム415、カーネルスタック416、およびプロセスコンテキスト417を有する。
ユーザプログラム415は、ユーザ空間で動作するプロセスの命令を記述したオブジェクトファイルである。
カーネルスタック416は、カーネルの呼び出し関係や引数情報、プロセスの管理情報などの情報である。
プロセスコンテキスト417は、プロセスを構成する情報である。具体的には、プロセスIDや使用しているメモリ301のアドレス情報、現在実行中のプロセスの命令位置などを含む。
プロセス管理情報格納領域412は、プロセスの種別を示す情報を有し、プロセスが生成された場合にカーネルによって作成され、プロセスの消滅とともに削除される。
図3は、プロセス管理情報格納領域の形式を示す図である。
プロセス管理情報格納領域412は、プロセスの種別(LAZYまたはUNLAZY)を示すprogram_class(プロセス種別記憶領域)およびFPレジスタ退避領域へのポインタを示すfpregsを有する。
program_classが0の場合、プロセスはLAZYであることを示し、1の場合、プロセスはUNLAZYであることを示す。尚、program_classが0および1以外の場合は、プロセスの種別はLAZYとする。
FPowner記憶領域413は、浮動小数点レジスタ群203を現在使用しているプロセス(FPowner)の識別子を格納する。
図4は、FPowner記憶領域の形式を示す図である。
FPowner記憶領域413は、浮動小数点レジスタ群203を現在使用しているプロセス(FPowner)の識別子を示すfp_ownerを有する。
FPレジスタ退避領域414は、プロセス毎に浮動小数点数レジスタ群203の値を退避するために確保された領域である。
メモリ301は、ユーザ空間451およびカーネル空間452の2つの領域を有する。
ユーザ空間451は、オペレーティングシステム401がユーザプログラムを動作させるために必要な仮想メモリ空間である。
カーネル空間452は、カーネルおよびカーネルに付随するシステムソフトウェア(デバイスドライバ等)が動作するために必要な仮想メモリ空間である。一般的に、カーネル空間452はソフトウェア的にユーザから保護されており、ユーザ空間451で動作するプログラムからアクセスする事はできない。
コマンド実行部402およびユーザプログラム415はユーザ空間451に配置されている。
一方、カーネルサービス403、例外入口処理部404、例外出口処理部405、スケジューラ406、FPU使用不可例外処理部407、プロセス管理情報格納領域412、FPOwner記憶領域413、FPレジスタ退避領域414、カーネルスタック416、およびプロセスコンテキスト417は、カーネル空間452に配置されている。
従って、コマンド実行部402又はユーザプログラム415から、カーネル空間452に配置されたカーネルサービス403、例外入口処理部404、例外出口処理部405、スケジューラ406、FPU使用不可例外処理部407、プロセス管理情報格納領域412、FPOwner記憶領域413、FPレジスタ退避領域414、カーネルスタック416、およびプロセスコンテキスト417に対してはアクセスすることはできない。
最初に、実施の形態に係るプロセスの起動方法について述べる。
実施の形態の情報処理装置101ではプログラムの起動方法は、以下の2つの方式がある。
(1)既存のプログラム起動システムコール(exec)を使用する。
プログラム起動システムコールであるexecは、Portable Operating System Interface(POSIX)に準拠している。
(2)新規のプログラム起動システムコール(exec_fp_proc)を使用して、ユーザがプログラム起動時にLAZYまたはUNLAZYを指定する。
exec_fp_procは、本実施の形態で新設されるシステムコールである。
尚、本実施の形態においては、新規のプログラム起動システムコールの名称を例示的にexec_fp_procと定義しているが、他のシステムコール名称でもよい。
例えば、C言語でプロセスの種別をLAZYと指定する場合、exec_fp_proc(const char *command_path, const char *argv[], LAZY)とソースファイルに記述する。
また、C言語でプロセスの種別をUNLAZYと指定する場合、exec_fp_proc(const char *command_path, const char *argv[], UNLAZY)とソースファイルに記述する。
ここで、*command_pathは、実行ファイルへのファイルパスであり、*argv[]は、起動したプロセスに引き渡す引数配列へのポインタである。また、LAZYおよびUNLAZYは、プロセスの種別を示し、これらはプロセス指定引数と呼ぶ。
図5は、実施の形態に係るプロセス起動処理のフローチャートである。
以下においては、システムコール(exe_fp_proc)を使用してプロセスを起動する場合について述べる。
先ず、コマンド実行部402は、システムコール(exe_fp_proc)を呼び出す(ステップS501)。
プロセス実行部408は、プロセス(ls(list segments)やcat(concatenate)コマンドなど)をexec_fp_procを利用して起動する(ステップS502)。
プロセス起動部408は、プロセス管理情報格納領域412を確保し(ステップS503)、さらにプロセスコンテキスト417を保存する領域(コンテキスト保存領域)を確保する(ステップS504)。
そして、プロセス起動部408は、プロセス指定引数の種別を判定し、プロセス指定引数がLAZYの場合および引数が無い場合は、プロセス管理情報格納領域412のプログラム種別記憶領域を初期化してLAZYに設定し(ステップS506、S507)、プロセス指定引数がUNLAZYの場合は、プロセス管理情報格納領域412のプログラム種別記憶領域を初期化してUNLAZYに設定する(ステップS508)。
以上の処理で、プロセスに必要な情報の設定がなされ、プロセスを実行することが可能となる。
図6Aおよび図6Bは、実施の形態に係るプロセススイッチのフローチャートである。
ここでは、最初にプロセスAが実行されているものとする。
ステップS601において、例外入口処理部404は、発生した例外がFPUが使用できないFPU使用不可例外であるか否かについて判定を行う。発生した例外がFPU使用不可例外である場合(FPUが使用できない場合)、ステップS610に制御は進み、FPU使用不可例外でない場合(FPUが使用できる場合)、ステップS602に制御は進む。
尚、FPU使用不可例外は、現プロセスがLAZYである場合のみ発生する。
ステップS602において、例外入口処理部404は、現在のプロセスのFPUレジスタ以外のコンテキストをプロセスコンテキスト417に退避する。
ステップS603において、システムコール処理部409は、カーネルサービスを実行する。
ステップS604において、例外出口処理部405は、スケジューラ呼び出し判定を行う。すなわち、例外出口処理部405は、カーネルサービス後に実行するプロセスがカーネルサービス実行前と同じプロセス(プロセスA)か異なるプロセス(プロセスB)かを判定する。
カーネルサービス後に実行するプロセスがプロセスAの場合、ステップS605に制御は進み、カーネルサービス後に実行するプロセスがプロセスBの場合、ステップS615に制御は進む。
ステップS605において、例外出口処理部405は、プロセス管理情報格納領域412を参照し、プロセスAがLAZYかUNLAZYか判定する。プロセスAがLAZYの場合、制御はステップS609に進み、UNLAZYの場合、制御はステップS606に進む。
ステップS606において、例外出口処理部405は、FPowner記憶領域を参照し、現在のFPownerの識別子の値を取得する。
ステップS607において、例外出口処理部405は、現在のプロセス(プロセスA)が現在のFPownerの識別子の値と同一か判定する。現在のプロセスが現在のFPownerの識別子の値と同一の場合、制御はステップS609に進み、現在のFPownerの識別子の値と異なる場合、制御はステップS608に進む。
ステップS608において、例外出口処理部405は、現在のプロセスのFPレジスタ退避領域414からのレジスタ値を読み出し、浮動小数点数レジスタ群203にレジスタを復元する。また、例外出口処理部405は、FP状態レジスタ204のbit32を1に設定する。
ステップS609において、例外出口処理部405は、プロセスAのコンテキストを復元する。こで、例外出口処理部405が復元するコンテキストは、浮動小数点レジスタ群203に含まれるレジスタの値以外のコンテキスト(例えば、汎用レジスタの値など)である。
ステップS610において、FPU使用不可例外処理部407は、FPowner記憶領域413を参照し、現在のFPownerの識別子の値を取得する。そして、FPU使用不可例外処理部407は、現在のプロセス(プロセスA)が現在のFPownerの識別子の値と同一か判定する。現在のプロセスが現在のFPownerの識別子の値と同一の場合、制御はステップS609に進み、異なる場合、制御はステップS611に進む。
ステップS611において、FPU使用不可例外処理部407は、浮動小数点レジスタ群203のレジスタ値をFPownerの識別子に対応するFPレジスタ退避領域414に退避する。
ステップS612において、FPU使用不可例外処理部407は、FPownerの識別子の値を現在のプロセス(プロセスA)に設定する。
ステップS613において、FPU使用不可例外処理部407は、現在のプロセスのFPレジスタ退避領域414からレジスタ値を読み出し、浮動小数点レジスタ群203にレジスタ値を復元する。
ステップS614において、FPU使用不可例外処理部407は、FP状態レジスタのbit32を1に設定する。
ステップS615において、例外出口処理部407は、スケジューラ406を呼び出す。
ステップS616において、スケジューラ406は、次に実行するプロセスを選択する。本実施の形態では、プロセスBを選択するものとする。
ステップS617において、コンテキストスイッチ部410は、プロセス管理情報格納領域412を参照し、プロセスBの種別を判定する。プロセスBがLAZYの場合、制御はステップS620に進み、UNLAZYの場合、制御はステップS618に進む。
ステップS618において、コンテキストスイッチ部410は、浮動小数点数レジスタ群203のレジスタ値をFPownerの識別子に対応するFPレジスタ退避領域414に退避する。
ステップS619において、コンテキストスイッチ部410は、FPownerをidleプロセスに設定する。idleプロセスとは、I/O完了待ちなどでCPUの計算資源を使用しないアイドル状態の場合に動作するプロセスのことである。
ステップS620において、コンテキストスイッチ部410は、実行するプロセスをプロセスBに切替える。すなわち、コンテキストスイッチ部410は、カーネルスタック416をプロセスBのカーネルスタックへ切替える。
ステップS621において、例外出口処理部405は、プロセスBをカーネル空間452からユーザ空間411へ復帰させる。
ステップS622において、例外出口処理部405は、プロセス管理情報格納領域412を参照し、プロセスBがLAZYかUNLAZYか判定する。プロセスBがLAZYの場合、制御はステップS626に進み、UNLAZYの場合、制御はステップS623に進む。
ステップS623において、例外出口処理部405は、FPowner記憶領域413を参照し、現在のFPownerの識別子の値を取得する。
ステップS624において、例外出口処理部405は、現在のプロセス(プロセスB)が現在のFPownerの識別子の値と同一か否かを判定する。現在のプロセスが現在のFPownerの識別子の値と同一の場合、制御はステップS626に進み、現在のFPownerの識別子の値と異なる場合、制御はステップS625に進む。
ステップS625において、例外出口処理部405は、現在のプロセスのFPレジスタ退避領域414からレジスタ値を読み出し、浮動小数点数レジスタ群203にレジスタ値を復元する。また、例外出口処理部405は、FP状態レジスタのbit32を1に設定する。
ステップS626において、例外出口処理部405は、プロセスBのコンテキストを復元する。ここで、例外出口処理部405が復元するコンテキストは、浮動小数点レジスタ群203のレジスタ以外のコンテキスト(例えば、汎用レジスタなど)である。
実施の形態のオペレーティングシステムによれば、次に実行するプロセスがLAZYプロセスの場合、浮動小数点数レジスタ群のレジスタ値を退避しない。これにより、浮動小数点数レジスタ群を使用する可能性の低いLAZYプロセスの実行において、浮動小数点数レジスタ群のレジスタ値を退避しないことにより、プロセスの切替えに伴うコンテキストスイッチの発生回数を抑え、コンテキストスイッチの発生によるオペレーティングシステムのオーバーヘッド等のコストを低減することができる。
実施の形態のオペレーティングシステムによれば、次に実行するプロセスがUNLAZYプロセスの場合、浮動小数点数レジスタ群のレジスタ値を退避する。これにより、浮動小数点数レジスタ群を使用する可能性の高いUNLAZYプロセスの実行において、FPUが使用できないFPU使用不可例外が発生せず、例外発生によるシステムのスループットの低下を防ぐことが出来る。
実施の形態のオペレーティングシステムによれば、実行しようとするプロセスの種別に応じて、浮動小数点数レジスタ群の退避および復元の実行の有無を判定することで、効率の良いコンテキストスイッチを実行することが出来る。それにより、情報処理装置全体のスループットが向上する。
図7は、従来技術および実施の形態に係るコンテキストスイッチのタイムチャートである。
図7の上部は、従来技術のコンテキストスイッチによる処理を示し、下部は実施の形態のコンテキストスイッチによる処理を示す。
図7において、プロセスAはLAZYプロセス、プロセスBはUNLAZYプロセスである。ただし、従来技術においては、プロセスがLZAYプロセスであるかUNLAZYプロセスであるかは区別していない。
図7において、一目盛りの間隔はΔtである。
図7は、最初、プロセスAが実行されており、プロセスAからプロセスBに切り替え、CPUに5*Δt分、プロセスBを割り当て、その後、CPUに4*Δt分、プロセスAを割り当てるまでの処理を示している。
従来技術によるコンテキストスイッチにおいて、t0において、汎用レジスタの退避および復元やTLBの切替処理などを含むコンテキストスイッチが行われる。そして、t1において、プロセスBが実行され、t2において、FPU使用不可例外が発生する。FPU使用不可例外が発生したので、t3において、プロセスAのFPレジスタは退避され、t4において、プロセスBのFPレジスタが復元され、t5において、プロセスBが実行される。t6において、t0におけるコンテキストスイッチから合計して、プロセスBは5*Δt分実行されたので、コンテキストスイッチが行われ、プロセスAに切り替わる。その後、プロセスAが実行され、FPU使用不可例外が発生し、プロセスのFPレジスタの退避とプロセスのFPレジスタの復元が行われ、プロセスAが実行される。t7において、t0におけるタスクスイッチ後、プロセスBは5*Δt分、実行され、プロセスAは4*Δt分、実行されている。
実施の形態によるコンテキストスイッチにおいて、t0において、汎用レジスタの退避および復元やTLBの切替処理などを含むコンテキストスイッチが行われる。そして、t1において、プロセスAのFPレジスタは退避され、t2において、プロセスBのFPレジスタが復元され、t3において、プロセスBが実行される。t6’において、t0におけるコンテキストスイッチから合計して、プロセスBは5*Δt分実行されたので、コンテキストスイッチが行われ、プロセスAに切り替わる。その後、プロセスAが実行され、FPU使用不可例外が発生し、プロセスのFPレジスタの退避とプロセスのFPレジスタの復元が行われ、プロセスAが実行される。t7’において、t0におけるタスクスイッチ後、プロセスBは5*Δt分、実行され、プロセスAは4*Δt分、実行されている。
図7において、実施の形態によるコンテキストスイッチと従来技術によるコンテキストスイッチとを比較すると、プロセスAとプロセスBが同じ分だけ実行された場合、実施の形態によるコンテキストスイッチの方が、2Δt早く処理が完了している。
本実施の形態により、図7に示すとおり浮動小数点数レジスタを多用するプロセスのコンテキスト復元に浮動小数点使用不可例外を必要としなくなるため、従来、例外ハンドラの駆動時間に割り当てられていたCPU時間をジョブに割当てることが可能となる。したがって、情報処理装置のスループットが向上する。
尚、実施の形態においては、浮動小数点数レジスタに本発明を適用した例を述べたが、本発明はこれに限られず、任意のレジスタに適用することが出来る。例えば、CPUの汎用レジスタに本発明を適用して、汎用レジスタのレジスタ値の退避および復元を行っても良い。
101 情報処理装置
201 CPU
301 メモリ
401 オペレーティングシステム
402 コマンド実行部
403 カーネルサービス
404 例外入口処理部
405 例外出口処理部
406 スケジューラ
407 FPU使用不可例外処理部
408 プロセス起動部
409 システムコール処理部
410 コンテキストスイッチ部
411 プロセス
412 プロセス管理情報格納領域
413 FPowner記憶領域
414 FPレジスタ退避領域
415 ユーザプログラム
416 カーネルスタック
417 プロセスコンテキスト
451 ユーザ空間
452 カーネル空間

Claims (12)

  1. 複数のレジスタを有しプロセスを実行する演算処理装置と前記演算処理装置に接続された主記憶装置とを備える情報処理装置の制御プログラムにおいて、
    前記演算処理装置に、
    前記演算処理装置が実行している第1のプロセスを第2のプロセスに切り替える場合、
    前記複数のレジスタのうち前記第2のプロセスが使用する対象レジスタの使用頻度を示す使用頻度情報を前記主記憶装置から読み出させ
    前記使用頻度情報が示す前記対象レジスタの使用頻度が所定の使用頻度より大きい使用頻度であることを表す場合、前記第1のプロセスが使用していたレジスタの値を前記主記憶装置に退避させ
    前記使用頻度情報が示す前記対象レジスタの使用頻度が所定の使用頻度より大きい使用頻度であることを表す場合、前記主記憶装置から前記第2のプロセスの実行に必要な値を前記対象レジスタに復元させ、
    前記第2のプロセスを実行させ、
    前記演算処理装置が実行している前記第2のプロセスを前記第1のプロセスに切り替える場合、
    前記第1のプロセスを実行させ、
    前記演算処理装置が前記第1のプロセスを実行したことにより、例外が発生したとき、前記第2のプロセスが使用していた前記対象レジスタの値を前記主記憶装置に退避させ、
    前記主記憶装置から前記第1のプロセスの実行に必要な値を前記レジスタに復元させることを特徴とする情報処理装置の制御プログラム。
  2. 前記情報処理装置の制御プログラムはさらに、
    前記演算処理装置に、
    前記使用頻度情報が示す前記対象レジスタの使用頻度が前記所定の使用頻度より大きい使用頻度であることを表す場合、前記第1のプロセスを識別する第1のプロセス識別情報を前記主記憶装置から読み出させ、
    前記演算処理装置による、前記主記憶装置からの前記第2のプロセスの実行に必要な値の前記対象レジスタへの復元は、前記主記憶装置から読み出した前記第1のプロセス識別情報と前記第2のプロセスを識別する第2のプロセス識別情報とが異なる場合に行わせることを特徴とする請求項1記載の情報処理装置の制御プログラム。
  3. 前記情報処理装置の制御プログラムはさらに、
    前記演算処理装置に、
    前記演算処理装置が実行している前記第1のプロセスを含むプログラムの起動時に、前記使用頻度情報を前記主記憶装置へ格納させることを特徴とする請求項1又は2記載の情報処理装置の制御プログラム。
  4. 前記情報処理装置の制御プログラムにおいて、
    前記レジスタは、
    浮動小数点数レジスタであることを特徴とする請求項1〜3のいずれか1項に記載の情報処理装置の制御プログラム。
  5. 複数のレジスタを有しプロセスを実行する演算処理装置と前記演算処理装置に接続された主記憶装置とを備える情報処理装置の制御方法において、
    前記演算処理装置が
    前記演算処理装置が実行している第1のプロセスを第2のプロセスに切り替える場合、
    前記複数のレジスタのうち前記第2のプロセスが使用する対象レジスタの使用頻度を示す使用頻度情報を前記主記憶装置から読み出
    前記使用頻度情報が示す前記対象レジスタの使用頻度が所定の使用頻度より大きい使用頻度であることを表す場合、前記第1のプロセスが使用していたレジスタの値を前記主記憶装置に退避
    前記使用頻度情報が示す前記対象レジスタの使用頻度が所定の使用頻度より大きい使用頻度であることを表す場合、前記主記憶装置から前記第2のプロセスの実行に必要な値を前記対象レジスタに復元し、
    前記第2のプロセスを実行し、
    前記演算処理装置が実行している前記第2のプロセスを前記第1のプロセスに切り替える場合、
    前記第1のプロセスを実行し、
    前記演算処理装置が前記第1のプロセスを実行したことにより、例外が発生したとき、前記第2のプロセスが使用していた前記対象レジスタの値を前記主記憶装置に退避し、
    前記主記憶装置から前記第1のプロセスの実行に必要な値を前記レジスタに復元することを特徴とする情報処理装置の制御方法。
  6. 前記情報処理装置の制御方法はさらに、
    前記演算処理装置が、
    前記使用頻度情報が示す前記対象レジスタの使用頻度が前記所定の使用頻度より大きい使用頻度であることを表す場合、前記第1のプロセスを識別する第1のプロセス識別情報を前記主記憶装置から読み出し、
    前記演算処理装置による、前記主記憶装置からの前記第2のプロセスの実行に必要な値の前記対象レジスタへの復元は、前記主記憶装置から読み出した前記第1のプロセス識別情報と前記第2のプロセスを識別する第2のプロセス識別情報とが異なる場合に行うことを特徴とする請求項5記載の情報処理装置の制御方法。
  7. 前記情報処理装置の制御方法はさらに、
    前記演算処理装置が、前記演算処理装置が実行している前記第1のプロセスを含むプログラムの起動時に、前記使用頻度情報を前記主記憶装置へ格納することを特徴とする請求項5又は6記載の情報処理装置の制御方法。
  8. 前記情報処理装置の制御方法において、
    前記レジスタは、
    浮動小数点数レジスタであることを特徴とする請求項5〜7のいずれか1項に記載の情報処理装置の制御方法。
  9. 演算処理装置と、前記演算処理装置に接続された主記憶装置とを有する情報処理装置において、
    前記演算処理装置は、
    複数のレジスタと、
    実行している第1のプロセスを第2のプロセスに切り替える場合、前記複数のレジスタのうち前記第2のプロセスが使用する対象レジスタの使用頻度を示す使用頻度情報を前記主記憶装置から読み出、前記使用頻度情報が示す前記対象レジスタの使用頻度が所定の使用頻度より大きい使用頻度であることを表す場合、前記第1のプロセスが使用していたレジスタの値を前記主記憶装置に退避し、前記使用頻度情報が示す前記対象レジスタの使用頻度が所定の使用頻度より大きい使用頻度であることを表す場合、前記主記憶装置から前記第2のプロセスの実行に必要な値を前記対象レジスタに復元し、前記第2のプロセスを実行し、実行している前記第2のプロセスを前記第1のプロセスに切り替える場合、前記第1のプロセスを実行し、前記第1のプロセスを実行したことにより、例外が発生したとき、前記第2のプロセスが使用していた前記対象レジスタの値を前記主記憶装置に退避し、前記主記憶装置から前記第1のプロセスの実行に必要な値を前記レジスタに復元する演算処理部とを有することを特徴とする情報処理装置。
  10. 前記演算処理装置はさらに、
    前記使用頻度情報が示す前記対象レジスタの使用頻度が前記所定の使用頻度より大きい使用頻度であることを表す場合、前記第1のプロセスを識別する第1のプロセス識別情報を前記主記憶装置から読み出し、
    前記演算処理部による、前記主記憶装置からの前記第2のプロセスの実行に必要な値の前記対象レジスタへの復元は、前記主記憶装置から読み出した前記第1のプロセス識別情報と前記第2のプロセスを識別する第2のプロセス識別情報とが異なる場合に行うことを特徴とする請求項9記載の情報処理装置。
  11. 前記情報処理装置において、
    前記演算処理部はさらに、
    前記演算処理装置が実行している前記第1のプロセスを含むプログラムの起動時に、前記使用頻度情報を前記主記憶装置格納することを特徴とする請求項9又は10記載の情報処理装置。
  12. 前記情報処理装置において、
    前記レジスタは、
    浮動小数点数レジスタであることを特徴とする請求項9〜11のいずれか1項に記載の情報処理装置。
JP2010208958A 2010-09-17 2010-09-17 情報処理装置、情報処理装置の制御方法及び制御プログラム Active JP5644307B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010208958A JP5644307B2 (ja) 2010-09-17 2010-09-17 情報処理装置、情報処理装置の制御方法及び制御プログラム
US13/210,586 US9032417B2 (en) 2010-09-17 2011-08-16 Information processing apparatus and information processing apparatus control method
EP11179600A EP2431867A3 (en) 2010-09-17 2011-08-31 Information processing apparatus and information processing apparatus control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010208958A JP5644307B2 (ja) 2010-09-17 2010-09-17 情報処理装置、情報処理装置の制御方法及び制御プログラム

Publications (2)

Publication Number Publication Date
JP2012064086A JP2012064086A (ja) 2012-03-29
JP5644307B2 true JP5644307B2 (ja) 2014-12-24

Family

ID=44677584

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010208958A Active JP5644307B2 (ja) 2010-09-17 2010-09-17 情報処理装置、情報処理装置の制御方法及び制御プログラム

Country Status (3)

Country Link
US (1) US9032417B2 (ja)
EP (1) EP2431867A3 (ja)
JP (1) JP5644307B2 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8538963B2 (en) * 2010-11-16 2013-09-17 International Business Machines Corporation Optimal persistence of a business process
US10185566B2 (en) * 2012-04-27 2019-01-22 Intel Corporation Migrating tasks between asymmetric computing elements of a multi-core processor
JP6214142B2 (ja) * 2012-10-09 2017-10-18 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
GB2528115B (en) * 2014-07-11 2021-05-19 Advanced Risc Mach Ltd Dynamic saving of registers in transactions
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9727395B2 (en) * 2015-07-01 2017-08-08 International Business Machines Corporation Robust and adaptable management of event counters
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) * 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02146631A (ja) 1988-11-29 1990-06-05 Nec Corp レジスタ復帰退避方式
JPH0353328A (ja) 1989-07-20 1991-03-07 Hitachi Ltd レジスタ退避回復方法ならびに処理装置
JPH05127926A (ja) * 1991-10-31 1993-05-25 Nec Corp タスク制御装置
JPH05165652A (ja) * 1991-12-16 1993-07-02 Fujitsu Ltd タスク切替え制御方法
GB9600823D0 (en) * 1996-01-16 1996-03-20 British Telecomm Distributed processing
JP2001297007A (ja) * 2000-04-11 2001-10-26 Tokyo Denshi Sekkei Kk コンピュータ制御方法および該方法により制御されるコンピュータ
US7313797B2 (en) 2002-09-18 2007-12-25 Wind River Systems, Inc. Uniprocessor operating system design facilitating fast context switching
JP3889726B2 (ja) 2003-06-27 2007-03-07 株式会社東芝 スケジューリング方法および情報処理システム
US7711898B2 (en) * 2003-12-18 2010-05-04 Intel Corporation Register alias table cache to map a logical register to a physical register
US8407715B2 (en) * 2007-04-30 2013-03-26 National Tsing Hua University Live range sensitive context switch procedure comprising a plurality of register sets associated with usage frequencies and live set information of tasks
JP2010208958A (ja) 2009-03-06 2010-09-24 Orient Herb Kk 紫外線による皮膚老化防止または予防剤

Also Published As

Publication number Publication date
US9032417B2 (en) 2015-05-12
US20120072920A1 (en) 2012-03-22
EP2431867A3 (en) 2012-08-22
EP2431867A2 (en) 2012-03-21
JP2012064086A (ja) 2012-03-29

Similar Documents

Publication Publication Date Title
JP5644307B2 (ja) 情報処理装置、情報処理装置の制御方法及び制御プログラム
US7979861B2 (en) Multi-processor system and program for causing computer to execute controlling method of multi-processor system
US8996761B2 (en) Virtual queue processing circuit and task processor
US9304794B2 (en) Virtual machine control method and virtual machine system using prefetch information
EP2056198A1 (en) Task processing device
US20060212687A1 (en) Dual thread processor
JP5673672B2 (ja) マルチコアプロセッサシステム、制御プログラム、および制御方法
US7366814B2 (en) Heterogeneous multiprocessor system and OS configuration method thereof
WO2008023427A1 (fr) Dispositif de traitement de tâche
US11392407B2 (en) Semiconductor device
US20070283138A1 (en) Method and apparatus for EFI BIOS time-slicing at OS runtime
CN112783652A (zh) 当前任务的运行状态获取方法、装置、设备及存储介质
US9619277B2 (en) Computer with plurality of processors sharing process queue, and process dispatch processing method
CN113032154A (zh) 一种虚拟cpu的调度方法、装置、电子设备及存储介质
JP5376042B2 (ja) マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム
JP5668505B2 (ja) クロック周波数制御プログラム、クロック周波数制御装置
CN114327767B (zh) 任务处理的方法、装置、电子设备及计算机可读存储介质
CN113439260A (zh) 针对低时延存储设备的i/o完成轮询
KR100506254B1 (ko) 임베디드 시스템의 비특권 모드에서 인터럽트 처리를 위한장치 및 방법
US5778207A (en) Assisting operating-system interrupts using application-based processing
JP2008225710A (ja) コンピュータシステム及び該システムで用いられるプロセス切替え方法
US8782294B1 (en) Intra-processor resource control
JP5582241B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
CN114579264A (zh) 处理装置、处理系统和处理方法
CN118132231A (zh) 基于虚拟双核的系统任务调度方法、装置、设备及介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130702

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140530

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141020

R150 Certificate of patent or registration of utility model

Ref document number: 5644307

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150