総合科目「ネットワーク社会を支える情報技術入門 II」、2011年10月03日
筑波大学システム情報工学研究科/電子・情報工学系
新城 靖
<yas @ cs.tsukuba.ac.jp>
このページは、次の URL にあります。
http://www.softlab.cs.tsukuba.ac.jp/~yas/gen/it-2011-10-03
あるいは、次のページから手繰っていくこともできます。
http://www.softlab.cs.tsukuba.ac.jp/~yas/gen/
http://www.cs.tsukuba.ac.jp/~yas/
印刷配布資料 http://www.softlab.cs.tsukuba.ac.jp/~yas/gen/it-2011-10-03 /it-2011-10-03 .pdf
木構造(tree structure)というのは、コンピュータ・サイエン ス(情報学類、情報科学類で学ぶ学問)でよく使われる用語である。分野によっては、同じ ものを階層構造(hierarchical structure)という言葉で表現す ることが好まれる。ドイツ語語源の、ヒエラルヒー(Hierarchie)という言葉が 使われることもある。
木構造の例を、大学の組織を使って説明する(図1)。
筑波大学
筑波大学情報学群情報科学類
コンピュータの中で、文字列(文字の並び)で木構造上の位置を表現する時に は、節が分かりやすくために、はっきりと区切りを入れて表現することがよく 行われる。
筑波大学.情報学群.情報科学類
筑波大学/情報学群/情報科学類
情報科学類.情報学群.筑波大学
区切り文字としては、「.」(点)、「/」(スラッシュ)、「\」(バック スラッシュ)、「¥」(円記号)などがよく使われる。単語を並べる時に、木 の根に近いほうから書く流儀と遠い方から書く流儀がある。
コンピュータでは、次のような場所で木構造が使われている。
コンピュータ以外では、次のような場所で木構造が使われている。
Time flies like an arrow.
図4 「Time flies like an arrow.」の木(その1)
図5 「Time flies like an arrow.」の木(その2)
<sentence> ::= <simple sentence> '.'
または <compound sentence> '.'
または <compound-complex sentence> '.'
<simple sentence> ::= <clause>
<compound sentence> ::=
<clause> ',' <FANBOYS> <clause>
または <clause> ';' <transition word> <clause>
または <clause> ',' <conjunctive> <clause>
<complex sentence> ::=
<dependent clause> ',' <independent clause>
または <independent clause> <dependent clause>
<compound-complex sentence> ::=
<clause> <dependent clause>
<dependent clause> ::= <subordinate> <clause>
<subordinate> ::=
<subordinate-adj> または <subordinate-adv>
または <subordinate-noun>
<subordinate-adj> ::=
who または whom または that または which
<subordinate-adv> ::= after または before または because
または although または since
<subordinate-adv> ::= that または whether
<clause> ::= 基本5文型で表せるもの
<FANBOYS> ::=
for または and または not または but または
or または yet または so
<conjunctive> ::=
<subordinate conjunction> または <coordinate conjunction>
または <conjunctive adverb>
<subordinate conjunction> ::= as, if, that など
<coordinate conjunction> ::= and, but, or, for など
<conjunctive adverb> ::= however, nevertheless,
still, then など
よい英文は、1つの <sentence> には、2つ
の<clause>、つまり、S V が2つが現れることが多い。
ディレクトリは、全体では
木構造(tree structure)
になっている。階層化ディレクトリ(hierarchical directory)と呼ばれるこ
ともある。
図9 ファイルとディレクトリの木
図10 自然の木
ファイルの名前の表現には、「パス名」がよくつかわれる。パス (path)とい うのは、道の意味である。パス名では、どの道を通ればよいかの道順を示すこ とでファイルの名前を表現する。
木構造では、節、または、枝(道)に名前がついている。ファイル名は、区切り 文字で区切られた、節、または、枝の名前の並びになる。ファイルの名前を表 現する時の区切り文字としては、次のものがよく使われる。
/
\
:
パス名の例:
/home/s123456
/usr/bin/emacs
電子メールを送ったりWorld Wide Web のページを閲覧する時には、データの 送り先やデータを持っているコンピュータを指定する必要がある。 インターネットで使われている、コンピュータの名前を管理する仕組みは、 DNS(Domain Name System) と呼ばれている。 DNS では、膨大な数のコンピュータの名前を含む名前空間を階層的にドメイン (領域)に分割して管理している。
たとえば、次のような名前を考える。
azalea1.coins.tsukuba.ac.jpこのように、インターネットでのコンピュータの名前は、「
.」
で区切られた文字列(文字の並び)である。この文字列で使える文字は、アル
ファベットと数字、ハイフン(マイナス)である。
DNS で名前は、右から左に向かって解釈される。
「azalea1.coins.tsukuba.ac.jp」を
図8で考えると、次のようになる。

