(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-12
(45)【発行日】2024-09-24
(54)【発明の名称】フラッシュメモリ使用量管理
(51)【国際特許分類】
G06F 3/06 20060101AFI20240913BHJP
G06F 12/00 20060101ALI20240913BHJP
G06F 3/08 20060101ALI20240913BHJP
【FI】
G06F3/06 306Z
G06F12/00 550Z
G06F3/06 304N
G06F3/08 H
【外国語出願】
(21)【出願番号】P 2022168445
(22)【出願日】2022-10-20
【審査請求日】2023-02-13
(32)【優先日】2021-10-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ラクシュマン・ナレシュ・コインバトール・アンナドライ
(72)【発明者】
【氏名】クン・ヤング・パーク
(72)【発明者】
【氏名】チョン・ドンギュン
(72)【発明者】
【氏名】マシュー・ウィリアム・クロウリー
(72)【発明者】
【氏名】ファビオ・マルコナート・サッソ
(72)【発明者】
【氏名】エドワード・デクルーズ
【審査官】田名網 忠雄
(56)【参考文献】
【文献】米国特許出願公開第2014/0223074(US,A1)
【文献】特開2020-062759(JP,A)
【文献】特開2021-005210(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06
G06F 12/00
G06F 3/08
(57)【特許請求の範囲】
【請求項1】
コンピューティングデバイスの1つ以上のプロセッサが、複数のアプリケーションの各々による前記コンピューティングデバイスのフラッシュメモリのそれぞれのディスクアクセス使用量を決定することと、
前記1つ以上のプロセッサが、前記複数のアプリケーションの各々による前記フラッシュメモリの前記それぞれのディスクアクセス使用量を、それぞれのアプリケーション固有ディスクアクセス過剰使用閾値と比較して、前記複数のアプリケーションのうちのアプリケーションによる前記フラッシュメモリのディスクアクセス過剰使用を判定することと、
前記アプリケーションによる前記フラッシュメモリの前記ディスクアクセス過剰使用を判定することに応答して、前記1つ以上のプロセッサが、前記アプリケーションを終了することとを備える、方法。
【請求項2】
前記複数のアプリケーションの各々による前記フラッシュメモリの前記それぞれのディスクアクセス使用量を、前記それぞれのアプリケーション固有ディスクアクセス過剰使用閾値と比較して、前記アプリケーションによる前記フラッシュメモリの前記ディスクアクセス過剰使用を判定することはさらに、
前記1つ以上のプロセッサが、前記アプリケーションによる前記フラッシュメモリのディスクアクセス使用量を、前記アプリケーションに関連付けられたディスクアクセス過剰使用閾値と比較することと、
前記アプリケーションによる前記フラッシュメモリの前記ディスクアクセス使用量が、前記アプリケーションに関連付けられた前記ディスクアクセス過剰使用閾値を超えていると判定することに応答して、前記1つ以上のプロセッサが、前記アプリケーションによる前記フラッシュメモリの前記ディスクアクセス過剰使用を判定することとを含む、請求項1に記載の方法。
【請求項3】
前記1つ以上のプロセッサが、前記アプリケーションの
実行形式を表わすアプリケーション状態を判定することと、
前記1つ以上のプロセッサが、前記アプリケーションの前記アプリケーション状態に少なくとも部分的に基づいて、前記アプリケーションに関連付けられた複数のディスクアクセス過剰使用閾値から、前記アプリケーションに関連付けられた前記ディスクアクセス過剰使用閾値を決定することとをさらに備える、請求項2に記載の方法。
【請求項4】
前記1つ以上のプロセッサが、前記コンピューティングデバイスの動作モードを判定することと、
前記1つ以上のプロセッサが、前記コンピューティングデバイスの前記動作モードに少なくとも部分的に基づいて、前記アプリケーションに関連付けられた複数のディスクアクセス過剰使用閾値から、前記アプリケーションに関連付けられた前記ディスクアクセス過剰使用閾値を決定することとをさらに備える、請求項2に記載の方法。
【請求項5】
前記複数のアプリケーションの各々の前記それぞれのアプリケーション固有ディスクアクセス過剰使用閾値は、指定期間に関連付けられ、
前記複数のアプリケーションの各々による前記フラッシュメモリの前記それぞれのディスクアクセス使用量は、前記複数のアプリケーションの各々による前記指定期間内の前記フラッシュメモリの前記それぞれのディスクアクセス使用量である、請求項1に記載の方法。
【請求項6】
前記複数のアプリケーションの各々による前記コンピューティングデバイスの前記フラッシュメモリの前記それぞれのディスクアクセス使用量を決定することはさらに、
前記1つ以上のプロセッサが、システム全体のディスクアクセス過剰使用状況の発生を判定することと、
前記システム全体のディスクアクセス過剰使用状況の発生を判定することに応答して、前記1つ以上のプロセッサが、前記複数のアプリケーションの各々による前記コンピューティングデバイスの前記フラッシュメモリの前記それぞれのディスクアクセス使用量を決定することとを含む、請求項1に記載の方法。
【請求項7】
前記システム全体のディスクアクセス過剰使用状況の発生を判定することはさらに、
前記1つ以上のプロセッサが、前記フラッシュメモリのディスク使用量の総量が、指定時間にわたって指定された閾値を超えていると判定することと、
前記フラッシュメモリの前記ディスク使用量の総量が前記指定時間にわたって前記指定された閾値を超えていると判定することに応答して、前記1つ以上のプロセッサが、前記システム全体のディスクアクセス過剰使用状況の発生を判定することとを含む、請求項6に記載の方法。
【請求項8】
前記アプリケーションを終了することはさらに、
前記アプリケーションによる前記フラッシュメモリの前記ディスクアクセス過剰使用を判定することに応答して、前記1つ以上のプロセッサが、前記コンピューティングデバイスのディスプレイがオフであると判定することと、
前記コンピューティングデバイスの前記ディスプレイがオフであると判定することに応答して、前記1つ以上のプロセッサが、前記アプリケーションを終了することとを含む、請求項1に記載の方法。
【請求項9】
前記アプリケーションを終了することはさらに、
前記アプリケーションによる前記フラッシュメモリの前記ディスクアクセス過剰使用を判定することに応答して、前記1つ以上のプロセッサが、前記コンピューティングデバイスのディスプレイがオフでないと判定することと、
前記コンピューティングデバイスの前記ディスプレイがオフでないと判定することに応答して、前記1つ以上のプロセッサが、前記アプリケーションがフォアグラウンドアプリケーションでないと判定することと、
前記アプリケーションが前記フォアグラウンドアプリケーションでないと判定することに応答して、前記1つ以上のプロセッサが、前記アプリケーションを終了することとを含む、請求項1に記載の方法。
【請求項10】
前記コンピューティングデバイスは、車両のヘッドユニットを含む、請求項1に記載の方法。
【請求項11】
コンピューティングデバイスであって、
フラッシュメモリと、
前記フラッシュメモリに通信可能に結合された1つ以上のプロセッサとを備え、前記1つ以上のプロセッサは、
複数のアプリケーションの各々による前記フラッシュメモリのそれぞれのディスクアクセス使用量を決定し、
前記複数のアプリケーションの各々による前記フラッシュメモリの前記それぞれのディスクアクセス使用量を、それぞれのアプリケーション固有ディスクアクセス過剰使用閾値と比較して、前記複数のアプリケーションのうちのアプリケーションによる前記フラッシュメモリのディスクアクセス過剰使用を判定し、
前記アプリケーションによる前記フラッシュメモリの前記ディスクアクセス過剰使用を判定することに応答して、前記アプリケーションを終了するように構成されている、コンピューティングデバイス。
【請求項12】
前記複数のアプリケーションの各々による前記フラッシュメモリの前記それぞれのディスクアクセス使用量を、前記それぞれのアプリケーション固有ディスクアクセス過剰使用閾値と比較して、前記アプリケーションによる前記フラッシュメモリの前記ディスクアクセス過剰使用を判定するために、前記1つ以上のプロセッサはさらに、
前記アプリケーションによる前記フラッシュメモリのディスクアクセス使用量を、前記アプリケーションに関連付けられたディスクアクセス過剰使用閾値と比較し、
前記アプリケーションによる前記フラッシュメモリの前記ディスクアクセス使用量が、前記アプリケーションに関連付けられた前記ディスクアクセス過剰使用閾値を超えていると判定することに応答して、前記アプリケーションによる前記フラッシュメモリの前記ディスクアクセス過剰使用を判定するように構成されている、請求項11に記載のコンピューティングデバイス。
【請求項13】
前記1つ以上のプロセッサはさらに、
前記アプリケーションの
実行形式を表わすアプリケーション状態を判定し、
前記アプリケーションの前記アプリケーション状態に少なくとも部分的に基づいて、前記アプリケーションに関連付けられた複数のディスクアクセス過剰使用閾値から、前記アプリケーションに関連付けられた前記ディスクアクセス過剰使用閾値を決定するように構成されている、請求項12に記載のコンピューティングデバイス。
【請求項14】
前記1つ以上のプロセッサはさらに、
前記コンピューティングデバイスの動作モードを判定し、
前記コンピューティングデバイスの前記動作モードに少なくとも部分的に基づいて、前記アプリケーションに関連付けられた複数のディスクアクセス過剰使用閾値から、前記アプリケーションに関連付けられた前記ディスクアクセス過剰使用閾値を決定するように構成されている、請求項12に記載のコンピューティングデバイス。
【請求項15】
前記複数のアプリケーションの各々の前記それぞれのアプリケーション固有ディスクアクセス過剰使用閾値は、指定期間に関連付けられ、
前記複数のアプリケーションの各々による前記フラッシュメモリの前記それぞれのディスクアクセス使用量は、前記複数のアプリケーションの各々による前記指定期間内の前記フラッシュメモリの前記それぞれのディスクアクセス使用量である、請求項11に記載のコンピューティングデバイス。
【請求項16】
前記複数のアプリケーションの各々による前記コンピューティングデバイスの前記フラッシュメモリの前記それぞれのディスクアクセス使用量を決定するために、前記1つ以上のプロセッサはさらに、
システム全体のディスクアクセス過剰使用状況の発生を判定し、
前記システム全体のディスクアクセス過剰使用状況の発生を判定することに応答して、前記複数のアプリケーションの各々による前記コンピューティングデバイスの前記フラッシュメモリの前記それぞれのディスクアクセス使用量を決定するように構成されている、請求項11に記載のコンピューティングデバイス。
【請求項17】
前記システム全体のディスクアクセス過剰使用状況の発生を判定するために、前記1つ以上のプロセッサはさらに、
前記フラッシュメモリのディスク使用量の総量が、指定時間にわたって指定された閾値を超えていると判定し、
前記フラッシュメモリの前記ディスク使用量の総量が前記指定時間にわたって前記指定された閾値を超えていると判定することに応答して、前記システム全体のディスクアクセス過剰使用状況の発生を判定するように構成されている、請求項16に記載のコンピューティングデバイス。
【請求項18】
前記アプリケーションを終了するために、前記1つ以上のプロセッサはさらに、
前記アプリケーションによる前記フラッシュメモリの前記ディスクアクセス過剰使用を判定することに応答して、前記コンピューティングデバイスのディスプレイがオフであると判定し、
前記コンピューティングデバイスの前記ディスプレイがオフであると判定することに応答して、前記アプリケーションを終了するように構成されている、請求項11に記載のコンピューティングデバイス。
【請求項19】
前記アプリケーションを終了するために、前記1つ以上のプロセッサはさらに、
前記アプリケーションによる前記フラッシュメモリの前記ディスクアクセス過剰使用を判定することに応答して、前記コンピューティングデバイスのディスプレイがオフでないと判定し、
前記コンピューティングデバイスの前記ディスプレイがオフでないと判定することに応答して、前記アプリケーションがフォアグラウンドアプリケーションでないと判定し、
前記アプリケーションが前記フォアグラウンドアプリケーションでないと判定することに応答して、前記アプリケーションを終了するように構成されている、請求項11に記載のコンピューティングデバイス。
【請求項20】
1つ以上のプロセッサに、請求項1~10のいずれか1項に記載の方法を実行させる、プログラム。
【発明の詳細な説明】
【背景技術】
【0001】
背景
車両は、暖房・換気・空調(heating, ventilation, and air conditioning:HVAC)システム、照明システム(室内灯および/または室外灯の制御用)、娯楽システム、座席システム(運転席および/または助手席の位置制御用)等の車両システムを制御するためのインターフェイス(グラフィカルユーザインターフェイス(GUI)等)を示す、いわゆる「ヘッドユニット」または他の統合コンピューティングデバイスを含む場合がある。
【0002】
ヘッドユニットは、ヘッドユニットの動作中に、ヘッドユニットがデータを書き込むことができ、ヘッドユニットがデータを読み出すことができる1つ以上のソリッドステートストレージデバイス(「フラッシュメモリ」と呼ばれることもある)を含み得る。ソリッドステートストレージデバイスは、NOT-AND(「NAND」)セルなどのセルで構成され得る。セルが現在データを記憶している場合、新しいデータがセルに書き込まれる前に、セルを消去する必要がある。このようなデータの消去および書き込みは、消去サイクルと呼ばれ、セルの摩耗を引き起こし、ソリッドステートストレージデバイスに対するセルの書き込み寿命を制限する可能性がある。たとえば、ソリッドステートストレージデバイスは、セルあたり3,000~10,000回の最大消去サイクル数を有する場合がある。
【0003】
ソリッドステートストレージデバイスの寿命は、ソリッドステートストレージデバイスのセルの最大消去サイクル数およびソリッドステートストレージデバイスの記憶容量に依存し得るが、これは、容量がより高いソリッドステートストレージデバイスのセルが、容量がより低いソリッドステートストレージデバイスのセルよりも少ない消去サイクルを経る可能性があるためである。たとえば、ソリッドステートストレージデバイスの寿命(年)は、次のように表すことができる。
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
概要
一般に、本開示の技術は、車両コンピューティングデバイス(車両ヘッドユニットなど)が、車両コンピューティングデバイスのフラッシュメモリなどのソリッドステートストレージデバイスの使用量を、ソリッドステートストレージデバイスの寿命を向上させる方法で管理できるようにすることに向けられている。すなわち、車両コンピューティングデバイスは、車両コンピューティングデバイスで実行されるアプリケーションによって車両コンピューティングデバイスのフラッシュメモリに指定期間内に書き込むことができるデータの量を制限することができるようにし得る。
【0006】
具体的には、車両コンピューティングデバイスは、車両コンピューティングデバイスで実行されるJava(登録商標)アプリケーション、Javaサービス、およびC++サービスなどの複数のアプリケーションの各々による、1日以内などの指定期間内の、車両コンピューティングデバイスのフラッシュメモリに書き込まれたデータの量などのディスクアクセス使用量を監視し得る。車両コンピューティングデバイスは、複数のアプリケーションの各々によってフラッシュメモリに書き込まれたそれぞれのデータ量を、それぞれのアプリケーション固有ディスク使用量閾値と比較し得る。車両コンピューティングデバイスは、指定期間中のアプリケーションのディスクアクセス使用量がアプリケーション固有ディスク使用量閾値を超えていると判定した場合、アプリケーションがフラッシュメモリのディスクアクセスを過剰に使用していると判定し、アプリケーションを終了する、フラッシュメモリのディスクアクセスの過剰使用についてフラグを立てる、アプリケーションがフラッシュメモリのディスクアクセスを過剰に使用していることを示す通知を生成するなどといった、1つ以上のアクションを行い得る。車両コンピューティングデバイスはまた、1日の終わりまでなどの指定期間の終わりまでアプリケーションを無効にし、それによって、指定期間の終わりまでアプリケーションがフラッシュメモリに追加のデータを書き込むことを防止して、アプリケーションによるフラッシュメモリのディスクアクセスがさらに過剰に使用されるのを防止し得る。
【0007】
本開示の技術は、1つまたは複数の技術的利点を提供する。アプリケーションが指定期間内にフラッシュメモリに書き込むことが許可されるデータ量を決定し、指定期間内にフラッシュメモリに許可されたデータ量を超えて書き込むアプリケーションを無効にすることによって、本開示の技術は、アプリケーションがフラッシュメモリに過剰な量のデータを書き込むことを制限する。車両ヘッドユニットに搭載されたフラッシュメモリは、交換が困難でコストがかかる場合がある。車両ヘッドユニットのフラッシュメモリが寿命に達すると、フラッシュメモリが故障して、車両ヘッドユニットが動作不能になるか、または他の態様では使用不能になる可能性がある。アプリケーションによるフラッシュメモリへの過剰な量のデータの書き込みを防止することは、フラッシュメモリの寿命を維持するのに役立ち、それによって、フラッシュメモリを使用する車両ヘッドユニットの使用可能寿命も延ばして、技術的利点を提供し得る。
【課題を解決するための手段】
【0008】
一例において、本開示は方法について説明し、方法は、コンピューティングデバイスの1つ以上のプロセッサが、複数のアプリケーションの各々によるコンピューティングデバイスのフラッシュメモリのそれぞれのディスクアクセス使用量を決定することと、1つ以上のプロセッサが、複数のアプリケーションの各々によるフラッシュメモリのそれぞれのディスクアクセス使用量を、それぞれのアプリケーション固有ディスクアクセス過剰使用閾値と比較して、複数のアプリケーションのうちのアプリケーションによるフラッシュメモリのディスクアクセス過剰使用を判定することと、アプリケーションによるフラッシュメモリのディスクアクセス過剰使用を判定することに応答して、1つ以上のプロセッサが、アプリケーションを終了することとを備える。
【0009】
他の例において、本開示はコンピューティングデバイスについて説明し、コンピューティングデバイスは、フラッシュメモリと、フラッシュメモリに通信可能に結合された1つ以上のプロセッサとを備え、1つ以上のプロセッサは、複数のアプリケーションの各々によるフラッシュメモリのそれぞれのディスクアクセス使用量を決定し、複数のアプリケーションの各々によるフラッシュメモリのそれぞれのディスクアクセス使用量を、それぞれのアプリケーション固有ディスクアクセス過剰使用閾値と比較して、複数のアプリケーションのうちのアプリケーションによるフラッシュメモリのディスクアクセス過剰使用を判定し、アプリケーションによるフラッシュメモリのディスクアクセス過剰使用を判定することに応答して、アプリケーションを終了するように構成されている。
【0010】
他の例において、本開示は、命令を格納した非一時的コンピュータ読取可能ストレージ媒体について説明し、命令は、実行されると、コンピューティングデバイスの1つ以上のプロセッサに、複数のアプリケーションの各々によるフラッシュメモリのそれぞれのディスクアクセス使用量を、それぞれのアプリケーション固有ディスクアクセス過剰使用閾値と比較して、複数のアプリケーションのうちのアプリケーションによるフラッシュメモリのディスクアクセス過剰使用を判定することと、アプリケーションによるフラッシュメモリのディスクアクセス過剰使用を判定することに応答して、アプリケーションを終了することとを行わせる。
【0011】
1つ以上の例の詳細は、添付の図面および以下の説明に記載されている。本開示の他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0012】
【
図1】本開示で説明する技術のさまざまな態様を実行するように構成された車両の例を示すブロック図である。
【
図2】
図1のヘッドユニット例の例をより詳細に示すブロック図である。
【
図3A】アプリケーションのディスクアクセス使用量を管理するために
図2のヘッドユニットの例が実行可能な動作の例を示すフローチャートである。
【
図3B】アプリケーションのディスクアクセス使用量を管理するために
図2のヘッドユニットの例が実行可能な動作例を示すフローチャートである。
【
図4】
図2のヘッドユニット202の例が、アプリケーションのディスクアクセス使用量を管理するために実行可能な動作例を示すフローチャートである。
【発明を実施するための形態】
【0013】
詳細な説明
図1は、本開示で説明する技術のさまざまな態様を実行するように構成された車両100の例を示すブロック図である。
図1の例では、車両100は、以下の説明では自動車であると仮定されている。しかしながら、本開示で説明する技術は、オートバイ、バス、レクリエーショナル・ビークル(recreational vehicle:RV)、セミトレーラートラック、トラクターまたは他のタイプの農機具、列車、飛行機、ドローン、ヘリコプター、および個人輸送車など、1人または複数の乗員を場所間で搬送可能な任意のタイプの車両に適用され得る。さらに、本開示に記載の技術は、ラップトップコンピュータ、デスクトップコンピュータ、スマートフォン、ウェアラブルデバイス、タブレットコンピュータ、またはフラッシュメモリを含む他の任意のデバイス等の、任意のタイプのコンピューティングデバイスにも適用され得る。
【0014】
図1の例では、車両100は、1つ以上のプロセッサ112、グラフィック処理ユニット(graphics processing unit:GPU)114、およびフラッシュメモリ116を含む。いくつかの例では、1つ以上のプロセッサ112、GPU114、およびトランシーバモジュール(
図1には示されていない)は、集積回路(integrated circuit:IC)として形成され得る。たとえば、ICは、チップパッケージ内の処理チップと見なしてもよく、システムオンチップ(system-on-chip:SoC)でもよい。
【0015】
1つ以上のプロセッサ112およびGPU114の例としては、1つ以上のデジタル信号プロセッサ(digital signal processor:DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(application specific integrated circuits:ASICs)、フィールドプログラマブルロジックアレイ(field programmable logic arrays:FPGAs)、または他の同等の集積もしくは離散論理回路が挙げられるが、これらに限定されない。1つ以上のプロセッサ112は、車両100の中央処理装置(central processing unit:CPU)を表す場合がある。いくつかの例では、GPU114は、GPU114にグラフィックス処理に適した大規模な並列処理能力を提供する集積および/または離散論理回路を含む専用ハードウェアでもよい。いくつかの例では、GPU114はまた、汎用処理能力を含んでもよく、汎用処理タスク(すなわち、非グラフィックス関連タスク)を実装する場合は、汎用(general purpose)GPU(GPGPU)と呼ばれることがある。専用GPU114として示されているが、GPU114は、基礎となる回路基板(いわゆる「マザーボード」など)に統合される統合GPUを表してもよく、他の態様では、1つ以上のプロセッサ112に組み込まれてもよい。
【0016】
1つ以上のプロセッサ112は、さまざまな種類のアプリケーションを実行し得る。アプリケーションの例としては、オフラインマップタイルをフラッシュメモリ116にキャッシュするマッピングアプリケーションなどのナビゲーションアプリケーション、音楽ファイルをフラッシュメモリ116にダウンロードする音楽アプリケーション、ビデオファイルをフラッシュメモリ116にダウンロードするビデオアプリケーション、キャプチャしたビデオファイルをフラッシュメモリ116に格納するダッシュカムアプリケーション、大きなファイルをフラッシュメモリ116に書き込む無線(over the air:OTA)更新アプリケーション、または表示用の可視オブジェクトを生成する他のアプリケーションなどが挙げられる。フラッシュメモリ116は、ヘッドユニット102のシステムメモリとして機能し、1つまたは複数のアプリケーションの実行のための命令を格納し得る。1つ以上のプロセッサ112によるアプリケーションの実行は、1つ以上のプロセッサ112に、表示されるべき画像コンテンツ用のグラフィックスデータを生成させる。1つ以上のプロセッサ112は、1つ以上のプロセッサ112がGPU114に送信する命令またはコマンドに基づいて、さらに他の処理のために画像コンテンツのグラフィックスデータをGPU114に送信し得る。いくつかの例では、1つ以上のプロセッサ112は、表示用の視認可能なオブジェクトを生成しないアプリケーションも実行し得る。たとえば、1つ以上のプロセッサ112は、表示用の視認可能なオブジェクトを生成する他のアプリケーションのためのコアコンポーネントとして機能するバックグラウンドサービスなど、バックグラウンドサービスを実行し得る。
【0017】
1つ以上のプロセッサ112は、アプリケーションプログラミングインターフェイス(application programming interface:API)に従ってGPU114と通信し得る。さらに、本開示で説明する技術は、APIに従って機能する必要はなく、1つ以上のプロセッサ112およびGPU114は、GPU114と通信するための任意の技術を利用し得る。
【0018】
フラッシュメモリ116は、車両100のメモリを表し得る。フラッシュメモリ116は、1つ以上のコンピュータ読取可能ストレージ媒体を含み得る。フラッシュメモリ116の例としては、命令および/またはデータ構造の形態で所望のプログラムコードを搬送または格納するために使用することができ、かつ、コンピュータまたはプロセッサによってアクセスすることができる1つまたは複数のソリッドステートストレージデバイスが挙げられる。
【0019】
いくつかの態様において、フラッシュメモリ116は、1つ以上のプロセッサ112に、本開示では1つ以上のプロセッサ112に起因する機能を実行させる命令を含み得る。したがって、フラッシュメモリ116は、実行されると、1つ以上のプロセッサ(たとえば、1つ以上のプロセッサ112)にさまざまな機能を実行させる命令が格納された非一時的コンピュータ読取可能ストレージ媒体でもよい。
【0020】
フラッシュメモリ116は、非一時的ストレージ媒体である。「非一時的」という用語は、ストレージ媒体が搬送波または伝搬信号で具現化されないことを示す。しかしながら、「非一時的」という用語は、フラッシュメモリ116が移動不可能であること、またはその内容が静的であることを意味すると解釈されるべきではない。一例として、フラッシュメモリ116は、セキュアデジタル(Secure Digital:SD)カードまたはユニバーサルシリアルバス(Universal Serial Bus:USB)大容量ストレージデバイスの場合などのように、車両100から取り外され、別のデバイスに移動され得る。別の例として、フラッシュメモリ116と実質的に同様のメモリが、自律走行車100に挿入され得る。特定の例では、非一時的ストレージ媒体は、時間の経過と共に変化し得るデータを格納し得る。
【0021】
図1に示すように、車両100は、車両システム126を含み得る。車両システム126は、暖房・換気・空調(HVAC)システム、温度調節システム(たとえば、HVACシステムに加えて、加熱および/または冷却されたシートを含み得る)、照明システム(室内照明および/または室外照明を提供するため)、シート制御システム(乗員座席の位置を調整するため)、ミラー制御システム(バックミラー、サイドミラー、サンバイザーミラー等を含む室内ミラーおよび/または室外ミラーを制御するため)、フロントワイパー制御システム、娯楽システム(ラジオ再生、ビデオ再生、画像表示などを制御するため)、安全補助システム(駐車補助、後退補助などを制御するため)、サンルーフ/ムーンルーフ制御システム(サンルーフおよび/またはムーンルーフを制御するため)、および1つ以上のプロセッサ112を介して制御できる他のタイプの車両システムを含み得る。車両システム126の例としては、車両システム126の前述の例のいずれかを制御可能な電子制御ユニット(electronic control unit:ECU)を挙げることができる。
【0022】
図1の例にさらに示すように、車両100は、ディスプレイ120およびユーザインターフェイス122を含み得る。ディスプレイ120は、画像を投影することができる任意のタイプのパッシブ反射型スクリーン、または画像を表示することができるアクティブ反射型もしくは発光型もしくは透過型ディスプレイ(発光ダイオード(light emitting diode:LED)ディスプレイ、有機LED(OLED)ディスプレイ、液晶ディスプレイ(liquid crystal display:LCD)、または他のタイプのアクティブディスプレイなど)を表し得る。車両100は、1つのディスプレイ120を含むように示されているが、車両100の車室全体に配置され得る多数のディスプレイを含み得る。いくつかの例では、ディスプレイ120のパッシブバージョンまたはディスプレイ120のある種のアクティブバージョン(たとえば、OLEDディスプレイ)は、座席、テーブル、ルーフライナー、床材、窓(または窓がないもしくは窓が少ない車両では、壁)または車両の他の態様の車室に統合され得る。ディスプレイ120がパッシブディスプレイを表す場合、ディスプレイ120は、パッシブディスプレイ120に画像を投影もしくは他の態様では再現することができるプロジェクタまたは他の画像投影デバイスも含み得る。さらに、ディスプレイ120は、物理的な計器クラスタ(速度、回転数、エンジン温度などを示す)を仮想的に表す、運転手側のダッシュボードに統合されたディスプレイを含み得る。
【0023】
また、ディスプレイ120は、自律走行車100と有線または無線で通信しているディスプレイを表し得る。ディスプレイ120は、たとえば、ラップトップコンピュータ、ヘッドアップディスプレイ、ヘッドマウントディスプレイ、拡張現実コンピューティングデバイスもしくはディスプレイ(「スマートグラス」など)、仮想現実コンピューティングデバイスもしくはディスプレイ、携帯電話(いわゆる「スマートフォン」を含む)、タブレットコンピュータ、ゲームシステム、または車両100に統合されたディスプレイの延長部分として、またはその代わりとして機能できる別のタイプのコンピューティングデバイスを表し得る。
【0024】
ユーザインターフェイス122は、ユーザが車両100のさまざまな機能を制御するためにインターフェイスすることができる任意のタイプの物理的または仮想的なインターフェイスを表し得る。ユーザインターフェイス122は、物理的なボタン、ノブ、スライダ、または他の物理的な制御機器を含み得る。ユーザインターフェイス(UI)122はまた、車両100の乗員が、一例として、タッチセンシティブスクリーンを介して、またはタッチレスインターフェイスを介して、仮想ボタン、ノブ、スライダまたは他の仮想インターフェイス要素と相互作用する仮想インターフェイスを含み得る。乗員は、車両100内の環境、車両100によるオーディオ再生、車両100によるビデオ再生、車両100を介した送信(携帯電話通話など)、または車両100によって実行可能な他の操作のうちの1つ以上を制御するために、ユーザインターフェイス122と対話し得る。
【0025】
また、ユーザインターフェイス122は、車両100に統合されたディスプレイの延長部分として、またはその代わりとして作用する場合、ディスプレイ120に拡張されたインターフェイスを表し得る。すなわち、ユーザインターフェイス122は、ヘッドアップディスプレイ(heads-up display:HUD)、拡張現実コンピューティングデバイス、仮想現実コンピューティングデバイスもしくはディスプレイ、タブレットコンピュータ、または上に挙げた異なるタイプの拡張ディスプレイのうちの他のものを介して提示される仮想インターフェイスを含み得る。
【0026】
車両100の文脈では、ユーザインターフェイス122はさらに、車両100を手動または半手動で制御するために使用される物理的要素を表し得る。たとえば、ユーザインターフェイス122は、車両100の進行方向を制御するための1つ以上のハンドル、車両100の走行速度を制御するための1つ以上のペダル、1つ以上の手動ブレーキなどを含み得る。
【0027】
図1の例では、1つ以上のプロセッサ112、GPU114、フラッシュメモリ116、ディスプレイ120、およびユーザインターフェイス122は、自動車の文脈でヘッドユニット102(言い換えれば「車両ヘッドユニット102」)と呼ばれるものを少なくとも部分的に集合的に表すことができる。ヘッドユニット102は、車両100のさまざまな側面(たとえば、車両システム126)とインターフェイスすること、および/または乗員のための娯楽および/または車両100に関する情報を提供することができる任意の統合または個別のコンピューティングデバイス(ここで、そのようなヘッドユニットは「インフォテインメントユニット」または「インフォテインメントシステム」と呼ばれることがある)を表し得る。
【0028】
ヘッドユニット102は、フラッシュメモリ116の寿命を延ばすために、1つ以上のプロセッサ112で実行するアプリケーションのディスクI/O(入出力)とも呼ばれるディスクアクセス使用量を監視し、指定期間内のアプリケーションによるディスクアクセス使用量を制限するように構成されたオペレーティングシステム(operating system:OS)130を実行し得る。アプリケーションのディスクアクセス使用量は、アプリケーションによるフラッシュメモリ116への書き込み量に対応し得る。すなわち、いくつかの例では、アプリケーションのディスクアクセス使用量は、アプリケーションによってフラッシュメモリ116に書き込まれるバイト単位のようなデータの量でもよい。OS130は、1つ以上のプロセッサ112で実行されるアプリケーションの各々によるフラッシュメモリ116への書き込み量を監視して、アプリケーションによるディスクアクセス使用量が高すぎるかどうかを判定し得る。OS130は、アプリケーションによるディスクアクセス使用量が高すぎると判定した場合、アプリケーションを終了するなど、アプリケーションのそれ以上のディスクアクセス使用量を制限するために1つ以上の改善策を講じ得る。
【0029】
OS130のカーネルは、フラッシュメモリ116に書き込まれたデータ量等の、フラッシュメモリ116のディスクアクセス使用統計値を追跡し、フラッシュメモリ116の当該ディスクアクセス使用統計値を、フラッシュメモリ116内の1つ以上のファイルに格納し得る。たとえば、カーネルは、フラッシュメモリ116の各ブロックデバイスに書き込まれたセクタ数を含むファイルをフラッシュメモリ116に記憶し、更新し得る。OS130がLinux(登録商標)オペレーティングシステムである例では、そのようなファイルは、/proc/diskstatsファイルでもよい。また、カーネルは、アプリケーション225の各々がフラッシュメモリ116に書き込んだデータ量等の、フラッシュメモリ116のアプリケーション毎のディスクアクセス使用統計値を追跡し、フラッシュメモリ116の当該アプリケーション毎のディスクアクセス使用統計値を含むファイルをフラッシュメモリ116に格納および更新し得る。OS130がLinuxオペレーティングシステムである例では、このようなファイルは、/proc/uid_io/statsファイルでもよい。
【0030】
OS130は、プロセッサ112で実行されたすべてのアプリケーション125A~125N(「アプリケーション125」)によるディスクアクセス使用量を、フラッシュメモリ116の当該アプリケーションごとのディスクアクセス使用統計値を含むフラッシュメモリ116内のファイル、たとえば/proc/uid_io/statsファイルを定期的にポーリングするなどして定期的に決定するデーモンを含み得る。たとえば、デーモンは、/proc/uid_io/statsファイルをポーリングして、UIDごとのディスク入出力統計値をフェッチし得る。proc/uid_io/statsファイルは、1つ以上のプロセッサ112で現在実行中のアプリケーションだけでなく、プロセッサ112で実行したすべてのアプリケーションのUIDごとのディスク入出力統計値を含み得る。具体的には、/proc/uid_io/statsファイルは、アプリケーションごとに、アプリケーションによってフラッシュメモリ116に書き込まれたバイト数などの、UIDごとのディスク入出力統計値を含み得る。OS130は、/proc/uid_io/statsファイル内のUIDごとのディスク入出力統計値に基づいて、1つ以上のプロセッサ112で実行されるアプリケーションの各々のディスクアクセス使用量を決定し得る。たとえば、OS130は、あるアプリケーションについて、アプリケーションのディスクアクセス使用量を、アプリケーションによってシステムフラッシュメモリに書き込まれたバイト数として決定し得る。
【0031】
OS130は、アプリケーション125の各々を、関連付けられたアプリケーションについて、アプリケーションが指定期間中に使用し得るフラッシュメモリ116のディスクアクセスの量を指定するアプリケーション固有ディスクアクセス過剰使用閾値と比較することによって、1日以内(たとえば、その日の午前12時から午後11時59分まで)などの指定期間内にフラッシュメモリ116のディスクアクセスを過剰に使用しているかどうかを判定し得る。アプリケーション125の各アプリケーションは、異なるアプリケーションが異なるメモリアクセス使用要件を有する場合があるため、個別の、アプリケーション固有ディスクアクセス過剰使用閾値を有し得る。たとえば、マッピングアプリケーションおよびメディアアプリケーション(たとえば、音楽ストリーミングアプリケーション)は、他のアプリケーションよりも多くのデータをフラッシュメモリ116に書き込む傾向があり、したがって、各々が他のアプリケーションよりも高いディスクアクセス過剰使用閾値に関連付けられる可能性がある。
【0032】
したがって、OS130は、アプリケーション125のうちのアプリケーションによるフラッシュメモリ116のディスクアクセス使用量を、アプリケーションに関連付けられたアプリケーション固有ディスクアクセス過剰使用閾値と比較して、アプリケーションがディスクアクセスを過剰に使用しているかどうかを判定し得る。OS130は、アプリケーション125のうちのアプリケーションによって使用されるフラッシュメモリ116のディスクアクセス量が、指定期間内にアプリケーションに関連付けられたアプリケーション固有ディスクアクセス過剰使用閾値を超えていると判定した場合、アプリケーションがフラッシュメモリ116のディスクアクセスを過剰に使用していると判定し得る。
【0033】
たとえば、アプリケーション125の各々は、関連付けられたアプリケーションについて、関連付けられたアプリケーションが指定期間中にフラッシュメモリ116に書き込むことができるバイト単位などのデータ量を指定するアプリケーション固有ディスクアクセス過剰使用閾値に関連付けられてもよい。したがって、OS130は、指定期間中にアプリケーション125のうちのアプリケーションによってフラッシュメモリ116に書き込まれたデータの量を、アプリケーション固有ディスクアクセス過剰使用閾値によって示されるような、アプリケーションがフラッシュメモリ116に書き込むことができるデータの量と比較して、アプリケーションがフラッシュメモリ116のディスクアクセスを過剰に使用しているかどうかを判定し得る。
【0034】
したがって、OS130は、アプリケーション125の各々による指定期間内のフラッシュメモリ116のそれぞれのディスクアクセス使用量を、それぞれのアプリケーション固有ディスクアクセス過剰使用閾値と比較することに基づいて、指定期間内にフラッシュメモリ116のディスクアクセスを過剰に使用している1つまたは複数のアプリケーションを決定し得る。OS130は、これに応じて、指定期間内の1つまたは複数のアプリケーションによるそれ以上のディスクアクセスの量を制限するために、1つまたは複数のアクションを実行し得る。たとえば、OS130は、指定期間n内にフラッシュメモリ116のディスクアクセスを過剰に使用しているアプリケーションを終了して、指定期内のアプリケーションによるそれ以上のディスクアクセスの使用を防止し得る。指定期間が1日(たとえば、午前12:00から午後11:59まで)である例では、OS130は、翌日の午前12:00までアプリケーションが実行されないように、アプリケーションを終了し得る。
【0035】
いくつかの例では、OS130は、10秒ごと、1分ごとなどの比較的長い間隔で、アプリケーション125の各々によるフラッシュメモリ116のそれぞれのディスクアクセス使用量を定期的に決定し得る。アプリケーション125の各々によるそれぞれのディスクアクセス使用量を決定する間のそのような長い間隔は、アプリケーション125の1つ以上によるフラッシュメモリ116のディスクアクセスの過剰使用に対して、OS130があまりにも遅く反応する原因となる可能性がある。このように、いくつかの例では、OS130は、システム全体のディスクアクセス過剰使用状況の発生を検出するように構成され得る。OS130は、システム全体のディスクアクセス過剰使用状況の発生を検出することに応答して、アプリケーション125の各々によるフラッシュメモリ116のそれぞれのディスクアクセス使用量を決定し、アプリケーション125の各々によるフラッシュメモリ116のそれぞれのディスクアクセス使用量を、それぞれのディスクアクセス使用量閾値と比較して、フラッシュメモリ116のディスクアクセスを過剰に使用しているアプリケーション125の1つまたは複数を決定し得る。
【0036】
システム全体のディスクアクセス過剰使用状況は、フラッシュメモリ116のディスクアクセス使用量の短いバーストに相当し得る。システム全体のディスクアクセス過剰使用状況が発生しているかどうかを判定するために、OS130は、ヘッドユニット102の起動以降にフラッシュメモリ116に書き込まれたデータの総量を指定する、/proc/diskstatsファイルなどのシステムメモリ内のファイルを定期的にポーリングし得る。OS130は、フラッシュメモリ116に書き込まれたデータの総量について、5秒ごとなどの比較的短い間隔で、そのようなポーリングを実行し得る。いくつかの例では、OS130は、フラッシュメモリ116に書き込まれたデータの総量について、OS130による最後の1つ以上のポーリングにわたるデータの総量が閾値を超えていると、システム全体のディスクアクセス過剰使用状況が発生していると判定し得る。
【0037】
OS130は、指定期間にわたってフラッシュメモリ116に書き込まれたデータの総量が閾値を超えていると、システム全体のディスクアクセス過剰使用状況が発生していると判定し得る。たとえば、OS130は、過去30秒間にフラッシュメモリ116に書き込まれたデータの総量が500メガバイトを超えている場合、システム全体のディスクアクセス過剰使用状況が発生していると判定し得る。したがって、OS130は、システム全体のディスクアクセス過剰使用状況の発生を検出することに応答して、指定期間内のアプリケーション125の各々によるフラッシュメモリ116のそれぞれのディスクアクセス使用量を決定し、指定期間内のアプリケーション125の各々のそれぞれのディスクアクセス使用量を、それぞれのディスクアクセス使用量閾値と比較して、指定期間内にフラッシュメモリ116のディスクアクセスを過剰に使用しているアプリケーション125の1つまたは複数を決定し得る。したがって、OS130は、指定期間内にフラッシュメモリ116のディスクアクセスを過剰に使用しているアプリケーションを終了して、アプリケーションによるフラッシュメモリ116のディスクアクセスのそれ以上の過剰使用を防止し得る。
【0038】
図2は、
図1のヘッドユニット102の例をより詳細に示すブロック図である。
図2の例に示すヘッドユニット202は、
図1に示すヘッドユニット102の一例である。ヘッドユニット202は、1つ以上のプロセッサ212、フラッシュメモリ216、ディスプレイ220、およびUI222を含み得る。1つ以上のプロセッサ212は、
図1に示す1つ以上のプロセッサ112の例である。フラッシュメモリ216は、
図1のフラッシュメモリ116の例である。ディスプレイ220は、
図1のディスプレイ120の例である。UI222は、
図1のUI122の例である。
【0039】
フラッシュメモリ216は、
図1のOS130の例であるOS230を含み得る。OS230は、OS230のさまざまな機能を実行するために1つ以上のプロセッサ212で実行されるウォッチドッグデーモン232、ウォッチドッグサービス234、パワーマネージャ236、ヘルパーサービス238、およびパッケージマネージャ240を含む。たとえば、ウォッチドッグデーモン232は、1つ以上のプロセッサ212で実行されて、ディスクアクセス使用統計値データストア242をポーリングすることによって、ヘッドユニット202のディスクアクセス使用統計値を監視し得る。
【0040】
ディスクアクセス使用統計値データストア242は、フラッシュメモリ216のシステム全体のデータアクセス使用統計値を格納し得る。たとえば、ディスクアクセス使用統計値データストア242は、ヘッドユニット202の起動以降にフラッシュメモリ216に書き込まれたデータ量に関するブロックデバイスごとの統計値を含む/proc/diskstatsファイルを含み得る。
【0041】
また、ディスクアクセス使用統計値データストア242は、フラッシュメモリ216のアプリケーションごとのディスクアクセス使用統計値を格納し得る。たとえば、ディスクアクセス使用統計値データストア242は、1つ以上のプロセッサ212で実行されたすべてのアプリケーション225のユーザ識別子(user identifier:UID)ごとのディスク入出力統計を含む/proc/uid_io/statsファイルを含んでもよく、アプリケーション225の各々はUIDに関連付けられている。具体的には、/proc/uid_io/statsファイルは、アプリケーション225の各アプリケーションについて、各アプリケーションによってフラッシュメモリ216に書き込まれるバイト数の形式のUIDごとのディスク入出力統計を含み得る。このようにして、/proc/uid_io/statsファイルは、アプリケーション225の各アプリケーションによってフラッシュメモリ216に書き込まれるバイト数を個別に追跡し得る。
【0042】
いくつかの例では、ウォッチドッグデーモン232は、1つ以上のプロセッサ212で実行されて、アプリケーション225の各々による指定期間内のフラッシュメモリ216のそれぞれのディスクアクセス使用量を定期的に決定する。指定期間は、1日、2日、1週間などでもよい。たとえば、ウォッチドッグデーモン232は、1つ以上のプロセッサ212で実行されて、ディスクアクセス使用統計値データストア242内の/proc/uid_io/statsファイルを、10秒ごと、15秒ごと、1分ごとなどのM秒ごとに定期的にポーリングし、ヘッドユニット202の起動以降にアプリケーション225の各々によってフラッシュメモリ216に書き込まれた総バイト数を読み出して、アプリケーション225の各々による指定期間内のフラッシュメモリ216のそれぞれのディスクアクセス使用量を決定し得る。
【0043】
ウォッチドッグデーモン232は、1日、12時間、48時間などの指定期間内のフラッシュメモリ216のアプリケーションごとのディスクアクセス使用量を追跡し得る。ディスクアクセス使用統計値データストア242は、ヘッドユニット202の起動以降のフラッシュメモリ216のアプリケーションごとのディスクアクセス使用量を格納するが、ヘッドユニット202の起動は必ずしもそのような期間の開始時に発生するとは限らず、それゆえ、ヘッドユニット202の起動以降のフラッシュメモリ216のアプリケーションごとのディスクアクセス使用量は、指定期間にわたるフラッシュメモリ216のアプリケーションごとのディスクアクセス使用量と同じではない場合がある。たとえば、指定期間が、午前12時から午後11時59分までの1日である場合、午後5時にヘッドユニット202が起動することにより、ディスクアクセス使用統計値データストア242に、その日の午後5時以降のみのフラッシュメモリ216のアプリケーションごとのディスクアクセス使用量を格納させてもよい。
【0044】
このように、ウォッチドッグデーモン232は、ディスクアクセス使用統計値データストア242によって格納された、ヘッドユニット202の起動以降のフラッシュメモリ216のアプリケーションごとのディスクアクセス使用量を使用して、指定期間中のフラッシュメモリ216のアプリケーションごとのディスクアクセス使用量を決定し得る。アプリケーションのUIDは、ヘッドユニット202の再起動にわたって同じであることが保証されないので、OS230のパッケージマネージャ240は、1つ以上のプロセッサ212で実行されて、UIDとアプリケーション225のパッケージ名の間の関連付けを決定し、その関連付けの表示をウォッチドッグデーモン232に送り得る。したがって、ウォッチドッグデーモン232は、指定期間中の再起動にわたってアプリケーション225の各々のUIDを追跡して、指定期間中の再起動にわたるアプリケーション225の各々のディスクアクセス使用量を決定し、アプリケーション225の各アプリケーションと指定期間中のアプリケーションによるフラッシュメモリ216のディスクアクセス使用量との関連付けを、ディスクアクセス使用統計値データストア242に格納し得る。同様に、ウォッチドッグデーモンは、再起動にわたる指定期間中のフラッシュメモリ216のシステム全体のディスクアクセス使用量を追跡し、指定期間中のフラッシュメモリ216のシステム全体のディスクアクセス使用量を、ディスクアクセス使用統計値データストア242に格納し得る。
【0045】
いくつかの例では、ディスクアクセス使用統計値データストア242は、アプリケーション225ごとに、異なるアプリケーション状態およびヘッドユニット202の異なる動作モードに対するアプリケーション用の別々のディスクアクセス使用統計値を格納し得る。いくつかの例では、アプリケーションは、フォアグラウンド状態またはバックグラウンド状態で実行され得る。アプリケーションは、フォアグラウンドアプリケーションである場合、アプリケーションのGUIがディスプレイ220での表示用に出力されるようなフォアグラウンド状態で実行され得る。逆に、アプリケーションは、バックグラウンドアプリケーションである場合、アプリケーションのGUIがディスプレイ220での表示用に出力されないようなバックグラウンド状態で実行され得る。したがって、フォアグラウンド状態にあるときのアプリケーションのディスクアクセス使用量と、バックグラウンド状態にあるときのアプリケーションのディスクアクセス使用量とは、ディスクアクセス使用統計値データストア242において別々に追跡され得る。
【0046】
同様に、ヘッドユニット202は、ガレージモードまたは通常モードなど、異なる動作モードで動作し得る。ヘッドユニット202は、ヘッドユニット202の車両がアイドル状態にある場合、ガレージモードで動作し得る。たとえば、ヘッドユニット202の車両は、指定期間(たとえば、30分、1時間など)、ユーザ(たとえば、乗員)によって使用または操作されていない場合、アイドル状態でもよい。別の例では、ヘッドユニット202の車両は駐車され、車両のエンジンはオフにされる。ヘッドユニット202は、他の態様では、車両がユーザによって使用もしくは操作されているとき、または車両のエンジンがオンにされたときなど、車両がアイドル状態でなくなったときに、通常モードで動作してよい。ヘッドユニット202が通常モードで動作している間のアプリケーション225の各々のディスクアクセス使用量と、ヘッドユニット202がガレージモードで動作している間のアプリケーション225の各々のディスクアクセス使用量とは、したがって、ディスクアクセス使用統計値データストア242において別々に追跡され得る。
【0047】
いくつかの例では、ウォッチドッグデーモン232はまた、1つ以上のプロセッサ212で実行されて、フラッシュメモリ216のシステム全体のディスクアクセス使用量を定期的に決定して、システム全体のディスクアクセス過剰使用状況の発生を判定する。たとえば、ウォッチドッグデーモン232は、1つ以上のプロセッサ212で実行されて、1秒ごと、3秒ごと、5秒ごとなど、NがMより小さいN秒ごとにディスクアクセス使用統計値データストア242内の/proc/diskstatsファイルを定期的にポーリングし、ヘッドユニット202の起動以降にフラッシュメモリ216に書き込まれた総バイト数を読み出す。ウォッチドッグデーモン232は、指定時間にわたってフラッシュメモリ216に書き込まれたデータの総量が閾値を超えると、システム全体のディスクアクセス過剰使用状況が発生していると判定し得る。たとえば、ウォッチドッグデーモン232は、過去30秒間にわたってフラッシュメモリ216に書き込まれたデータの総量が1ギガバイトを超えると、システム全体のディスクアクセス過剰使用状況が発生していると判定し得る。ウォッチドッグデーモン232は、システム全体のディスクアクセス過剰使用状況の発生を判定することに応答して、上述の技術に従うなどして、アプリケーション225の各々による指定時間内のフラッシュメモリ216のそれぞれのディスクアクセス使用量を決定し得る。
【0048】
OS230のウォッチドッグデーモン232は、1つ以上のプロセッサ212で実行されて、ディスクアクセス使用統計値データストア242に格納されたディスクアクセス使用統計値を利用して、1つまたは複数のアプリケーションによるフラッシュメモリ216のディスクアクセスの過剰使用を検出し、1つまたは複数のアプリケーションによるフラッシュメモリ216のディスクアクセスのそのような過剰使用を是正し得る。そのために、ウォッチドッグデーモン232は、アプリケーション225の各々によるフラッシュメモリ216のそれぞれのディスクアクセス使用量を決定することに応答して、またはシステム全体のディスクアクセス過剰使用状況の発生を判定することに応答して、アプリケーション225の各々によるフラッシュメモリ216のそれぞれのディスクアクセス使用量をそれぞれのアプリケーション固有ディスクアクセス使用量閾値と比較して、アプリケーション225の1つまたは複数のアプリケーションによるフラッシュメモリ216のディスクアクセス過剰使用を検出し得る。
【0049】
アプリケーションに関連付けられたディスクアクセス使用量閾値は、指定期間中に(たとえば、1日に)アプリケーションによってフラッシュメモリ216に書き込むことができるデータの総量(たとえば、バイト単位)を示し得る。したがって、アプリケーションのディスクアクセス使用量をアプリケーションに関連付けられたディスクアクセス使用量閾値と比較するために、ウォッチドッグデーモン232は、ディスクアクセス使用統計値データストア242に格納されるような、指定期間中のアプリケーションのディスクアクセス使用量を、アプリケーションに関連付けられたディスクアクセス使用量閾値と比較し得る。ウォッチドッグデーモン232が、指定期間中のアプリケーションのディスクアクセス使用量が、アプリケーションに関連付けられたディスクアクセス使用量閾値を超える(すなわち、それより大きい)と判定した場合、ウォッチドッグデーモン232は、アプリケーションによるフラッシュメモリ216のディスクアクセスの過剰使用を判定し得る。
【0050】
いくつかの例では、アプリケーション225の各々は、複数のアプリケーション固有ディスクアクセス使用量閾値に関連付けられてもよい。いくつかの例では、アプリケーションは、フォアグラウンド状態に関連付けられたディスクアクセス使用量閾値およびバックグラウンド状態に関連付けられたディスクアクセス使用量閾値など、複数のアプリケーション状態の各々に関連付けられたディスクアクセス使用量閾値に関連付けられてもよい。いくつかの例では、アプリケーションは、ガレージモードに関連付けられたディスクアクセス使用量閾値など、ヘッドユニット202の1つ以上の動作モードの各々に関連付けられたディスクアクセス使用量閾値に関連付けられてもよい。
【0051】
アプリケーションに関連付けられた複数のディスクアクセス使用量閾値は、互いに異なり得る。いくつかの例では、ガレージモードに関連付けられたディスクアクセス使用量閾値は、フォアグラウンド状態に関連付けられたディスクアクセス使用量閾値およびバックグラウンド状態に関連付けられたディスクアクセス使用量閾値より大きくてもよいが、これは、ヘッドユニット202がガレージモードにあるとき、システム更新およびアプリケーション更新をダウンロードおよび/または実行し、したがってヘッドユニット202がガレージモードでないときよりも多い量のデータをフラッシュメモリ216に書き込んでいる可能性があるためである。いくつかの例では、1つ以上のプロセッサ212で実行されているフォアグラウンドアプリケーションを終了しないために、フォアグラウンド状態に関連付けられたディスクアクセス使用量閾値は、バックグラウンド状態に関連付けられたディスクアクセス使用量閾値より大きくてもよい。
【0052】
このように、アプリケーションによるフラッシュメモリ216のディスクアクセス使用量を、アプリケーションに関連付けられたアプリケーション固有ディスクアクセス使用量閾値と比較するために、ウォッチドッグデーモン232は、ヘッドユニット202の動作モードおよび/またはアプリケーションのアプリケーション状態を判定し得る。たとえば、ウォッチドッグデーモン232は、パッケージマネージャ240から、アプリケーションのアプリケーション状態の指示を受信し得る、および/または、パワーマネージャ236から、ヘッドユニット202の動作モードの指示を受信し得る。
【0053】
ウォッチドッグデーモン232は、アプリケーションのアプリケーション状態および/またはヘッドユニット202の動作モードに基づいて、複数のアプリケーション固有ディスクアクセス使用量閾値の中からアプリケーション固有ディスクアクセス使用量閾値を決定し得、アプリケーションによるフラッシュメモリ216のディスクアクセス使用量を、アプリケーションに関連付けられた、決定されたアプリケーション固有ディスクアクセス使用量閾値と比較し得る。たとえば、ウォッチドッグデーモン232は、アプリケーションがフォアグラウンド状態にあると判定する場合、フォアグラウンド状態にある間のアプリケーションのフラッシュメモリ216のディスクアクセス使用量を、フォアグラウンド状態に関連付けられたディスクアクセス使用量閾値と比較し得る。別の例では、ウォッチドッグデーモン232は、ガレージモードにあると判定した場合、アプリケーションのフラッシュメモリ216のディスクアクセス使用量を、ガレージモードに関連付けられたディスクアクセス使用量閾値と比較し得る。
【0054】
したがって、ウォッチドッグデーモン232は、指定期間内のアプリケーション225の各々によるフラッシュメモリ216のそれぞれのディスクアクセス使用量を、それぞれのアプリケーション固有ディスクアクセス使用量閾値と比較して、フラッシュメモリ216のディスクアクセスを過剰に使用するアプリケーション225の1つ以上を判定し得る。具体的には、ウォッチドッグデーモン232は、指定期間内のアプリケーションによるフラッシュメモリ216のディスクアクセス使用量がアプリケーション固有ディスクアクセス使用量閾値を超えると判定した場合、アプリケーションがフラッシュメモリ216のディスクアクセスを過剰に使用していると判定し得る。
【0055】
また、いくつかの例では、ウォッチドッグデーモン232は、指定期間内のアプリケーション225の各々によるフラッシュメモリ216のそれぞれのディスクアクセス使用量を、それぞれのアプリケーション固有ディスクアクセス使用量閾値と比較することに基づいて、フラッシュメモリ216のディスクアクセスを過剰に使用していないが潜在的に指定期間の終了前にフラッシュメモリ216のディスクアクセスを過剰に使用する危険性があるアプリケーション224の1つまたは複数を判定し得る。たとえば、ウォッチドッグデーモン232が、指定期間内のアプリケーションによるフラッシュメモリ216のディスクアクセス使用量がアプリケーション固有ディスクアクセス使用量閾値を超えないが、代わりに、アプリケーション固有ディスクアクセス使用量閾値の70%を超えるなどして、アプリケーション固有ディスクアクセス使用量閾値の指定割合を超えていると判定する場合、ウォッチドッグデーモン232は、潜在的にアプリケーションが指定期間の終わりまでにフラッシュメモリ216のディスクアクセスを過剰に使用する危険性があると判定し得る。
【0056】
ウォッチドッグデーモン232は、フラッシュメモリ216のディスクアクセスを過剰に使用していないアプリケーション225の1つまたは複数の各々について、アプリケーションがフラッシュメモリ216のディスクアクセスを過剰に使用することになる前に、アプリケーションによるフラッシュメモリ216のディスクアクセス使用量の残量を決定し得る。具体的には、ウォッチドッグデーモン232は、アプリケーションについて、アプリケーションがフラッシュメモリ216のディスクアクセスを過剰に使用することになる前の、アプリケーションによるフラッシュメモリ216のディスクアクセス使用量の残量を、アプリケーションに関連付けられたアプリケーション固有ディスクアクセス使用量閾値と、指定期間内のアプリケーションによるフラッシュメモリ216のディスクアクセス使用量との差として決定し得る。
【0057】
ウォッチドッグデーモン232は、ウォッチドッグデーモン232によって収集されたデータをウォッチドッグサービス234にプッシュするために、1つ以上のプロセッサ212で実行されるウォッチドッグサービス234と通信し得る。たとえば、定期的なポーリングの各々において、ウォッチドッグデーモン232は、最新のアプリケーションごとの統計値(たとえば、残存バイト、総書き込みバイト、指定期間の過剰使用の総数など)を、潜在的な過剰使用および実際の過剰使用のリストと共に、ウォッチドッグサービス234にプッシュする。
【0058】
いくつかの例では、ウォッチドッグデーモン232および/またはウォッチドッグサービス234は、潜在的に指定期間の終了前にフラッシュメモリ216のディスクアクセスを過剰に使用する危険性があると判定された各アプリケーションに、アプリケーションが潜在的に指定期間の終了前にフラッシュメモリ216のディスクアクセスを過剰に使用する危険性があると示す通知を送信し得る。いくつかの例では、ウォッチドッグデーモン232は、ネイティブサービスに通知を送信し得る一方で、ウォッチドッグサービス234は、Javaアプリケーションおよびサービスに通知を送信し得る。ウォッチドッグデーモン232および/またはウォッチドッグサービス234は、各アプリケーションに送信される通知に、アプリケーションがフラッシュメモリ216のディスクアクセスを過剰に使用する前に、アプリケーションによるフラッシュメモリ216のディスクアクセス使用量の残量を含み得る。アプリケーションは、通知の受信に応答して、アプリケーションがフラッシュメモリ216に書き込むバイト数を減らすなど、指定期間中にフラッシュメモリ216のディスクアクセス使用量を減らすための1つまたは複数のアクションを取り得る。
【0059】
いくつかの例において、アプリケーションは、いつでも、アプリケーションがフラッシュメモリ216のディスクアクセスを過剰に使用する前に、アプリケーションによるフラッシュメモリ216のディスクアクセス使用量の残りに関して、ウォッチドッグデーモン232および/またはウォッチドッグサービス234に問い合わせてもよい。ウォッチドッグデーモン232および/またはウォッチドッグサービス234は、アプリケーションからそのような問い合わせを受信することに応答して、アプリケーションがフラッシュメモリ216のディスクアクセスを過剰に使用する前に、アプリケーションによるフラッシュメモリ216のディスクアクセス使用量の残量を決定し、アプリケーションがフラッシュメモリ216のディスクアクセスを過剰に使用する前に、アプリケーションによるフラッシュメモリ216のディスクアクセス使用量の残量の表示をアプリケーションに送信し得る。
【0060】
ウォッチドッグサービス234は、ウォッチドッグサービス234がフラッシュメモリ216のディスクアクセスを過剰に使用していると判定したアプリケーション225の1つ以上の各々について、当該アプリケーションがヘッドユニット202によって終了可能かどうかを判定し得る。いくつかの例では、アプリケーション225は、ヘッドユニット202の相手先ブランド製造業者(original equipment manufacturers:OEMs)およびOS230を開発または制御した組織と同じ組織によって開発または制御されるアプリケーションであるファーストパーティアプリケーション、ならびにヘッドユニット202のOEMまたはOS230を開発もしくは制御した組織によって開発もしくは制御されないサードパーティアプリケーションを含み得る。いくつかの例では、ヘッドユニット202はサードパーティアプリケーションを終了し得るが、ヘッドユニット202は、安全終了リストに明示的に含まれるファーストパーティアプリケーションを終了することだけが可能でもよい。これは、特定のファーストパーティアプリケーションが、ヘッドユニット202の適切な機能のためにヘッドユニット202が依存し得る重要なシステムコンポーネントである可能性があるためである。このように、ウォッチドッグサービス234は、アプリケーションがサードパーティアプリケーションである場合、またはアプリケーションが安全終了リストに明示的に含まれるファーストパーティアプリケーションである場合、ヘッドユニット202がアプリケーションを終了することができると判定し得る。
【0061】
ウォッチドッグサービス234は、ウォッチドッグサービス234がフラッシュメモリ216のディスクアクセスを過剰に使用していると判定し、かつ、ヘッドユニット202が終了することができないアプリケーション225の各アプリケーションに、アプリケーションがフラッシュメモリ216のディスクアクセスを過剰に使用していると示す通知を送信し得る。アプリケーションは、通知を受信したことに応答して、アプリケーションがフラッシュメモリ216に書き込むバイト数を減らすなど、指定期間中のフラッシュメモリ216のディスクアクセス使用量を減らすための1つ以上のアクションを実行し得る。
【0062】
ウォッチドッグサービス234は、ウォッチドッグサービス234がフラッシュメモリ216のディスクアクセスを過剰に使用していると判定し、かつ、ヘッドユニット202が終了することができると判定したアプリケーション225の各アプリケーションについて、アプリケーションを終了するかどうかを判定し得る。アプリケーションを終了することは、1つ以上のプロセッサ212によるアプリケーションの実行を停止させることを含み得る。アプリケーションが終了されると、ヘッドユニット202は、ユーザがUI222において、1つ以上のプロセッサ212におけるアプリケーションの実行を再開するコマンドに対応する入力を提供するまで、1つ以上のプロセッサ212におけるアプリケーションの実行を控え得る。アプリケーションを終了するために、ウォッチドッグサービス234は、終了するべきアプリケーションの指示を、1つ以上のプロセッサ212で実行されるOS230のヘルパーサービス238に送信し得る。ヘルパーサービス238は、ウォッチドッグサービス234から終了すべきアプリケーションの指示を受信することに応答して、指示されたアプリケーションを終了し得る。
【0063】
いくつかの例では、ウォッチドッグサービス234は、フラッシュメモリ216のディスクアクセスを過剰に使用していると判定し、かつ、ヘッドユニット202が終了することができるアプリケーションを終了するかどうかを判定するために、アプリケーションによるフラッシュメモリ216のディスクアクセスの過剰使用がアプリケーションによるフラッシュメモリ216のディスクアクセスの過剰使用の再発生であるかどうかを判定し得る。ウォッチドッグサービス234は、アプリケーションによるフラッシュメモリ216のディスクアクセスの過剰使用を検出するたびに、アプリケーションによるフラッシュメモリ216のディスクアクセスのそのような過剰使用の指示を、ディスクアクセス使用統計値データストア242などに保存し、それによって、アプリケーションがフラッシュメモリ216のディスクアクセスを過剰使用した回数を時間の経過と共に追跡し続け得る。
【0064】
このように、ウォッチドッグサービス234は、アプリケーションによるフラッシュメモリ216のディスクアクセスの過剰使用の発生回数が指定日数内に指定回数以上発生すると判定した場合、アプリケーションによるフラッシュメモリ216のディスクアクセスの過剰使用はアプリケーションによるフラッシュメモリ216のディスクアクセスの過剰使用の再発生であると判定し得る。たとえば、ウォッチドッグサービス234は、アプリケーションによるフラッシュメモリ216のディスクアクセスの過剰使用が30日以内に7回以上発生する場合、アプリケーションによるフラッシュメモリの216のディスクアクセスの過剰使用は、アプリケーションによるフラッシュメモリ216のディスクアクセスの過剰使用の再発生であると判定し得る。ウォッチドッグサービス234は、アプリケーションによるフラッシュメモリ216のディスクアクセスの過剰使用がアプリケーションによるフラッシュメモリ216のディスクアクセスの過剰使用の再発生であると判定することに応答して、アプリケーションを終了し得る。
【0065】
いくつかの例では、ウォッチドッグサービス234は、ウォッチドッグサービス234がフラッシュメモリ216のディスクアクセスを過剰に使用していると判定し、かつ、ディスプレイ220がオフの場合にヘッドユニット202を終了することが可能であるアプリケーションを終了し得る。したがって、ウォッチドッグサービス234は、アプリケーションがフラッシュメモリ216のディスクアクセスを過剰に使用しており、ヘッドユニット202がアプリケーションを終了することができると判定したことに応答して、ディスプレイ220がオンになっているかどうかを判定し得る。ウォッチドッグサービス234は、ディスプレイがオンでないと判定した場合、これに応答して、アプリケーションを終了し得る。いくつかの例では、ウォッチドッグサービス234は、アプリケーションによるフラッシュメモリ216のディスクアクセスの過剰使用は、アプリケーションによるフラッシュメモリ216のディスクアクセスの過剰使用の再発生でないと判定することに応答して、ディスプレイ220がオンかどうかを判定し得る。ウォッチドッグサービス234は、ディスプレイ220がオンでいないと判定した場合、これに応じて、アプリケーションを終了し得る。
【0066】
いくつかの例では、ウォッチドッグサービス234は、ディスプレイ220がオンの場合、ウォッチドッグサービス234がフラッシュメモリ216のディスクアクセスを過剰に使用していると判定し、かつ、アプリケーションがフォアグラウンドアプリケーションでなければヘッドユニット202が終了可能なアプリケーションを終了し得る。ウォッチドッグサービス234は、パッケージマネージャ240から、アプリケーションがフォアグラウンドアプリケーションであるかバックグラウンドアプリケーションであるかを判定するために、アプリケーションのアプリケーション状態の表示を受信し得る。ウォッチドッグサービス234は、アプリケーションがバックグラウンドアプリケーションであると判定することに応答して、アプリケーションを終了し得る。
【0067】
いくつかの例では、ウォッチドッグサービス234は、ディスプレイ220がオンでありアプリケーションがフォアグラウンドアプリケーションである場合など、フラッシュメモリ216のディスクアクセスを過剰に使用しているアプリケーションを終了できない場合、アプリケーションがフラッシュメモリ216のディスクアクセスを過剰に使用しているとヘッドユニット202のユーザに通知して、ユーザがアプリケーションを終了するかどうかを選択できるようにし得る。たとえば、ウォッチドッグサービス234は、フラッシュメモリ216のディスクアクセスを過剰に使用しているアプリケーションを終了することができないと判定することに応答して、ディスプレイ220における表示のために、アプリケーションがフラッシュメモリ216のディスクアクセスを過剰に使用していると示す通知を出力し得る。ユーザが、ディスプレイ220に表示されている通知に応答して、アプリケーションを終了する要求に対応するユーザ入力をUI222で提供した場合、ウォッチドッグサービス234は、アプリケーションを終了し得る。
【0068】
図3Aおよび
図3Bは、アプリケーションのディスクアクセス使用量を管理するために、
図2のヘッドユニット202の例によって実行可能な動作例を示すフローチャートである。
図3Aおよび
図3Bの技術は、
図2のヘッドユニット202の文脈で説明される。
【0069】
図3Aに示すように、OS230は、システム全体のディスクアクセス過剰使用状況の発生を検出し、これに応答して、ヘッドユニット202におけるアプリケーション225の各々のアプリケーションごとのディスクアクセス使用統計値を決定し得る(302)。いくつかの例では、システム全体のディスクアクセス過剰使用状況の発生を検出する代わりに、またはそれに加えて、OS230は、アプリケーション225の各々のディスクアクセス使用統計値を定期的に決定し得る(304)。アプリケーション225の各々のアプリケーションごとのディスクアクセス使用統計値は、アプリケーション225のアプリケーションごとに、1日以内などの指定期間内にアプリケーションによってフラッシュメモリ216に書き込まれるデータの量でもよい。
【0070】
OS230は、アプリケーション225の各々のディスクアクセス使用統計値を決定することに応答して、各アプリケーションのディスクアクセス使用量をアプリケーション固有ディスクアクセス使用量閾値と比較し得る(306)。アプリケーション225の各アプリケーションは、アプリケーションに固有のディスクアクセス使用量閾値に関連付けられてもよい。このように、アプリケーション225の異なるアプリケーションは、異なるディスクアクセス使用量閾値を有し得る。
【0071】
いくつかの例では、アプリケーションは異なるアプリケーション状態で動作してもよく、アプリケーションに関連付けられたアプリケーション固有ディスクアクセス使用量閾値は、アプリケーションのアプリケーション状態に応じて変化し得るアプリケーション状態固有ディスクアクセス使用量閾値を含み得る。たとえば、アプリケーションは、フォアグラウンド状態またはバックグラウンド状態で動作し得る。アプリケーションは、アプリケーションのグラフィカルユーザインターフェイスがヘッドユニット202のディスプレイで出力されている場合、フォアグラウンド状態で動作する。逆に、アプリケーションは、アプリケーションのグラフィカルユーザインターフェイスがヘッドユニット202のディスプレイで出力されていない場合、バックグラウンド状態で動作する。
【0072】
したがって、アプリケーションは、フォアグラウンドディスクアクセス使用量閾値とバックグラウンドディスクアクセス使用量閾値との両方に関連付けられ得る。いくつかの例では、アプリケーションに関連付けられたフォアグラウンドディスクアクセス使用量閾値は、アプリケーションに関連付けられたバックグラウンドディスクアクセス使用量閾値と異なってもよい。たとえば、アプリケーションに関連付けられたフォアグラウンドディスクアクセス使用量閾値は、アプリケーションに関連付けられたバックグラウンドディスクアクセス使用量閾値より大きくてもよい。
【0073】
アプリケーションがフォアグラウンド状態で動作する場合、OS230は、アプリケーションのディスクアクセス使用量を、アプリケーションに関連付けられたフォアグラウンドディスクアクセス閾値と比較して、アプリケーションのディスクアクセス使用量がフォアグラウンドディスクアクセス閾値を超えているかどうかを判定し得る。逆に、アプリケーションがバックグラウンド状態で動作する場合、OS230は、アプリケーションのディスクアクセス使用量を、アプリケーションに関連付けられたバックグラウンドディスクアクセス閾値と比較して、アプリケーションのディスクアクセス使用量がバックグラウンドディスクアクセス閾値を超えているかどうかを判定し得る。
【0074】
いくつかの例では、ヘッドユニット202は、異なるシステムモードで動作してもよく、アプリケーションに関連付けられたアプリケーション固有ディスクアクセス使用量閾値は、ヘッドユニット202のシステムモードに応じて変化し得る。たとえば、ヘッドユニット202は、通常モードまたはガレージモードのいずれかで動作し得る。ヘッドユニット202は、ヘッドユニット202の車両が駐車され、車両のエンジンが切られている場合、ガレージモードで動作し得、ヘッドユニット202は、車両のエンジンが切られていない場合、通常モードで動作し得る。
【0075】
したがって、アプリケーションは、アプリケーションに関連付けられたフォアグラウンドディスクアクセス閾値およびアプリケーションに関連付けられたバックグラウンドディスクアクセス閾値とは異なり得るガレージモードディスクアクセス使用量閾値に関連付けられ得る。たとえば、ヘッドユニット202がガレージモードで動作する場合、ヘッドユニット202は、アプリケーション225および/またはOS230に対する更新をダウンロードしインストールしてもよく、したがって、アプリケーションがフォアグラウンド状態またはバックグラウンド状態にあるときよりも速い速度で、フラッシュメモリ216に対する読み取りおよび書き込みを実行し得る。このように、アプリケーションに関連付けられたガレージモードディスクアクセス使用量閾値は、アプリケーションに関連付けられたフォアグラウンドディスクアクセス閾値およびアプリケーションに関連付けられたバックグラウンドディスクアクセス閾値より高くてもよい。
【0076】
アプリケーションのディスクアクセス使用量をアプリケーション固有ディスクアクセス使用量閾値と比較するために、OS230は、アプリケーションに関連付けられたバックグラウンドディスクアクセス使用量閾値、アプリケーションに関連付けられたフォアグラウンドディスクアクセス使用量閾値、アプリケーションに関連付けられたガレージモードディスクアクセス使用量閾値、およびアプリケーションに関連付けられた通常モードディスクアクセス使用量閾値といった、アプリケーションに関連付けられた複数のディスクアクセス使用量閾値を決定し得る。OS230は、アプリケーションの現在のアプリケーション状態および/またはヘッドユニット202の現在の動作モードを判定し得る。OS230は、アプリケーションの現在のアプリケーション状態および/またはヘッドユニット202の現在の動作モードに基づいて、アプリケーションに関連付けられた複数のディスクアクセス使用量閾値のうち、アプリケーションに関連付けられたディスクアクセス使用量閾値を決定し得る。したがって、OS230は、アプリケーションのディスクアクセス使用量を、アプリケーションに関連付けられたディスクアクセス使用量閾値と比較し得る。
【0077】
OS230は、アプリケーション225の各々のディスクアクセス使用量を、それぞれのアプリケーション固有ディスクアクセス使用量閾値と比較して、アプリケーション225の各々のディスクアクセス使用量がアプリケーションに関連付けられたディスクアクセス使用量閾値を超えているかどうかを判定し得る(308)。OS230は、アプリケーションのディスクアクセス使用量がアプリケーションに関連付けられたディスクアクセス使用量閾値を超えていないと判定した場合、アプリケーションのディスクアクセス使用量がアプリケーションに関連付けられたディスクアクセス使用量閾値の指定割合、たとえば、70%を超えているかどうかを判定し得る(310)。
【0078】
OS230は、アプリケーションのディスクアクセス使用量がアプリケーションに関連付けられたディスクアクセス使用量閾値の指定割合を超えると判定した場合、アプリケーションのディスクアクセス使用量がアプリケーションに関連付けられたディスクアクセス使用量閾値を超えている場合、アプリケーションが終了する可能性があると警告し得る。具体的には、OS230は、過剰なディスクアクセス使用量によりアプリケーションを終了することができるかどうかを判定し得る(312)。過剰なディスクアクセス使用量のためにアプリケーションを終了することができない場合、アプリケーションのディスクアクセス使用量がアプリケーションに関連付けられたディスクアクセス使用量閾値を超えている場合はアプリケーションが終了する可能性があると、アプリケーションに警告する必要はないことがある。
【0079】
いくつかの例では、すべてのサードパーティアプリケーションは、過剰なディスクアクセス使用量により終了することができるが、ファーストパーティアプリケーションおよびシステムアプリケーションは、これらのアプリケーションが安全終了リストに載っていない限り、過剰なディスクアクセス使用量により終了することができない。したがって、アプリケーションを過剰なディスクアクセス使用量により終了することができるかどうかを判定するために、OS230は、アプリケーションがサードパーティアプリケーションであるか、または安全終了リスト上のアプリケーションであるかを判定し得る。
【0080】
OS230は、過剰なディスクアクセス使用量のためにアプリケーションを終了することができると判定した場合、OS230が以前に、アプリケーションのディスクアクセス使用量がアプリケーションに関連付けられたディスクアクセス使用量閾値を超えている場合、アプリケーションを終了することができると警告する通知をアプリケーションに送信しているかどうかを判定し得る(314)。OS230が、アプリケーションのディスクアクセス使用量がアプリケーションに関連付けられたディスクアクセス使用量閾値を超えた場合にアプリケーションが終了する可能性があると警告する通知をアプリケーションに以前に送信していないと判定した場合、OS230は、アプリケーションのディスクアクセス使用量がアプリケーションに関連付けられたディスクアクセス使用量閾値を超えている場合にアプリケーションが終了する可能性があると警告する通知を、アプリケーションに送信し得る(316)。
【0081】
いくつかの例では、通知は、アプリケーションによってフラッシュメモリ216に安全に書き込むことができるデータの残量を示し得る。アプリケーションによってフラッシュメモリ216に安全に書き込むことができるデータの残量は、アプリケーションに関連付けられたディスクアクセス使用量閾値と、アプリケーションの現在のディスクアクセス使用量との差でもよい。
【0082】
OS230が、アプリケーションのディスクアクセス使用量がアプリケーションに関連付けられたディスクアクセス使用量閾値を超えていると判定した場合、OS230は、過剰なディスクアクセス使用量のためにアプリケーションを終了することができるかどうかを判定し得る(318)。上述したように、いくつかの例では、すべてのサードパーティアプリケーションは、過剰なディスクアクセス使用量により終了することができるが、ファーストパーティアプリケーションおよびシステムアプリケーションは、これらのアプリケーションが安全終了リスト上にない限り、過剰なディスクアクセス使用量により終了することができない。OS230が、過剰なディスクアクセス使用量のためにアプリケーションを終了することができないと判定した場合、OS230は、アプリケーションのディスクアクセス使用量が過剰であると示す通知を、アプリケーションに送信し得る(320)。アプリケーションは、通知を受信したことに応答して、そのディスクアクセス使用量を減らし得る。
【0083】
OS230は、アプリケーションのディスクアクセス使用量がアプリケーションに関連付けられたディスクアクセス使用量閾値を超え、過剰なディスクアクセス使用量のためにアプリケーションを終了することができると判定した場合、アプリケーションのディスクアクセス使用量が過剰であると示す通知をアプリケーションに送信し得(329)、特定の状況下でアプリケーションを終了し得る。
図3Bに示すように、OS230は、アプリケーションのディスクアクセス使用量がアプリケーションに関連付けられたディスクアクセス使用量閾値を超え、過剰なディスクアクセス使用量のためにアプリケーションを終了することができると判定した場合、ユーザが過剰なディスクアクセス使用量のためにアプリケーションを終了することをオプトアウトしたかどうかを判定し得る(322)。OS230は、ユーザが過剰なディスクアクセス使用量のためにアプリケーションを終了することをオプトアウトしていないと判定した場合(322で「いいえ」)、ユーザが現在アプリケーションを使用しているかどうかを判定し得る(324)。たとえば、OS230は、ディスプレイ220がオンであり、アプリケーションがフォアグラウンドアプリケーションである(すなわち、アプリケーションがフォアグラウンド状態である)場合、ユーザが現在アプリケーションを使用していると判定し得る。
【0084】
OS230は、ユーザが現在アプリケーションを使用していないと判定することに応答して(324で「いいえ」)、アプリケーションを終了し(336)、アプリケーションによるディスクアクセスの過剰使用がアプリケーションによるディスクアクセスの過剰使用の再発生であるかどうかを判定し得る(338)。アプリケーションによるディスクアクセスの過剰使用が、アプリケーションによるディスクアクセスの過剰使用が指定された日数以内に指定された回数以上発生する場合、アプリケーションによるディスクアクセスの過剰使用の再発生である可能性がある。たとえば、アプリケーションによるディスクアクセスの過剰使用が、アプリケーションによるディスクアクセスの過剰使用が30日以内に7回以上発生する場合、アプリケーションによるディスクアクセスの過剰使用の再発生である可能性がある。
【0085】
OS230が、過剰使用は過剰使用の再発生でないと判定した場合(338で「いいえ」)、OS230は、アプリケーションのディスクアクセス使用量がアプリケーションに関連付けられたディスクアクセス使用量閾値を超えていると、ユーザに通知しなくてもよい(334)。OS230は、過剰使用は過剰使用の再発生であると判定した場合(338で「はい」)、ユーザが現在車両を運転しているかどうかを判定し得る(340)。ユーザが現在車両を運転している場合(340で「はい」)、OS230は、ユーザが車両を運転しなくなるまで待機し得る。ユーザが車両を運転していない場合(340で「いいえ」)、OS230は、アプリケーションがフラッシュメモリ216のディスクアクセスを過剰に使用しているという表示を、ヘッドユニット202のユーザに通知し得る(342)。たとえば、1つ以上のプロセッサ212は、ディスプレイ220での表示について、現在のフォアグラウンドアプリケーションがフラッシュメモリ216のディスクアクセスを過剰に使用しているという表示を含み、アプリケーションの実行を一時的に許可するかどうかを示すためにユーザがUI222で入力を提供できるような通知を出力し得る(344)。
【0086】
ユーザが、UI222においてユーザ入力を提供することなどにより、アプリケーションの実行を一時的に許可することを選択する場合(344で「はい」)、OS230は、アプリケーションがフラッシュメモリ216のディスクアクセスを過剰に使用している場合はアプリケーションを終了しないようにし得る(346)。UI222でユーザ入力を提供することなどにより、ユーザがアプリケーションの実行を一時的に許可することを選択しない場合(344で「いいえ」)、OS230は、ディスプレイ220がオフになるまで待機し得(348)、アプリケーションを終了し得る(350)。
【0087】
OS230は、ユーザが現在アプリケーションを使用していると判定することに応答して(324で「はい」)、アプリケーションによるディスクアクセスの過剰使用が、アプリケーションによるディスクアクセスの過剰使用の再発生であるかどうかを判定し得る(326)。アプリケーションによるディスクアクセスの過剰使用が、アプリケーションによるディスクアクセスの過剰使用が指定された日数以内に指定された回数以上発生する場合、アプリケーションによるディスクアクセスの過剰使用の再発生である可能性がある。たとえば、アプリケーションによるディスクアクセスの過剰使用が、アプリケーションによるディスクアクセスの過剰使用が30日以内に7回以上発生する場合、アプリケーションによるディスクアクセスの過剰使用の再発生である可能性がある。
【0088】
OS230は、過剰使用は過剰使用の再発生でないと判定した場合(326で「いいえ」)、アプリケーションのディスクアクセス使用量がアプリケーションに関連付けられたディスクアクセス使用量閾値を超えていると、ユーザに通知しなくてもよい(327)。OS230は、過剰使用は過剰使用の再発生であると判定した場合(326で「はい」)、ユーザが現在車両を運転しているかどうかを判定し得る(340)。ユーザが現在車両を運転している場合(340で「はい」)、OS230は、ユーザが車両を運転しなくなるまで待機し得る。ユーザが車両を運転していない場合(340で「いいえ」)、OS230は、ヘッドユニット202のユーザに、アプリケーションがフラッシュメモリ216のディスクアクセスを過剰に使用していると通知し得る(342)。たとえば、1つ以上のプロセッサ212は、ディスプレイ220での表示について、現在のフォアグラウンドアプリケーションがフラッシュメモリ216のディスクアクセスを過剰に使用しているという表示を含み、かつ、アプリケーションの実行を一時的に許可するかどうかを示すために、ユーザがUI222で入力を提供できるような通知を出力し得る。
【0089】
UI222でユーザ入力を提供することなどにより、ユーザがアプリケーションの実行を一時的に許可することを選択する場合(344で「はい」)、OS230は、アプリケーションがフラッシュメモリ216のディスクアクセスを過剰に使用している場合はアプリケーションを終了しないようにし得る(346)。UI222でユーザ入力を提供することなどにより、ユーザがアプリケーションの実行を一時的に許可することを選択しない場合(344で「いいえ」)、OS230は、ディスプレイ220がオフになるまで待機し得(348)、アプリケーションを終了し得る(350)。
【0090】
OS230は、過剰なディスクアクセス使用量のためにアプリケーションを終了することをオプトアウトしたと判定した場合(322で「はい」)、アプリケーションによるディスクアクセスの過剰使用が、アプリケーションによるディスクアクセスの再発生かどうかを判定し得る(328)。アプリケーションによるディスクアクセスの過剰使用が、アプリケーションによるディスクアクセスの過剰使用が指定された日数以内に指定された回数以上発生する場合、アプリケーションによるディスクアクセスの過剰使用の再発生である可能性がある。たとえば、アプリケーションによるディスクアクセスの過剰使用が、アプリケーションによるディスクアクセスの過剰使用が30日以内に7回以上発生する場合、アプリケーションによるディスクアクセスの過剰使用の再発生である可能性がある。
【0091】
OS230は、アプリケーションによるディスクアクセスの過剰使用が、アプリケーションによるディスクアクセスの過剰使用の再発生でないと判定した場合(328で「いいえ」)、アプリケーションのディスクアクセス使用量がアプリケーションに関連付けられたディスクアクセス使用量閾値を超えていると、ユーザに通知しなくてもよい(334)。OS230は、アプリケーションによるディスクアクセスの過剰使用が、アプリケーションによるディスクアクセスの過剰使用の再発生であると判定した場合(328で「はい」)、ユーザが現在車両を運転しているかどうかを判定し得る(330)。ユーザが現在車両を運転している場合(330で「はい」)、OS230は、ユーザが車両を運転しなくなるまで待機し得る。ユーザが車両を運転していない場合(330で「いいえ」)、OS230は、アプリケーションがフラッシュメモリ216のディスクアクセスを過剰に使用していると、ヘッドユニット202のユーザに通知し得る(332)。たとえば、1つ以上のプロセッサ212は、ディスプレイ220での表示について、現在のフォアグラウンドアプリケーションがフラッシュメモリ216のディスクアクセスを過剰に使用しているという表示を含む通知を出力し得る。
【0092】
図4は、アプリケーションのディスクアクセス使用量を管理するための、
図2のヘッドユニット202の例の動作例を示すフローチャートである。
図4は、
図2に関して説明する。
【0093】
図4に示すように、ヘッドユニット202の1つ以上のプロセッサ212は、複数のアプリケーション225の各々によるヘッドユニット202のフラッシュメモリ216のそれぞれのディスクアクセス使用量を決定し得る(402)。1つ以上のプロセッサ212は、複数のアプリケーション225の各々によるフラッシュメモリのそれぞれのディスクアクセス使用量を、それぞれのアプリケーション固有ディスクアクセス過剰使用閾値と比較して、複数のアプリケーション225のうちのアプリケーションによるフラッシュメモリ216のディスクアクセス過剰使用を判定し得る(404)。1つ以上のプロセッサ212は、アプリケーションによるフラッシュメモリ216のディスクアクセス過剰使用を判定することに応答して、アプリケーションを終了し得る(406)。
【0094】
いくつかの例では、複数のアプリケーション225の各々によるフラッシュメモリのそれぞれのディスクアクセス使用量を、それぞれのアプリケーション固有ディスクアクセス過剰使用閾値と比較して、アプリケーションによるフラッシュメモリ216のディスクアクセス過剰使用を判定するために、1つ以上のプロセッサ212は、アプリケーションによるフラッシュメモリ216のディスクアクセス使用量を、アプリケーションに関連付けられたディスクアクセス過剰使用閾値と比較し得る。1つ以上のプロセッサ212は、アプリケーションによるフラッシュメモリ216のディスクアクセス使用量がアプリケーションに関連付けられたディスクアクセス過剰使用閾値を超えていると判定することに応答して、アプリケーションによるフラッシュメモリ216のディスクアクセス使用量を決定し得る。
【0095】
いくつかの例では、1つ以上のプロセッサ212は、アプリケーションのアプリケーション状態を判定し、アプリケーションのアプリケーション状態に少なくとも部分的に基づいて、アプリケーションに関連付けられた複数のディスクアクセス過剰使用閾値から、アプリケーションに関連付けられたディスクアクセス過剰使用閾値を決定し得る。
【0096】
いくつかの例では、1つ以上のプロセッサ212は、ヘッドユニット202の動作モードを判定し得る。1つ以上のプロセッサ212は、ヘッドユニット202の動作モードに少なくとも部分的に基づいて、アプリケーションに関連付けられた複数のディスクアクセス過剰使用閾値から、アプリケーションに関連付けられたディスクアクセス過剰使用閾値を決定し得る。
【0097】
いくつかの例では、複数のアプリケーション225の各々のそれぞれのアプリケーション固有ディスクアクセス過剰使用閾値は、指定期間に関連付けられ、複数のアプリケーション225の各々によるフラッシュメモリ216のそれぞれのディスクアクセス使用量は、複数のアプリケーション225の各々による指定期間内のフラッシュメモリ216のそれぞれのディスクアクセス使用量である。
【0098】
いくつかの例では、複数のアプリケーション225の各々によるヘッドユニット202のフラッシュメモリ216のそれぞれのディスクアクセス使用量を決定するために、1つ以上のプロセッサ212は、システム全体のディスクアクセス過剰使用状況の発生を判定し得る。1つ以上のプロセッサ212は、システム全体のディスクアクセス過剰使用状況の発生を判定することに応答して、複数のアプリケーション225の各々によるヘッドユニット202のフラッシュメモリ216のそれぞれのディスクアクセス使用量を決定し得る。
【0099】
いくつかの例では、システム全体のディスクアクセス過剰使用状況の発生を判定するために、1つ以上のプロセッサ212は、フラッシュメモリ216のディスク使用量の総量が、指定時間にわたって指定された閾値を超えていると判定し得る。1つ以上のプロセッサ212は、フラッシュメモリ216のディスク使用量の総量が指定時間にわたって指定された閾値を超えていると判定することに応答して、システム全体のディスクアクセス過剰使用状況の発生を判定し得る。
【0100】
いくつかの例では、アプリケーションを終了するために、1つ以上のプロセッサ212は、アプリケーションによるフラッシュメモリ216のディスクアクセス過剰使用を判定することに応答して、ヘッドユニット202のディスプレイ220がオフであると判定し得る。1つ以上のプロセッサ212は、ヘッドユニット202のディスプレイ220がオフであると判定することに応答して、アプリケーションを終了し得る。
【0101】
いくつかの例では、アプリケーションを終了するために、1つ以上のプロセッサ212は、アプリケーションによるフラッシュメモリ216のディスクアクセス過剰使用を判定することに応答して、ヘッドユニット202のディスプレイ220がオフでないと判定し得る。1つ以上のプロセッサ212は、ヘッドユニット202のディスプレイ220がオフでないと判定することに応答して、アプリケーションがフォアグラウンドアプリケーションでないと判定し得る。1つ以上のプロセッサ212は、アプリケーションがフォアグラウンドアプリケーションでないと判定することに応答して、アプリケーションを終了し得る。
【0102】
例1:方法は、コンピューティングデバイスの1つ以上のプロセッサが、複数のアプリケーションの各々によるコンピューティングデバイスのフラッシュメモリのそれぞれのディスクアクセス使用量を決定することと、1つ以上のプロセッサが、複数のアプリケーションの各々によるフラッシュメモリのそれぞれのディスクアクセス使用量を、それぞれのアプリケーション固有ディスクアクセス過剰使用閾値と比較して、複数のアプリケーションのうちのアプリケーションによるフラッシュメモリのディスクアクセス過剰使用を判定することと、アプリケーションによるフラッシュメモリのディスクアクセス過剰使用を判定することに応答して、1つ以上のプロセッサが、アプリケーションを終了することとを備える。
【0103】
例2:複数のアプリケーションの各々によるフラッシュメモリのそれぞれのディスクアクセス使用量を、それぞれのアプリケーション固有ディスクアクセス過剰使用閾値と比較して、アプリケーションによるフラッシュメモリのディスクアクセス過剰使用を判定することはさらに、1つ以上のプロセッサが、アプリケーションによるフラッシュメモリのディスクアクセス使用量を、アプリケーションに関連付けられたディスクアクセス過剰使用閾値と比較することと、アプリケーションによるフラッシュメモリのディスクアクセス使用量が、アプリケーションに関連付けられたディスクアクセス過剰使用閾値を超えていると判定することに応答して、1つ以上のプロセッサが、アプリケーションによるフラッシュメモリのディスクアクセス過剰使用を判定することとを含む、例1に記載の方法。
【0104】
例3:1つ以上のプロセッサが、アプリケーションのアプリケーション状態を判定することと、1つ以上のプロセッサが、アプリケーションのアプリケーション状態に少なくとも部分的に基づいて、アプリケーションに関連付けられた複数のディスクアクセス過剰使用閾値から、アプリケーションに関連付けられたディスクアクセス過剰使用閾値を決定することとをさらに備える、例2に記載の方法。
【0105】
例4:1つ以上のプロセッサが、コンピューティングデバイスの動作モードを判定することと、1つ以上のプロセッサが、コンピューティングデバイスの動作モードに少なくとも部分的に基づいて、アプリケーションに関連付けられた複数のディスクアクセス過剰使用閾値から、アプリケーションに関連付けられたディスクアクセス過剰使用閾値を決定することとをさらに備える、例2に記載の方法。
【0106】
例5:複数のアプリケーションの各々のそれぞれのアプリケーション固有ディスクアクセス過剰使用閾値は、指定期間に関連付けられ、複数のアプリケーションの各々によるフラッシュメモリのそれぞれのディスクアクセス使用量は、複数のアプリケーションの各々による指定期間内のフラッシュメモリのそれぞれのディスクアクセス使用量である、例1~4のいずれか1例に記載の方法。
【0107】
例6:複数のアプリケーションの各々によるコンピューティングデバイスのフラッシュメモリのそれぞれのディスクアクセス使用量を決定することはさらに、1つ以上のプロセッサが、システム全体のディスクアクセス過剰使用状況の発生を判定することと、システム全体のディスクアクセス過剰使用状況の発生を判定することに応答して、1つ以上のプロセッサが、複数のアプリケーションの各々によるコンピューティングデバイスのフラッシュメモリのそれぞれのディスクアクセス使用量を決定することとを含む、例1~5のいずれか1例に記載の方法。
【0108】
例7:システム全体のディスクアクセス過剰使用状況の発生を判定することはさらに、1つ以上のプロセッサが、フラッシュメモリのディスク使用量の総量が、指定時間にわたって指定された閾値を超えていると判定することと、フラッシュメモリのディスク使用量の総量が指定時間にわたって指定された閾値を超えていると判定することに応答して、1つ以上のプロセッサが、システム全体のディスクアクセス過剰使用状況の発生を判定することとを含む、例6に記載の方法。
【0109】
例8:アプリケーションを終了することはさらに、アプリケーションによるフラッシュメモリのディスクアクセス過剰使用を判定することに応答して、1つ以上のプロセッサが、コンピューティングデバイスのディスプレイがオフであると判定することと、コンピューティングデバイスのディスプレイがオフであると判定することに応答して、1つ以上のプロセッサが、アプリケーションを終了することとを含む、例1~7のいずれか1例に記載の方法。
【0110】
例9:アプリケーションを終了することはさらに、アプリケーションによるフラッシュメモリのディスクアクセスの過剰使用を判定することに応答して、1つ以上のプロセッサが、コンピューティングデバイスのディスプレイがオフでないと判定することと、コンピューティングデバイスのディスプレイがオフでないと判定することに応答して、1つ以上のプロセッサが、アプリケーションがフォアグラウンドアプリケーションでないと判定することと、アプリケーションがフォアグラウンドアプリケーションでないと判定することに応答して、1つ以上のプロセッサが、アプリケーションを終了することとを含む、例1~8のいずれか1例に記載の方法。
【0111】
例10:コンピューティングデバイスは、車両のヘッドユニットを含む、例1~9のいずれかに1例に記載の方法。
【0112】
例11:コンピューティングデバイスは、フラッシュメモリと、フラッシュメモリに通信可能に結合された1つ以上のプロセッサとを備え、1つ以上のプロセッサは、複数のアプリケーションの各々によるフラッシュメモリのそれぞれのディスクアクセス使用量を決定し、複数のアプリケーションの各々によるフラッシュメモリのそれぞれのディスクアクセス使用量を、それぞれのアプリケーション固有ディスクアクセス過剰使用閾値と比較して、複数のアプリケーションのうちのアプリケーションによるフラッシュメモリのディスクアクセス過剰使用を判定し、アプリケーションによるフラッシュメモリのディスクアクセス過剰使用を判定することに応答して、アプリケーションを終了するように構成されている。
【0113】
例12:複数のアプリケーションの各々によるフラッシュメモリのそれぞれのディスクアクセス使用量を、それぞれのアプリケーション固有ディスクアクセス過剰使用閾値と比較して、アプリケーションによるフラッシュメモリのディスクアクセス過剰使用を判定するために、1つ以上のプロセッサはさらに、アプリケーションによるフラッシュメモリのディスクアクセス使用量を、アプリケーションに関連付けられたディスクアクセス過剰使用閾値と比較し、アプリケーションによるフラッシュメモリのディスクアクセス使用量が、アプリケーションに関連付けられたディスクアクセス過剰使用閾値を超えていると判定することに応答して、アプリケーションによるフラッシュメモリのディスクアクセス過剰使用を判定するように構成されている、例11に記載のコンピューティングデバイス。
【0114】
例13:1つ以上のプロセッサはさらに、アプリケーションのアプリケーション状態を判定し、アプリケーションのアプリケーション状態に少なくとも部分的に基づいて、アプリケーションに関連付けられた複数のディスクアクセス過剰使用閾値から、アプリケーションに関連付けられたディスクアクセス過剰使用閾値を決定するように構成されている、例12に記載のコンピューティングデバイス。
【0115】
例14:1つ以上のプロセッサはさらに、コンピューティングデバイスの動作モードを判定し、コンピューティングデバイスの動作モードに少なくとも部分的に基づいて、アプリケーションに関連付けられた複数のディスクアクセス過剰使用閾値から、アプリケーションに関連付けられたディスクアクセス過剰使用閾値を決定するように構成されている、例12に記載のコンピューティングデバイス。
【0116】
例15:複数のアプリケーションの各々のそれぞれのアプリケーション固有ディスクアクセス過剰使用閾値は、指定期間に関連付けられ、複数のアプリケーションの各々によるフラッシュメモリのそれぞれのディスクアクセス使用量は、複数のアプリケーションの各々による指定期間内のフラッシュメモリのそれぞれのディスクアクセス使用量である、例11~14のいずれか1例に記載のコンピューティングデバイス。
【0117】
例16:複数のアプリケーションの各々によるコンピューティングデバイスのフラッシュメモリのそれぞれのディスクアクセス使用量を決定するために、1つ以上のプロセッサはさらに、システム全体のディスクアクセス過剰使用状況の発生を判定し、システム全体のディスクアクセス過剰使用状況の発生を判定することに応答して、複数のアプリケーションの各々によるコンピューティングデバイスのフラッシュメモリのそれぞれのディスクアクセス使用量を決定するように構成されている、例11~15のいずれか1例に記載のコンピューティングデバイス。
【0118】
例17:システム全体のディスクアクセス過剰使用状況の発生を判定するために、1つ以上のプロセッサはさらに、フラッシュメモリのディスク使用量の総量が、指定時間にわたって指定された閾値を超えていると判定し、フラッシュメモリのディスク使用量の総量が指定時間にわたって指定された閾値を超えていると判定することに応答して、システム全体のディスクアクセス過剰使用状況の発生を判定するように構成されている、例16に記載のコンピューティングデバイス。
【0119】
例18:アプリケーションを終了するために、1つ以上のプロセッサはさらに、アプリケーションによるフラッシュメモリのディスクアクセス過剰使用を判定することに応答して、コンピューティングデバイスのディスプレイがオフであると判定し、コンピューティングデバイスのディスプレイがオフであると判定することに応答して、アプリケーションを終了するように構成されている、例11~17のいずれか1例に記載のコンピューティングデバイス。
【0120】
例19:アプリケーションを終了するために、1つ以上のプロセッサはさらに、アプリケーションによるフラッシュメモリのディスクアクセス過剰使用を判定することに応答して、コンピューティングデバイスのディスプレイがオフでないと判定し、コンピューティングデバイスのディスプレイがオフでないと判定することに応答して、アプリケーションがフォアグラウンドアプリケーションでないと判定し、アプリケーションがフォアグラウンドアプリケーションでないと判定することに応答して、アプリケーションを終了するように構成されている、例11~18のいずれか1例に記載のコンピューティングデバイス。
【0121】
例20:命令を格納した非一時的コンピュータ読取可能ストレージ媒体であって、命令は、実行されると、コンピューティングデバイスの1つ以上のプロセッサに、複数のアプリケーションの各々によるコンピューティングデバイスのフラッシュメモリのそれぞれのディスクアクセス使用量を決定し、複数のアプリケーションの各々によるフラッシュメモリのそれぞれのディスクアクセス使用量を、それぞれのアプリケーション固有ディスクアクセス過剰使用閾値と比較して、複数のアプリケーションのうちのアプリケーションによるフラッシュメモリのディスクアクセス過剰使用を判定し、アプリケーションによるフラッシュメモリのディスクアクセス過剰使用を判定することに応答して、アプリケーションを終了する。
【0122】
限定ではなく例として、このようなコンピュータ読取可能ストレージ媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、または命令もしくはデータ構造の形態で所望のプログラムコードを格納するために使用でき、かつコンピュータによってアクセスできる他のストレージ媒体を含み得る。また、どのような接続も、コンピュータ読取可能媒体と適切に呼ばれる。たとえば、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(digital subscriber line:DSL)、またはBluetooth(登録商標)、WiFi(登録商標)、赤外線、無線、およびマイクロ波などの無線技術を使用して、ウェブサイト、サーバ、または他のリモートソースから命令を送信する場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などの無線技術は媒体の定義に含まれる。しかしながら、コンピュータ読取可能ストレージ媒体およびデータストレージ媒体は、接続、搬送波、信号、または他の一時的な媒体を含まず、代わりに、非一時的な有形ストレージ媒体に向けられていることを理解されたい。本明細書で使用されるディスク(diskまたはdisc)は、コンパクトディスク(compact disc:CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(digital versatile disc:DVD)、フロッピー(登録商標)ディスクおよびブルーレイ(登録商標)ディスクを含み、ディスク(disk)は通常磁気的にデータを再生し、ディスク(disc)はレーザーを用いて光学的にデータを再生する。また、上記の組み合わせも、コンピュータ読取可能媒体の範囲に含まれるものとする。
【0123】
命令は、1つ以上のデジタル信号プロセッサ(digital signal processors:DSPs)、汎用マイクロプロセッサ、特定用途向け集積回路(application specific integrated circuits:ASICs)、フィールドプログラマブルロジックアレイ(field programmable logic arrays:FPGAs)、または他の同等の集積もしくは離散論理回路といった、1つ以上のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造のいずれか、または本明細書に記載の技術の実現に適した他の構造を指す場合がある。さらに、いくつかの態様において、本明細書に記載される機能は、専用のハードウェアおよび/またはソフトウェアモジュール内で提供され得る。また、技法は、1つ以上の回路または論理要素に完全に実装され得る。
【0124】
本開示の技術は、無線ハンドセット、集積回路(IC)もしくはICのセット(たとえば、チップセット)を含む多種多様なデバイスまたは装置において実現され得る。開示された技術を実行するように構成されたデバイスの機能的側面を強調するために、さまざまなコンポーネント、モジュール、またはユニットが本開示で説明されるが、必ずしも異なるハードウェアユニットによる実現を必要とするわけではない。むしろ、上述したように、さまざまなユニットをハードウェアユニットで組み合わせてもよく、適切なソフトウェアおよび/またはファームウェアと組み合わせて、上述したような1つ以上のプロセッサを含む相互動作可能なハードウェアユニットの集合体によって提供することも可能である。
【0125】
さまざまな実施形態について説明した。これらおよび他の実施形態は、以下の特許請求の範囲内にある。