【文献】
千種菊里,1億人が持つケータイUNIX iPhone 4に搭載されたiOS 4の進化点 Part 1 iPhone OSからiOSへ 新しくなったiOS 4のポイント,月刊アスキードットテクノロジーズ,株式会社アスキー・メディアワークス,2010年 8月24日,第15巻,第10号(通巻174号),p.80−85
(58)【調査した分野】(Int.Cl.,DB名)
前記保存制御手段は、前記情報処理装置が異常終了した場合は、前記情報処理装置が異常終了後に起動される際に、前記プログラムの実行が停止される際に保存されるよう制御された前記一部データを消去する、
ことを特徴とする請求項1から3のいずれか一項に記載の情報処理装置。
【発明を実施するための形態】
【0021】
以下、本発明の一実施形態について図面に基づき詳細に説明する。
【0022】
図1は、本発明の一実施形態に係る情報処理装置10の外観の一例を示す斜視図である。
図2は、
図1に示す情報処理装置10のハードウェア構成の一例を示す構成図である。本実施形態に係る情報処理装置10は、例えば携帯型ゲーム機等の可搬型のデバイスであるものとする。
【0023】
図1に示すように、本実施形態に係る情報処理装置10の筐体12は、全体として平板状の形状をしている。
図1及び
図2に示すように、本実施形態に係る情報処理装置10は、制御部20、記憶部22、通信部24、表示部26、タッチセンサ28、操作部30、カードスロット32、画像処理部33、などを含んで構成される。これらの要素は、バスを介して接続される。
【0024】
制御部20は、例えばCPU等であって、記憶部22に格納されているプログラムに従って、各種の情報処理を実行する。記憶部22は、例えばRAMやROM等のメモリ素子などであって、制御部20によって実行されるプログラムや各種のデータを格納する。また、記憶部22は、制御部20のワークメモリとしても機能する。通信部24は、例えば、ネットワークインタフェースなど(具体的には、例えば、無線LANモジュール)であり、制御部20から入力される指示に従って、他の情報処理装置10や、インターネット上のサーバ(図示せず)などへ情報を送信する。また、この通信部24は、受信される情報を制御部20に出力する。
【0025】
表示部26は、例えば、液晶表示パネルや有機EL表示パネル等、画像を表示する各種のデバイスである。
図1に示すように、本実施形態では、表示部26は筐体12の前面に配置されており、表示部26の画面は略矩形の形状をしている。以下、画面の横方向(幅方向)をX軸方向とし、画面の前面から見て左から右へ向かう方向をX軸正方向とする。また、画面の縦方向(高さ方向)をY軸方向とし、筐体12の前面から見て下から上へ向かう方向をY軸正方向とする。
【0026】
タッチセンサ28は、画面に対応する形状及び大きさの略矩形の検出面を備えており、この検出面上に物体が接触した場合に、当該物体の接触位置を検出する。また、本実施形態では、タッチセンサ28は、物体の接触位置を所定の時間間隔で順次検出する。
図1に示すように、本実施形態では、タッチセンサ28の検出面は、表示部26の画面と重なるよう、筐体12の前面に配置されている。なお、以下の説明では、ユーザは自分の指をタッチセンサ28に接触させて操作入力を行うこととするが、これに限らず、ユーザはスタイラスなど手で持った物体を検出面に触れさせることで操作入力を行うようにしてもよい。また、タッチセンサ28は、必ずしも物体が検出面に接触した場合だけ物体の位置を検出するのではなく、検出面上の検出可能範囲まで物体が近接した場合に、当該物体の検出面に対する位置を検出するようにしてもよい。タッチセンサ28は、例えば、静電容量式や感圧式、光学式など、検出面上における物体の位置を検出可能なデバイスであれば、どのような方式のものであってもよい。なお、情報処理装置10が、筐体12の前面に配置されたタッチセンサ28と対向するようにして筐体12の背面に配置されたタッチセンサ28を備えていてもよい。
【0027】
操作部30は、例えば、タッチセンサ28とともに、ユーザが情報処理装置10に対して行う操作入力に用いる操作部材の一種である。
図1には、操作部30を構成する操作部材の一例として、情報処理装置10の筐体12の前面に配置されたボタン34及びアナログスティック36が図示されている。なお、情報処理装置10は、操作部30を構成する操作部材として、例えば、スイッチや、筐体12の上側面に配置されたボタン34などを備えていてもよい。
【0028】
カードスロット32は、各種のメモリカード等の情報記憶媒体を挿抜可能なスロットであり、制御部20からの指示に従って、カードスロット32に挿入されるメモリカード等の情報記憶媒体に記録されたプログラムやデータなどの読み取りや、挿入されるメモリカード等の情報記憶媒体へのデータの書き込みを行う。本実施形態では、カードスロット32は、情報処理装置10の筐体の上側面に配置されている。なお、情報処理装置10は、複数のカードスロット32を備えていてもよく、これら複数のカードスロット32が、互いに異なる規格である情報記憶媒体を挿抜可能であってもよい。
【0029】
画像処理部33は、例えばGPUとフレームバッファメモリとを含んで構成され、制御部20が出力する指示に従って、表示部26に表示する画像を描画する。具体例として、画像処理部33は表示部26の表示領域に対応したフレームバッファメモリを備え、GPUは、制御部20からの指示に従って、所定時間おきにこのフレームバッファメモリに対して画像を書き込む。そして、このフレームバッファメモリに書き込まれた画像が、所定のタイミングでビデオ信号に変換されて、表示部26に表示される。
【0030】
本実施形態に係る情報処理装置10では、例えば、予め、記憶部22や、カードスロット32に挿入される情報記憶媒体(以下、挿入媒体と呼ぶ。)に、ゲームプログラム等の複数のプログラムが記憶されている。そして、本実施形態では、記憶部22や挿入媒体に記憶されているプログラムは、第1の種類のプログラム(以下、ラージプログラムと呼ぶ。)、又は、第2の種類のプログラム(以下、ミニプログラムと呼ぶ。)のいずれかの分類に属する。そして、本実施形態に係る情報処理装置10では、同時に2つ以上のラージプログラムは実行されないようになっている。なお、ラージプログラムに分類されるプログラムの一例としてはゲームプログラム等が挙げられ、ミニプログラムに分類されるプログラムの一例としては写真閲覧用のプログラムや音楽プレイヤのプログラム等が挙げられるが、これらの分類は一例にすぎず、例えば、ミニプログラムに分類されるゲームプログラムが存在しても構わないし、ラージプログラムに分類される写真閲覧用のプログラムや音楽プレイヤのプログラムが存在しても構わない。
【0031】
また、本実施形態では、記憶部22や挿入媒体に記憶されているプログラムは、フォアグラウンドプログラム、又は、バックグラウンドプログラムのいずれかの分類に属する。フォアグラウンドプログラムとは、フォアグラウンドで実行されるプログラムであり、例えば、ユーザが画面等を介して起動や停止を制御することができるプログラムを指す。バックグラウンドプログラムとは、バックグラウンドで実行されるプログラムであり、例えば、情報処理装置10の起動の際に起動されたり、他のプログラムによって起動や停止が制御されたりするプログラムを指す。
【0032】
本実施形態では、記憶部22や挿入媒体に記憶されているプログラムは、フォアグラウンドプログラムであるラージプログラム、バックグラウンドプログラムであるラージプログラム、フォアグラウンドプログラムであるミニプログラム、又は、バックグラウンドプログラムであるミニプログラム、のうちのいずれかに該当することとなる。
【0033】
図3は、本実施形態に係る情報処理装置10で実現される機能の一例を示す機能ブロックズである。
図3に示すように、情報処理装置10は、機能的には、操作受付部40、メニュー画像表示制御部42、ボード画像表示制御部44、画像切替部46、実行開始管理部48、プログラム実行部50、停止終了管理部52、を含んでいる。これらの機能は、コンピュータである情報処理装置10で、本実施形態に係るプログラムが実行されることにより実現される。このプログラムは、コンピュータ通信ネットワーク経由で通信インタフェースを介して他のコンピュータからダウンロードされて、情報処理装置10に提供されてもよいし、光ディスク(例えば、CD−ROM、DVD−ROM、Blu−rayディスクなど)、USBメモリ、メモリカード等のコンピュータ読み取り可能な情報記憶媒体に格納され、そこから情報処理装置10に提供されるようにしてもよい。
【0034】
操作受付部40は、タッチセンサ28や操作部30に対するユーザの指示操作を受け付ける。特に、本実施形態では、ユーザは、例えば、タッチセンサ28の検出面上に自分の指を接触させたり、検出面上に指を接触させた状態で指をスライドさせたりすることで、情報処理装置10に対する操作入力を行う。以下、ユーザが検出面上の一点に短い時間だけ指を接触させる操作をタップ操作と呼ぶ。タップ操作が行われた場合、操作受付部40は、タップ操作の位置(具体的には、例えば、ユーザが指を接触させた検出面内の位置のX座標値及びY座標値)を出力する。また、以下、ユーザが検出面上の一点に指を接触させ、その位置を始点として検出面上のいずれかの方向に直線的に指を動かしてから指を離す操作を、スライド操作と呼ぶ。スライド操作が行われた場合、情報処理装置10は、当該操作においてユーザが指を移動させた操作に応じて、各種の情報処理を実行する。すなわち、スライド操作によって、情報処理装置10は、方向の指示を受け付けることとなる。
【0035】
メニュー画像表示制御部42は、例えば、情報処理装置10の起動時や、ユーザがメニュー表示を指示した場合など、所定のタイミングで、メニュー画像60を画面に表示させる制御を行う。
図4は、メニュー画像60が表示された画面の一例を示す図である。メニュー画像60は、ユーザにプログラム(本実施形態では、フォアグラウンドプログラム)を選択させるために提示される画像であって、ユーザによる選択対象となる複数のメニュー項目画像62を含んだ画像である。各メニュー項目画像62は、例えば、記憶部22や挿入媒体に記憶されているフォアグラウンドプログラムを表すアイコン画像などである。そして、本実施形態では、メニュー画像60内には、ラージプログラムであるフォアグラウンドプログラムに関連づけられたメニュー項目画像62と、ミニプログラムであるフォアグラウンドプログラムに関連づけられたメニュー項目画像62と、が含まれることとする。
図4では、それぞれがフォアグラウンドプログラムに関連づけられた10個のメニュー項目画像62が、メニュー画像60に含まれている。
【0036】
メニュー画像60が表示された状態において、ユーザは、いずれかのメニュー項目画像62が表示された位置をタップすることで、プログラムの選択操作を行う。具体的には、メニュー画像表示制御部42は、ユーザのタップ操作を受け付けた際に、画面内におけるタップされた位置のXY座標を特定する。そして、メニュー画像表示制御部42は、その位置に表示されているメニュー項目画像62を特定する。そして、メニュー画像表示制御部42は、特定されたメニュー項目画像62に関連づけられたフォアグラウンドプログラムを特定する。このようにして、フォアグラウンドプログラムが選択されることとなる。
【0037】
そして、メニュー画像表示制御部42は、選択されたフォアグラウンドプログラムに関連する情報が配置された画像(以下、プログラム関連画像66と呼ぶ。)の生成を、ボード画像表示制御部44に指示する。
図6は、プログラム関連画像66の一例を示す図である。
【0038】
ボード画像表示制御部44は、メニュー画像60が画面に表示された状態でユーザがいずれかのプログラムを選択した場合に、選択されたプログラムに関する画像を画面に表示させる制御を行う。以下、ボード画像表示制御部44によって、画面への表示が制御される画像をボード画像64と呼ぶ。
図5は、ボード画像64が表示された画面の一例を示す図である。本実施形態では、ボード画像表示制御部44は、ユーザが選択したフォアグラウンドプログラムに対応するプログラム関連画像66を生成して、そのプログラム関連画像66の一部又は全部をボード画像64として画面に表示させる。
【0039】
図5及び
図6に示すように、本実施形態に係るボード画像64は、対応するフォアグラウンドプログラムに関連する複数の表示要素が配置されたプログラム関連画像66の一部又は全部を表す画像である。本実施形態では、プログラム関連画像66の横方向をX軸方向とし、左から右へ向かう方向をX軸正方向とする。また、プログラム関連画像66の縦方向をY軸方向とし、下から上へ向かう方向をY軸正方向とする。
【0040】
本実施形態に係るプログラム関連画像66は、所定のスクロール方向(本実施形態では、例えば、Y軸方向)に沿って延びる矩形の領域であって、Y軸方向に延びる辺は、表示部26の画面の縦方向の長さよりも長いものとする。そのため、ボード画像表示制御部44は、プログラム関連画像66の全体を一度に画面に表示することはできず、プログラム関連画像66の一部の範囲だけをボード画像64として画面に表示することとなる。本実施形態では、プログラム関連画像66内の、実際に画面に表示される範囲(表示対象範囲)は、ユーザのスクロール指示に従って移動する。具体的には、例えば、ユーザが、タッチセンサ28に対してスクロール指示に沿ったスライド操作を行うことによって、ボード画像表示制御部44は、プログラム関連画像66内の表示対象範囲を移動させる。そして、ボード画像表示制御部44は、プログラム関連画像66の移動後の表示対象範囲内に含まれる部分を、ボード画像64として画面に表示させる。なお、表示対象範囲のサイズ及び形状は、画面のサイズに対応している。また、ボード画像表示制御部44が、最初にボード画像64を表示する際には、例えば、プログラム関連画像66の最上端など、所定の位置が表示対象範囲に含まれるよう制御するようにしてもよい。
【0041】
また、
図6に例示するように、本実施形態では、プログラム関連画像66は、プログラム情報領域68と、コミュニケーション領域70と、の2つの部分領域を含んで構成されている。プログラム情報領域68は、フォアグラウンドプログラムの提供元となる事業者等によって用意された情報が配置される領域であり、コミュニケーション領域70は、プログラム関連画像66に関連づけられるフォアグラウンドプログラムに関して、複数のユーザが投稿したメッセージの内容が配置される領域である。コミュニケーション領域70は、ユーザ同士の情報交換等に利用される。
【0042】
また、本実施形態では、ボード画像表示制御部44は、プログラム関連画像66内に配置される表示要素の情報の管理も行う。具体的には、メニュー画像60内においてフォアグラウンドプログラムが選択された際には、ボード画像表示制御部44は、新たに生成するプログラム関連画像66に含めるべき表示要素の情報を取得する。ボード画像表示制御部44は、例えば、記憶部22や挿入媒体に記憶されている静的な情報(プログラムの提供元のウェブサイトへのリンクを示す画像、フォアグラウンドプログラムのプロモーションビデオ等の動画像、など)を取得して、プログラム情報領域68に配置するようにしてもよい。また、ボード画像表示制御部44は、インターネット等のネットワーク経由で、外部のサーバから、例えば、ゲームプログラムであるフォアグラウンドプログラムに関するイベントの告知情報や、関連ウェブサイトの更新情報、関連商品の情報、パッチや追加プログラムの公開情報などを取得して、プログラム情報領域68に配置するようにしてもよい。このときは、記憶部22や挿入媒体に、フォアグラウンドプログラムに関する上述の情報の取得先の情報(例えば、URL)が、当該フォアグラウンドプログラムを識別する情報に関連づけて記憶されていることとする。
【0043】
また、本実施形態では、ボード画像表示制御部44は、コミュニケーション領域70に配置すべき表示要素の情報についても、ネットワーク経由で外部から取得する。具体的には、例えば、情報処理装置10のユーザは、情報処理装置10で実行されるプログラムに関するメッセージを、インターネット等の通信ネットワークを経由して、所定のコミュニケーションシステムに投稿できるようになっている。本実施形態に係る情報処理装置10は、フォアグラウンドプログラムと関連づけて、メッセージの投稿先となるコミュニケーションシステムを特定する情報(URL等)を記憶部22や挿入媒体に記憶しており、この情報を参照して、ユーザが入力したメッセージをコミュニケーションシステムに送信する。ボード画像表示制御部44は、フォアグラウンドプログラムに関連づけられたプログラム関連画像66を生成する際には、上述のコミュニケーションシステムにアクセスし、当該フォアグラウンドプログラムに関して過去に投稿されたメッセージ情報を取得する。そして、ボード画像表示制御部44は、取得されたメッセージの内容やメッセージの発言者を表す表示要素を配置したコミュニケーション領域70の画像を、プログラム関連画像66の一部として生成する。
【0044】
また、ボード画像表示制御部44は、所定の時間間隔で、外部のサーバやコミュニケーションシステムからフォアグラウンドプログラムに関連づけられた新着メッセージを取得して、その新着メッセージが含まれるよう当該フォアグラウンドプログラムに関連づけられたプログラム関連画像66を更新するようにしてもよい。また、外部のサーバやコミュニケーションシステムが、フォアグラウンドプログラムに関連づけされた新着メッセージを受け付けた際に、当該新着メッセージを情報処理装置10に通知するようにしてもよい。そして、ボード画像表示制御部44は、当該通知の受付に応じて、当該フォアグラウンドプログラムに関連づけられたプログラム関連画像66を更新するようにしてもよい。こうすれば、プログラムに関連づけられる情報が逐次更新されることとなる。
【0045】
図5には、
図6に示すプログラム関連画像66のプログラム情報領域68が表示対象範囲となっている場合のボード画像64が示されている。プログラム情報領域68内には、ボード画像64に対応付けられるフォアグラウンドプログラムの実行を開始する際の操作の対象となる実行開始用画像が含まれている。本実施形態では、実行開始用画像として、実行開始ボタン画像72(ここでは、フォアグラウンドプログラムに対応付けられるデフォルトの実行開始ボタン画像72)がプログラム情報領域68内に配置される。デフォルトの実行開始ボタン画像72は、例えば、対応するフォアグラウンドプログラムが情報処理装置10にインストールされる際に、記憶部22に記憶される。ユーザは、実行開始ボタン画像72を含むボード画像64が画面に表示された状態において、この実行開始ボタン画像72の表示位置をタップすることにより、対応するフォアグラウンドプログラムの起動を指示する。
【0046】
画像切替部46は、ユーザの選択操作によって、メニュー画像表示制御部42が表示対象としたメニュー画像60、並びに、ボード画像表示制御部44が表示対象とした複数のボード画像64の間で、表示画像の切替を行う。例えば、メニュー画像60が表示された状態で、ユーザがフォアグラウンドプログラムP1を選択した場合、ボード画像表示制御部44は、フォアグラウンドプログラムP1に対応するボード画像64を画面に表示する。ユーザは、この状態において、例えば、X軸正方向へのスライド操作を行うことにより、画面にメニュー画像60を再表示させることができる。さらに、メニュー画像60が画面に再表示された状態で、ユーザが別のフォアグラウンドプログラムP2を選択した場合、ボード画像表示制御部44は、フォアグラウンドプログラムP2に対応するボード画像64を表示する。このようにして、ユーザは、順次、それぞれがフォアグラウンドプログラムに対応する複数のボード画像64を画面に表示させることができる。画像切替部46は、ユーザが画像切替操作(本実施形態では、X軸正方向又はX軸負方向へのスライド操作)を行った場合に、メニュー画像60、並びに、表示可能な状態に設定されたボード画像64(例えば、対応するメニュー項目画像62がユーザに選択されたフォアグラウンドプログラムに関連づけられるボード画像64)と、を切替処理の対象として、画面に表示される画像の切替を行う。
【0047】
また、本実施形態では、画像切替部46は、表示画像が切り替わる過程を画面に表示することとする。具体的には、例えば、X軸正方向(又は、X軸負方向)へのスライド操作に応じて、画像切替部46は、表示されている画像(第1画像と呼ぶ。)がX軸正方向(又は、X軸負方向)に移動する様子を表示するとともに、移動する第1画像に続いて、X軸負方向側(又は、X軸正方向側)から、新たに表示されることとなる画像(第2画像と呼ぶ。)が画面内に入ってくる様子を表示する。そして、ユーザが所定距離以上指をスライドさせてからタッチセンサ28から指を離して画像切替操作を終えると、画像切替部46は、さらに第2画像の全体が画面内に入るまで、第1画像及び第2画像を移動させる。これにより、画像切替処理が終了し、画面内には第2画像だけが表示された状態となる。
【0048】
ここで、例えば、フォアグラウンドプログラムP1に対応するボード画像64(第1のボード画像64と呼ぶ。)、及び、フォアグラウンドプログラムP2に対応するボード画像64(第2のボード画像64と呼ぶ。)が表示可能な状態に設定されている場合における画面切替の様子の一例について説明する。なお、ここでは、第2のボード画像64が、第1のボード画像64よりも前に表示可能な状態に設定されたこととする。上述の場合において、メニュー画像60が表示されている状態で、ユーザがX軸負方向へのスライド操作を行うと、メニュー画像60及び第1のボード画像64が右から左へ移動する様子が表示され、第1のボード画像64が画面全体に表示される。そして、第1のボード画像64が表示されている状態で、ユーザがX軸負方向へのスライド操作を行うと、第1のボード画像64及び第2のボード画像64が右から左へ移動する様子が表示され、第2のボード画像64が画面全体に表示される。そして、第2のボード画像64が表示されている状態で、ユーザがX軸正方向へのスライド操作を行うと、第1のボード画像64及び第2のボード画像64が左から右へ移動する様子が表示され、第1のボード画像64が画面全体に表示される。そして、第1のボード画像64が表示されている状態で、ユーザがX軸正方向へのスライド操作を行うと、メニュー画像60及び第1のボード画像64が左から右へ移動する様子が表示され、メニュー画像60が画面全体に表示される。
【0049】
実行開始管理部48は、記憶部22や挿入媒体に記憶されているプログラムの実行を開始する(本実施形態では、例えば、プログラムを起動する、あるいは、プログラムの実行を再開する)。本実施形態では、情報処理装置10の起動時に、実行開始管理部48が、情報処理装置10の起動時に起動されるよう予め設定された1又は複数のバックグラウンドプログラムを起動する。また、本実施形態では、実行開始管理部48は、フォアグラウンドプログラムに対応するプログラム関連画像66の一部又は全部であるボード画像64が画面に表示された状態でユーザによる実行開始指示操作(本実施形態では、例えば、実行開始ボタン画像72のタップ操作)を受け付けると、当該プログラムがサスペンド状態(例えば、制御部20によって、当該プログラムについてプログラムカウンタの更新が行われなくなる状態や、当該プログラムに含まれる命令のフェッチ、デコード、並びに、実行が行われなくなる状態、など)になっている場合は、当該フォアグラウンドプログラムの実行を再開し(レジュームし)、当該プログラムがサスペンド状態になっていない場合は、当該フォアグラウンドプログラムを起動する。なお、実行開始ボタン画像72が表示部26に表示されている場合にのみ、この実行開始ボタン画像72に関連づけられるフォアグラウンドプログラムのユーザの操作に応じた起動又は実行の再開が可能となっていてもよい。ここで、実行開始管理部48によるプログラムの起動に伴い、情報処理装置10で起動済であるプログラムが終了されることがあるが、このことの詳細については後述する。また、本実施形態では、実行中のプログラムがバックグラウンドプログラムの起動を実行開始管理部48に指示することがある。実行開始管理部48は、実行中のプログラムから受け付けるバックグラウンドプログラムの起動指示に応じて、起動指示の対象となったバックグラウンドプログラムを起動する。
【0050】
また、本実施形態では、実行開始管理部48がプログラムを起動すると、当該プログラムを識別する情報(例えば、プログラムの識別子やプログラムの名称など)と、所定値(本実施形態では、例えば、100)が設定されたパラメータexpireCountと、を関連づけて記憶部22に記憶させる。また、本実施形態では、実行開始管理部48が、プログラムを起動する際に、起動済の他のプログラムについてのパラメータexpireCountの値を1減らす。パラメータexpireCountの値は、プログラムの実行を継続させる優先順位の決定の基礎となる。パラメータexpireCountの詳細については後述する。
【0051】
なお、本実施形態では、実行開始管理部48は、プログラムを起動する際に、当該プログラムに関連づけられている実行状況データが挿入媒体に記憶されているか否かを確認する。そして、プログラムに関連づけられている実行状況データが記憶されている場合には、当該実行状況データを用いてプログラムの起動を行う。なお、実行状況データの詳細については後述する。
【0052】
プログラム実行部50は、実行開始管理部48により実行が開始されたプログラムを実行する。本実施形態では、プログラム実行部50は、例えば、実行が開始されたプログラムを実行することにより生成される処理結果の画像(実行が開始されたプログラムが生成する処理結果の画像)を画面に表示させる。このようにして、ユーザは、起動されたプログラムにより実行可能な各種処理の実行を指示することができることとなる。
【0053】
また、本実施形態に係る情報処理装置10で実行されているプログラムに含まれる、当該プログラムのプロテクト宣言の開始又は終了を示す命令がプログラム実行部50によって実行されることがある。具体的には、例えば、チャットプログラムなどにおいて、チャットプログラムが終了されることを防ぐべき状況が始まった(例えば、チャットが開始されたなど)際に、チャットプログラムのプロテクト宣言が開始され、チャットプログラムが終了されることを防ぐべき状況が終わった(例えば、チャットが終了されたなど)際に、チャットプログラムのプロテクト宣言が終了される。そして、プログラム実行部50は、情報処理装置10で実行されているプログラムが、プロテクト宣言中の状態であるか否かを管理する。具体的には、例えば、プログラム実行部50は、実行中のプログラムのプロテクト宣言が開始されると、当該プログラムの識別情報と、当該プログラムがプロテクト宣言中であることを示すフラグと、が含まれる情報を記憶部22に記憶させる。一方、プログラム実行部50は、実行中のプログラムのプロテクト宣言が終了されると、記憶部22に記憶されている、当該プログラムの識別情報と、当該プログラムがプロテクト宣言中であることを示すフラグと、が含まれる情報を削除する。
【0054】
本実施形態に係る情報処理装置10は、一定の条件の下で、複数のプログラムを同時に実行できるようになっている。
図7は、複数のプログラムが同時に実行されている場合における、情報処理装置10で実行されるプログラムが使用可能であるリソース(メモリ、ファイルディスクリプタ、など)の割り当て状況の一例を模式的に示す図である。
図7に示すように、本実施形態に係る情報処理装置10では、例えば、上述のメニュー画像60やボード画像64を生成して表示出力するシステムプログラム(以下、シェルと呼ぶ。)、ラージプログラム、ミニプログラム、のそれぞれに対して、固定サイズのリソースの上限が設定される。本実施形態に係る情報処理装置10で実行されるシェルは、シェルに設定された上限の範囲内でリソースを使用可能である。本実施形態では、メニュー画像60、ボード画像64、プログラム関連画像66、プログラム関連画像66に配置される表示要素の情報、などは、シェルに割り当てられるリソースとして管理される。また、本実施形態では、上述のように、2つ以上のラージプログラムは同時に実行されないようになっている。よって、本実施形態に係る情報処理装置10で実行されるラージプログラムは、ラージプログラムに設定された上限の範囲内でリソースを使用可能である。また、本実施形態では、ミニプログラムに設定されるリソースの上限は、情報処理装置10で実行される1又は複数のミニプログラムの全体に対して設定されたリソースの上限となっている。そのため、ミニプログラムの全体に対して設定されたリソースの上限を超えない限りにおいては、本実施形態に係る情報処理装置10で複数のミニプログラムを実行することができるようになっている。
図7では、シェルに割り当て可能な最大リソースサイズがRslim、ラージプログラムに割り当て可能な最大リソースサイズがRllim、ミニプログラムに割り当て可能な最大リソースサイズがRmlimで示されている。また、情報処理装置10で実行されている複数(
図7の例では、3つ)のミニプログラムそれぞれが使用しているリソースが、Rm1、Rm2、及び、Rm3で示されている。
【0055】
停止終了管理部52は、所与の条件を満足する場合に、起動済のプログラムの実行を停止させたり終了させたりする。以下の説明では、プログラムの実行の停止とは、当該プログラムが、サスペンド状態になることを指し、プログラムの終了とは、当該プログラムの実行が終了されて、当該プログラムが使用していたリソースが解放されることを指すこととする。
【0056】
本実施形態では、プログラムの実行中に(プログラムを実行することにより生成される処理結果の画像が画面に表示されている状態の際に)、ユーザが所定のボタン34を押下するなどの操作を行うことで、当該プログラムに対するサスペンド操作を行うことができるようになっている。本実施形態では、プログラムに対するサスペンド操作が行われた際には、(1)停止終了管理部52による、スクリーンショットの画像の記憶処理、(2)停止終了管理部52による実行状況データの記憶処理、並びに、当該プログラムの実行の停止処理、(3)ボード画像表示制御部44による、画面に表示される画像の、当該プログラムに対応するボード画像64への切替処理、が行われる。
【0057】
また、停止終了管理部52は、上述の(1)に示す処理において、プログラムの実行が停止される際の画面のスクリーンショットの画像(例えば、プログラムの実行が停止される際に情報処理装置10のフレームバッファメモリに書き込まれている画像)を記憶部22に記憶させる。なお、このとき、停止終了管理部52が、スクリーンショットの画像を挿入媒体に記憶させるようにしてもよい。
【0058】
停止終了管理部52は、上述の(2)に示す処理において、プログラムの実行が停止される際における当該プログラムの実行状況を示すデータである実行状況データを、当該プログラムを識別する情報(例えば、当該プログラムの識別子や、当該プログラムの名称など)や、当該プログラムの停止の際の日時を示す情報などと関連づけて、挿入媒体に記憶させるとともに、当該プログラムを停止させる。このことによって、当該プログラムは、サスペンド状態となる。また、このとき、当該プログラムが使用しているリソースは解放されない(すなわち、当該プログラムは終了されない)。
【0059】
本実施形態では、停止終了管理部52は、例えば、停止されるプログラムが使用しているメモリの一部に配置されているデータ(例えば、当該プログラムに割り当てられた仮想アドレス空間のうちの、予め定められた論理アドレスの範囲内の領域(以下、セーフメモリ領域と呼ぶ。)に配置されているデータ)を、実行状況データとして、挿入媒体に記憶させる。本実施形態では、セーフメモリ領域のサイズは、例えば、64キロバイトである。このようにして、本実施形態では、停止終了管理部52が、停止されるプログラムが使用しているメモリ領域に配置されているデータを保持しつつ、セーフメモリ領域に配置されているデータが挿入媒体に保存されるよう制御することとなる。
【0060】
また、ボード画像表示制御部44は、上述の(3)に示す処理において、停止終了管理部52によって記憶部22に記憶されたスクリーンショットの画像が実行開始ボタン画像72として含まれるボード画像64を生成して、当該ボード画像64を画面に表示させる。このようにして、画面に表示される画像が、当該プログラムに対応するボード画像64に切り替わる。このようにして、本実施形態では、ユーザは、実行開始ボタン画像72を閲覧することによって、当該実行開始ボタン画像72に対応するプログラムの実行が停止されたこと、並びに、当該プログラムの実行が停止された(サスペンド状態となった)際の状況を認識することができることとなる。
【0061】
また、本実施形態では、プログラムの実行中に(プログラムを実行することにより生成される処理結果の画像が画面に表示されている状態の際に)、ユーザが所定のボタン34を押下するなどの操作を行うことで、当該プログラムに対する終了操作を行うことができるようになっている。本実施形態では、プログラムに対する終了操作が行われた際には、停止終了管理部52が、終了操作の対象となったプログラムの実行を終了し、当該プログラムが使用していたリソースを解放する。そして、本実施形態では、ユーザにより明示的にプログラムの終了が指示される際には、当該プログラムは、停止された状態(サスペンド状態)を経て、終了される。そのため、上述のようにしてプログラムが終了される際には、当該プログラムについて上述の(2)に示す処理が実行された上で、当該プログラムが使用しているリソースが解放されることとなる。
【0062】
また、例えば、実行中のプログラムに含まれる、自らを終了させる命令がプログラム実行部50により実行されると、停止終了管理部52は、当該プログラムの実行を終了し、当該プログラムが使用していたリソースを解放する。このときも、当該プログラムについて上述の(2)に示す処理が実行されることとなる。また、例えば、実行中のプログラムに含まれる、実行中の他のプログラム(例えば、バックグラウンドプログラム)の終了命令がプログラム実行部50により実行されると、停止終了管理部52は、当該他のプログラムの実行を終了し、当該他のプログラムが使用していたリソースを解放する。このときも、当該他のプログラムについて上述の(2)に示す処理が実行されることとなる。また、終了されるプログラムがフォアグラウンドプログラムである場合には、停止終了管理部52が、終了指示に応じて終了される当該プログラムに関連づけられるボード画像64を表示可能ではない状態に設定する。そして、メニュー画像表示制御部42が、メニュー画像60を画面に表示する。
【0063】
このようにして終了されたプログラムに対応するボード画像64は、上述のように、表示可能ではない状態に設定されるので、当該プログラムの終了後に、ユーザが画面切替操作を行っても画面に当該プログラムに対応するボード画像64は表示されない。
【0064】
また、本実施形態では、サスペンド状態のプログラムに対応するボード画像64が画面に表示された状態でユーザによる実行開始指示操作(本実施形態では、例えば、実行開始ボタン画像72のタップ操作)が行われると、当該プログラムは起動済であるので、再度の起動は行われず、実行開始管理部48が、当該プログラムが使用しているリソース(例えば、メモリに保持されているデータ)に基づいて、当該プログラムについてのサスペンド操作が行われた際における実行状況を再現して、当該プログラムの実行を再開する。
【0065】
また、既にラージプログラムが1つ実行中である状態で、他のラージプログラムが起動される際には、停止終了管理部52は、起動済であるラージプログラムを終了させて、当該ラージプログラムが使用していたリソースを解放する。この場合、停止終了管理部52は、終了されるプログラムに関連づけられるボード画像64を表示可能ではない状態に設定する。なお、このとき、停止終了管理部52は、ラージプログラムを終了させる際に、ラージプログラムの実行内容をセーブデータとして保存するか否かをユーザに問い合わせて、保存することがユーザにより選択されたら、セーブデータを挿入媒体に出力するようにしてもよい。なお、このとき、停止終了管理部52が、終了されるラージプログラムのセーフメモリ領域に配置されているデータを挿入媒体に記憶させるようにしてもよい。
【0066】
また、停止終了管理部52は、実行開始管理部48がミニプログラムを起動する際に、必要に応じて、起動済のプログラムを終了させる。ここで、実行開始管理部48がミニプログラムを起動する際に行われる、本実施形態に係る情報処理装置10で行われる処理の流れの一例を、
図8に示すフロー図を参照しながら説明する。なお、本実施形態では、起動の対象となるミニプログラムの実行に必要となるリソース量を示す情報は、当該ミニプログラムに関連づけて、記憶部22や挿入媒体に予め記憶されていることとする。
【0067】
まず、停止終了管理部52は、起動の対象となるミニプログラムの実行に必要となるリソース量(必要リソース量r1)を示す情報を記憶部22等から取得する(S101)。そして、停止終了管理部52は、ミニプログラム全体に割り当てられているリソースのうち、現在実行中のプログラムにより使用されておらず、起動の対象となるミニプログラムに割り当て可能なリソース量(割り当て可能リソース量r2)を特定する(S102)。
【0068】
そして、停止終了管理部52は、起動の対象となるミニプログラムに未使用のリソースを割り当て可能であるか否か(例えば、必要リソース量r1が、割り当て可能リソース量r2以下であるか否か。)を判定する(S103)。
【0069】
割り当て可能でない場合は(S103:N)、停止終了管理部52は、実行中の各プログラムについて、プログラムの実行を継続させる優先順位の決定の基礎となる優先度(以下、実行継続優先度と呼ぶ。)を算出する(S104)。本実施形態では、停止終了管理部52は、実行中の各プログラムについて以下のようにして実行継続優先度を算出する。停止終了管理部52は、まず、実行継続優先度の算出対象となるプログラム(以下、算出対象プログラムと呼ぶ。)について記憶されているパラメータexpireCountの値を実行継続優先度の初期値として設定する。そして、停止終了管理部52は、算出対象プログラムがプロテクト宣言中であれば、実行継続優先度の値に100000を追加する。さらに、停止終了管理部52は、算出対象プログラムがフォアグラウンドプログラムであって、当該算出対象プログラムを実行することにより生成される情報が画面に表示されている(当該プログラムが生成する情報が画面に表示されている)場合は、実行継続優先度の値に10000を追加する。さらに、停止終了管理部52は、算出対象プログラムがバックグラウンドアプリケーションである場合は、実行継続優先度の値に1000を追加する。このようにして、実行中の各プログラムについて実行継続優先度が算出される。
【0070】
そして、停止終了管理部52は、実行継続優先度の値が最も小さいプログラムを選択する(S105)。そして、停止終了管理部52は、選択されたプログラムについての実行状況データを、当該プログラムを識別する情報(例えば、当該プログラムの識別子や、当該プログラムの名称など)や、当該プログラムの終了の際の日時を示す情報などと関連づけて、挿入媒体に記憶させる(S106)。そして、停止終了管理部52は、選択されたプログラムを終了させるとともに、当該プログラムが使用していたリソースを解放して(S107)、S102に示す処理に戻る。このとき、このプログラムに関してシェルで管理されていたリソースについては解放されない。また、このプログラムに関連づけられるボード画像64は、表示可能な状態に維持される。また、本処理例では、停止終了管理部52は、終了されるプログラムのスクリーンショットの画像が記憶部22に記憶されている場合は、S107に示す処理において当該画像を記憶部22から消去する。
【0071】
S103に示す処理において、割り当て可能であることが判定されれば(S103:Y)、実行開始管理部48が、起動の対象となるプログラムを起動して(S108)、本処理例に示す処理を終了する。
【0072】
以上のようにして終了されたプログラムに対応するボード画像64は、上述のように、表示可能である状態が維持されるので、当該プログラムの終了後に、ユーザが画面切替操作を行った際に、画面に当該プログラムに対応するボード画像64(例えば、当該プログラムのデフォルトの実行開始ボタン画像72が配置されたボード画像64)が表示されることとなる。また、本実施形態では、ボード画像表示制御部44は、このようにして終了されたプログラムであっても、ボード画像64が表示可能である状態が維持されているプログラムについては、上述のように、プログラムに関連づけられるプログラム関連画像66に配置される表示要素の情報を逐次更新する。
【0073】
そして、当該プログラムの実行開始指示操作がユーザにより行われた際には、実行開始管理部48は、当該プログラムと関連づけて記憶されている実行状況データを取得して、当該実行状況データに基づいて、当該プログラムの実行を開始する。本実施形態では、実行開始指示操作の対象となったプログラムが、既に終了されており、当該プログラムが使用していたリソースが解放されている場合には、実行開始管理部48は、例えば、実行開始指示操作の対象となったプログラムが使用するメモリ領域を記憶部22に確保した上で、実行開始指示操作の対象となったプログラムと関連づけて記憶されている実行状況データを取得して、当該実行状況データを、当該プログラムに確保される仮想アドレス空間内のセーフメモリ領域に配置する。このようにしてセーフメモリ領域に配置されたデータによって、プログラムの実行状況の一部又は全部を再現してプログラムの実行を開始することが可能となることになる。このとき、実行開始管理部48は、前回のプログラムの終了の際に記憶された実行状況データ(例えば、挿入媒体に最後に出力された実行状況データ、関連づけられている日時が最新である実行状況データ、など)に基づいて(例えば、前回のプログラムの終了の際に記憶された実行状況データをセーフメモリ領域に配置して)、当該プログラムの前回の終了の際における実行状況を再現して、当該プログラムの実行を開始するようにしてもよい。また、実行開始管理部48は、前回よりも前の終了の際に記憶された実行状況データに基づいて(例えば、前回よりも前のプログラムの終了の際に記憶された実行状況データをセーフメモリ領域に配置して)、その際の当該プログラムの実行状況を再現するようにしてもよい。また、実行開始管理部48は、ユーザに指定された実行状況データに基づいて、プログラムの実行状況を再現するようにしてもよい。
【0074】
なお、上述の処理例のS106に示す処理において、停止終了管理部52は、例えば、実行状況データを挿入媒体に記憶させる処理を実行しないようにしてもよい。また、上述の処理例のS106に示す処理において、停止終了管理部52は、サスペンド状態であるフォアグラウンドプログラムが終了される際には、当該プログラムのセーフメモリ領域に配置されているデータが当該プログラムについて挿入媒体に記憶されている実行状況データから変化している場合(すなわち、前回の実行状況データの挿入媒体への記憶から、セーフメモリ領域に配置されているデータの内容が変更されている場合)に、実行状況データを挿入媒体に記憶させる処理を実行するようにして、当該プログラムのセーフメモリ領域に配置されているデータが、当該プログラムについて挿入媒体に記憶されている実行状況データから変化していない場合(すなわち、前回の実行状況データの挿入媒体への記憶から、セーフメモリ領域に配置されているデータの内容が変更されていない場合)には、実行状況データを挿入媒体に記憶させる処理を実行しないようにしてもよい。
【0075】
また、上述の処理例のS107に示す処理において、終了されるプログラムのスクリーンショットの画像が記憶部22から消去されないようにしてもよい。そして、終了されるプログラムのボード画像64内に実行状況データに関連づけて記憶されたスクリーンショットの画像が実行開始ボタン画像72として配置されるようにしてもよい。
【0076】
本実施形態では、ユーザにより実行開始ボタン画像72に対するタップ操作が行われて、サスペンド状態のプログラムの実行が再開される際、あるいは、実行状況データが挿入媒体からセーフメモリ領域に配置されてプログラムが起動される際に、ボード画像表示制御部44が、当該プログラムの実行開始ボタン画像72(例えば、当該プログラムのデフォルトの実行開始ボタン画像72や,当該プログラムのスクリーンショットの画像)が画面全体に表示されるよう拡大させる制御を行う。そして、ボード画像表示制御部44は、当該プログラムの実行の開始のために必要な処理(準備処理)が終了するまで(例えば、当該プログラムの実行の準備処理の終了直後に表示される画像の生成が終了するまで)、画面全体に表示されるよう制御された画像が画面に表示された状態を維持する。そして、当該プログラムの実行の準備処理が終了し、当該プログラムを実行することにより生成される処理結果の画像(当該プログラムが生成する処理結果の画像)が画面に表示されるようになると、画面に表示される画像が、スクリーンショットの画像から当該プログラムが生成する処理結果の画像に切り替わることとなる。
【0077】
このように、本実施形態では、プログラムの実行の開始中(例えば、起動中、又は、サスペンド状態からの実行の再開中)に、当該プログラムの実行が停止される際の画面のスクリーンショットの画像が表示部26に表示されるよう制御される。
【0078】
また、本実施形態では、サスペンド状態からプログラムの実行が再開される際に、情報処理装置10は、サスペンド状態から当該プログラムの実行が再開されたことをプログラム実行部50に通知する。このことで、当該プログラムが再開された際に実行されるべき処理が実行されるようにすることが可能となる。
【0079】
また、本実施形態では、情報処理装置10は、プログラムの起動時や実行再開時に、当該プログラムが、ボード画像が表示可能ではない状態になってから起動されたのか、ボード画像が表示可能な状態が維持されたまま起動されたのかをプログラム実行部50に通知する。このことで、プログラム実行部50は、ボード画像が表示可能ではない状態になってから起動されたのか、ボード画像が表示可能な状態が維持されたまま起動されたのかによって異なる処理を実行するようにすることが可能となる。
【0080】
以上のように、本実施形態では、停止終了管理部52は、各プログラムに対応付けられる実行継続優先度に基づいて、複数のプログラムのうちから終了の対象となるプログラムを選択する。そして、停止終了管理部52は、選択されるプログラムを終了させる。このとき、上述のように、停止終了管理部52は、プロテクト宣言中ではないプログラムをプロテクト宣言中のプログラムよりも優先して終了させる。また、停止終了管理部52は、表示されている情報を生成したフォアグラウンドプログラムとは異なるプログラムを、表示されている情報を生成したフォアグラウンドプログラムよりも優先して終了させる。また、停止終了管理部52は、バックグラウンドプログラムを、表示されている情報を生成したフォアグラウンドプログラムよりも優先して終了させる。また、停止終了管理部52は、表示されている情報を生成したフォアグラウンドプログラムとは異なるフォアグラウンドプログラムを、バックグラウンドプログラムよりも優先して終了させる。
【0081】
また、本実施形態では、サスペンド状態のプログラム(実行の際に使用していたリソースが解放されていないプログラム)に対応するボード画像64が画面に表示されている状態で、ユーザが、ボード画像64のクローズ操作(例えば、ユーザが指等をタッチセンサ28に接触させた状態で右上端から左下端へスライドさせる操作)を行うと、停止終了管理部52が、当該ボード画像64に対応するプログラムの実行を終了し、当該プログラムが使用していたリソースを解放する。このとき、本実施形態では、当該プログラムがサスペンド状態になる際に、既に当該プログラムのセーフメモリ領域に配置されるデータの挿入媒体への保存が行われているので、当該プログラムのセーフメモリ領域に配置されるデータの挿入媒体への保存は行われない。また、停止終了管理部52は、クローズ操作が行われたボード画像64を表示可能ではない状態に設定する。そして、メニュー画像表示制御部42が、メニュー画像60を画面に表示する。なお、メニュー画像表示制御部42がメニュー画像60を画面に表示する代わりに、ボード画像表示制御部44が他のボード画像64を画面に表示するようにしてもよい。そして、メニュー画像60が画面に表示されている際に、クローズ操作が行われたボード画像64に対応するメニュー項目画像62を再度ユーザがタップした際には、ボード画像表示制御部44が、当該ボード画像64を画面に表示させる。本実施形態では、当該ボード画像64には、デフォルトの実行開始ボタン画像72が含まれる。
【0082】
また、本実施形態では、表示対象となるボード画像64(表示画像の切替により表示可能となるボード画像64)の数の上限(例えば、6つ)が予め定められている。そして、実行開始管理部48が、起動されることによって表示対象となるボード画像64の数が上限を超えることとなるプログラム(例えば、起動されることによって表示対象となるボード画像64の数が7個となるプログラム)を起動する際には、停止終了管理部52は、起動済のフォアグラウンドプログラムであって、プロテクト宣言中ではないフォアグラウンドプログラムのうち、対応するボード画像64のタップが最後に行われた日時が最も早いものを終了させる。
【0083】
また、本実施形態では、情報処理装置10が異常終了した際には、情報処理装置10は、その後に起動される際に、挿入媒体に記憶されている実行状況データを消去する。情報処理装置10は、例えば、実行状況データのファイル名に情報処理装置10の起動日時等の一意の値が含まれている場合には、情報処理装置10の起動時に、当該起動に対応付けられる一意の値とは異なる値がファイル名として含まれる実行状況データを消去するようにしてもよい。
【0084】
本実施形態に係る情報処理装置10では、プログラムが終了された後でも、終了されたプログラムに関連づけられるボード画像64が表示可能な状態に維持されるので、新たなプログラムの起動に伴って起動済のプログラムが終了されても、そのプログラムに関連する情報が配置されたボード画像64をユーザが画面に表示させることが可能な状態が維持されることとなる。
【0085】
なお、本発明は上述の実施形態に限定されるものではない。
【0086】
例えば、停止終了管理部52は、停止されるプログラムのセーフメモリ領域に配置されているデータを、実行状況データとして、挿入媒体に記憶させる代わりに、記憶部22(例えば、当該プログラムが使用している領域外のメモリや、情報処理装置10に内蔵されたフラッシュメモリ等)に記憶させるようにしてもよい。
【0087】
また、例えば、情報処理装置10は、プログラムの種別によって、当該プログラムのセーフメモリ領域に配置されているデータを、実行状況データとして、挿入媒体に記憶させるか記憶部22に記憶させるかを制御するようにしてもよい。情報処理装置10は、例えば、システムアプリケーションが停止する際には、システムアプリケーションのプログラムのセーフメモリ領域に配置されているデータを記憶部22に記憶させるよう制御して、ゲームアプリケーションが停止する際には、ゲームアプリケーションのプログラムのセーフメモリ領域に配置されているデータを挿入媒体に記憶させるよう制御してもよい。
【0088】
また、例えば、情報処理装置10は、実行状況データを挿入媒体に保存する際には、暗号化した上で保存するようにし、実行状況データを記憶部22に保存する際には、暗号化せずに保存するようにしてもよい。
【0089】
また、例えば、停止終了管理部52が、プログラムが停止される(サスペンド状態になる)際に、当該プログラムのセーフメモリ領域に配置されているデータを、実行状況データとして、挿入媒体に記憶させないようにしてもよい。その代わりに、停止終了管理部52は、プログラムが終了される際に、(すなわち、当該プログラムが使用しているリソースが解放される際に)当該プログラムのセーフメモリ領域に配置されているデータを、実行状況データとして、挿入媒体に記憶させるようにしてもよい。
【0090】
また、例えば、プログラムが起動される際に、当該プログラムに関連づけられている実行状況データが記憶されていない場合には、情報処理装置10は、当該プログラムを識別する情報(例えば、当該プログラムの識別子や、当該プログラムの名称など)や、当該プログラムの起動日時を示す情報などと関連づけられる、当該プログラムの実行状況データ(例えば、当該プログラムの起動時に当該プログラムのセーフメモリ領域に配置されているデータをコピーすることにより生成されるファイルである実行状況データ)を生成して、挿入媒体に記憶させるようにしてもよい。そして、情報処理装置10は、プログラムが停止される際には、挿入媒体に記憶されている実行状況データを、停止される際における当該プログラムの実行状況を示す実行状況データに更新するようにしてもよい。
【0091】
また、情報処理装置10は、挿入媒体に記憶されている実行状況データの更新の際に、実行状況データを破損状態にしてから(例えば、実行状況データに関連付けられる情報を変更(例えば、実行状況データのファイル名をリネーム)してから)更新を開始し、更新が終了すると、破損状態にされた実行状況データを元に戻す(例えば、実行状況データに関連付けられる情報を元に戻す(例えば、実行状況データのファイル名を元に戻す))ようにしてもよい。こうすれば、例えば、情報処理装置10は、挿入媒体に記憶されている実行状況データが破損状態であることを確認することによって、当該データが更新中に挿入媒体が抜かれるなどして更新が中途半端に行われた実行状況データであることを検出することが可能となる。そして、情報処理装置10は、当該実行状況データについてはセーフメモリ領域に配置せずに破棄するよう制御するようにしてもよい。
【0092】
なお、挿入媒体に記憶されている実行状況データが破損状態であることが確認された際に、情報処理装置10は、当該実行状況データに対応付けられるプログラムの種別に応じた動作をするようにしてもよい。例えば、情報処理装置10は、システムプログラムを起動する際に、当該システムプログラムの実行状況データが破損状態である場合は、当該実行状況データをセーフメモリ領域に配置した上でシステムプログラムを起動するようにしてもよい。このときは、例えば、システムプログラムによって破損されている実行状況データのハンドリングが行われるようにしてもよい。また、例えば、情報処理装置10は、ゲームプログラムを起動する際に、当該ゲームプログラムの実行状況データが破損状態である場合は、当該データを破棄するようにしてもよい。このとき、例えば、情報処理装置10は、ゲームプログラムの起動時に、当該プログラムの実行状況データを生成して、挿入媒体に記憶させるようにしてもよい。
【0093】
また、セーフメモリ領域のサイズは、プログラムの種別(アプリケーションの種別)に基づいて決定される、あるいは、ユーザによってアプリケーション毎に設定可能であるようにしてもよい。また、例えば、セーフメモリ領域が数キロバイト程度のブロックに区切られていてもよい。そして、停止終了管理部52は、フォアグラウンドプログラムがサスペンド状態になる際や終了される際に、当該プログラムについて挿入媒体に記憶されている実行状況データからデータの内容が変化しているブロック(すなわち、前回の実行状況データの挿入媒体への記憶からデータの内容が変更されているブロック)を、挿入媒体に書き出す(記憶されている実行状況データ中のブロックを更新する)ようにしてもよい。なお、ブロックのサイズは、例えば、挿入媒体のクラスタサイズに基づいて決定されるようにしてもよい。
【0094】
また、情報処理装置10は、ユーザからの要求に応じて、挿入媒体や記憶部22に記憶されている実行状況データを消去する(あるいは、破損状態等、セーフメモリ領域に配置されない状態にする)ようにしてもよい。また、情報処理装置10は、例えば、プログラムのバージョン情報に関連付けて実行状況データを保存するようにしてもよい。そして、情報処理装置10は、保存されている実行状況データとは異なるバージョンのプログラムが起動される際には、当該実行状況データを消去する(あるいは、破損状態等、セーフメモリ領域に配置されない状態にする)ようにしてもよい。
【0095】
また、例えば、サスペンド操作が行われたプログラムに対応するボード画像64が画面に表示されている状態で、ユーザにより、ボード画像64のクローズ操作が行われた際に、停止終了管理部52が、当該ボード画像64に対応するプログラムについて、クローズ操作が行われた際の実行状況を示す実行状況データを、当該プログラムを識別する情報や、当該プログラムの終了の際の日時を示す情報や、クローズ操作が行われた際の画面のスクリーンショットの画像などと関連づけて、挿入媒体に記憶させるようにしてもよい。そして、メニュー画像60が画面に表示されている際に、当該ボード画像64に対応するメニュー項目画像62を再度ユーザがタップした際には、ボード画像表示制御部44が、上述のスクリーンショットの画像を実行開始ボタン画像72として含むボード画像64を画面に表示させるようにしてもよい。そして、クローズ操作が行われたプログラムの実行開始指示操作がユーザにより行われた際には、実行開始管理部48は、当該プログラムと関連づけて記憶されている実行状況データを取得して、当該実行状況データに基づいて、当該プログラムの実行状況を再現して、当該プログラムの実行を再開するようにしてもよい。
【0096】
また、例えば、既にラージプログラムが1つ実行中である状態で、他のラージプログラムが起動される際には、停止終了管理部52が、起動済であるラージプログラムを終了させて、当該ラージプログラムが使用していたリソースを解放するとともに、当該ラージプログラムの実行状況データを、当該プログラムを識別する情報や、当該プログラムの終了の際の日時を示す情報や、画面のスクリーンショットの画像などと関連づけて、挿入媒体に記憶させるようにしてもよい。そして、終了されたラージプログラムに対応するメニュー項目画像62を再度ユーザがタップした際には、ボード画像表示制御部44が、上述のスクリーンショットの画像を実行開始ボタン画像72として含むボード画像64を画面に表示させるようにしてもよい。そして、終了されたラージプログラムプログラムの実行開始指示操作がユーザにより行われた際には、実行開始管理部48は、当該プログラムと関連づけて記憶されている実行状況データを取得して、当該実行状況データに基づいて、当該プログラムの実行状況を再現して、当該プログラムの実行を開始するようにしてもよい。
【0097】
また、例えば、情報処理装置10が、ボード画像64が表示可能な状態となってから(ここでは、情報処理装置10の起動後はじめてボード画像64が表示可能な状態となった場合も、表示可能な状態となったボード画像64が、表示可能ではない状態となり、その後再度表示可能な状態となった場合も含む。)、当該ボード画像64に対応するプログラムの起動が行われたか否かを表すデータを記憶するようにしてもよい。このデータは、例えば、プログラムの識別情報に関連づけられたフラグであり、初期状態が「0」で、当該プログラムに対応するボード画像64が表示可能な状態となってから当該プログラムの起動が最初に行われた際に値が「1」に更新され、その後、当該ボード画像64が表示可能ではない状態となった際に値が「0」に更新されるフラグである。
【0098】
そして、上述のフラグ等に基づいて、ボード画像64が表示可能な状態となってからの当該ボード画像64に対応するプログラムの起動が行われていないと判定される場合(例えば、フラグの値が「0」である場合)には、情報処理装置10は、デフォルトの実行開始ボタン画像72をボード画像64に配置するようにしてもよい。また、情報処理装置10は、当該プログラムの実行開始指示操作がユーザにより行われた際に、上述のフラグ等に基づいて、ボード画像64が表示可能な状態となってからの当該ボード画像64に対応するプログラムの起動が行われていないと判定される場合(例えば、フラグの値が「0」である場合)には、当該プログラムに関連づけられている実行状況データが挿入媒体に記憶されていても、初回起動時と同様の状況で、当該プログラムの実行を開始するようにしてもよい。一方、ボード画像64が表示可能な状態となってからの当該ボード画像64に対応するプログラムの起動が行われていると判定される場合(例えば、フラグの値が「1」である場合)には、情報処理装置10は、スクリーンショットの画像を実行開始ボタン画像72としてボード画像64に配置するようにしてもよい。また、情報処理装置10は、当該プログラムの実行開始指示操作がユーザにより行われた際に、上述のフラグ等に基づいて、ボード画像64が表示可能な状態となってからの当該ボード画像64に対応するプログラムの起動が行われていると判定される場合(例えば、フラグの値が「1」である場合)には、当該プログラムに関連づけられている実行状況データに基づいて、当該プログラムの実行状況を再現して、当該プログラムの実行を開始するようにしてもよい。
【0099】
また、例えば、プログラム実行部50が、プログラムのサスペンド操作が行われたタイミングの画面に関する複数のスクリーンショットの画像(例えば、画面全体のスクリーンショットの画像と画面の一部のスクリーンショットの画像、など)を記憶部又は挿入媒体に記憶させるようにしてもよい。そして、実行開始ボタン画像72としてボード画像64内に配置されるスクリーンショットの画像と、プログラムの実行の再開にあたって、再開の準備処理が終了するまで(例えば、再開後に表示される画像の生成が終了するまで)画面に表示されるスクリーンショットの画像と、が異なるようにしてもよい。
【0100】
なお、プログラムの分類を管理する手法は特に問わない。例えば、記憶部22や挿入媒体に記憶されているプログラム自体に、当該プログラムがラージプログラムであるかミニプログラムであるかを示す情報や、当該プログラムがフォアグラウンドプログラムであるかバックグランドプログラムであるかを示す情報が含まれるようにしてもよいし、プログラムの識別子と当該プログラムの分類(ラージプログラムとミニプログラムのいずれか、及び、フォアグラウンドプログラムとバックグラウンドプログラムのいずれか)とを対応付けた情報が記憶部22に記憶されていてもよい。
【0101】
また、プログラムが表示可能な状態であるか否かを管理する手法は特に問わない。例えば、情報処理装置10で一度でも実行されたことがあるプログラムについては、当該プログラムを識別する情報と、当該プログラムに関連づけられるボード画像64が表示可能な状態であるか否かを示すフラグ(例えば、値1が表示可能な状態であることを示し、値0が表示可能な状態ではないことを示すフラグ)と、を関連づけて記憶部22や挿入媒体に記憶するようにしてもよい。
【0102】
また、停止終了管理部52は、例えば、CPU使用量の上限や、最大同時実行プログラム数の上限を超えた際に、上述のようにして選択される実行継続優先度の値が最も小さいプログラムを終了させるようにしてもよい。
【0103】
また、例えば、ユーザが所定のボタン34を押下するなどの操作を行うことで、プログラムのサスペンド操作を行った際に、メニュー画像表示制御部42が、画面に表示される画像を、メニュー画像60に切り替えるようにしてもよい。
【0104】
また、例えば、プログラムの実行が終了され、当該プログラムが使用していたリソースが解放される際に、当該プログラムのスクリーンショットの画像が情報処理装置10に記憶されている場合には、情報処理装置10が、当該画像を消去するようにしてもよい。
【0105】
また、例えば、サスペンド状態のプログラムの実行が再開される、あるいは、実行状況データが挿入媒体からセーフメモリ領域に配置されたプログラムが起動される際に、プログラムの実行の準備処理が終了するまで、当該プログラムが情報処理装置10にインストールされる際に、記憶部22に記憶される起動用画像が表示されるようにしてもよい。
【0106】
また、プログラムに対するサスペンド操作が行われた際に、停止終了管理部52は、プログラムの種別によってはスクリーンショットの画像の記憶処理を実行しないようにしてもよい。具体的には、例えば、動画再生アプリケーションの実行が停止される際には、スクリーンショットの画像が記憶されないようにしてもよい。この場合には、ボード画像表示制御部44は、実行開始ボタン画像72として、空白の画像や黒一色の画像を配置するようにしてもよい。なお、プログラム実行部50による動画再生アプリケーションの実行中(例えば、動画像の再生中)に、プログラム実行部50が停止終了管理部52に、スクリーンショットの画像の取得を禁止する旨を通知するようにしてもよい。そして、ボード画像表示制御部44は、当該通知を受け付けている間(すなわち、動画像の再生中)に、動画再生アプリケーションが停止されてサスペンド状態になっても、スクリーンショットの画像が実行開始ボタン画像72として配置されないよう制御するようにしてもよい。また、例えば、プログラム実行部50による動画再生アプリケーションの実行中(例えば、動画像の再生中)に、プログラム実行部50がボード画像表示制御部44に、スクリーンショットの画像の表示を禁止する旨を通知するようにしてもよい。そして、ボード画像表示制御部44は、当該通知を受け付けている間(すなわち、動画像の再生中は)に、動画再生アプリケーションの実行が停止されてサスペンド状態になっても、スクリーンショットの画像が実行開始ボタン画像72として表示されないよう制御するようにしてもよい。なお、上述のようにして動画再生アプリケーションの実行が停止されてサスペンド状態になる際には、ボード画像表示制御部44は、動画再生アプリケーションの起動前に実行開始ボタン画像72としてボード画像64内に配置される画像とは別の画像である、動画像の再生が実行中であることを示す画像(当該画像は、例えば、動画再生アプリケーションのインストール時に記憶部22等に記憶される)を、実行開始ボタン画像72としてボード画像64内に配置するようにしてもよい。
【0107】
また、ボード画像表示制御部44は、サスペンド状態となってからのプログラムの進行状況に応じた表示態様(例えば、サスペンド状態になってからの時間に応じた表示態様)で、スクリーンショットの画像を実行開始ボタン画像72として配置するようにしてもよい。例えば、サスペンド状態となってから所定時間が経過するまでは、カラーの画像が実行開始ボタン画像72として配置され、サスペンド状態となってから所定時間が経過した後は、白黒の画像が実行開始ボタン画像72として配置されるようにしてもよい。
【0108】
また、例えば、プログラムが停止される際に、停止される際とは異なるタイミングのスクリーンショットの画像が記憶されるようにしてもよい。そして、プログラムの実行の開始中(例えば、起動中、又は、サスペンド状態からの実行の再開中)に、当該画像が表示部26に表示されるようにしてもよい。
【0109】
また、情報処理装置10が、例えば、ハードディスクドライブ、マイク、スピーカ、カメラ、加速度センサ、などを備えていてもよい。
【0110】
また、上述の情報処理装置10が、複数の筐体(例えば、互いに通信可能な情報処理端末及びサーバ)から構成されていてもよい。そして、上述の情報処理装置10で実行される処理が、情報処理端末とサーバとで分担して実行されるようにしてもよい。例えば、サーバでメニュー画像60やボード画像64に対応付けられるページが生成されて、情報処理端末に出力されるようにしてもよい。そして、情報処理端末が、サーバから受信したページをディスプレイ等に表示するようにしてもよい。
【0111】
また、上記の具体的な文字列や図面中の具体的な文字列は例示であり、これらの文字列には限定されない。