web-dev-qa-db-ja.com

コンピュータがすぐに起動できないのはなぜですか?

コンピュータはかなり前から存在しています。では、通常の家電製品やその他のデバイスのように、コンピュータを即座に起動させるのを妨げているのは何ですか?可能ですか?私は冬眠と睡眠があることを知っていますが、それらは本当に本物のブーツではありません

16
kosinix

コンピューターは 状態マシン です。問題は、コンピューターが開始する初期状態(つまり、文字通り瞬時)は、あなたにとっても私にとってもあまり役に立たないことです。 (最初の電子が移動した後でも)。

あなたと私にとって便利なのは、そのステートマシンをさらに下る何百万ものステップです。開発者がその状態を説明する最も簡単な方法は、プログラムで状態を定義することです。これらのプログラムの実行には、常にゼロ以外の時間がかかります。

ここで、「最初の使用可能な状態」をキャッシュして、そこから開始することはできません。そして、あなたはそうすることができます、そしてそれはそうです、それは(大体)睡眠から再開するものです。 (それが、起動時間の改善についての議論から再開を「除外」するのがあまり公平でない理由です)。

44
ckhan

コンピュータの電源を入れると、BIOSまたはUEFIブートマネージャでコードが即座に実行されます。 BIOSまたはUEFIブートマネージャーの実行にそれほど時間はかかりません。ハードウェアを初期化し、ストレージデバイスをスキャンしてオペレーティングシステムを探し、オペレーティングシステムを実行します。通常、ロードに時間がかかるのはオペレーティングシステムです。

画像のシーケンスを表示したり音楽ファイルを再生したりするなど、瞬時にロードされる非常にシンプルなオペレーティングシステムを使用している場合は、コンピューターを瞬時に起動できます。

3
David Bower

問題は、オペレーティングシステムが巨大であることです。そして、膨大な数の何百万ものコードを話しているのです。 Linux 3.6でさえ1600万近くあります。 XPは40を持つと噂されていました。

http://en.wikipedia.org/wiki/Source_lines_of_code

ソリッドステートハードドライブを使用している場合でも、そのコードを不揮発性メモリ(ディスクドライブ)から揮発性システムメモリ(RAM)に読み込む必要があります。

ポケット計算機にはオペレーティングシステム(小さいですが、プログラムを実行します)がありますが、非常に小さいので、システムボード上のチップに収めることができます。

繰り返しになりますが、システムメモリにロードする必要があるはるかに大規模なオペレーティングシステムを搭載したPCの問題です。

0
MDT Guy