入出力管理 - SEGAWA`s Web Site

入出力管理
オペレーティングシステム
6/26/09
入出力装置の分類(1)

ブロックデバイス

キャラクタデバイス,ストリームデバイス
入出力装置の分類(2)

ブロックデバイス
 ディスク

ブロック単位に入出力

固定長データが多い
例えば,512バイト単位
入出力装置の分類(3)

キャラクタデバイス,ストリームデバイス
 端末(ディスプレイ,キーボード)

文字単位に入出力

任意長のストリーム
入出力管理の目的(1)

多種多様な入出力装置

装置ごとに,制御するプログラムが異なる

装置を変更すると,利用者のプログラムも変更
 無理!
入出力管理の目的(2)

制御プログラムの作成のためには

装置の詳細な情報が必要

一般の利用者に要求することは無理
入出力管理の目的(3)


利用者のプログラムからは,同じような手順で利
用できるようにする
統一された操作モデル
 入出力装置の詳細を隠す(抽象化)
入出力管理の目的(4)


入出力操作を容易にするプログラム
 IOCS(Input Output Control System)
オペレーティングシステムの第一歩
ディスク装置について(1)

円形の記録媒体

同心円がたくさんある


トラック
“一定の大きさ”に区
切られる

セクター
ディスク装置について(2)


各セクタにデータが記
録される
データの読み書き
 どのトラックのどの
セクタかを指定
ディスク装置について(3)

磁気ヘッド
 データを読み書き
 ヘッドの位置決め
 指定されたトラック
に移動(シーク)
 指定されたセクタ
ーが回転して来る
のを待つ
ディスク装置について(4)



ディスクは両面
 どちらの面かを指定
ディスクが複数あるものもある
最近は,外側のトラックの方がセクタの数が多い
 セクターの指定が難しい
ディスク装置について(4)


以上のことを理解していないとプログラムを書くこ
とができない
 物理的に移動する部分があるので,そのタイ
ミングが問題になる
面倒な部分をOSが肩代わり
 詳細な点を理解しなくてもプログラムを作るこ
とができる
 入出力装置の抽象化
デバイス ドライバ
デバイスドライバ(1)

入出力装置を制御する機器
 CPUが入っている
 つまり,コンピュータ
 プログラムが必要
 デバイスドライバと呼ぶ
デバイスドライバ(2)



入出力装置を制御するプログラム
 入出力装置ごとに異なる
入出力装置の追加
 対応するデバイスドライバをオペレーティング
システムに追加
利用者プログラムの変更の必要はない
デバイスドライバ(3)

入出力装置の製造者が用意
デバイスドライバ(4)


入出力の効率化を図る
例 ディスク装置へのアクセス
 ヘッドのシーク時間を最小化するような
順序に,アクセスの順序を変更
入出力の効率化
入出力の効率化(1)

入出力装置の動作は,CPUよりも遅い

いろいろな工夫
入力の場合,その時点で
入出力の効率化(2)
必要入力データだけでなく,



ブロッキング
将来必要になるかも知れな
いデータも読み込む
(先読み)
大量の小さなデータは,まとめて大きなデータと
して入出力を行う
例 磁気テープ装置
 テープの速度が一定になるまで待つ
 テープ自体(メディア)の効率的利用
入出力の効率化(3)



バッファリング
このような働きをするも
のをバッファと呼ぶ
 割込み参照
利用者のプログラムの出力データ
 メモリに書き込む
 別のプログラムが,メモリから出力装置に送る
入力データ
 必要になるより前に,メモリに読み込む
入出力の効率化(4)


バッファリング
一般に,速度が異なるものの間でのデータ交換
の効率化
入出力の効率化(5)


キャッシング
プログラムがディスクからデータを読み込む
 メモリにも格納
 再度,そのデータを読み込む
 ディスクから読み込まず,メモリのデータ
HDD
メモリにも
コピー
プログラム
入出力の効率化(6)



キャッシング
プログラムがディスクにデータを書き込む
 メモリにも格納
 そのデータを読み込む必要
 ディスクから読み込まず,メモリのデータ
いずれの場合も,実際の入力を行わないので時
間短縮
入出力の効率化(7)


キャッシング
本来は,CPU内の高速メモリと主記憶の間で用
いられていたことに対する用語
入出力の効率化(8)





ファイルへの書き込
みが終了すれば,
出力も終了
(場合により,プログ
ラムは終了)
スプーリング
本来はバッチ(一括)処理
遅い入出力装置の
制御をスプーラに任せる
出力データは装置に送るのではなく,ファイルと
して書き出す
スプーラと呼ばれる独立したプログラムが,それ
を装置に送る
入力データもあらかじめ読み込み,ファイルとし
ておく
入出力装置の制御
入出力装置の制御



動作の起動指示
データ転送
 入力データは,入力装置からメモリへ
 出力データは,メモリから出力装置へ
といったことをどのように行うのか?
CPUが直接制御



割込みの2回目
 プリンタの例の割込みを用いないもの
最大のネックは,入出力装置の動作が終了する
まで,無駄な繰返しを行う
CPUの使用効率が悪い
割込み



割込みの2回目
 プリンタの例の割込みを用いるもの
入出力装置の動作終了を割込みにより検出
 動作中にCPUは別の処理ができる
ただし,データ転送はCPU
DMA



Direct Memory Access
CPUは,動作開始を入出力装置の制御装置に
指示
データ転送は,制御装置が行う
チャネル

大型機

入出力装置用コンピュータ(みたいなもの)

これに操作を任せる
接続規格
パソコンの入出力装置の接続方法
IDE



最大4台の内蔵ディスクを接続
 CD ROMなども可能
 以前からある規格
共通仕様 ATA(AT Attachment interface)
拡張仕様
 Serial ATA(高速化)
SCSI

“スカジー”と読む

汎用接続規格

最大8台までの機器をディジーチェーンで接続
 実際は7台
 接続ケーブルの末端にターミネータをつける
USB




汎用接続規格
 パソコンではもっとも使われている
最大127台まで
電源を入れたままで接続・切離し可
 ホットプラグ
低速・中速機器向け
 USB2.0で高速機器をサポート
IEEE 1394 (1)

IEEEは“アイ トリプル イー”と読む


FireWire (アップル)
i.LINK (ソニー)
IEEE 1394 (2)

デジタル機器同士だけで接続可
 パソコン不要
 デジタルビデオカメラDV端子

最大63台

ホットプラグ
IEEE

いろいろな規格を定めている
 IEEE802.11a/b/g 無線LAN
セントロニクスインターフェイス

プリンタで利用される(されていた)
 出力データだけでない