ゼロからの情報システム

  現代社会の情報インフラの仕組みをゼロから学べます.

ブートストラッピング

情報社会に生きるアナタ.
自動車社会で自動車や高速道路や宅配便のこと知らないで生きていけますか.
情報社会では,スマホやパソコンやインターネットやウェブが,自動車や高速道路や宅配便に相当します.
このサイトは,パソコン使いのパソコン知らず,を対象に情報社会の基盤技術を説明します.

2.32 メモリ管理の5つの問題の解決策

以上から,2.26にあげたメモリ管理の5つの問題に対する答えがわかります.

M1の答えは「RAMの空いているところ」であり,M2の答えは「必要なだけ」であり,M3の答えは「ページ単位で不足する分を割り当てる」,M4の答えは「スワップアウトをすることで必要な空き領域を作る」です.

OSは仮想記憶のシステムアドレス空間に,どのプロセスのどのページが,RAMのどのページに書き込まれたか,それがスワップアウトしたのかどうか,スワップアウトしたのなら,ページファイルのどこにあるのか,など必要な経過をすべて記憶して,RAMに装填した各ページを管理します.

このことは図14では,システムアドレス空間ページ表に描いた小さな□とそこから利用者アドレス空間RAMに向かって出ている点線の矢線で示しました.

OSも,その実行のためにはプロセスを生成する必要があります.それはブートストラッピングが終了する時に行われます.

OSは基本ソフトウェアの中核部分です.1.21で説明したように,ブートストラッピングが終了する時,基本ソフトウェアの最初の指示が実行されるようにするのですから,その時にはOSのプロセスが生成されて,RAMのどこかに必要な何ページ分かが装填されているのです.

OSのプロセスの生成は,仮想記憶の上ではシステムアドレス空間を使って行われます.

しかし,その必要部分は応用ソフトウェアやサービスのプロセスと同様に,RAMにページ単位で装填されます.OSのプロセスの一部はスワップすることができませんが,残りの部分はやはりスワップアウトとスワップインの対象になります.

RAMを使う,使わないはページ単位で決めますので,M5の答えは「RAMの空きページ領域として管理する」となります.

以上のような方法を使ってOSは,仮想記憶上で模擬的にプロセスを進行させながら,その処理中の部分(図14の赤い線)が,RAMのどこに装填されているかのデータに,いちいち変換して実際の処理を進めています.

 このような変換やスワッピング,そして,プロセスの切り替えが,極めて高速に行われているので,私たちはすべての仕事が並行して同時に処理されているような錯覚をしているのです.

1.18 電源オンでCPUとRAMは真っ白になった記憶を取り戻す

パソコンに電源オンすると,しばらくの間はなにも応答してくれません.何か動いていることはパソコンの何カ所かにあるLEDランプがチカチカするので判りますが,パソコンとしては使えません.長ければ数分間はこの状態が続きます.これはブートストラッピングが行われているのです.

この様子は,ちょうど,私たちが熟睡から目覚めて,意識がはっきりするまでの,無能力な状況に似ています.早い人は即座に動けますが,しばらくウォーミングアップをしなければ動けない人もいます.

しかし,パソコンは私たちとまったく違うところがあります.私たちは動き出すのに必要なすべてのことを自分自身の中に記憶しています.これに対して,CPUは電源をオフにした時,すべてを忘れてしまっています(1.16参照).上記の何も応答しないブートストラッピングの間は,その記憶を取り戻しているのです.

どのような記憶を取り戻すことが必要でしょうか.

少なくとも,利用者である私たちとコミュニケーションをするために必要な記憶は取り戻さなければなりません.つまり,キーボードやマウスからの入力を受け取って分析し,それに対する応答をディスプレイに表示できるようにならなければなりません

さらに,私たちが要求するデータ処理をするために必要なソフトウェアを見つけてそれを実行することができるようになる必要があります.

これらのことができるようになるためには,そのための指示が書かれたプログラムが必要です.ブートストラッピングとは単純化して言えば,このプログラムと,その実行に必要なデータをRAMロードload,装填)することです.ロードとは,記憶装置になんらかのデータを記憶させることを言います.

