オペレーティング・システム

総合科目「IT革命を解き明かす」、2003年11月10日

                                       電子・情報工学系
                                       新城 靖
                                       <yas@is.tsukuba.ac.jp>

このページは、次の URL にあります。
http://www.hlla.is.tsukuba.ac.jp/~yas/gen/it-2003-11-10
あるいは、次のページから手繰っていくこともできます。
http://www.hlla.is.tsukuba.ac.jp/~yas/gen/
http://www.hlla.is.tsukuba.ac.jp/~yas/index-j.html

印刷配布資料 http://www.hlla.is.tsukuba.ac.jp/~yas/gen/it-2003-11-10 /it-2003-11-10 .pdf

■今日の重要な話

コンピュータをうまく使いこなすには、いくつかのコンピュータの内部にある 幻影が存在すると信じることができるかどうかにかかっている。その中で、ファ イルという幻影がもっとも重要である。

■幻影

人間は(コンピュータがなくても)さまざまな幻影を使っている。

「見たことがないということは、いないということではないのです」

◆コンピュータの中の幻影

オブジェクト(object)
もの。コンピュータの中にはいっている人間(専門家)のようなもの。 記憶ができる。コピーすると別のものになる。名詞。
機能。操作。
オブジェクトを操作するもの。動詞。
保存されたものは、オブジェクト。保存する行為は、機能。

幻影は、ハードウェアとソフトウェアの両方の役割によって作り上げられる。

◆ハードウェア

コンピュータを構成する、幻影以外のもの。目に見えるもの。

図コンピュータのハードウェアの構成要素

図コンピュータのハードウェアの構成要素

部品は、「バス」と呼ばれる配線の束で結ばれている。 部品間は、バスを通じてデータを交換する。

コンピュータの内部の部品

◆記憶のための部品:メモリ

コンピュータの中では、いろいろな種類の記憶のための部品、すなわち、メモ リが使われている。もっとも重要なものは、メインメモリ(主記憶)と呼ばれ ているもので、単にメモリといった時には、メインメモリを差す。

メインメモリは、IC(Integrated Circuit、シリコンという元素による半導 体で作られた電気回路)でできている。その他に、ハードディスクやフロッピ・ ディスクも重要な記憶のための部品である。

メモリ(RAM(Random Access Memory))
実行中のプログラムを保持する。加工するデータを一時的に保持する。 揮発的(電源を切ると消えてしまう)。非常に速い。容量は、ハードディスクよ りは小さい。
ハード・ディスク (HD(Hard Disk), HDD(Hard Disk Drive))
プログラムやデータをデータを保持する。永続的(電源を切っても 残っている)。容量は、メモリより大きい。

メモリには、数字で番地(アドレス)が付いている。番地を指定して、データ を保存する。番地を指定すると、データが取り出せる。

◆ソフトウェア

(役にたつ)ビットの並び。

◆コンピュータを扱う上で重要な幻影

画面には表示されないものが、存在すると思えれば、コンピュータの扱いが簡 単になる。

コンピュータを創る側の都合で作り出してしまった不便な幻影も多い。

IT革命の時代には、コンピュータを創ってきた人の考え方(文化)を理解で きていると便利(有利)なことも多くなってきた。

例:

IT革命以前の例。物理(宇宙論、原子、因果、熱力学、・・・)、 生物(DNA、遺伝子、・・・)、

■ファイルとディレクトリ

ファイルとは

永続的
電源を切っても残っているもの
揮発的
電源を切ると消えてしまうもの

ディレクトリとは

◆ファイルの便利さ

物理的
ハードウェアに近い、ハードウェアの制約に縛られる
論理的(仮想的)
人間の思考、扱う情報に近い
10年前のコンピュータ:使いたいソフトウェアのフロッピ・ディスクを目で みて探し、コンピュータに入れて、リセットする。

◆ファイルの性質

◆ファイルの分類、テキスト・ファイル

ファイルの内容による分類

