2002年度秋 情報処理 第3回
今日のメニュー
- コンピュータにはいろいろある
- 仕組みを考える
- 違いも考える
- いろいろ考えながらラップトップを使う
先週の課題
- まあおもしろかった
- メーリングリストに慣れよう
- 何となくルールを身につけよう
- もうちょっと積極的に参加しよう
ハードウェアとソフトウェアとデータ
ちなみに中国語だとハードウェア = 硬件、ソフトウェア = 軟件
- ハードウェア
- ソフトウェアとデータが踊るための舞台装置
- ソフトウェア
- 処理内容、処理方法を表す情報
「プログラム」とほぼ同義、ハードウェアの上で踊る役者
- データ
- 処理対象となる情報
ハードウェア上で踊るソフトウェアが取り扱う「何か事物を表したもの」
ハードウェアとソフトウェアの階層構造
情報処理共通教材より
- ソフトウェア
- 応用ソフトウェア(アプリケーション):
- 何らかの「目的」を達成するためのソフトウェアの部品
- Webブラウザ,メールソフト, エディタ,ワープロ...
- 基本ソフトウェア(広義のオペレーティングシステム):
- ハードウェアと応用ソフトウェアの間を取り持つ
- 特定の「目的」はない
- ハードウェア: CPU,メモリ,ディスク,ネットワーク
ソフトウェア
って何?
- アルゴリズム
- 「ある結果を得るための計算の仕方」、
ハードウェアである目的を達成できるようにぶんまわすための一連の手続き
- プログラム
- アルゴリズムを具体的にある特定のコンピュータが理解できるよう
記述したもの。
- プログラミング言語
- プログラムを書くための語彙と文法のセット
- ソフトウェア
- だいたいプログラムと同義、ハードウェアと対語で使われる
第一回課題より
第一回質疑応答から
どうして「ラップトップとデスクトップ」があるの?
コンピュータはなぜ「わかりにくい」のか
- 物理的な実体と、その機能にあまり直接的な関係がない
- 見たものがすべてじゃない
- 「物理的 (Physical)」な機能と、「論理的 (Logical)」な機能の
階層分離
- 人は見た目ではわからないけど、見た目でわかる部分もある
形と見た目と無関係な、「計算機の本質」を知っておこう
Q: 次のうち計算機とは呼べないものを選べ
計算機の本質
- プログラム(命令)とデータ(命令対象)を格納する場所(記憶装置, Memory)
- プログラムを実行してデータを処理する部分(演算装置, CPU)
- ユーザと対話する部分(入出力インターフェース)
があれば計算機=コンピュータ。
(c) 技術評論社
「計算機」の最初のモデル
- 世界最初の計算機のモデル
- アラン・チューリング、1912年生
- チューリングマシン (Turing Machine)
- 仕組み
- 無限のコマからなる紙テープがある
- 有限個数の「状態」を持つ「制御部」がある
- 制御部ができること
- 目の前のテープのコマの読み書き
- 左右への移動
- 「状態」の変更
- 今のコンピュータで言えば、
チューリングがスゴかったこと
- 「計算できるものは、この紙テープマシンがあれば、何でも計算できる」
ことを証明した
- 「ある結果を得るための計算の仕方」というものが「アルゴリズム」として
定式化して記述できることを示した
- ただし、「無限の時間」と「無限の長さの紙テープ」があれば、
という条件付き
そして世の中のたいがいのことは「計算できる」
コンピュータはどう進化してきたか?
- 計算できるものを増やしたい
- どんどん速度を早くする (演算装置の高速化)
- どんどんテープを長くする (メモリの大容量化)
- 使い勝手を良くしたい
- 蛸壺にはまらず進化しやすいようにしたい
実際の計算機をばらしてみよう
「論理的」に見ると、こんな感じ
(c) 技術評論社
- CPU
- メモリ(一次記憶装置)
- ディスク(二次記憶装置)
- 入出力装置とその制御部
「物理的」に見ると?
CPU、中央演算装置
- CPU (Central Processing Unit)、中央演算装置
- 数千万 - 数億個 のトランジスタから成る回路を集積したもの
- 制御部 + ALU(Arithmetic and Logic Unit) + レジスタ + メモリキャッシュ +
バスインターフェース
(C)文部科学省
CPUの仕事
こんだけ
- メモリやその他の部品から、レジスタにデータ転送する
- レジスタ内のデータに対して「演算」する
- レジスタから、メモリやその他の部品にデータ転送する
クロック
- 同じ形式のCPUでのスピードを計る単位
- CPUのシステムの処理ペースのタイミングを決める電気パルス
- メトロノームみたいなもの
- 単位 = Hz、1秒間に何回パルスが出されるか
- 単純なレジスタ間加算/除算なら、だいたい1クロック
- 1クロックでどれだけの仕事ができるかは設計によって違うので、
絶対的な速度単位ではない
情報処理共通教材より

記憶装置
- 主記憶(メモリ、特に RAM(Random Access Memory))
- 早い
- 高い (例: DDR PC2100 512MByte / 15,000 円)
- 手軽 (CPUが直接扱える)
- 電気切ると普通消える(Volatile, 揮発的)
- 二次記憶装置(ディスクなど)
- 遅い
- 安い (例: IDE HDD 100GByte / 15,000 円)
- 面倒 (CPUは間接的に扱う)
- 電気切っても消えない(Persistent, 永続的)
- 中身はファイルとディレクトリ(フォルダ)を単位に整理
ファイルを開く/保存するって何?
情報処理共通教材より