図9 名前空間の木構造としての見方
「azalea1.coins.tsukuba.ac.jp」を
図9で考えると、次のようになる。
jp という節を選ぶ。
ac という節を選ぶ。
tsukuba という節を選ぶ。
coins という節を選ぶ。
azalea1 という節(葉)を選ぶ。
大量の情報を保存するには、木構造を使うしかない。 しかし、、、

図13 こうもりの分類(1)

図14 こうもりの分類(2)
木構造は、ファイルを整理するのに非常に強力な構造である。しかし、それだ けでは、ファイルを整理するには不都合が起きる。それを解消するために、次 のような名前で呼ばれる仕組みが用意されている。

図15 こうもりの分類(別名つき)
例: アパートの分類。次のような項目から任意の順で絞り込める。
類語:抽象(abstract)、論理(logical) (←→物理(physical))
反語:実(real)
メモリには、数字で番地(アドレス)が付いている。番地を指定して、データ を保存する。番地を指定すると、データが取り出せる。
仮想記憶(仮想メモリ、virtual memory)とは、オペレーティングシステムの働きにより、実際に備えているメ
モリ容量よりも大きなプログラムを動かすための仕組みである。
図 仮想記憶による主記憶容量の拡大。主記憶よりも、「事実上」多くのメモリがあるように見せかける。
仮想記憶の基本的なアイディアは、高価な RAM の容量を、 安価なハードディスクを使って、「事実上」拡大する。 すぐに使うところだけを速いメモリ(IC)に、当分使わない所を、遅いハー ドディスクに置き、ディスクとメモリの内容を入れ替えながら仕事を進める。 この時、速いメモリを主記憶、遅いハードディスクを二次記憶とう。
仮想記憶を使うと、メモリが 1000 M バイトしかないコンピュータで、2000 M バイトのメモリを使うプログラムを実行することができるようになる。
もともとは、1つのプログラムで実際のメモリ容量以上のものを使うための仕 組みである。最近では、複数のプログラムが使うメモリの総量で考えることも ある。

図 単純化したコンピュータの構成

図 仮想計算機上でのオペレーティング・システムの実行
仮想計算機は、仮想計算機モニタ(virtual machine monitor, VMM) という小さ なソフトウェアにより実現される。 仮想計算機は、ハイパーバイザ(hypervisor)と呼ばれることもある。仮想計算機モニタは1個でも、複数の仮想計算機を作ることができる。

図? 仮想計算機によるサーバの集約(集約前)

図? 仮想計算機によるサーバの集約(集約後)

図? ホスト型仮想計算機モニタ
目標: オペレーティング・システムやアプリケーションに依存しない形でセキュ リティ機能を付加する。

図? BitVisor の機能

図? BitVisor の起動画面
http://www.bitvisor.org/
http://www.securevm.org/
VPNを実現する技術:
http://utvpn.tsukuba.ac.jp/
筑波大学では、学外から学内のサービス(Twins等)を利用するために使える。
http://www.cc.tsukuba.ac.jp/network/access/vpn.html
http://www.coins.tsukuba.ac.jp/ce/ (手引きの中)
人間が働き掛けると、現実と同じように応答する。感覚のフィードバックがある。