テキスト・ファイル(text file)
内容として符合化された文字だけを含むファイル
バイナリ・ファイル(binary file)
テキスト・ファイル以外のファイル。CPUが解釈できるプログラムや 画像・音声データを含んだファイル。
ただし、「文字」といっても、ASCII という方法で符合化されたものだけを指 すことがある。日本語の漢字を含むファイルの場合、テキスト・ファイルとし て扱えることもあるが、バイナリ・ファイルとして扱わなければならないこと がある。たとえば、インターネットでファイルをコピーするプログラム(ftp) では、漢字を含むデータをコピーする時に、バイナリ・ファイルとして扱う必 要がある場合がある。

テキスト・ファイルは、次のような所で使われている。

テキスト・ファイルを作ったり、内容を修正するには、テキスト・エディタ (text editor)というプログラムを使う。テキスト・エディタは、ワープロと 似ているが、文字に飾りを付けたり、図を入れたりすることはできない。

実習室のパソコンには、「メモ帳」、「秀丸エディタ」という名前のテキスト・ エディタが使えるようになっている。Unix サーバには、emacs (mule) という 名前のテキスト・エディタが入っている。

■オペレーティング・システム

◆オペレーティング・システム(Operating System,OS)とは

◆オペレーティング・システムのメモリへの読込みと実行

徒然草(つれづれぐさ)。八になりし年。最初の仏問題。

OSは、他のプログラムを実行するプログラムである。 他のプログラムは、OSの力を借りてはじめて実行される。

ではOSは、誰が実行するか?

ブート・ストラップ(Boot strap,靴ひも)。 ほら吹き男爵は、底なし沼に落ちた時に、自力で脱出するために、自分の靴ひ もにつかまって脱出した。

BIOSがブートローダをメモリに読み込み、ブートローダを実行する。

ブートローダがOSをメモリに読み込み、OSを実行する。

BIOS(Basic Input Output System)、ROM Monitor。OSをハードディスクから メモリにコピーして、OSに制御を渡すプログラム。ROM (Read-Only Memory) という、少容量の不揮発的なメモリに入っている。古いシステムでは、(フロッ ピ・ディスクへの)基本的な入出力の機能が含まれていた。

◆オペレーティング・システムの種類

ソフトウェアを買う時、自分のパソコンのOSで動作するものを買う。 (CPU の種類も大事。同じ OS でも CPU の種類がプログラムは違うと動作しない。)

自分が使いたいソフトウェアが動作するようなOSとCPUを積んだパソコン を買う。

◆歴史

「パーソナル・コンピュータ」の考え方は、比較的新しい。昔は、コンピュー タが高価だったので、1台のコンピュータを複数人(時には数百人)で同時に 使うことが一般的だった。

TSS (Time Sharing System)では、1台のコンピュータを大勢の人で同時に使 う、一人ひとりは、自分で占有しているかのように見える。

「パーソナル・コンピュータ」の考え方は、比較的新しい。

◆構成要素

API は、ソフトウェアを創る人にとって重要。 その他の要素は、一般利用者にも関係してくる。

図オペレーティング・システムの構成要素

図オペレーティング・システムの構成要素

一番人間(利用者)の目につきやすいのは、シェル。

◆シェルの機能

■仮想記憶(仮想メモリ)

仮想記憶とは、オペレーティングシステムの働きにより、実際に備えているメ モリ容量よりも大きなプログラムを動かすための仕組みである。

コンピュータには、2種類の記憶するためのハードウェアが使われている。

メモリ(memory)、主記憶(main memory,primary storage)
CPUと同じく、半導体で作られている(IC)。速度が速く、値段が高い。 CPUが直接データをアクセスできる。 (電源を切ると、内容が失われる。)
二次記憶(secondary storage)
ハードディスクなど。半導体のメモリと比較して、速度が遅く、値段が安い。 CPUが直接データをアクセスでない。 (電源を切っても、内容は保存される。)

主記憶よりも多くのメモリを使うプロセスを仮想記憶で動かす

図 仮想記憶によるプログラム(プロセス)の実行

仮想記憶を使うと、メモリが100Mバイトしかないコンピュータで、200 Mバイトのメモリを使うプログラムを実行することができるようになる。

もともとは、1つのプログラムで実際のメモリ容量以上のものを使うための仕 組みである。最近では、複数のプログラムが使うメモリの総量で考えることも ある。

