490 likes | 640 Views
入 出 力 管 理. オペレーティングシステム 第10回. 入出力装置の分類(1). ブロックデバイス キャラクタデバイス(ストリームデバイス). 入出力装置の分類(2). ブロックデバイス HDD など “ブロック”という単位で入出力 ブロックの大きさは,固定であることが多い 例えば, 512 バイト(単位で入出力) 1 バイトだけ,ということができない. 入出力装置の分類(3). キャラクタデバイス(ストリームデバイス) 端末(ディスプレイ,キーボード)など 文字単位に入出力 任意長. 入出力管理の目的(1 ). 多種多様な入出力装置がある
E N D
入 出 力 管 理 オペレーティングシステム 第10回
入出力装置の分類(1) • ブロックデバイス • キャラクタデバイス(ストリームデバイス)
入出力装置の分類(2) • ブロックデバイス • HDDなど • “ブロック”という単位で入出力 • ブロックの大きさは,固定であることが多い • 例えば,512バイト(単位で入出力) • 1バイトだけ,ということができない
入出力装置の分類(3) • キャラクタデバイス(ストリームデバイス) • 端末(ディスプレイ,キーボード)など • 文字単位に入出力 • 任意長
入出力管理の目的(1) • 多種多様な入出力装置がある • 制御するプログラムは,装置ごとに異なる • 装置を変更すると,それを利用するプログラムも変更 • 誰が ⇒ プログラムを作った人 • 無理!
入出力管理の目的(2) • 制御プログラムの作成のためには • 装置の詳細な情報が必要 • それを理解する • すべてのプログラム作成者に要求することは無理
入出力管理の目的(4) • “統一された操作モデル”の提供 • 入出力装置の詳細を隠す(抽象化) • 利用者のプログラムからは,同じような手順で利用できるようにする
入出力管理の目的(5) デバイスドライバ(後述)
入出力管理の目的(6) • 入出力操作を容易にするプログラム • IOCS(Input Output Control System) • オペレーティングシステムの第一歩
ディスク装置について(1) • 制御プログラム作成が困難なことを,HDDを例にして説明 • HDDの内部 • http://gigazine.jp/img/2009/08/10/largest_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 MemoryAccess • 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
セントロニクスインターフェイス • プリンタで利用される(されていた) • 出力データだけでない