- ベストアンサー
iOSのバックグラウンド起動と揮発性メモリ
iPhoneのバックグラウンドでアプリを複数立ち上げた状態でiPhoneの電源を切りました 何分かしてiPhoneの電源を入れるとなぜかバックグラウンドでのアプリがまだ開いていました しかしメモリー ラムは揮発性メモリーということで通電 しないとデータも消えるはずです なのになぜiPhoneは電源を切って入れてもなおまだアプリのバックグラウンドでの常駐がなされているのでしょうか? 素朴な疑問なので教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
メモリーラムと言っても、CPUが動作するときに使われるメモリと、システムやアプリ、データを保管しておく、不揮発性のメモリがあります。 不揮発性のメモリ(電源を切っても消えないメモリ)が、無いとiPhoneの基本プログラムまで無くなってしまいますし、アプリのプログラムや、音楽や写真のデータまで無くなってしまいます。 CPUが動作するときに使われるメモリは、一時的に使われるメモリで、こちらは、電源を切れば消えますが、電源を切ったからと言ってその瞬間に電源が切れませんよね? この終了処理中に、CPUが普段使って居る揮発メモリの内容や設定の状態などを不揮発メモリに保存しているだけです。 電源が入ると、不揮発メモリに書き込まれているデータやパラメーターを読み込んで、揮発メモリに展開しますので、電源を切る前に戻るだけです。 Windowsのパソコンで言えば、休止状態と同じです。 メモリなどに展開されて居たデータなどは、HDDに格納して電源を切り、再起動時には、HDDに格納してあった、内容をメモリに再展開して元の状態に戻って居るのです。 ただ、それだけの話です。 iPhone の容量で言われるメモリは、不揮発性メモリの方だけで、動作用のDRAMの容量は、公式には出ていないと思います。
その他の回答 (2)
- asciiz
- ベストアンサー率70% (6810/9682)
ホームボタンのダブルクリックで出てくるアプリ一覧は、全部が全部、起動しているわけではありません。 むしろ、本当にバックグラウンドで待機状態にあるのは直近の2・3個程度で、それ以上古いアプリは、一旦終了されていることが良くあります。 ただし、iPhoneのマルチタスクに対応しているアプリは、バックグラウンドに回って、さらにその後メモリ不足で終了させられるときには、再開できるような中断状態のデータを保存してから、アプリを終了します。 アプリを数個切り替えた後、一つ前のアプリに切り替えると画面はすぐに出ますが、数個前に起動したアプリに切り替えると、一旦タイトル画面が出てから、元の画面になることがあります。 それが、「一旦終了していたアプリが、中断状態を読み込んで、再開した」アプリです。 電源を切るとどうなるかというと、バックグラウンドすべてのアプリが「中断状態」で保存されることになります。 そして、起動して、ホームボタンをダブルクリックすると、起動してきたアプリの履歴が、見えます。 いずれかのアプリをタップすると、中断状態を読み込んで、以前の作業状態から再開できることになります。
お礼
ありがとうございます。
- potatorooms
- ベストアンサー率28% (3506/12498)
iPhoneやAndroidは、プログラムの実行メモリはフラッシュROMで、RAMではありません。 CPUの一時記憶に使われるエリアだけがRAMです。 なので、CPUが停止状態でもプログラムは止まっているだけで消えません。 パソコンと違って、電源を切るだけでは、OSも立ち上がったままなので、リブートはかかりません。
お礼
ありがとうございます。
お礼
おぉ、これは興味深いですね。 なんと、電源を切る際に、揮発性メモリの内容を不揮発性のメモリに保存していたんですか。 ガッテンしました。ありがとうございます。