ブートストラッピングで主記憶装置にロードされるソフトウェアを基本ソフトウェア,あるいは,オペレーティング システム(OS)と呼びます.基本ソフトウェアの働きで,他のすべてのデータ処理が可能になるのです.

私たちが日常最もひんぱんに触れるパソコンの基本ソフトウェアはウィンドウズあるいはウィンドウズOSと呼ばれます.ウィンドウズOSは第2部のテーマです.

1.16 CPUとRAMの記憶は電源オフで真っ白になる

CPURAMは,電源をオフしたあとは,まったくきれいに,すべてを忘れるように作られています.

ですから,次に電源をオンしたときに,最初の指示をCPUがどこか特定のところから自動的に受けとるようにしなければ,CPUはデータ処理を開始することが出来ません.

幸いにして,指示を受けとるというのも(CPUにとっては)データ処理の一種です.しかも,CPUに記憶装置の決まった場所にあるプログラムを受けとらせるためのプログラムは,実際に作ってみると小さなものです.7-8個ほどの指示で十分なのです.

それで,この小さなプログラムをRAMに手で入力し,これをCPUに実行させることで,自律的に大きなプログラムを受けとらせる,という便利な方法が発明されました.これをブートストラッピングといいます.

足のくるぶしを包むような丈の高い皮靴には,靴ひもの下のところに「つまみ皮」(これをブートストラップといいます)があります.この先端をつかんで手元に引っぱり出す時のイモヅル式の様子と,CPUが小さなものから大きなものへと次第にエスカレートさせながら,プログラムを受けとる様子が似ているので,このような呼称が使われています.

ブートストラッピングは,電源オフで真っ白になったCPURAMの記憶を回復する処理です.

ブートストラッピングが発明された初期のころは,最初の小さなプログラムを入力するのは手作業でした.しかし,パソコンが発明された時期には,もう自動的にブートストラッピングさせる仕組みが発明されていました.その内容は1.18から説明します.

1.10 周辺装置はCPUとコミュニケーションすることで働く

 同種の周辺装置でも,内蔵型のものと外付け型のものがあります.内蔵のキーボードとディスプレイを付けたパソコンがノートブックパソコンやスマートホンですね.余談ですが,1980年代後半にはプリンタを内蔵した日本語ワープロ専用機が全盛でした.

周辺装置はパソコンとケーブルでつなぎます.接続のためには,電力ケーブルと,信号ケーブルの両方が必要です.内蔵装置については,1.61.7で説明しましたが,外部装置についても同じです.

もちろん,電力はこれらの装置が電子装置だから必要です.信号はプログラムやデータを伝えたり,また,CPUとこれらの装置が正しく信号の受け渡しができるようにタイミングを計ったりするのに必要です.なぜなら,すべての周辺装置は信号ケーブルを通してCPUと通信,すなわち,コミュニケーションしなければ,それぞれの機能を果たせないからです.

パソコンのCPUは,大変強力な電子装置で,いわば王様ですが,それだけでは何もできません.CPUは,プログラムやデータが与えられなければ,まったく無力です.

そこで,CPUの性能を発揮するには,CPUが私たち利用者とプログラムやデータをやりとりするための装置が必要になります.それがキーボード,マウス,ディスプレイ,プリンタ,ハードディスクなどの周辺装置です.

CPUはこれらの装置と通信をして,ハードディスク,キーボードあるいはマウスから,プログラムやデータを受けとり,また,処理した結果をハードディスクに記憶したり,ディスプレイに表示したり,プリンタで印刷したりします.他方,周辺装置はCPUと接続されることによって,その機能を発揮します.

ここでニワトリと卵の問題が出てきます.どちらも他方とコミュニケーションしなければ機能を発揮できないのです.どっちが先にどうやって機能を発揮するかです.

この問題はブートストラッピングと呼ばれる仕組みによって解決します.それについてはもう少し後で説明します(1.16参照).

プロフィール

ヤッキー

カテゴリ別アーカイブ
タグクラウド
QRコード
QRコード
  • ライブドアブログ