Download presentation
Presentation is loading. Please wait.
1
割 込 み(1) オペレーティングシステム No.5
2
割 込 み と は(1) プログラムの実行中に 事象(event 割込み要因)が発生 プログラムとは直接関係なく起こる場合(非同期的という)
割込み発生 プログラムの実行中に 事象(event 割込み要因)が発生 プログラムとは直接関係なく起こる場合(非同期的という) プログラムのエラーなどにより起こる場合 現在の実行中のプログラムを中断 その事象を処理する別のプログラムを実行 元のプログラムの実行を再開する仕組み 割込み処理
3
割 込 み と は(2) プログラムと割込み処理プログラムの関係 プログラムが2つある! 元のプログラム再開 割込み処理 プログラム
実行開始
4
割 込 み に よ り CPUと入出力装置の同時実行 TSS 障害時の適切な処理 現在のコンピュータを特徴づける機構
初期のコンピュータにはなかった
5
割 込 み の 例? 人と雑談中 電話がかかってくる 話を中断して,電話にでる 電話終了後,話を再開 電話による 割込み
6
割込みの分類 (補足あり) 外部割込み 実行中のプログラムに原因がないもの 入出力装置の動作終了 時間の経過 内部割込み
割込みの分類 (補足あり) 外部割込み 実行中のプログラムに原因がないもの 入出力装置の動作終了 時間の経過 内部割込み 実行中のプログラムに原因があるもの 演算異常 割込みを発生させる命令の実行
7
割込み処理の概要(1) 事象発生 割込み処理プログラム開始 元のプログラムを再開できるために必要な情報を保存
実行されるプログラムが代わる コンテクストスイッチ 事象発生 割込み処理プログラム開始 元のプログラムを再開できるために必要な情報を保存 割込み処理プログラム終了・元のプログラム再開
8
割込み処理の概要(2) 割込み要因はいくつかある ひとつの割込み処理プログラムで処理 要因ごとに割込み処理プログラムを用意
9
割込み処理の概要(3) ①の場合 窓口がひとつしかない!
10
割込み処理の概要(4) ②の場合 窓口が分かれている
11
多重レベル割込み 割込み(要因)により,処理の優先度に差 割込みAの処理中 より優先度の高いBという割込み要因が発生
Bの処理終了後,Aの処理を再開 Aの終了後,Aに割り込まれたプログラムを再開 割込み処理プログラムに,割り込むことができる → 多重レベル割込み
12
多重レベル割込みの例? 雑談中の電話 電話中に非常ベル 電話を中断して,非常ベルに対処 “電話割込み”より,
“非常ベル割込み”の方が優先度が高い
13
割 込 み 禁 止(1) 優先度の高い割込みBを処理中 優先度の低い割込み要因A発生 Aの処理は,Bの終了まで待たされる 要因が発生しても,
常に割込み処理が行われるわけではない
14
割 込 み 禁 止(2) 割込み(要因)ごとに割込みマスク(ビット) ある割込みマスクがオフ
その割込み要因が発生しても,その処理プログラムの実行を始めない すなわち,現在処理中のプログラムに割り込まない 割込み禁止
15
割 込 み 禁 止(3) 要因が発生しても,割込み処理を行わない 高い優先度の割込み処理中 割込みマスクがオフ
16
割 込 み 禁 止 の 例(1)? 雑談中に非常ベル 雑談を中断して非常ベルに対処 その最中に電話 電話は無視する
“非常ベル割込み”の方が“電話割込み”よりも 優先度が高い
17
割 込 み 禁 止 の 例(2)? 講義の開始時に“電話割込み”のマスクをオフ 講義中に電話 電話割込み処理は行わない(電話にはでない)
講義が終了したら,マスクをオン もし,まだ電話の呼出しが続いていたら…
18
割 込 み 禁 止 の 例(3)? 講義中に非常ベル いかなることがあっても講義を中断
“非常ベル割込み”の割込みマスクをオフにすることはできない 割込みには,割込み禁止にできないものがある
19
補 足(1) (文献3 p.335) 外部割込みの例 I/O(入出力) 入出力装置の処理終了または要求 タイマ
実行中のプログラムに原因がない 外部割込みの例 I/O(入出力) 入出力装置の処理終了または要求 タイマ 一定時間の経過をCPUに知らせる マシンチェック ハードウェアシステムの異常
20
補 足(2) 内部割込みの例(1) 演算例外 浮動小数点演算でのオーバフロー,零除算など 命令コード異常
実行中のプログラムに原因がある 内部割込みの例(1) 演算例外 浮動小数点演算でのオーバフロー,零除算など 命令コード異常 存在しない命令,形式の不当な命令の実行 割込み処理プログラムでエラー処理を行う
21
補 足(3) 内部割込みの例(2) ページフォールト 仮想記憶管理における存在しないページへのアクセス(詳細は記憶管理のところで)
仮想記憶は後述 トレース システムデバッグのため命令実行ごとに生じる
22
補 足(4) 内部割込みの例(3) 特権命令違反 システム管理命令を一般ユーザモードで実行 割出し(トラップ) OSへのシステムコールなど
プログラマが意識的に発生させる
23
補 足(5) TSSの実現の概要 タイマーにある時間を設定 プログラムAを実行 タイマーに設定した時間が経過
24
補 足(6) タイマーにある時間を設定 プログラムBを実行 タイマーに設定した時間が経過 割込みが発生(プログラムBを中断)
プログラムAを中断したところから再開 以下同様。
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.