2003年4月19日(月)
情報コミュニケーションIII A
第2回
コンピュータの仕組み(ソフトウェア編)
コンピュータの仕組み
コンピュータを構成するもの
ハードウェア(Hardware)
物質として存在
手で触れるもの
ソフトウェア(Software)
ハードウェアを動作させるためのもの
プログラムやデータ
プログラム
ハードウェア(コンピュータ)を利用するためには
ソフトウェア(プログラム)が必要不可欠
ハードウェアは2進数しか理解してくれない …
人間は,2進数だけでは理解しにくい
(機械語) 2進数
ハードウェアが理解可能
アセンブリ言語
高水準プログラム言語
人間が理解可能
アセンブリ言語(assembly language)
コンピュータに対する命令→ 2進数(機械語ともいう)
例えば「AとBを足しなさい」 と命令(コマンド実行)
10001100101000000
0,1の羅列で表現
もう少し分かりやすい表現: アセンブリ言語
例えば「AとBを足しなさい」
add A, B
つまりアセンブリ言語とは…
2進数を直接書くよりは人間に分かりやすい
コンピュータに対する命令1個について
1行のアセンブリ言語が対応
高水準プログラミング言語
アセンブリ言語でも分かりにくい
より人間が理解しやすいほうがいい
高水準プログラミング言語
(high-level programming language)
例えば…
2進数 10001100101000000
=
アセンブリ言語 add A,B
=
高水準言語 A+B
高水準プログラミング言語の例
言語名
C, C++
COBOL
用途(得意分野)
システム記述
事務処理
Fortran, Pascal
科学技術計算
Java
分散協調処理
(ネットワーク対応)
記号処理
文字(テキスト)処理
LISP
Perl, Ruby
アセンブラとコンパイラ
プログラムは最終的には2進数(機械語)に変換
アセンブラ(assembler)
アセンブリ言語を2進数に
コンパイラ(compiler)
高水準プログラミング言語をアセンブリ言語or2進数に
2進数
(機械語)
ア
セ
ン
ブ
ラ
アセンブリ言語
コ
ン
パ
イ
ラ
注意:高水準プログラミング言語から直接
2進数に変換するコンパイラも存在する
高水準言語
ソフトウェアの相互関係
ソフトウェアの中には,よく利用されるものがある
プリントアウトするためのもの.ハードディスクから
データを読み出すもの.
画面に文字を表示させるもの…
こういうものを集めたものを「サブルーチン・ライブラリ」という
ワープロ
みんなで使おう!!
お絵かき
WWWブラウザ
プリントアウトルーチン
システムとアプリケーション
ソフトウェアは大きく分けて2種類
アプリケーション・ソフトウェア(application software)
ユーザ(普通は人間)に提供される有用なプログラム
(ワープロ→Word ,一太郎,表計算→Lotus123, Excel,
お絵かきなど→Visio, Photoshop など)
システム・ソフトウェア(system software)
プログラムにとって有用なサブルーチンなどを提供するも
の(プリントアウト,ネットワーク通信など)
ユーザ
アプリケーション・ソフトウェア
システム・ソフトウェア
ハードウェア
オペレーティング・システム
オペレーティング・システム(Operating System)
通称: OS
コンピュータの構成要素を管理し,プログラムの実行
効率を高めるためのプログラム群
システム・ソフトウェアの一種
信頼性(reliability),可用性(availability),
保守性( serviceabilit y ) ,一貫性 (inte grity ) ,
安全性(security)が必須・・・・RASIS
さらに移植性(portability),
ユーザ親和性(user-friendliness)も重要
OSの種類
現在よく利用されているOS達
MacOS(Apple社)
Macintosh
Windows(Microsoft社)
Intel系 PC(一般的なパソコ
ン)
UNIX(AT&T社のベル研究所で開発)
後に様々なプラットホームに移植
商用のもの:Solaris, HP-UX, IRIX

専用のワークステーションで利用
フリー(無料)のもの: FreeBSD,NetBSD,OpenBSD

Intel系 PC, PowerPC系, Alpha-chip系
Linux (Linus Torvalds氏が開発)

UNIX とほとんど同じだが、厳密にはUNIX ではない
その他: OS/2, BeOS, TRON系(BTRON,ITRON)など
バッチ処理とタイムシェアリング(1)
OSは,たくさんの仕事(ジョブ)をこなす必要あり
ユーザやプログラムからの要求
仕事のこなし方は,大きく分けて次の二つ
バッチ処理(batch processing)
仕事(ジョブ(job))を待ち行列(queue)に入れて,順にひとつ
ずつ処理していく
タイム・シェアリング・システム(Time Sharing
System)
TSS
複数のジョブを時分割で処理

