スライド タイトルなし

2009. 6.15
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Keiichi MIYAJIMA
ソフトウェア
ソフトウェア
PC上の「ソフトウェア」はなにもゲームやワープ
ロソフトといったアプリケーションソフトだけでは
ない。
• OS (operating system)
• アプリケーション
アプリケーションソフトについては説明の必要
はないであろう
OS
OSとは?
•コンピュータを効率よく利用するための管理人
•コンピュータと人間のあいだの仲介者
命令
*◇+>!
出力
3@^}「
OS
(イメージ)
OSの主な役割
OSが管理するものは主として以下の3つ
•
プロセスの管理
•
ファイルの管理
•
リソースの管理
プロセスの管理
プロセス:
コンピュータの中で実行されているプログラム
ただし・・・
ここでいうプログラムとは、コンピュータ側の管
理する立場から見た単位で、使用者の側から
見たプログラムとは必ずしも一致しない。
プロセスの管理の例1
例:
ユーザの視点
ワープロ
日本語入力
ソフト
お絵かきソフト
印刷プログラム
ユーザからは、「ワープロ」ソフト一つしか動いているよ
うに見えないが、実際は複数のプログラム(プロセス)
が動いている
これらをうまく管理する必要
プロセス管理の例2
同時に複数のユーザが利用できるコンピュータ
(マルチユーザ)
起動
起動
同じプログラムを複数の
ユーザが同時に使用
起動
同じプログラムでもプロセスは複数
プロセスの管理
プログラムを実行する
=プロセスを生成する
プログラムを終了する
=プロセスを消滅させる
なお、プロセスのことをタスクという場合もある
プロセス管理の方式
•
シングルタスク方式
一時期にプログラムを一つだけしか実行しな
い方式。
プログラムを終了しないと、別のプログラムを
実行できない。
以前のDOSはこの方式
•
マルチタスク方式
同時に二つ以上のプログラムを実行する方式
マルチタスク方式
各プログラムは実際には並列実行されている
わけではない
OS
プロセスA
プロセスB
プロセスC
短い時間間隔で切り換えて実行
プロセスの切換方式
•
Preemptive方式
一定時間経過後、プロセスの都合によらず、
OSが強制的に切り換える
•インターバルタイマなどで、周期的に割り込みを
発生させる
•割り込みの間隔が長すぎると各プロセスの応答
時間が長くなるためスムーズに動作しなくなる
•短すぎると、プロセスの切換処理(OSのオーバ
ヘッド)が発生するため、効率が落ちる
プロセスの切換方式
•
Non-preemptive方式
プロセス自身が制御をOSに戻さないと、切
り換えられない方式
•プログラムをうまく作成しないと、一つのプログ
ラムがCPUを占有してしまう
スケジューリング
プロセスをどういう順で実行するのか?
ラウンドロビン(round-robin scheduling)方式
優先度順方式
スケジューリング
プロセスをどういう順で実行するのか?
ラウンドロビン(round-robin scheduling)方式
待ち行列
プロセス
D
プロセス
C
プロセス
B
実行中
プロセス
A
一定時間毎に入れ替え
スケジューリング
プロセスをどういう順で実行するのか?
優先度順
待ち行列
プロセス
D
プロセス
B
プロセス
C
優先度 4
優先度 3
優先度 2
優先度順に実行
実行中
プロセス
A
優先度 1
スケジューリング
実際には・・・
優先度方式とラウンドロビン方式を適度に
混ぜ合わせた方式が使われる
実行可能状態
プロセス
D
プロセス
C
待ち状態
プロセス
B
実行状態
プロセス
A
スケジューリング
最近では・・・
一台のコンピュータに複数のCPUを搭載
マルチプロセッサ(multi-processor)
負荷の少ないCPUに優先的にプロセスを割り
当てるなど、スケジューリングに別の要素が加
わり、複雑になっている。
OSの主な役割
OSが管理するものは主として以下の3つ
•
プロセスの管理
•
ファイルの管理
•
リソースの管理
ファイルの管理
プログラムもデータも補助記憶装置に保存して、
全てファイルとして取り扱う。
ファイルシステム
ディレクトリ= フォルダ
Windowsでは「フォルダ」というが、コンピュータ
一般では「ディレクトリ」という方が正しい
ファイルシステムの構造
Windowsの場合
C:
・・・
Program
files
WINDOWS
Documents
and …
・・・
Fonts
java
Config
miyajima
ファイルシステムの概要
•
FAT (file allocation table)の場合
クラスタ:ハードディスクではセクタを最小単位として読
み書きを行うが、大容量化によってセクタの数
が膨大になった
セクタをいくつか集めたクラスタを単位とし
て読み書きをする
クラスタ
番号
2
100
1000
ファイル名 開始クラスタ 属性
****
miyajima
1000
FAT
ルートディレクトリ
ファイル名 開始クラスタ 属性
ディレクトリ(miyajima)
hello.c
2000
ファイル (hello.c)
FAT
100
****
2000
101
102
103
101
102
103
104
1000
1001
1002
1003
1001
2000
2001
1002
2001
終り
1003
終り
104
終り
マルチユーザOSの場合
マルチユーザOSでは、複数のユーザが同時に同じマ
シンを使用
他のユーザに自分のファイルを誤操作させないような
管理が必要
全てのファイルに所有者情報とパーミッション
(permission:保護モード)を与えて管理
OSの主な役割
OSが管理するものは主として以下の3つ
•
プロセスの管理
•
ファイルの管理
•
リソースの管理
リソースの管理
リソース (resource):
資源という意味で、メモリやディスク、プリンタ、キー
ボードなどコンピュータが利用できるもの全て
マルチタスクのOSでは複数のプロセスが同時に同
じリソースにアクセスしようとしてリソースの取り合い
を起こしてしまう可能性がある
そこで
各プロセスはリソースではなくOSにアクセス要求
を出し、OSがリソースのアクセスを管理する
OS
入出力要求
プロセス
結果
入出力要求
プロセス
デバイス
ドライバ
結果
入出力要求
プロセス
デバイス
ドライバ
デバイス
ドライバ
結果
入出力要求
プロセス
デバイス
ドライバ
結果
デバイス
ドライバ
本日のまとめ
ソフトウェア、特に「OSの主な役割」について
• プロセス(タスク)管理
コンピュータ側から見た各種プログラムの管理
• ファイル(データ)管理
補助記憶装置にある各種ファイル(データ)の
管理
• リソース管理
コンピュータ上の資源管理
本日の課題
1.OSが管理する項目を3つ挙げ、それぞれの役割
を説明せよ。
2.OSで、プロセス管理方式に2種類ある。何と何
か?
3.プロセスが実行状態、実行可能状態、待ち状態
のいずれかの状態をとるとき、実行状態のプロセ
スがプリエンプションによって他のプロセスに実
行を中断され、再び実行状態となるまでの変化を
記述せよ。
(H18年 ソ改)
実行状態
・ ・ ・ ・ ・
実行状態