Ibaraki Univ. Dept of Electrical & Electronic Eng. 2009. 6.15 電子計算機工学 Ibaraki Univ. Dept of Electrical & Electronic Eng. Keiichi MIYAJIMA
ソフトウェア
ソフトウェア PC上の「ソフトウェア」はなにもゲームやワープロソフトといったアプリケーションソフトだけではない。 OS (operating system) アプリケーション アプリケーションソフトについては説明の必要はないであろう
OS OSとは? コンピュータを効率よく利用するための管理人 コンピュータと人間のあいだの仲介者 命令 出力 OS (イメージ) *◇+>! OS (イメージ) 命令 *◇+>! 3@^}「 出力
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 プロセス 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 … miyajima ・・・ Fonts java Config
ファイルシステムの概要 クラスタ: FAT (file allocation table)の場合 ハードディスクではセクタを最小単位として読み書きを行うが、大容量化によってセクタの数が膨大になった セクタをいくつか集めたクラスタを単位として読み書きをする
FAT FAT ファイル名 開始クラスタ 属性 miyajima 1000 **** ファイル名 開始クラスタ 属性 hello.c クラスタ番号 ファイル名 開始クラスタ 属性 miyajima 1000 **** 2 FAT 100 ルートディレクトリ ファイル名 開始クラスタ 属性 hello.c 2000 **** 1000 ディレクトリ(miyajima) 2000 ファイル (hello.c) FAT 100 101 102 103 104 終り 1000 1001 1002 1003 2000 2001
マルチユーザOSの場合 マルチユーザOSでは、複数のユーザが同時に同じマシンを使用 他のユーザに自分のファイルを誤操作させないような管理が必要 全てのファイルに所有者情報とパーミッション(permission:保護モード)を与えて管理
OSの主な役割 OSが管理するものは主として以下の3つ プロセスの管理 ファイルの管理 リソースの管理
リソースの管理 リソース (resource): そこで 資源という意味で、メモリやディスク、プリンタ、キーボードなどコンピュータが利用できるもの全て マルチタスクのOSでは複数のプロセスが同時に同じリソースにアクセスしようとしてリソースの取り合いを起こしてしまう可能性がある そこで 各プロセスはリソースではなくOSにアクセス要求を出し、OSがリソースのアクセスを管理する
OS デバイスドライバ 入出力要求 プロセス 結果 入出力要求 プロセス 結果 入出力要求 プロセス 結果 入出力要求 プロセス 結果
本日のまとめ ソフトウェア、特に「OSの主な役割」について プロセス(タスク)管理 ファイル(データ)管理 リソース管理 プロセス(タスク)管理 ファイル(データ)管理 リソース管理 コンピュータ側から見た各種プログラムの管理 補助記憶装置にある各種ファイル(データ)の管理 コンピュータ上の資源管理
本日の課題 1.OSが管理する項目を3つ挙げ、それぞれの役割を説明せよ。 2.OSで、プロセス管理方式に2種類ある。何と何か? 3.プロセスが実行状態、実行可能状態、待ち状態のいずれかの状態をとるとき、実行状態のプロセスがプリエンプションによって他のプロセスに実行を中断され、再び実行状態となるまでの変化を記述せよ。 (H18年 ソ改) 実行状態 ・ ・ ・ ・ ・ 実行状態