計算機システム概論・3回目 本日のトピック:割込みと入出力制御について 割込み制御について 問題点の明確化 割込みとは

Slides:



Advertisements
Similar presentations
入 出 力 管 理入 出 力 管 理 オペレーティングシステム 第 11 回. 入出力装置の分類(1) ブロックデバイス キャラクタデバイス,ストリームデバイス.
Advertisements

Linuxを組み込んだマイコンによる 遠隔監視システムの開発
オペレーティングシステムJ/K 2004年10月18日(5時限目)
情報検索概説II 第8回 パソコン組み立てと記憶装置 1999/11/25.
計算機工学III オペレーティングシステム #14 ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁
ファイルキャッシュを考慮したディスク監視のオフロード
Chapter11-4(前半) 加藤健.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
入 出 力 管 理 オペレーティングシステム 6/26/09.
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
計算機システムⅡ 主記憶装置とALU,レジスタの制御
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
第6章 トランザクション管理 6.1 トランザクションの概念 6.2 同時実行制御 6.3 障害回復.
情 報 技 術 基 礎 処理装置の構成と動作 D17kog706pr101 始.
『コンピュータ構成要素』 (C)Copyright, Toshiomi KOBAYASHI,
計算機システム概論・2回目 本日のトピック:プロセスについて プロセスとは プロセスのスケジューリングについて 多重プロセスの問題 排他制御
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング システムプログラミング プロセス間通信(パイプ) 担当:青木義満
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
担当:青木義満、篠埜 功 情報工学科 3年生対象 専門科目 システムプログラミング 第8回、第9回 シグナル処理 担当:青木義満、篠埜 功
第3回 CPUの管理と例外処理 OSによるハードウェアの管理 CPUの構成、動作 CPUの管理 例外処理、割り込み処理 コンテキストスイッチ
オペレーティングシステム (割り込み処理)
Linuxカーネルについて 2014/01.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
割 込 み(1) オペレーティングシステム No.5.
TinyOS 浅川 和久 2017/4/7 TinyOS.
割り込み.
割り込み.
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
ネストした仮想化を用いた VMの安全な帯域外リモート管理
計算機システムⅡ 入出力と周辺装置 和田俊和.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
専門演習Ⅰ 国際経済学部 国際産業情報学科 2年 石川 愛
情報コミュニケーション入門b 第6回 Part1 オペレーティングシステム入門
情報コミュニケーション入門e 第11回 Part1 オペレーティングシステム入門
第8回入出力制御 デバイスコントローラ ポーリングと割込み 入出力の方式 PIO DMA 入出力のためのソフトウェア技法.
コンピュータの原理 1E17M053-9 奈良 皐佑 1E17M070-7 師尾 直希        1E17M078-6 渡邊 惇.
型付きアセンブリ言語を用いた安全なカーネル拡張
前坂 たけし (北大院・理) 其の壱 はじめての BIOS 前坂 たけし (北大院・理)
オペレーティングシステム 第15回 割込みと入出力の制御
オペレーティングシステム イントロダクション
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
コンピュータの基本構成について 1E16M001-1 秋田梨紗 1E16M010-2 梅山桃香 1E16M013-3 大津智紗子
通信機構合わせた最適化をおこなう並列化ンパイラ
コンピュータ概論B ー ソフトウェアを中心に ー #02 システムソフトウェアと アプリケーションソフトウェア
情報コミュニケーション入門b 第6回 Part1 オペレーティングシステム入門
情報コミュニケーション入門e 第11回 Part1 オペレーティングシステム入門
オペレーティングシステム 第2回 割り込みとOSの構成
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第6回 システムプログラミング概要 プロセスの生成 担当:青木義満
オペレーティングシステムJ/K 2004年11月15日2時限目
オペレーティングシステム (ファイル) 2009年11月9日
先週の復習: CPU が働く仕組み コンピュータの構造 pp 制御装置+演算装置+レジスタ 制御装置がなければ電卓と同様
コンピュータの仕組み 〜ハードウェア〜 1E15M009-3 伊藤佳樹 1E15M035-2 柴田将馬 1E15M061-1 花岡沙紀
組込みシステムとは コンピュータ制御システム?
Cell/B.E.のSPE Isolationモードを用いた監視システム
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
明星大学 情報学科 2012年度前期     情報技術Ⅰ   第1回
Ibaraki Univ. Dept of Electrical & Electronic Eng.
オペレーティングシステム (プロセススケジューリング)
計算機アーキテクチャ1 (計算機構成論(再)) 第一回 計算機の歴史、基本構成、動作原理
計算機アーキテクチャ1 (計算機構成論(再)) 第二回 命令の種類と形式
強制パススルー機構を用いた VMの安全な帯域外リモート管理
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
明星大学 情報学科 2014年度前期     情報技術Ⅰ   第1回
Ibaraki Univ. Dept of Electrical & Electronic Eng.
強制パススルー機構を用いた VMの安全な帯域外リモート管理
Presentation transcript:

計算機システム概論・3回目 本日のトピック:割込みと入出力制御について 割込み制御について 問題点の明確化 割込みとは 割込みに対する処理について 入出力制御について 入出力装置の接続 入出力の操作 入出力を効率的に行うための仕組み

入出力制御の歴史 OS誕生のキッカケとなった動機: プロセッサと入出力装置を同時並行的に動かしたい 実現したいこと 入出力処理を行うジョブ(実行中のプロセス)を「眠らせる」 眠らせたプロセスと入れ替わりで,他のプロセスを実行 入出力処理が完了したら,元のプロセスを「起こす」 入出力開始 入出力完了 sleep プロセスA プロセスB 実行中 待機中 入出力中

どのようにアプローチするか プロセスの入出力処理を,監視・制御する仕組みが必要 アプローチ1:常時監視型 プロセスを自由に動作させ,その動作を監視する プロセスの作業内容は千差万別 自己中心的なプロセス,ズルをするプロセスの存在 アプローチ2:専売特許型 入出力処理は,プロセスから「委託」を受けてOSが担当する 勝手な入出力を許さない仕組みの「作り込み」が必要 ソフトウェア的な仕組みだけでは,対応が難しい

モード制御 プロセッサ(CPU)に「実行モード」と呼ばれる状態を持たせる 特権モード(カーネルモード,スーパバイザモード) 入出力を含む全ての機械語命令が実行可能 一般モード(ユーザモード) 入出力等,一部の機械語命令が使えない ハードウェアとソフトウェアが協調して,問題に対処する

モードの切り替え OSの機能を実行するときは,プロセッサを特権モードに 通常ののプロセス実行時は,プロセッサを一般モードに プロセスから入出力の依頼があったとき... 一時的に特権モードに切り替えて,OSが入出力処理を代行 OS プロセス A プロセス B CPUモード 特権モード 一般モード

モード切替の方法 CPUモードは誰が,どのように切り替えるか 特権モードから一般モード OSがモード切替命令を発行して切り替える 一般モードから特権モード 単純な方法では切替を実現できない ユーザジョブによるモード切替は防止しないといけない OSにだけモード切替を許可したい CPUからは,OSとジョブを区別できない ハードウェア的な助けを借り,特権モードへの切替を行う ⇒ 割込み

基本的な考え方 特権モードが必要になるパターンは,非常に限定的 入出力処理をOSに依頼したい 入出力の完了処理をしたい ジョブ実行中にエラーが発生した (ジョブ(プロセス)の切替を行いたい) 対応策: 各パターンの処理内容を固定する OSの機能を呼び出す「スイッチ」を設置する スイッチが押されると,プロセッサが特権モードに 移行し,決められた処理を実行する

割込みとは 割込み = 特権モードが必要な操作をシステムに要求すること 入出力処理をOSに依頼したい 入出力の完了処理をしたい 実行プロセスを切り替えたい ⇒ 適当なモノが割り込みを起こすことで,実現する 割込みが起こると... OSが,現在実行中のプロセスからCPUを横取りする (プロセスから見ると,OSが仕事に割り込んでくる)

割込みイベント 割り込みを起こすモノ: 実行中プロセスの外にあるもの:外部割込み 入出力装置 タイマー 実行中プロセスの中にあるもの:内部割込み (例外,割り出しと呼ばれることも) APIの呼び出し(入出力) プロセス実行中に発生するエラー 2÷0=?

割込み処理 割込みが発生したとき... CPUが割込み発生を検出 CPUが特権モードへ自動的に移行 OS内の割込み処理ルーチンへジャンプ 割り込みの種類を判定して処理を行う OSが,CPUモードを一般モードに変更 プロセスの処理に戻る 外部割込み... 中断していたプロセスに復帰 内部割込み... プロセススケジューラに委ねる

割込み処理のフロー 割込み 事象 CPU メモリ 通知 情報格納 特権モードへ 割込み種類判別 OS 入出力装置 sleep 割込み受付 wakeup switch 入出力制御部 一般モードへ 制御をプロセスへ

入出力依頼割り込み(API呼び出し) CPU 出力! 通知 特権モードへ 情報格納 割込み種類判別 割込み受付 メモリ wakeup 入出力制御部 switch 一般モードへ 入出力装置 sleep OS 制御をプロセスへ

入出力完了割込み CPU 完了! 通知 特権モードへ 情報格納 割込み種類判別 割込み受付 メモリ wakeup 入出力制御部 switch 一般モードへ 入出力装置 sleep OS 制御をプロセスへ

タイマ割込み CPU 交代! 通知 特権モードへ 情報格納 割込み種類判別 割込み受付 メモリ wakeup 入出力制御部 switch 一般モードへ 入出力装置 sleep OS 制御をプロセスへ

割込み処理への割込み 割込み処理中に,他の割込み事象が発生したら? ...3通りの対策がある.どれを使うかはケースバイケース 追加割込み禁止 割込み処理中は,他の割り込みを一切受け付けない 選択的割込み許可 現在処理中のものより優先度の高いものだけ受付 サーバプロセス利用 割込み処理を,OS外部のプロセスへアウトソーシング

