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