- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8回入出力制御.ppt
第8回入出力制御 デバイスコントローラ ポーリングと割込み 入出力の方式 PIO DMA 入出力のためのソフトウェア技法 入出力ハードウェア 入出力制御とデバイスコントローラ 入出力装置を制御することは、OSの重要な役割の一つ CPU(メインプロセッサ)は、デバイスコントローラを介して入出力制御を行う OSの入出力装置を担当するソフトをデバイスドライバと呼ぶ デバイスコントローラ 特定の型の入出力装置に対する操作インターフェースをCPU上のソフトウェアに提供 データレジスタ ... 転送するデータを一時的に格納するレジスタ 状態レジスタ ... 入出力の結果をCPU(プログラム)から参照 できるようにするための状態レジスタ 入出力ポート ... プログラムから制御するための インターフェース メモリマップト入出力(memory-mapped I/O) 分離入出力(isolated I/O) デバイスコントローラによる入出力装置の動き(入力の場合) プログラムが入出力ポートを通じてデバイスコントローラに入出力装置から、デバイスコントローラにデータをデータレジスタに読み出す指令を出す データの読み出しが完了すると、状態レジスタに完了の状態がセットされる CPUは状態レジスタを参照し、入力が正常に行われたかを調べ、データをデータレジスタから取り出す デバイスコントローラにおける入出力装置の動作(出力) CPUはデバイスコントローラのデータレジスタに出力データを入れ、これを装置に書き込むように指令 状態レジスタに出力の結果がセットされる CPUは、状態レジスタをチェックし、出力が正常に完了したかを調べる 入出力の並列処理 入出力装置の動作は、CPUの処理速度に比べ、桁違いに遅い CPUが、入出力動作の完了を待ち続けるのは大変なオーバヘッドとなる デバイスコントローラが入出力を行っている間、CPUは他の処理(他の実行可能プロセス)を行う 処理のオーバラッピング?並列化 入出力の完了を知る方法が鍵 ポーリング 割込み ポーリング デバイスコントローラに入出力動作の完了を示すフラグを用意 CPUは、入出力操作と並列で他のプロセスを処理 周期的にこのフラグを見に行き、動作完了をチェックする 周期短 ? CPUの時間のほとんどがフラグチェックに費やされてしまう 周期長 ? 入出力装置が遊んでしまう 割込み処理 ポーリングは、フラグチェックに要する時間が無駄である 入出力の完了を割込みによって、CPUに通知する 割込みハンドラ 割込みベクタ 入出力の方式 PIO(Programmed I/O) ... CPUと入出力装置のデータ転送をCPUが行う キーボードやシリアルプリンタなどの1Byte単位の低速な入出力装置によく使われる ディスプレイ ... ビデオRAMに表示したデータを書き込む DMA(Direct Memory Access) ... DMAコントローラと呼ばれる専用のハードウェアがCPUと独立してデータ転送を行う 一度に大量のデータをブロック単位で転送するのに適している DMAコントローラは、CPUに比べて高い優先度でシステムバスを獲得できる DMA転送による入出力例:ディスクに対するアクセス 入出力装置の分類(Unix) キャラクタ型端末 ... 1文字単位の入出力を行う装置 キーボード、シリアル回線 cf). /dev 以下でls –l すると crwx------ などのようにモード表記の一番左がcとなっている装置 ブロック型端末 ... ブロックを単位として入出力を行う装置 磁気ディスク、磁気テープ cf). /dev 以下でls –l すると brwx------ などのようにモード表記の一番左がbとなっている装置 入出力のためのソフトウェア技法 バッファリング ... 入出力とプロセッサの処理をオーバラップさせるために、入出力用にバッファと呼ばれる一時記憶領域に入出力データを蓄積する技法 キャッシング ... 一度利用されたデータを主記憶(キャッシュ)上に一時的に格納し、再利用時のデータアクセスの高速化を実現する スプーリング ... 急を要さない入出力を専用のプロセス(スプーラという)に依頼し、入出力を一元管理する手法 プリンタなどによく利用されている バッファリング データを受け渡しする者同士の速度差を緩和する(バッファ→ 緩衝器という意味) 入出力装置とバッファは、ブロック単位で転送 バッファとプログラムは、レコード単位もしくは、バイト単位で受け渡し ブロッキング ... 複数のレコードを1つのブロックにまとめて出力する 入出力の回数を減らせる ブロッキング係数n ... 1つのブロックがn個のレコー
文档评论(0)