前半部のまとめ 割込み制御: プロセッサと入出力を同時並行的に動かす仕組み 抜け道を塞ぐため,かなり複雑な仕掛けが必要 主として,入出力の「タイミング」を制御する仕組み 後半部のお話: 入出力を行うための仕組みと操作について

入出力装置 入力装置:キーボード,マウス, CD-ROM等 ユーザや外部機器から,計算機に情報を与える装置 出力装置:ディスプレイ,プリンタ,スピーカ等 計算機の保持する情報を,計算機外部に取り出す装置 入力,出力の両方に用いられる装置もある: フロッピーディスク,ハードディスク等 CPUの処理速度に比べると,動作速度はかなり遅い

古典的な入出力処理方式 プロセッサによる直接制御 プロセッサが直接,入出力装置を制御していた 「ABCとタイプして改行,一行分紙を進めてから...」 プロセッサが,速度の遅い入出力装置にあわせる CPUの利用効率が非常に悪い CPU CPU メモリ ディスク システムバス 入出力装置 (ディスク)

やや進んだ入出力処理方式 入出力制御装置の導入 独立した入出力制御装置を,コンピュータ内に設置 プロセッサは,制御装置にデータと指示を送るだけ 入出力の完了は,割込みによって通知される 直接制御より高速だが,データ転送に時間がかかる CPU CPU メモリ コントローラ ディスク 入出力装置 入出力制御装置

より進んだ入出力処理方式 着眼点:入出力装置に送りたいデータは,メモリ上にある DMA方式 (Direct Memory Access) プロセッサは,制御装置にデータの場所と指示を送る 制御装置がメモリを直接参照しにいく 入出力の完了は,割込みによって通知される CPU CPU メモリ 入出力装置 入出力制御装置 (コントローラ) コントローラ メモリ

OSの構造と入出力処理 ユーザプログラムには,入出力APIを提供 API: Application Program Interfacce 入出力の制御を行うルーチンは,二重構造 デバイス非依存部 デバイス依存部(デバイスドライバ) API 割込み制御部 非依存部 デバイス 依存部 入出力制御部 ユーザ プログラム

入出力処理の流れ プログラム:必要なデータを引数として入出力APIを実行 API:決められた領域に,与えられたデータをセット デバイス非依存部:ユーザの要求を解釈,翻訳 デバイス依存部:入出力制御装置に指示を与える API 割込み制御部 非依存部 デバイス 依存部 入出力制御部 ユーザ プログラム

入出力制御部の内部構造 入出力制御部: デバイス依存部(デバイスドライバ) 入出力機器を駆動する部分 デバイス非依存部 ユーザに対し,抽象的・論理的なビューを与える 入出力のタイミングを調整することで,効率を改善 非依存部 デバイス 02 34 1b e3 22 4f 7a b2 55 デバイス 依存部 生データ ファイルシステム

入出力の効率改善策 入出力には割込み処理が必要 割込み処理は,複雑で効率が悪い 入出力回数をできるだけ少なくすれば,全体の効率アップ ⇒ 入出力処理の回数を減らすテクニックがよく使われる キャッシュ (入力対応) バッファリング(出力対応)

キャッシュ 多くの入力装置:データを固まり(ブロック)として読み込む 典型的なハードディスクの場合... 一度の読み出し操作で,1024バイトのデータが得られる キャッシュとは 読み出したデータを一時的に保管し,将来に備える機構 入出力制御部 遅い 速い システムバスへ キャッシュ(メモリ)

キャッシュの動作概要 1. 参照アドレス通知 2. キャッシュ内容チェック 3A. キャッシュに値がある場合,その値をリターン 3B-1. キャッシュに値がない場合,ディスクアクセス 3B-2. 1ブロック分のデータを読み込み,キャッシュへ格納 3B-3. 参照されたアドレスの内容をリターン 入出力制御部 キャッシュ(メモリ) 1 2 A-3, 3B-3 3B-1 3B-2

バッファリング 基本的なアイデア: リクエストのたびに出力を行うのは面倒 ある程度リクエストがたまるのを待って,まとめて書込む リクエストは,メモリ上で一時保管(バッファ) バッファリングなし バッファリングあり

UNIXのディスク管理 UNIXにおけるディスク装置 入力にキャッシュを,出力にバッファを用いる キャッシュ領域,バッファ領域は,空きメモリ領域を利用 定期的に,バッファの内容をディスクに書き込む いきなりコンピュータの電源を切ると... バッファで書き込まれるのを待っていた出力内容が, ディスク装置に反映されずに消えてしまう

本日のまとめ 入出力に関連する話題 割込み制御のお話 入出力制御のお話 次回の講義 ... メモリの管理 実験(結果の提出不要): 少し規模の大きなプログラムを,2回続けて起動する. 1回目,2回目それぞれについて,起動にかかる時間, ハードディスクへのアクセス状況等を観察せよ.