すべてのジョブを少しずつ処理する
注意:ジョブのことをプロセス(process)と呼ぶ
バッチ処理とタイムシェアリング(2)
バッチ処理
待ち行列(queue)
C
B
A
処理の様子
時間
前のジョブが終わるまで待たされる
タイムシェアリングシステム
ジョブ
C
B A
処理の様子
時間
タイムスライス
タイムスライスは非常に短いので,あたかも3つのジョブを
同時に実行しているように見える
OSの役割
OSはハードウェアの違いを吸収する
ユーザあるいはアプリケーションソフトウェアは,
ハードウェアの違いを意識する必要はなくなる
OSはすべての資源を管理する
いくつかの管理プログラムによって実現
プロセス管理,入出力管理,メモリ管理,ファイル管理
ユーザ
アプリケーション・ソフトウェア
システム・ソフトウェア
ハードウェア
OSの守備範囲
OSの種類
シングルユーザ・シングルタスク
同時に1ユーザ,同時に1タスク(=ジョブ)
CP/M, MS-DOSなど「いにしえの」OSたち
シングルユーザ・マルチタスク
同時に1ユーザ,同時に複数タスク
MacOS, Windows 3.1/ 95 / 98 / Me など
マルチユーザ・マルチタスク
同時に複数ユーザ,同時に複数タスク
UNIX, Windows NT / 2000 / XP,MacOS Xなど
ファイル・システム
ファイル
意味を持ったデータのまとまり
Windowsのアイコンの単位
ファイルシステム
ファイルをどこに,どういう形式で格納するか?
ファイルをどういう方法で取り出すか?
に関する取り決め
これが決まっていないと,OSはファイルの入出力ができな
い(人間の事務作業と同じ)
UFS(UNIX), NTFS(Windows NT / 2000 / XP ),
FAT(MS-DOS / Windows / 95 / 98 / Me) などOSによっ
てもいろいろ
UNIXでのファイルシステム
ユーザから見えるUNIXのファイルシステム例
実際にハードディスクやメモリ上にどのように格納さ
れているかはユーザは関知しない
ルート(root)を根とする木構造
local
bin
:ファイル
usr
bin
:ディレクトリ(directory)
Windowsでいうところの
フォルダに相当.これも
ファイルの一種(複数の
ファイルを格納できるファ
イル)
/(root)
spool
lpd
var
log
httpd
access_log
ファイル・パス
ファイル・パス(あるいは単にパス(path))
ファイルの場所を表すもの
絶対パス:ルートからそのファイルの場所までのパス
相対パス:ある場所からの相対的なパス
パスの作り方
ディレクトリ名を “ / ” で区切る
Windows 系では、 “ ¥ ”
ルートディレクトリは “ / ” で表す
一つ上のディレクトリは “ .. ” で表す
最後は目的のファイル(ディレクトリ)名
パスの例
local
bin
usr
bin
/(root)
spool
lpd
var
log
httpd
access_log
絶対パス: /var/log/httpd/access_log
spoolからの相対パス: ../log/httpd/access_log
ファイル・フォーマット
ファイル・フォーマット(file format)
データをファイルに格納する際の取り決め
様々な方法がある
例えば住所録をどういうフォーマットで格納するか?
必要な情報: 名前,住所,電話番号
1.
各項目(フィールド)の長さを決めておく
Robert □□□□Kyoto□□□□□116□□
2.
区切り文字と順番を決めておく
Robert,Kyoto,116
3.
簡単だが無駄が多い
各項目に名前を付けておく
無駄はないが区切り文字が
区別のため文字列を
そのままではデータ中で使えない
“ ”で囲むとよい(CSV:
Comma Separated Value)
NAME=Robert,ADDRESS=Kyoto,TEL=116
分かりやすいが無駄も多い
ファイル名とファイルフォーマット
Windowsでは,“.”以降の文字(原則3文字.
拡張子と呼ぶ)でファイルフォーマットを推測
exe… 実行形式ファイル
doc… Word ファイル
xls… Excel ファイル
ppt… PowerPoint ファイル
jxw… 一太郎ファイル
それぞれの拡張子に応じたアプリケーションを自動起動
(アイコンをクリックして、自動的に開くため)
UNIXでは“file”コマンドでファイルフォーマット
がある程度分かる
ミニレポート
今回の課題
自分の持っているパソコンについて
ハードウェアのスペック


CPUの種類,メモリおよびハードディスクの容量
付属しているインタフェース, 利用している二次記憶装置
OSの種類
を調べてまとめよ
授業感想,質問等
[email protected]
題名:0419
締め切りは次の講義日の前日(4/25)まで
ダウンロード

スライド