仮想記憶の基本的なアイディアは、すぐに使うところだけを速いメモリ(IC) に、当分使わない所を、遅いハードディスクに置き、ディスクとメモリの内容 を入れ替えながら仕事を進めることである。この時、速いメモリを主記憶 (main memory, primary storage)、遅いハードディスクを二次記憶(secondary storage)とう。

◆置き換えアルゴリズム

主記憶が足りなくなった時に、どうするか。

一番いいのは、OPTアルゴリズムだが、実現不可能。未来の情報を使うので。 LRU は、過去の情報を使って未来を予測する方法。

野口悠紀雄の 「超整理法」の押し出しファイルは、LRUアルゴリズム。

アルゴリズム(手法、算法)とは、問題を解くためのあらかじめ記述された定義 の明確な規則、あるいは、指示の集まり。日本語などで書くこともできる。直 接的にはコンピュータでは実行できない。なんらかの方法で実行できるように なったものは、プログラムである。

■仮想という考え方

◆コンピュータ由来の「仮想」の意味

仮想記憶は、「仮想」という言葉が付く言葉で、もっとも基本的なもの。

ファイルは、ハードディスクを仮想化したものである。

類語:論理(logical)(←→物理、物理フォーマット/論理フォーマット)、 抽象(abstract)

反語:実(real)

◆一般の辞書に現れる「仮想」の定義

辞書の定義は、今一つ。仮想記憶との類推で仮想という考え方を押さえたい。 「仮想敵国」の「仮想」と「仮想記憶」の「仮想」は別物である。

仮想 (広辞苑)
仮に考えること。仮に想定すること。例:仮想敵国。
仮想敵国 (広辞苑)
a hypothetical [potential] enemy。
virtual--形A(比較なし) (研究社新英和中辞典)
1 (表面または名目上はそうでないが)事実上の, 実質上の,実際(上)の:

It was a virtual promise. (約束ではないが)約束も同然だった /

He was the virtual leader of the movement. 彼はその運動の事実上の 指導者だった.

2 【光】虚像の(<−>real): a virtual image 虚像.

◆仮想計算機(virtual machine)

計算機とは、コンピュータのこと。電卓ではない。 ハードウェアには存在しないが、実際の計算機と同じように命令セット、メモ リ、入出力など機能をソフトウェア的に実現したもの。

IBM メインフレーム用 (1970年代)。
1台のハードウェアで数種類のOSを動かす。
Virtial PC, Real PC, VMware
Windows PC のハードウェアと同じような動きをする。Macintosh や Linux で Windows 用のプログラムを実行するために使う。
vMac (Virtual Macintosh)
VirtualGameStation
Java仮想計算機
Java 言語で書かれたプログラムを実行するための仮想計算機。
Java仮想計算機を、いろいろな環境(Unix, Windows, Macintosh, 携帯電話)で ソフトウェア実現すれば、Javaで書かれたプログラムがそれらの 環境でそのまま動作する。

エミュレータ: 別のシステムで、本物のシステムと同じ動きを真似するソフト ウェア。本物は、必ずしもコンピュータ全体(計算機)でなくてもよい。

シミュレータ: 現実世界の予測に使うもの。数式でモデル化して計算で予測 する。実際にやるとコストがかかるもの、取り返しがつかないものをコンピュー タの中で実行する。現実の代わりにはならない。(エミュレータは、本物の代 わりに同じように使える。)
(文字)端末
1台の(高価な)中央のコンピュータを、複数人で TSS で使う時に使う (安価な)コンピュータ。キーボードから打ち込まれた文字を中央のコンピュー タに送る機能と、中央のコンピュータから送られてきた文字を画面に表示する 機能がある。

◆仮想回線(virtual circuit)

インターネットで通信しあう2つのプログラムは、それらが動作している2台 のコンピュータがあたかも物理的な回線で直結されているかのように見える。

実際には、間に何台ものルータと呼ばれる機器がある。

◆VPN(Virtual Private Network)

本当は、インターネットという、誰もがアクセスできるネットワークを通って いるが、あたかも 専用線(private network) で結ばれているように見せかけ る。

◆仮想LAN(Virtual LAN, vLAN)

