FrontPage

はじめに

Operating System Concepts 8th editionでは以下のように述べられている。
「The two main jobs of a computer are I/O and processing. In many cases, the main job is I/O, and the processing is merely incidental.」

また、Operating Systems: Three Easy Piecesではこのようにも述べられている。
「I/O is quite critical to computer system, of course; Imagine program without any input ( it produces the same result each time)」

つまり、I/Oはかなり重要である。

I/Oとは

The Design and Implementation of the 4.4 BSD Operating System( 525p )では、
「input/output(I/O) The transfer of data between the computer and its peripheral devices」
と述べられている。
要するにデータの入力出力のことである。

mother.jpg

[デジタル回路設計とコンピュータアーキテクチャから]

systemArc.jpg

[Operating Systems: Three Easy Piecesから]

データのやりとり

 200x200

[学校では教えてくれないこと、DMA対応といわれたら(1)]

programmed I/O ( CPUを使うI/O )

ポートI/O

ポートI/Oは、一定のポートにコマンドを送ることによってデータ転送を行う。

メモリマップI/O

メモリマップI/Oは、メモリにデバイスのレジスタを割り当てメモリにコマンドを送ることによってデータ転送を行う。

DMA( CPUを使わずI/O )

DMAコントローラがデータのI/Oを制御、そのため処理をしている間CPUを他のことに使える

割り込み(interrupt)とポーリング(polling)

プロセスから周辺デバイスにI/Oを行いたい時にどのように初め、どのように終了を検知するか。
主に2種類あり、はじめに割り込みについて説明する。

割り込み

割り込みとは、デバイスの処理が終了した際に完了通知を送ることである。
割り込みをされたPCは割り込み処理を行い元のプロセスに処理を戻す。
ex) 実行指示->現在のプロセスをスリープ-> 他のプロセスにスイッチ -> デバイス処理 -> デバイスから割り込み -> カーネルモードで処理 -> 元のプロセスに戻る

interrupt.jpg

[はじめてのOSコードリーディングから]

ポーリング

次に、ポーリングとはデバイスの処理が完了しているか逐一チェックすることを指す。
先ほどの割り込みとは異なり、PCからデバイスに確認を行う。
ex) 実行指示 -> ポーリング(デバイス状況を確認) -> ポーリング(デバイス状況を確認) -> ポーリング(デバイス状況を確認) -> デバイスの終了が確認できたのでポーリング終了

polling.jpg

[はじめてのOSコードリーディングから]

ネットワークI/O

ネットワークではなるべく割り込みは使わない。なぜなら大量のパケットが入ってきたときに毎回割り込みを行なった場合、 ユーザープロセスに処理が移行しないからである。

ブロックデバイスとキャラクタデバイス

ブロックI/Oシステム

ブロック単位でI/Oを行う。ブロックを指定することによって、どの位置からでもI/Oを行うことができる。(ランダムアクセス)

blockdevice.jpg

[はじめてのOSコードリーディングから]

bbuffer.jpg

[はじめてのOSコードリーディングから]

キャラクタI/Oシステム

キャラクタ単位でI/Oを行う。最初からデータを読み込む必要がある。(シーケンシャルアクセス)

character.jpg

[はじめてのOSコードリーディングから]

cput.jpg
cget.jpg

[はじめてのOSコードリーディングから]

Reference

  • Abraham Silberschatz, Operating System Concepts 8th edition
  • 青柳 隆宏, はじめてのOSコードリーディング
  • Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-dusseau, Operating Systems: Three Easy Pieces
  • David Money Harris, Sarah L. Harris, デジタル回路設計とコンピュータアーキテクチャ
  • Marshall Kirk McKusick? , Keith Bostic, The Design and Implementation of the 4.4 BSD Operating System
  • ユークエスト株式会社, 学校では教えてくれないこと、DMA対応といわれたら(1) https://www.uquest.co.jp/embedded/learning/lecture15-1.html

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-06-27 (木) 11:02:08 (814d)