PowerPoint プレゼンテーション

基本情報技術概論 (第11回)
プログラミング言語 と システム
基本ソフトウェア (OS)
埼玉大学 理工学研究科
堀山 貴史
1
復習:
CPU, 主記憶装置 / プログラム実行
バ ス
プログラム
命令
カウンタ レジスタ
命令
制御回路
デコーダ
制御装置


LD
GR0, DATA1
ADDA GR0, DATA2
汎用
レジスタ
ST
ALU
・
・
・
演算装置
主記憶の上のプログラム
 命令を前から順に実行
GR0, ANS
汎用
レジスタ 0
DATA 1 40
DATA 2 90
ANS
命令の種類
 ロード、ストア
/ 演算 / 分岐
(加減算 や シフト など) (条件分岐 や ジャンプ) 2
機械語 と アセンブリ言語

CPU は、0,1 の命令を解釈/実行する
(CPU の種類に、機械語の構成異なる)

機械語の命令に名前をつけて、
分かり易くしたもの
アセンブリ言語
(アセンブラ言語)
________________
機械語 (マシン語)
LD
GR0, DATA1
ADDA GR0, DATA2
ST
GR0, ANS
DATA1
DATA2
ANS
・
・
・
40
90
1000
1013
2000
対応関係
(1対1対応)
・
・
・
3
命令形式
命令コード
________
ADDA
LD
オペランド
________
命令の意味
GR0, GR1
GR0 ← (GR0) + (GR1)
GR0, 200
GR0 に、主記憶 200 番地の
内容をロード
 ________________
命令コード (命令の種類)



ロード・ストア (主記憶やレジスタの間でデータ転送)
演算 (加算などの算術演算、論理演算、シフト演算)
分岐
 ________________
オペランド (命令の対象)

データの値そのもの、レジスタ指定、主記憶の番地指定
4
参考:
CISC と RISC

Complex Instruction Set Computer
 命令語数が多彩
 命令によって語長 (命令のバイト数) が変わる
 メモリ アクセスが多様

Reduced Instruction Set Computer
 命令語数を少なくする、命令語長を固定する
 メモリ アクセスは、ロード・ストアのみ

→ ハードウェアが簡単 ・・・ 高速化
5
プログラミング言語
6
低レベル言語 と 高級言語

低レベル言語

… 機械語、アセンブリ言語
計算機アーキテクチャに依存
→ 別の計算機にプログラムを移植するのが困難

高級言語 (高レベル言語)

基本的に、計算機アーキテクチャに依存しない
… コンパイラ等が、機械語に変換 (翻訳) してくれる

Fortran
COBOL
C
C++
Java




… 科学技術計算用
… 事務処理用 (銀行など)
… UNIX 開発時に設計された言語
… C に、オブジェクト指向の概念を取り入れる
… オブジェクト指向言語
アプレットは、どの計算機でも実行できる
7
プログラミング言語

汎用プログラミング言語
 低レベル言語
 機械語 (マシン語) … 0, 1 で作った命令 (CPUが解釈/実行)
 アセンブリ言語 … 機械語の命令に名前をつけて分かり易くしたもの
(機械語と1対1対応)

高級言語 (高レベル言語) … 計算機アーキテクチャに依存しない
 C、Fortran 等 (手続き型言語) …処理手順を順番に書いた手続きを
単位としてプログラムを作る

C++、Java 等 (オブジェクト指向言語) …オブジェクトを単位として
プログラムを作る


LISP (関数型言語)、Prolog (論理型言語)
スクリプト言語
 Perl、Ruby、Postscript など
データと、それに対する
操作(メソッド)
→ 「オブジェクト指向設計」 8
言語プロセッサ


コンピュータは、機械語(0,1の並び)しか実行できない
他の言語で書かれたプログラムは?
言語プロセッサで、ソースプログラムを、
機械語で書かれた目的プログラムに変換

アセンブラ … アセンブリ言語を機械語に1対1対応
__________

コンパイラ
… 高級言語を機械語に変換
__________

インタプリタ … スクリプト言語を、コンパイルせずに
__________
実行時に命令を1つずつ順番に解釈
(会話的実行に優れる)
9
プログラムの特徴

________________
再配置可能 (relocatable)

主記憶のどの位置に配置しても、実行可能
例) 分岐先アドレスが○○番地に固定
… 再配置可能ではない
主記憶
プログラム
プログラム
→ 相対アドレス指定にする

再帰的 (recursive)
________________