遠く離れた場所の LAN (Local Area Network)を、インターネットのようなパ ブリックなネットワークを使って相互接続して、あたかも同じ LAN に存在す るかのごとく見せかける。

ネットワークが別であることを意識しない。暗号化が大事になる。

◆仮想現実感(virtual reality)

高度なコンピュータ・グラフィックスやサウンドの技術を使って、実在しない ものを(コンピュータの中に)実在しているかのごとく見せかける。

人間が働き掛けると、現実と同じように応答する。

◆仮想・・・

◆仮想と現実の違い

現実と仮想の違いは、存在するのか。

現実とは、何なのか。

現実も仮想も、脳の働きによって作り出されたもの。

■プロセス

プログラムとプロセス。

プロセスとは、オペレーティング・システムの働きにより、二次記憶に保存さ れていたプログラムがメモリ(主記憶)に読み込まれ、実行可能になったもの。

単にファイル(ハードディスク)に入っていも、プログラムはプログラムであ る。 1つのプログラムを同時に2個動かすことを考えると、プログラムとプロセス の違いがわかる。

1つのプロセスから見ると、普段は自分一人で全部のコンピュータのハードウェ アを利用しているように見える。コンピュータの仮想化の最初。

プロセスは、時々、他のプロセスからデータを受け取る(プロセス間通信)。

◆プロセスの類語

◆利用者の代理

プロセスは、コンピュータの中で利用者の代理という意味がある。利用者は、 コンピュータが持っているハードウェア資源を利用したい時、直接コンピュー タの中に入り込むことはできない。そこで、代理人としてプロセスを作る。プ ロセスは、利用者の代わりに、コンピュータの中で活動する。

◆プロセスの操作

◆プロセスの保護

あるプロセスが、他のプロセスやOSのメモリ内容を破壊しないようにする。

◆プロセスの生成・消滅

プロセスを作るには、プログラムを実行する。WindowsやMacintosh では、プ ログラムが入っているファイルのアイコンをダブルクリックする。Unixでは、 プログラムが保存されているファイルの名前をキーボードで打ち込む。

プロセスを消す(殺す)には、実行しているプログラム(プロセス)の終了の 手順を行う。

ダブルクリックで、「画面が変る」と思うか、「プロセスがつくられる」と思 うか。

◆プロセスの強制終了

時にプロセスを強制終了する必要か出てくる。

Unix
kill コマンド、^C
Windows
Alt+Control+Delete キーを押し、タスクマネジャを実行する
MacOS
Command+Option+Escape

◆アクティブ・オブジェクトとパッシブ・オブジェクト

コンピュータの中のオブジェクトの分類
active
オブジェクトに自発的にメッセージを発する
passive
何かメッセージを受け取った時だけ返事を出す
ファイルは、passive、プロセスは、active なオブジェクトに分類される。 ただし、プロセスは、人間から発せられるメッセージを待っていることもある。

コンピュータは、時計の機能をのぞいて、passive である。 コンピュータを使う時には、人間が active にならないといけない。

テレビを見ている時、一斉授業を聞いているだけでは、人間は passive であ る。大学生は、active になることが求められている。

■世界OS

新城の最近の研究成果。

SF (Science Fiction) のパラレルワールド(parallel world, parallel universe)を、オペレーティング・システムのレベルで実現する。

サイコロをふる度に地球が6つに分裂する

図 SFのパラレルワールド

SFでは、時々別の世界にジャンプしたり人が入れ替わったりする。

◆Undo できるOS

Undo とは、do の効果を打ち消して、もともと do しなかったことにする。 (do not とは違う。)

世界OSでは、ファイルの内容を変更すると、2つの世界ができる。

世界を作りファイルを書き換えうまくいけば融合、失敗すれば削除する。

図 世界OSで使える世界の操作

実際には、先に世界を作り、その中でファイルの内容を書き換える。うまくいっ たら、融合する。失敗すれば削除して、変更の結果を無効にする。

普通の仮想計算機では、融合はできない。継承のコストが大きい。

◆パラレルワールドの利用

■まとめ

画面の裏側にあるオブジェクト、仮想的な物が存在すると信じることができる か。