- ファイルを「開く」
-
- ディスクにあるファイルを、
メモリ上の作業エリアに読み込んだり、関連づけたりする
- CPU(とユーザ)が作業がしやすいメモリに読み込む
- ファイルを「保存する」
-
- メモリ上にある作業エリアを、
ディスク上に書き出す
- 電源が切っても消えないファイルに残しておく
バスと入出力
- バス = モジュールの間をつなぐ仕組み
- メモリ - CPU - 入出力
- さまざまな入出力装置
- キーボード
- マウス
- モニタ
- 音声入出力
- ネットワーク
- 入出力装置には、「I/Oコントローラ」という、
各部門の部門長みたいなのがついている
以上、ハードウェアでした
応用ソフトウェア(アプリケーション)
- 汎用コンピュータの特徴
- 使用「目的」ごとに、様々なアプリケーションをとっかえひっかえ使える
情報処理共通教材より
基本ソフトウェア
「とっかえひっかえ使える」ために必要なもの
- まあ、だいたいOS(Operating System)を指す。
- コンパイラ(プログラムを作るプログラム)、
ミドルウェアなども含む場合がある
- 「ハードウェア」と「アプリケーション」の間に立って、仲介を行う
情報処理共通教材より
OSの役割
「仲介」とは具体的には?
- 側面1: ユーザインタフェース
-
- 厳密には「OS」の機能ではない
- コマンドインタプリタやウィンドウシステムが提供
- 「OS」の機能を、ユーザが利用できるようにする「皮」
- いろんなアプリケーションに同じような使い勝手をもたらす
- 側面2: 資源管理/調停機能
-
- いろんな資源(CPU、メモリ、ディスク、ネットワーク)を、
複数のユーザやアプリケーションがかちあわないように割り当てる
- 例: ブラウザと電子メールのソフトを「同時に」使わせる
- 例: いろんなアプリケーションが作る「ファイル」をぶつからないように
ディスクに格納する
- 側面3: 仮想マシン機能
-
- どんな装置がつながっていても、同じようにユーザやアプリケーションが
使えるように「仮想マシン」があるように見せかける機能
- ハードウェアの細かい違いに関係なく同じアプリケーションが使えるように
- 用途の違うアプリケーションごとに専用のハードウェアを必要としないように
OSとアプリケーションと「プロセス」
OSを回転寿司屋や、テレビのチャンネル切り替え部分だと思うと。
- 「プロセス」 = アプリケーションが乗ってるお皿
- OSは、複数のお皿をぐるぐる回転させながらユーザに見せている
- 複数のプロセスをぐるぐる高速に切り替えて使っているので、
複数のアプリケーションを同時に使っているように「見える」
- ユーザは、目の前に来ているお皿を取って食べられる(なくならないけど)
- 「プロセス」 = 仮想マシン
- アプリケーションは、「プロセス」というお皿がコンピュータそのものだと
信じ、そのすべてを把握していると信じている
OSいろいろ
ワークステーション/PC用
- UNIX系列 - Solaris / BSD / Linux / MacOS-X / etc...
- Windows系列 - 98, 2000, XP
ほかにも大型機用とか,PDA用とか,組み込み機械用とかにいろいろある
なんでそんなにいろいろあるのか?
- コンピュータなんてしょせん人が作った砂の城
- 人によって「こういう風に使いたい」という要求が違う
- 目的と趣味と思想に応じたいろんなものが生まれてくる
みんなは何をできないといけないか?
- すべてのコンピュータシステム/OSに関係なく,一歩上がった視点で
情報処理というものをとらえられるようになる
- 目的や制約条件に応じて,もっとも適切なコンピュータシステム/OSを
選んでどれでも使えるようになる
- 使い方だけではなく,使い方を通じてその後ろにある概念を学ぼう
プロセスを通じてOSを感じてみよう
Unix で「プロセス」を調べる
- 端末ウィンドウで "ps" コマンドをたたく
- PID: Process ID、プロセス番号
Unix で「プロセス」を制御する
- & をつけるときとつけないときの違いは?
% xclock
% xclock &
- & をつけないで起動してみて、その端末ウィンドウで Ctrl-c を
押してみる
% xclock
- & をつけて起動して、kill コマンドでプロセスを消してみる
% xclock &
% ps
(プロセス番号を調べる)
% klll -9 プロセス番号
Windowsの使い方
- ログオン/ログオフ
- ドライブ
- Zドライブ = CNSのホームディレクトリ
- Vドライブ = メディアサーバ
- マイドキュメント = ホームディレクトリ XPDataCNS フォルダ
- Dドライブ = そのコンピュータだけから見える一時使用領域
Z,V ドライブは他のUNIXマシンやWindowsマシンからも見える.
放っておくとほかの人からも見える
マイドキュメントは K,E,I,O の特別教室のWindowsマシンからだけ見える.
ただし,他の場所でも,ホームディレクトリ(Zドライブ)の XPDataCNS ディレク
トリに入っている My Documents というディレクトリとして見ることができる.
ここは放っておくと他の人から見えないようになっている
Windowsにおける「プロセス」
- だいたい「タスク」=「プロセス」
- Ctl-Alt-Del を押して「タスクマネージャ」を出してみよう
情報処理共通教材より
その他
- K,E,I,O の特別教室とメディアの Windows は若干違うので気をつけてね.
- TeraTerm を利用すると、Windows マシンから UNIX マシンに
「リモートログイン」して、 使うことができる
-
TeraTermの利用(CNSガイド)