手続きの内部から自分自身を呼び出すことができる
例) 階乗の計算 4! (つまり 4 x 3 x 2 x 1)
= 4 x 3!
f ( n ) { if (n == 1) then 1 else n x f ( n – 1 ) }
10
プログラムの特徴

再入可能 (re-entrant)
________________

複数のタスクによって同時に実行されても、
それぞれに正しい結果を返す
タスク A
データ領域 A
手続き部分
タスク B

データ領域 B
データ領域
(変数格納など)を
分ける
再使用可能 (re-usable)
________________


逐次再使用可能ともいう
主記憶上の同じプログラムを、複数のタスクが
1つずつ順番に実行できる
実行前か実行後に、データ領域を初期化する仕組みがある
11
練習問題:
再帰的処理
次の関数 f (n, k) がある。f (4, 2) の値はいくらか。
1
(k = 0)
f (n, k) =
f (n-1, k-1) + f (n-1, k) (0 < k < n)
1
(k = n)
(H17年度 秋)
12
基本ソフトウェア
(OS : Operating System)
13
ソフトウェアの体系

ユーザ

アプリケーション
ソフトウェア
基本
ソフトウェア
(OS)
制御プログラム
___________


言語プロセッサ


コンパイラ、アセンブラ、インタプリタ
サービスプログラム

ハードウェア
スーパバイザ
制御 (管理) やユーザプログラム
実行の監視
ジョブ管理、タスク管理、記憶管理
データ管理、運用管理、障害管理
ユーザインタフェース
14
制御プログラム (狭義の OS)

スーパバイザ 制御 (管理) やユーザプログラム実行の監視

ジョブ管理
ジョブ実行順序の制御、ファイルや周辺装置の割り当て
ジョブ … ユーザがコンピュータに与える仕事の単位
___________

タスク管理
タスク実行の管理、CPU 使用時間の割り当て
タスク … ジョブを細分化したもの
OS が CPU、I/O を割り当てる仕事の単位
___________

記憶管理
( → 次回、詳しくやります )
15
タスク管理 と マルチタスク
16
用語:

シングル タスク (シングル プログラミング)

タスク1
タスク2
CPU
I/O
シングル タスク
1つのタスクを最後まで実行してから、
次のタスクの実行を開始
CPU
I/O
CPU
I/O
ずっと待っている
CPU
空き
I/O
CPU I/O CPU I/O
CPU
CPU
I/O
CPU
I/O
I/O
17
用語:

シングル タスク
CPU
CPU

I/O
空き
CPU
CPU
I/O
I/O
CPU
マルチ タスク
I/O
CPU
I/O
I/O
マルチ タスク
CPU
CPU
I/O
CPU
I/O
CPU
I/O
I/O
18
用語:

シングル タスク


マルチ タスク
1つのプログラムを最後まで実行してから、
次のプログラムの実行を開始
マルチ タスク (マルチ プログラミング)


見かけ上、同時に複数のプログラムを実行
CPU の空き時間を少なくする
⇒ スループットの向上、レスポンスタイムの短縮
・ スループット
… 一定時間に処理できる仕事の量
・ レスポンスタイム … 応答が返ってくるまでの時間
19
タスク管理

どのタスクに CPU を割り当てるか
タスク
生成
実行可能状態
CPUが空けば
いつでも実行可能
タスク
実行完了
実行状態
CPUでタスクを
実行している
20
タスク管理
実行可能状態
CPUが空けば
いつでも実行可能
ディスパッチング
CPUが空くと、次に実行されるべき
タスクに CPU が割り当てられる
実行状態
CPUでタスクを
実行している
・ タイムスライス(CPUを割り当てられた時間)を
使い切る
・ より優先度の高いタスクが生成され、
CPU を奪われる
… プリエンプション
21
タスク管理
実行可能状態
実行状態
CPUでタスクを
実行している
入出力
完了
待ち状態
入出力
要求
入出力など他の作業が
終わるのを待っている
22
タスクのスケジューリング方法

タスクにどのように CPU を割り当てるか
 到着順


優先順


到着した順 (他のタスクが来ても中断しない)
優先順位の高いものから実行する
ラウンドロビン

到着順だが、タイムスライスを使い切ったら、
待ち行列の後ろに並ぶ
(一定時間ごとに、他のタスクに交代する)
23
24
練習問題:

タスク管理
(H12年度 春)
似た問題が色々あります
表は、A, B, C の各タスクを単体で実行した場合の CPU, I/O
占有時間を示している。3つのタスクが同時に実行可能状態
になってから、すべてが終了するまでの CPU のアイドル時間
を求めなさい。なお、CPUは1個、各タスクの I/O は並行して
処理可能、OS のオーバヘッドは無視できるものとする。
タスク
A
B
C
優先度
高
中
低
単独実行の占有時間
各タスクともに、
CPU → I/O → CPU
5 ms → 8 ms → 2 ms
25
練習問題:
タスク管理
(つづき)
CPU
A I/O
B I/O
C I/O
タスク
A
B
C
優先度
高
中
低
単独実行の占有時間
各タスクともに、
CPU → I/O → CPU
5 ms → 8 ms → 2 ms
26
練習問題:
タスク管理
似た問題が色々あります

表は、A, B の各タスクを単体で実行した場合のCPU, I/O 占
有時間を示している。2つのタスクが同時に実行可能状態に
なってから、すべてが終了するまでに何ミリ秒必要か。

なお、CPU は1個、I/O も1個であり、それぞれの処理を実行
中に中断されることはない。また、OS のオーバヘッドは無視
できるものとする。
タスク
優先度
A
B
高
低
単独実行の占有時間 (単位: ms)
CPU → I/O → CPU → I/O → CPU
20 → 30 → 20 → 40 → 10
10 → 30 → 20 → 20 → 20
27
練習問題:
タスク管理
(つづき)
CPU
I/O
タスク
優先度
A
B
高
低
単独実行の占有時間 (単位: ms)
CPU → I/O → CPU → I/O → CPU
20 → 30 → 20 → 40 → 10
10 → 30 → 20 → 20 → 20
28
練習問題:

タスク管理
(H18年度 春)
特定のタスクが CPU 資源の割当てを待ち続ける可能性が高いタ
スクスケジューリング方式はどれか。
ア. 各タスクの優先度を決めて、優先度が高い順に実行するが、CPU 割当て
までの待ち時間の長さに応じて優先度を徐々に上げていく。
イ. 各タスクを CPU 待ち行列に置かれた順に実行し、一定時間が
経過したら実行を中断して CPU 待ち行列の最後尾に加える。
ウ. 処理予定時間が最も短いタスクから処理を実行する。現在実行中の処理が
完結するか、又は何らかの要因によって中断されたとき、次のタスクを開始
する。
エ. タスクがシステムに到着した順に実行可能待ち行列の最後尾に加え、常に
実行可能待ち行列の先頭のタスクに CPU を割当てる。
29
テキスト p.208 例題7
練習問題:
x=3
タスク管理
…→ x = 12 ?
タスク A ( x = x + x )
タスク B ( x = x × x )
a1: e ← x
b1: h ← x
a2: f ← x
b2: i ← x
a3: g ← e + f
b3: j ← h × i
a4: x ← g
b4: x ← j
30
31
練習問題:
タスク管理
1 ms + 5 ms = 6 ms
CPU
A I/O
B I/O
C I/O
タスク
A
B
C
優先度
高
中
低
単独実行の占有時間
各タスクともに、
CPU → I/O → CPU
5 ms → 8 ms → 2 ms
32
33
34
この教材のご利用について




この文面は、TOKYO
TECH OCW の利用
条件を参考にしました
この教材は、以下に示す利用条件の下で、著作権者にわざわざ許諾を
求めることなく、無償で自由にご利用いただけます。講義、自主学習は
もちろん、翻訳、改変、再配布等を含めて自由にご利用ください。
非商業利用に限定

この教材は、翻訳や改変等を加えたものも含めて、著作権者の許
諾を受けずに商業目的で利用することは、許可されていません。
著作権の帰属

この教材および教材中の図の著作権は、次ページ以降に示す著
作者に帰属します。この教材、または翻訳や改変等を加えたもの
を公開される場合には、「本教材 (or 本資料) は
http://www.al.ics. saitama-u.ac.jp/horiyama/OCW/ の教材です
(or 教材を改変したものです」 との旨の著作権表示を明確に実施
してください。なお、この教材に改変等を加えたものの著作権は、
次ページ以降に示す著作者および改変等を加えた方に帰属しま
す。
同一条件での頒布・再頒布

この教材、または翻訳や改変等を加えたものを頒布・再頒布する
場合には、頒布・再頒布の形態を問わず、このページの利用条件35
この教材のご利用について

配布場所

http://www.al.ics.saitama-u.ac.jp/horiyama/OCW/

この powerpoint ファイルの著作者

堀山 貴史 2007-2010 [email protected]

改変等を加えられた場合は、お名前等を追加してください
図の著作者

p. 3
 CPU : http://webweb.s92.xrea.com/

p. 11, 14
 クリップアート : Microsoft Office Online / クリップアート

その他
 堀山 貴史

36