IOCS(input output control system)
入出力装置の割り当てと解放
入出力のスケジューリング
プログラムの装置独立性(入出力装置の仮想化)
入出力割り込みの処理
入出力装置の誤りの検出と対処
- 入出力装置とは何か?
- 入出力とは、どことどこの間のデータのやりとりか?
- メインメモリとその他の装置(ディスクやプリンタなど)
- 入出力割り込みとは何か?
- 磁気ディスクにデータを書いている間(10〜20ms)ただ
待っているのは時間の無駄なので、CPUが磁気ディスクに「出力をやって おけ」と頼んで他のことをすること。終わったら、磁気ディスクが割り込み をかけて終わったことを知らせる。
- 1と2では何が違うか?(図参照)
- 1は、入力し終わったら出力している
- 2は、バッファを2つ用意することによって、2つのバッファが交互に入力と出力の対象となっている。→1つは入力、一方ではどこかに出力している。
- バッファリングという機能を使うことによって、入力と出力を同時に行うことができる。
バグ(bug)=小さな虫、機械の故障
デバッグ(debug)=虫とり、プログラムの誤りの除去
デバッギング(debugging)=虫とり作業
デバッグの方法(論理的な誤りをみつける)
・罠を仕掛ける
・データの型と大きさのチェック
・中間結果の出力
・テストデータの使用
- プログラムの誤りには、文法的なものと、論理的なものとがあるが、両者を説明せよ。
- 文法的なもの
- つづり間違いや変数の定義忘れ
- 文法が合っていない など
- あやまりの検出はコンパイラでする
- 論理的なもの
- プログラムが走ったときに、結果が正しくでない
- 数式が間違っている
- 間違った変数を使っている など
- 罠とは何か?
- 命令がどういうルートを通って実行されるか、
割り込み命令(トラップ命令)をいれておく。