JP2010198304A - 情報処理装置、仮想記憶管理方法及びプログラム - Google Patents

情報処理装置、仮想記憶管理方法及びプログラム Download PDF

Info

Publication number
JP2010198304A
JP2010198304A JP2009042224A JP2009042224A JP2010198304A JP 2010198304 A JP2010198304 A JP 2010198304A JP 2009042224 A JP2009042224 A JP 2009042224A JP 2009042224 A JP2009042224 A JP 2009042224A JP 2010198304 A JP2010198304 A JP 2010198304A
Authority
JP
Japan
Prior art keywords
priority
utility
swap
memory
executed
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
Application number
JP2009042224A
Other languages
English (en)
Other versions
JP5414305B2 (ja
Inventor
Akira Ishikawa
亮 石川
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2009042224A priority Critical patent/JP5414305B2/ja
Priority to US12/712,117 priority patent/US8914806B2/en
Publication of JP2010198304A publication Critical patent/JP2010198304A/ja
Application granted granted Critical
Publication of JP5414305B2 publication Critical patent/JP5414305B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】CPUに過大な負荷がかかるのを抑制しつつ、全体的な処理速度を高める。
【解決手段】メモリ管理部102は、優先度テーブル103を参照して、メモリ領域の獲得要求元のプロセス101がユーティリティプロセスである場合は、それが関連優先プロセスを持つか否かを判別する。関連優先プロセスを持たない場合は、獲得要求元のプロセス101に低速メモリを割り当てる。獲得要求元のプロセス101が関連優先プロセスを持つ場合は、関連優先プロセスに関わるCPU33の負荷を確認し、CPU負荷が、優先度テーブル103で規定されている関連優先プロセスの負荷閾値を超えているときに限り、獲得要求元のプロセス101に高速メモリを割り当て、それ以外のときは、低速メモリを割り当てる。
【選択図】図6

Description

本発明は、情報処理装置において1次記憶装置と2次記憶装置とを用いてプロセスの仮想記憶を行う技術に関する。
従来、コピー、プリント、ファクシミリ等、多様な機能を有する画像処理装置等の複合機や計算機システム等の情報処理装置において、仮想記憶方式を採用し、メモリ領域のスワップを制御する仮想記憶管理手法が知られている。
仮想記憶方式を採用する手法においては、2次記憶装置を利用して、1次記憶装置における実メモリの容量以上のメモリ領域を管理することができる。実メモリ容量以上のメモリ領域を使用する場合は、メモリ領域の内容を一時的に2次記憶装置であるHDD(ハードディスク)等の記憶領域へ待避(スワップアウト)するスワップ処理を行う。
プロセスの実行に際し、該プロセスをスワップアウトしたメモリ領域を再び使用する場合は、2次記憶装置の記憶領域から実メモリのメモリ領域へプロセスを再度転送する。そのため、スワップアウトしたメモリ領域を使用するプロセスについては、転送オーバーヘッドによって動作開始が遅くなる。
装置全体のスループットを改善するために、既に一部のメモリ領域の内容がスワップアウトされているプロセスのメモリ領域を優先的にスワップアウトの対象とすることで、動作の遅いプロセスを減らす技術が知られている(下記特許文献1)。
ところで、特定のメモリ領域をスワップ対象にしない機能が、Linux(登録商標)等の汎用OSで採用されている。メモリ容量の少ないシステムにおいても、優先的に動かす必要のあるプロセスが使用するメモリ領域をスワップアウト禁止対象にすることで、緊急プロセスの動作保証や重要機能の優先実行を実現することができる。
特開2004−227188号公報
デジタル複写機等のような情報処理装置においては、機能が年々多様化しているため、搭載されるプログラム(プロセス)の量も増加し続けている。全てのプロセスを同時に実行してもスワップが発生しないような大容量のメモリ領域を確保するデバイス構成は、コストの観点から現実的でない。従って、いずれかのプロセスの使用するメモリ領域の内容をスワップアウトして動作させる必要がある。
高頻度に実行されるプロセスをスワップアウトしないようにして優先的に実行可能にすることで、システム全体のスループットを向上させることができる。
ここで、プロセスの種類によって、スワップアウトの対象とされない度合い(実メモリに優先的に残される度合い)である「メモリ優先度」を属性として付すとする。すなわち、通常プロセスと、通常プロセスに比し優先的にスワップアウトの対象とされることがない優先プロセスとに、属性を分けるとする。また、他のプロセスと連携して実行されることがあるプロセスをユーティリティプロセスとする。ユーティリティプロセスのうち、通常プロセス、優先プロセスのいずれとも連携して実行され得るものについては、メモリ優先度を一律に決めることができない。
すなわち、ユーティリティプロセスのメモリ優先度を一律に下げ過ぎると、それと関連する優先プロセスについて、ユーティリティプロセスと連携する部分がスワップアウトされた状態が多くなる。そのため、スワップ処理が発生することが多くなって、結果的に、優先プロセスの処理が遅くなることが多くなってしまう。
一方、ユーティリティプロセスの優先度を一律に上げ過ぎると、それと関連する通常プロセスについて、ユーティリティプロセスと連携する部分が実メモリに置かれた状態となることが多くなる。そのため、通常プロセス処理の優先度が不必要に上がってしまう。
CPU(プロセッサ)が単位時間あたりに実行可能な処理数には限界があるため、多数の処理を優先的に実行しようとすると、優先的に実行したい処理が実行可能な処理数の限界を超えてしまう。すなわち、CPUが過大な負荷を負って、いわゆるCPU資源の枯渇状態になる。CPU資源が枯渇すると、処理の待合せ時間等が長くなるため、システム全体の処理が遅くなり、結果的に真に優先すべきプロセスの処理まで遅くなってしまう。
このように、ユーティリティプロセスの優先度を一律に定めるだけでは、装置の全体的な処理速度が、状況によって低くなる場合があるという問題があった。
本発明の目的は、プロセッサに過大な負荷がかかるのを抑制しつつ、全体的な処理速度を高めることができる仮想記憶管理方法、装置及びプログラムを提供することにある。
上記目的を達成するために本発明の情報処理装置は、複数のプロセスを実行可能なプロセッサと1次記憶装置と2次記憶装置とを備える情報処理装置であって、前記プロセッサが実行するプロセスから前記1次記憶装置のメモリ領域の獲得要求を受け付ける受付手段と、前記受付手段が受け付けた獲得要求を行ったプロセスが、他のプロセスと連携して実行可能なユーティリティプロセスであるか否かを判定する判定手段と、前記判定手段が、前記受付手段が受け付けた獲得要求を行ったプロセスが、他のプロセスと連携して実行可能なユーティリティプロセスであると判定し、かつ、前記プロセッサが実行している前記ユーティリティプロセスと連携したプロセスが、スワップアウトを制限する優先プロセスであり、当該優先プロセスのプロセッサ使用率が所定の値よりも大きい場合、前記ユーティリティプロセスのスワップアウトを制限するように制御する制御手段と、を備えることを特徴とする。
本発明によれば、プロセッサに過大な負荷がかかるのを抑制しつつ、全体的な処理速度を高めることができる。
本発明の一実施の形態に係る仮想記憶管理方法が適用される情報処理装置である画像入出力装置の構成を示すブロック図である。 コントローラ部の詳細構成を示すブロック図である。 コントローラ部がメモリ管理を行うために必要なモジュールの構成を示すブロック図である。 優先度テーブルの内容を示す図である。 プロセス構成を例示した概念図である。 メモリ領域の提供処理のフローチャートである。
以下、本発明の実施の形態を図面を参照して説明する。
以下では、情報処理装置として画像処理装置を例にとって説明するが、これは一例であって、計算機システム全般に本発明の仮想記憶管理方法を適用可能である。すなわち、CPU(プロセッサ)によって制御されプロセスが実行される情報処理装置であって、1次記憶装置と2次記憶装置とを用いてプロセスの仮想記憶が行われる情報処理装置であれば、本発明を適用可能である。従って、情報処理装置が備える機能は問わない。
図1は、本発明の一実施の形態に係る仮想記憶管理方法が適用される情報処理装置である画像入出力装置の構成を示すブロック図である。
この画像入出力装置1は、イーサネット(登録商標)等のLAN(Local Area Network)400にてホストコンピュータ(PC)3、4に接続されている。画像入出力装置1は、画像データの読み取り処理を行うリーダ部2と、画像データの出力処理を行うプリンタ部6と、コントローラ部110とを有する。さらに、画像データや各種機能の表示等を行う液晶パネルを備えた操作部7と、制御プログラムや画像データ等が予め書き込まれたハードディスクドライブ(HDD)8、9とを備える。上記各構成要素はコントローラ部110に接続され、コントローラ部110によって制御される。
リーダ部2は、原稿用紙を搬送する原稿給紙ユニット10と、原稿画像を光学的に読み取って電気信号としての画像データに変換するスキャナユニット11とを有する。プリンタ部6は、記録用紙を収容する複数段の給紙カセットを備えた給紙ユニット12と、画像データを記録用紙に転写、定着するマーキングユニット13とを備える。プリンタ部6はさらに、印字された記録用紙にソート処理やステイプル処理を施して外部に排出する排紙ユニット14を備える。
図2は、コントローラ部110の詳細構成を示すブロック図である。
コントローラ部110は、メインコントローラ32を備える。メインコントローラ32は、CPU(プロセッサ)33と、バスコントローラ34と、後述する各種コントローラ回路を含む機能ブロックとを内蔵する。
コントローラ部110には、ROMI/F(インターフェイス)35を介してROM36が接続されると共に、DRAMI/F37を介してDRAM38が接続される。コントローラ部110にはさらに、コーデックI/F39を介してコーデック40が接続され、また、ネットワークI/F41を介してネットワークコントローラ42が接続されている。
ROM36には、メインコントローラ32のCPU33で実行される各種制御プログラムや演算データが格納されている。DRAM38は、CPU33が動作するための作業領域や画像データを蓄積するための領域として使用される。DRAM38には、各種のテーブルも記憶される。コーデック40は、DRAM38に蓄積されたラスタイメージデータをMH/MR/MMR/JBIG等の周知の圧縮方式で圧縮し、また圧縮されたデータをラスタイメージに伸長する。
コーデック40にはSRAM43が接続されており、該SRAM43はコーデック40の一時的な作業領域として使用される。ネットワークコントローラ42は、ネットワークコネクタ44を介してLAN400との間で所定の制御動作を行う。また、メインコントローラ32は、スキャナバス45を介してスキャナI/F46に接続されると共に、プリンタバス47を介してプリンタI/F48に接続される。
メインコントローラ32はさらに、PCIバス等の汎用高速バス49を介して、拡張ボードを接続するための拡張コネクタ50及び入出力制御部(I/O制御部)51に接続されている。I/O制御部51には、リーダ部2やプリンタ部6との間で制御コマンドを送受信するための調歩同期式のシリアル通信コントローラ52が2チャンネル装備されている。該シリアル通信コントローラ52には、I/Oバス53を介してスキャナI/F46及びプリンタI/F48が接続されている。
スキャナI/F46は、第1の調歩同期シリアルI/F54及び第1のビデオI/F55を介してスキャナコネクタ56に接続され、さらに該スキャナコネクタ56はリーダ部2のスキャナユニット11(図1)に接続されている。そして、スキャナI/F46は、スキャナユニット11から受信した画像データに対し、所望の2値化処理や、主走査方向及び/または副走査方向の変倍処理を行う。また、スキャナユニット11から送られてきたビデオ信号に基づいて制御信号を生成し、それを、スキャナバス45を介してメインコントローラ32に転送する。
プリンタI/F48は、第2の調歩同期シリアルI/F57及び第2のビデオI/F58を介してプリンタコネクタ59に接続され、さらに該プリンタコネクタ59はプリンタ部6のマーキングユニット13(図1)に接続されている。
そして、プリンタI/F48は、メインコントローラ32から出力された画像データにスムージング処理を施して該画像データをマーキングユニット13に出力する。さらに、マーキングユニット13から送られたビデオ信号に基づいて、生成された制御信号をプリンタバス47に出力する。
メインコントローラ32のCPU33は、ROM36からROMI/F35を介して読み込まれた制御プログラムに基づいて動作する。例えば、ホストコンピュータ3、4(図1)から受信したPDL(ページ記述言語)データを解釈し、ラスタイメージデータに展開処理を行う。
また、バスコントローラ34は、スキャナI/F46、プリンタI/F48、その他拡張コネクタ50等に接続された外部機器から入出力されるデータ転送を制御するものであり、バス競合時のアービトレーション(調停)やDMAデータ転送の制御を行う。例えば、上述したDRAM38とコーデック40との間のデータ転送や、スキャナユニット11からDRAM38へのデータ転送、DRAM38からマーキングユニット13へのデータ転送等は、バスコントローラ34によって制御され、DMA転送される。
また、I/O制御部51には、LCDコントローラ60及びキー入力I/F61を介してパネルI/F62が接続され、パネルI/F62には操作部7(図1)が接続されている。I/O制御部51は、不揮発性メモリ領域としての不図示のEEPROMに接続されている。I/O制御部51はまた、E−IDEコネクタ63を介してハードディスクドライブ(HDD)8、9に接続されている。I/O制御部51はさらに、機器内で管理する日付と時刻を更新/保存するリアルタイムクロックモジュール64に接続されている。リアルタイムクロックモジュール64は、バックアップ用電池65に接続されて該バックアップ用電池65によりバックアップされている。
本実施の形態において、コントローラ部110が、仮想記憶管理方法を実現する仮想記憶管理装置としての機能を果たす。DRAM38は、1次記憶装置としての機能を果たす。ハードディスクドライブ(HDD)8、9は、2次記憶装置としての機能を果たす。また、メモリ管理部102は、受付手段、判定手段、制御手段としての機能を果たす。
図3は、コントローラ部110がメモリ管理を行うために必要なモジュールの構成を示すブロック図である。このモジュールには、プロセス101、メモリ管理部102、優先度テーブル103、CPU負荷監視部104、ログ管理部105、ログ解析部106、ログファイル107が含まれる。
プロセス101、メモリ管理部102、CPU負荷監視部104は、ROM36またはハードディスク8、9(図2参照)に予め格納されたプログラムである。これらのプログラムの実行時には、CPU33がそれらをプロセスの単位でDRAM38に読み込んでから実行する。ログ管理部105、ログ解析部106は、ROM36またはハードディスク8、9に予め格納されたプログラムである。
プロセス101は、自身の動作時に作業用のメモリ領域が必要になると、DRAM38上の一部の領域を獲得して動作する。このDRAM38が枯渇した場合にメモリの内容をハードディスク8、9に一時待避することでスワップ機能を実現する。以降、メモリ領域を獲得するということは、実際にはDRAM38上に記憶領域を割り当てさせることを指し、単純に「メモリ」と記した場合はDRAM38のことを指す。
また、仮想メモリ管理システムを持つOSとして、本実施の形態ではLinux(登録商標)を用いるが、仮想記憶方式を採用する他のマルチタスクOSであってもよい。
プロセス101は、実際には複数存在して、複数のプロセスの組合せで印刷等のジョブが実現される。多数の機能を有するシステムでは、モジュール間の境界としてプロセスを分けることで、モジュールの堅牢性や再利用性を実現する構成が一般的である。プロセス分割を適切に行ったシステムでは、複合機が持つ多様な機能毎に対応したプロセスがあり、ある機能を使用するジョブを実行する場合には、その機能に対応したプロセスを実行する必要がある。プロセスの粒度は、機能をさらに細分化した構成である場合、複数のプロセスを組み合わせて単一の機能を実現する構成となる。
プロセス101は、実行に必要なメモリ領域を、必ずメモリ管理部102から獲得する。メモリ管理部102はプロセス101にDRAM38のメモリ領域を提供する。
メモリ管理部102が提供するメモリ領域には、スワップアウトが制限されているメモリ領域である制限領域と、スワップアウトが制限されていない通常のメモリ領域である通常領域の2種類がある。便宜上、本実施の形態では、上記制限領域を「高速メモリ」、上記通常領域を「低速メモリ」と呼称する。
メモリ管理部102は、OSが管理するメモリ領域をプロセスが獲得する汎用機能であるmallocシステムコール等により、低速メモリを作成する。メモリ管理部102は、通常に作成した低速メモリに対して、OSにスワップ禁止の領域であることを通知するための機能であるmlockシステムコールでスワップ禁止属性を付加することで、スワップアウト禁止の高速メモリを作成する。
OSは、メモリ枯渇を検知すると、スワップ対象のメモリ領域の中からスワップアウトを実施するのに適したメモリ領域を検索する。スワップアウト禁止属性が設定された高速メモリは、OSがスワップ対象のメモリ領域を検索するときに対象から除外されるため、スワップアウトが実行されることはない。一方、スワップアウト禁止属性が設定されない通常の低速メモリは、OSがスワップ対象を検索するときに対象になるため、OSの判断でスワップアウトが実行される場合がある。
高速メモリと低速メモリのサイズ配分は、システム設計段階で一意に定めることができないため、メモリ管理部102は、要求に応じて高速メモリの領域を確保し、プロセス101に提供する。
CPU負荷監視部104は、システム(画像入出力装置1)全体のCPU33の負荷率とプロセス101毎のCPU33の負荷の占有率の内訳を監視し管理する。CPU33の負荷率とは、例えば、実行中のソフトウェアがCPU33を占有している時間の割合であり、プロセッサ使用率とも言う。そして、メモリ管理部102からの問い合わせに対してプロセス101毎のCPU33の負荷率(CPU負荷)を通知する機能を有する。Linuxのような汎用UNIX(登録商標)系OSでは、procファイルシステム上の特定のファイルを読み込むことで、上記CPU占有率に関するデータを取得することができる。
図4は、優先度テーブル103の内容を示す図である。
優先度テーブル103は、ROM36またはハードディスク8、9に記憶される。優先度テーブル103において、各プロセスは、システム内で一意のプロセス名の文字列データとしてリスト形式で表現される。各プロセスについては、属性情報が記述され、各プロセスは、「通常」、「優先」、「ユーティリティ」のいずれかの属性を持つ。
「ユーティリティ」の属性を持つユーティリティプロセスには、関連優先プロセス情報としての「関連優先プロセス」の文字列データ、及び「負荷閾値」の数値データの情報が対応付けられている。対応付けられている「関連優先プロセス」は、当該ユーティリティプロセスがどの優先プロセスに連携して実行されるのかを示す情報である。「関連優先プロセス」によって、連携して実行される優先プロセスが特定される。
すなわち、ユーティリティプロセスは、他のプロセスに依頼されて処理を動作することがある、つまり、他のプロセスと連携して実行可能なプロセスである。そのため、複数プロセスで共通に実行される処理がある場合に、その処理を独立したプロセスにくくりだす場合に用いられる。その際の、「他のプロセス」のうち、「優先」属性を有するものが「関連優先プロセス」である。
また、「負荷閾値」は、関連優先プロセスに関わるCPU33の負荷が高負荷であるか否かを判断するための所定の値であり、CPU負荷監視部104から確認されるCPU負荷と比較することで、関連優先プロセスが高負荷か否かが判断される。
図4の例では、printプロセスがユーティリティプロセスである。faxプロセス受信、copyプロセスが、それぞれ通常、優先プロセスとなっている。また、printプロセスに対応する関連優先プロセスは、copyプロセスであり、負荷閾値は80%である。
優先度テーブル103に記述される項目の内、属性である「優先」、「通常」以外の項目は、設計時にプロセス構成によって一意に定まる値である。ユーティリティプロセスであるか否かは設計時に一意に定まっている。ユーティリティプロセスでないプロセスの属性(「優先」または「通常」)は、画像入出力装置1の工場出荷時にはデフォルトで定められる。
なお、図4に示す優先度テーブル103において、プロセス名の数は3個に限定されない。また、属性が「優先」、「通常」または「ユーティリティ」であるプロセスの数も各1つに限られない。また、「負荷閾値」は例示では80%であるが、この値もこの例示に限られない。また、1つのユーティリティプロセスに対する関連優先プロセスの数も1つに限られない。
図3のメモリ管理部102は、上記した2種類の「高速メモリ」、「低速メモリ」を、優先度テーブル103を確認することで選択的に提供する。メモリ管理部102は、メモリ領域獲得要求元のプロセス101のプロセス名を確認し、当該プロセス101が優先プロセスか否かを判断する。実際には、メモリ管理部102は、ライブラリプログラムとしてプロセス101に内包された形で動作する。そのため、メモリ管理部102は、自身のプロセス名をOSに問い合わせることでメモリ領域獲得要求元のプロセス名を特定する。
図5は、本実施の形態におけるプロセス構成を例示した概念図である。同図に例示する構成において、printプロセス71は、画像データを入力として実際にデバイスを制御して、印刷物を出力するための処理を行うプロセスである。faxプロセス受信72は、faxを受信して出力する機能を持つが、画像データを形成したら、その後の実際の出力処理はprintプロセスへ依頼する。copyプロセス73は、原稿をスキャンして出力する機能を持つが、スキャンにより画像データを形成したら、その後の実際の出力処理はprintプロセス71へ依頼する。
すなわち、printプロセス71は、faxプロセス受信72、copyプロセス73がそれぞれ動作する際に連携して動作するプロセスである。従って、printプロセス71は、faxプロセス受信72、copyプロセス73の双方に印刷出力という機能を提供するユーティリティプロセスとなる。
プロセス構成は図5に示す数や形態に限られない。例えば、fax送信プロセス、copyプロセス、及びscanプロセスの組み合わせを考える。この場合、scanプロセスは、fax送信プロセス及びcopyプロセスの双方と連携して動作するユーティリティプロセスとなる。
図6は、メモリ領域の提供処理のフローチャートである。本処理を経て、プロセス101が、ジョブ実行時にメモリ領域をメモリ管理部102から獲得する。
まず、ステップS201で、メモリ管理部102は、プロセス101からのメモリ領域の獲得要求を受け付け、獲得要求があると、処理をステップS202に移行させる。図6の処理フローは、システム起動中に常に実行されている。メモリ領域の獲得要求は、プロセスやジョブが動作する任意のタイミングで起こり得る。
次に、ステップS202では、メモリ管理部102は、OSに問い合わせる等によって、メモリ領域の獲得要求元のプロセス101のプロセス名を取得する。その際、プロセス名は文字列データとして取得される。次に、ステップS203では、メモリ管理部102は、優先度テーブル103(図4)をROM36またはハードディスク8、9からDRAM38に読み込む(読み込み工程)。優先度テーブル103は文字列データの配列として取得される。
次に、ステップS204では、メモリ管理部102は、優先度テーブル103を参照して、メモリ領域の獲得要求元のプロセス101が優先プロセスであるか否かを判別する。すなわち、前記ステップS202で得られた文字列データにおいて、獲得要求元のプロセス101を示すプロセス名に、前記ステップS203で得られた文字列データ配列上で「優先」の属性が対応付けられているかどうかを確認する。
その判別の結果、獲得要求元が優先プロセスである場合は、ステップS205に進む。ステップS205では、メモリ管理部102は、獲得要求元のプロセス101に高速メモリを割り当てることを決定し(割り当て工程)、ステップS206に進む。ステップS206では、メモリ管理部102は、獲得要求元のプロセス101に、上記割り当て決定したメモリ領域を提供し、本処理を終了する。
前記ステップS204の判別の結果、獲得要求元が優先プロセスでない場合は、ステップS207に進む。ステップS207では、メモリ管理部102は、優先度テーブル103を参照して、獲得要求元のプロセス101がユーティリティプロセスであるか否かを判別する。すなわち、獲得要求元のプロセス101を示すプロセス名に、「ユーティリティ」の属性が対応付けられているかどうかを確認する。
その判別の結果、獲得要求元がユーティリティプロセスである場合は、ステップS208に進む。一方、獲得要求元がユーティリティプロセスでない場合は、獲得要求元が通常プロセスであると判断できるので、ステップS211に進む。ステップS211では、メモリ管理部102は、獲得要求元のプロセス101に低速メモリを割り当てることを決定し(割り当て工程)、ステップS206に進む。ステップS206では、メモリ管理部102は、獲得要求元のプロセス101に、上記割り当て決定したメモリ領域を提供し、本処理を終了する。
ステップS208では、メモリ管理部102は、獲得要求元であるユーティリティプロセスが関連優先プロセスを持つ(関連優先プロセスが存在する)か否かを判別する。その判別の結果、ユーティリティプロセスが関連優先プロセスを持たない場合は、CPU33の負荷(CPU負荷)を確認する必要もないので、前記ステップS211以降の処理を実行する。従って、関連優先プロセスを持たないユーティリティプロセスには、低速メモリが提供される(ステップS206)。一方、獲得要求元のユーティリティプロセスが関連優先プロセスを持つ場合はステップS209に進む。
ステップS209では、メモリ管理部102は、当該ユーティリティプロセスが持つ関連優先プロセスに関わるCPU負荷を、CPU負荷監視部104(図3)へ問い合わせて確認する(確認工程)。そして、続くステップS210では、メモリ管理部102は、上記関連優先プロセスに関わるCPU負荷が高負荷であるか否かを判断する。すなわち、前記ステップS209で得られたCPU負荷が、優先度テーブル103で規定されている関連優先プロセスの負荷閾値(例えば80%)を超えているかどうかを判別する。
その判別の結果、関連優先プロセスに関わるCPU負荷が負荷閾値を超えている高負荷の場合は、前記ステップS205以降を実行する。従って、CPU33を高負荷にしている関連優先プロセスを持つユーティリティプロセスには、高速メモリが提供される(ステップS206)。一方、CPU負荷が負荷閾値を超えていない場合は、ユーティリティプロセスを低優先で動かす必要があるため、前記ステップS211以降を実行する。従って、CPU33を高負荷にしていない関連優先プロセスを持つユーティリティプロセスには、低速メモリが提供される(ステップS206)。
獲得要求元のプロセス101は、前記ステップS206においてメモリ管理部102から提供されるメモリ領域を獲得する。そして、メモリ領域獲得に成功したことを条件に、メモリ領域獲得のための処理を終了する。プロセス101は、獲得するメモリ領域がスワップアウト禁止か否かにより処理を切り替える必要がなく、状況に応じて自動的に提供されるメモリ領域を使用することができる。
効果を考察してみると、次のようになる。例えば図5に示すプロセス構成において、copyプロセス73を優先的に使用し、faxプロセス受信72を非優先的に使用する場合を想定する。図4に例示したのとは異なり、printプロセス71を通常プロセスとした場合は、printプロセス71には常に低速メモリが割り当てられる。従って、優先的に使用されるcopyプロセス73の動作時に連携してprintプロセス71が動作する上で、出力動作が低速に実行されるため、copy機能としては処理が遅くなってしまう。
一方、図4に例示したのとは異なり、printプロセス71を優先プロセスとした場合は、printプロセス71には常に高速メモリが割り当てられる。従って、非優先的に使用されるfaxプロセス受信72の動作時に連携してprintプロセス71が動作する上で、出力動作も高速に実行してしまう。そのため、必要以上にCPU33の資源を占有し、システム全体のパフォーマンスを劣化させてしまう。
ところが、図4に示すような優先度設定で、printプロセス71をユーティリティプロセスとすると、関連優先プロセスであるcopyプロセス73がCPU33の資源を占有している時にはprintプロセス71に高速メモリが割り当てられる。従って、printプロセス71は、copyプロセス73から依頼された出力処理を優先的に実行することができる。一方、関連優先プロセスでないfaxプロセス受信72が動作する際には、printプロセス71に低速メモリが割り当てられる。従って、faxプロセス受信72から依頼された出力処理は非優先的に実行されることとなる。
これらにより、copy機能の処理が速く、それでいて、faxプロセス受信72の動作時には必要以上にCPU33の資源が占有されず、システム全体のスループットが向上する。
ところで、優先度テーブル103(図4)は、工場出荷時の初期設定のまま使用してもよいが、ユーティリティプロセスでないプロセスの優先、通常の属性については、以下に説明するように、動的に設定されるようにしてもよい。
すなわち、優先的に使用したいプロセス101は、厳密にはユーザ毎に異なるため、ユーザ毎に動的に切り替えるのが好ましい。例えば、ユーザの使用履歴やログから、高頻度に使用されるプロセス101を優先プロセスとして設定すると、頻繁に使う機能が迅速に実行され、あまり使われない機能が低速に実行されるため、全体のスループットとしては向上する。
図3に示すように、プロセス101は、ジョブを実行するたびにログ管理部105へそれを通知する。ログ管理部105は、プロセス毎のジョブ実行履歴を、各プロセスの実行実績としてログファイル107に記録する。ところで、ログファイル107は、DRAM38(図2)に記憶され、随時更新され、システム終了時にはハードディスク8、9に記憶される。そして、次回以降のシステム開始時にはハードディスク8、9からDRAM38に読み出され、上記と同様に更新される。
ログ解析部106は、任意のタイミングでログファイル107を解析し、高頻度に実行されたプロセス101を特定する。ログ解析部106は、特定した高頻度に実行されたプロセス101の優先度テーブル103上の属性が「通常」であれば、それを「優先」へ書き替え、それ以外のプロセスが「優先」であればそれらを「通常」へ書き替える。この例では、優先プロセス数を1つに限定した動作であるが、CPU33の性能、メモリ容量等が豊富であれば、複数の優先プロセスを設定するように構成してもよい。このような書き替え工程の処理は、図6のフローチャートとは別個に並行して実行される。
ところで、上述したように、工場出荷時には、標準的な優先プロセスが優先度テーブル103へ記載されているので、ユーザは、初回使用時から、ある程度最適化されたメモリ優先度で機器を使用することができる。
本実施の形態によれば、メモリ領域の獲得要求元が関連優先プロセスを持つユーティリティプロセスである場合においては、該ユーティリティプロセスに対して、関連優先プロセスに関わるCPU負荷が負荷閾値を超えるときにのみ高速メモリが割り当てられる。それ以外のときは、低速メモリが割り当てられる。これにより、CPU33の高負荷時におけるユーティリティプロセスの処理遅延を抑制することができると共に、通常プロセスの優先度が不必要に上がるのを防止することができる。従って、CPU33に過大な負荷がかかるのを抑制しつつ、全体的な処理速度を高めることができる。
また、優先度テーブル103(図4)におけるユーティリティプロセスでないプロセスの優先、通常の属性が、プロセスの使用実績に応じて書き替えられる。これにより、メモリ領域の割り当て優先度を効率的に決定し、使用状況に応じた最適なメモリ割り当てを行うことができる。従って、ユーザは、使用状況に応じて最適化されたメモリ管理により、最適なスループットで各機能を使用することができる。
なお、優先度テーブル103(図4)は、属性情報、関連優先プロセス情報及び負荷閾値の情報が含まれるが、これらの各情報は、各プロセス名に対応付けられていればよく、テーブルの形式で一体に記憶される必要はない。
また、本実施の形態では、DRAM38を高速メモリと低速メモリの2つの領域に分けて管理し、メモリ管理部102は、プロセス101からの要求に対していずれかの領域を割り当てるようにしたが、これ以外の方法でもよい。すなわち、メモリ管理部102は、DRAM38を高速メモリと低速メモリの領域に分けることなくプロセス101からの要求に対してDRAM38内の領域を割り当て、割り当てた領域をスワップアウト禁止領域としたり、スワップアウト非禁止領域としたりする。
また、本発明の目的は、以下の処理を実行することによって達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
1 画像入出力装置
8、9 ハードディスクドライブ(HDD)
33 CPU
38 DRAM
102 メモリ管理部
103 優先度テーブル
104 CPU負荷監視部
105 ログ管理部
106 ログ解析部
107 ログファイル
110 コントローラ部

Claims (7)

  1. 複数のプロセスを実行可能なプロセッサと1次記憶装置と2次記憶装置とを備える情報処理装置であって、
    前記プロセッサが実行するプロセスから前記1次記憶装置のメモリ領域の獲得要求を受け付ける受付手段と、
    前記受付手段が受け付けた獲得要求を行ったプロセスが、他のプロセスと連携して実行可能なユーティリティプロセスであるか否かを判定する判定手段と、
    前記判定手段が、前記受付手段が受け付けた獲得要求を行ったプロセスが、他のプロセスと連携して実行可能なユーティリティプロセスであると判定し、かつ、前記プロセッサが実行している前記ユーティリティプロセスと連携したプロセスが、スワップアウトを制限する優先プロセスであり、当該優先プロセスのプロセッサ使用率が所定の値よりも大きい場合、前記ユーティリティプロセスのスワップアウトを制限するように制御する制御手段と、を備えることを特徴とする情報処理装置。
  2. 前記判定手段は、前記プロセッサが実行可能なプロセスが、前記ユーティリティプロセスであるか、前記優先プロセスであるか、スワップアウトを制限しない通常プロセスであるかを規定する属性情報に基づいて、前記受付手段が受け付けた獲得要求を行ったプロセスがユーティリティプロセスであるか否かを判定することを特徴とする、請求項1に記載の情報処理装置。
  3. 前記1次記憶装置は、スワップアウトが制限されている制限領域と、スワップアウトが制限されていない通常領域とを含み、前記制御手段は、前記優先プロセスと、前記スワップアウトを制限すべきユーティリティプロセスとに対して前記1次記憶装置の前記制限領域に含まれるメモリ領域を割り当てることを特徴とする、請求項1に記載の情報処理装置。
  4. 前記制御手段は、前記判定手段が、前記受付手段が受け付けた獲得要求を行ったプロセスが、他のプロセスと連携して実行可能なユーティリティプロセスであると判定し、かつ、前記プロセッサが実行している前記ユーティリティプロセスと連携したプロセスが、スワップアウトを制限する優先プロセスではない場合、前記ユーティリティプロセスのスワップアウトを制限しないように制御することを特徴とする、請求項1に記載の情報処理装置。
  5. 前記1次記憶装置は、スワップアウトが制限されている制限領域と、スワップアウトが制限されていない通常領域とを含み、前記制御手段は、前記優先プロセスと、前記スワップアウトを制限しないユーティリティプロセスとに対して前記1次記憶装置の前記通常領域に含まれるメモリ領域を割り当てることを特徴とする、請求項1に記載の情報処理装置。
  6. 複数のプロセスを実行可能なプロセッサと1次記憶装置と2次記憶装置とを備える情報処理装置における仮想記憶管理方法であって、
    前記プロセッサが実行するプロセスから前記1次記憶装置のメモリ領域の獲得要求を受け付ける受付工程と、
    前記受付工程で受け付けた獲得要求を行ったプロセスが、他のプロセスと連携して実行可能なユーティリティプロセスであるか否かを判定する判定工程と、
    前記受付工程にて受け付けた獲得要求を行ったプロセスが、他のプロセスと連携して実行可能なユーティリティプロセスであると前記判定工程で判定され、かつ、前記プロセッサが実行している前記ユーティリティプロセスと連携したプロセスが、スワップアウトを制限する優先プロセスであり、当該優先プロセスのプロセッサ使用率が所定の値よりも大きい場合、前記ユーティリティプロセスのスワップアウトを制限するように制御する制御工程と、を備えることを特徴とする仮想記憶管理方法。
  7. 請求項6記載の仮想記憶管理方法をコンピュータに実行させることを特徴とするプログラム。
JP2009042224A 2009-02-25 2009-02-25 情報処理装置、仮想記憶管理方法及びプログラム Expired - Fee Related JP5414305B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009042224A JP5414305B2 (ja) 2009-02-25 2009-02-25 情報処理装置、仮想記憶管理方法及びプログラム
US12/712,117 US8914806B2 (en) 2009-02-25 2010-02-24 Information processing apparatus and virtual storage management method, and storage medium for restriction on process swapping based on process attributes and processor utilization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009042224A JP5414305B2 (ja) 2009-02-25 2009-02-25 情報処理装置、仮想記憶管理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2010198304A true JP2010198304A (ja) 2010-09-09
JP5414305B2 JP5414305B2 (ja) 2014-02-12

Family

ID=42631916

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009042224A Expired - Fee Related JP5414305B2 (ja) 2009-02-25 2009-02-25 情報処理装置、仮想記憶管理方法及びプログラム

Country Status (2)

Country Link
US (1) US8914806B2 (ja)
JP (1) JP5414305B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9390029B2 (en) * 2009-11-04 2016-07-12 St-Ericsson Sa Dynamic management of random access memory
JP6157181B2 (ja) * 2013-04-02 2017-07-05 キヤノン株式会社 サーバーシステム、その制御方法、およびそのプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002244869A (ja) * 2001-02-19 2002-08-30 Hitachi Ltd メモリ管理装置
JP2004272460A (ja) * 2003-03-06 2004-09-30 Fuji Xerox Co Ltd 情報処理装置、画像形成装置、メモリ管理方法、そのプログラム及びそのプログラムを記録した記録媒体
JP2009020555A (ja) * 2007-07-10 2009-01-29 Panasonic Corp スワップ処理装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3444346B2 (ja) * 1999-01-04 2003-09-08 日本電気株式会社 仮想メモリ管理方式
US6542991B1 (en) * 1999-05-11 2003-04-01 Sun Microsystems, Inc. Multiple-thread processor with single-thread interface shared among threads
US6728962B1 (en) * 2000-06-28 2004-04-27 Emc Corporation Context swapping in multitasking kernel
JP2002297556A (ja) * 2001-03-29 2002-10-11 Fujitsu Ltd マルチプロセッサシステム,マルチプロセッサ制御方法,マルチプロセッサ制御プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体
US7096470B2 (en) * 2002-09-19 2006-08-22 International Business Machines Corporation Method and apparatus for implementing thread replacement for optimal performance in a two-tiered multithreading structure
JP2004227188A (ja) 2003-01-21 2004-08-12 Fujitsu Ltd ジョブスワップ方法、ジョブ管理装置、およびジョブ管理プログラム
US20050007614A1 (en) * 2003-07-08 2005-01-13 Kyocera Mita Corporation Image forming system, image forming apparatus, operation control method for image forming apparatus, and control program for image forming apparatus
JP4682513B2 (ja) * 2003-12-05 2011-05-11 トヨタ自動車株式会社 タスク管理システム
JP4599923B2 (ja) * 2004-07-16 2010-12-15 ソニー株式会社 情報処理システム及び情報処理方法、並びにコンピュータプログラム
US7958370B2 (en) * 2005-09-29 2011-06-07 Hitachi Global Storage Technologies, Netherlands, B.V. System and device for managing control data
US8438572B2 (en) * 2006-03-15 2013-05-07 Freescale Semiconductor, Inc. Task scheduling method and apparatus
JP4757712B2 (ja) * 2006-05-31 2011-08-24 シャープ株式会社 複合機、複合機の制御方法、制御装置、制御装置の制御方法、複合機制御システム、制御プログラム、およびコンピュータ読み取り可能な記録媒体
JP2008108075A (ja) * 2006-10-25 2008-05-08 Matsushita Electric Ind Co Ltd タスク切替え制御方法及びコンピュータシステム
JP4517306B2 (ja) * 2007-05-17 2010-08-04 ソニー株式会社 情報処理装置および方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002244869A (ja) * 2001-02-19 2002-08-30 Hitachi Ltd メモリ管理装置
JP2004272460A (ja) * 2003-03-06 2004-09-30 Fuji Xerox Co Ltd 情報処理装置、画像形成装置、メモリ管理方法、そのプログラム及びそのプログラムを記録した記録媒体
JP2009020555A (ja) * 2007-07-10 2009-01-29 Panasonic Corp スワップ処理装置

Also Published As

Publication number Publication date
JP5414305B2 (ja) 2014-02-12
US8914806B2 (en) 2014-12-16
US20100217959A1 (en) 2010-08-26

Similar Documents

Publication Publication Date Title
JP5213539B2 (ja) 画像処理装置及び画像処理装置のメモリ管理方法
JP5419500B2 (ja) プログラムおよび情報処理装置
JP3692757B2 (ja) 画像形成装置およびその制御方法
US7895373B2 (en) Electronic device for data access management
US20090161155A1 (en) Image output apparatus and image output method
JP2016063434A (ja) 画像処理装置、同装置における画像処理方法及び画像処理プログラム
US20150134892A1 (en) Information processing apparatus, method of controlling the same, and storage medium
JP5414305B2 (ja) 情報処理装置、仮想記憶管理方法及びプログラム
JP2011039849A (ja) 情報処理装置及びその制御方法、並びにプログラム
US8582153B2 (en) Image forming apparatus and method
JP5166955B2 (ja) 情報処理装置、情報処理方法、及び、情報処理プログラム
JP5233608B2 (ja) 画像形成装置、画像データ転送方法、及びプログラム
JP5480194B2 (ja) 画像形成装置およびシステム管理プログラム
JP2003067243A (ja) 画像処理装置、プログラム、プログラムが書き込まれた記録媒体および画像形成装置
US20200288031A1 (en) Information processing apparatus equipped with storage device, control method therefor, and storage medium
JP6720824B2 (ja) 画像処理装置、画像処理装置の制御方法、およびプログラム
JP2009038771A (ja) 画像処理装置及び画像処理方法
JP2016206729A (ja) 情報処理装置およびその制御方法、並びにプログラム
JP2015219852A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JPH11203059A (ja) 画像入出力処理装置および画像入出力処理装置のメモリアクセス方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
US9361305B2 (en) Image forming apparatus having a file system
JP2002268940A (ja) 画像処理装置
JP2014204380A (ja) 画像形成装置及び制御方法
JP2002196903A (ja) 画像形成装置
JP2000132400A (ja) モジュラー型画像処理システムにおける画像処理装置並びに該装置に適用されるメモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及びメモリ管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120223

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130716

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130723

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130924

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131015

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131112

LAPS Cancellation because of no payment of annual fees