Microsoft PowerPoint - OS04.pptx

Similar documents
Microsoft PowerPoint - OS07.pptx

Microsoft PowerPoint - OS06.pptx

Microsoft PowerPoint - OS12.pptx

Microsoft PowerPoint - OS11.pptx

Microsoft PowerPoint - OS09.pptx

Microsoft PowerPoint - OS08.pptx

2.RL78 での割り込み処理 ( 割り込み受け付け ) マスクが解除された (xxmk ビットが 0 の ) 割り込み要求信号は 2 つの用途で使用されます 一つ目は,CPU のスタンバイ状態の解除です この動作は, 割り込み優先順位とは全く無関係で, マスクされていない (xxmk=0 の )

POSIXスレッド

オペレーティングシステム 2014

計算機アーキテクチャ

PowerPoint プレゼンテーション

スライド 1

プログラミング入門1

スライド 1

Microsoft PowerPoint - 5_2-3IPC.pptx

PowerPoint プレゼンテーション

Microsoft PowerPoint - No3.ppt

ルート プロセッサ

Microsoft PowerPoint - Lec ppt [互換モード]

CPUスケジューリング

まず,13 行目の HardwareTimer Timer(1); は,HardwareTimer というクラスを利用するという宣言である. この宣言によって Timer というインスタンスが生成される.Timer(1) の 1 は,OpenCM に 4 個用意されているタイマのうち,1 番のタイマ

Microsoft PowerPoint ppt [互換モード]

Developer Camp

05-scheduling.ppt

81 /******************************************************************************/ 82 /* スレーブアドレスの設定 */ 83 /*****************************************

スライド 1

CPUスケジューリング

Microsoft PowerPoint - SKYMENUの使い方.ppt

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができる形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の

PowerPoint Presentation

プログラミングA

04-process_thread_2.ppt

計算機システム概論

Microsoft PowerPoint - os ppt [互換モード]


HRBusinessReview_vol5

all

Microsoft PowerPoint - OS10.pptx

MIPSのマイクロアーキテクチャ

プログラミングA

COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1

RH850の割り込み/例外実現方法 CC-RHアプリケーションガイド

<4D F736F F D F8E FEE95F1836C F8EE88F878F F88979D8BC68ED2976C A2E646F63>

Insert your Title here

コンピュータ工学Ⅰ

ルート プロセッサ

コンピュータ工学Ⅰ

ぱっと転送アプリについて ぱっと転送は ipad iphone のファイルを他の ipad iphone へファイル転送するアプリケーションです Wi-Fi Bluetooth を利 し 1 対 1 または 複数台の端末へファイルを転送できますので 資料の共有やペーパーレスな会議を えます 各端末で

Microsoft Word - Ladder Tool 使çfl¨ã…žã…‰ã…¥ã‡¢ã…«ã…©ã…•ã…¼ã†ªã†Š_ docx

REX-USB56 「FAX送信」編 第6.0版

メールソフト設定ガイド

// USB_CNC_Machine リモート PIO 端末プログラムのメイン関数およびユーザアプリ部 // 編集作成 by Takehiko Inoue /*********** メイン関数 ***************************/ #pragma code

講義計画 1. コンピュータの歴史 1 2. コンピュータの歴史 2 3. コンピュータの歴史 3 4. 論理回路と記憶, 計算 : レジスタとALU 5. 主記憶装置とALU, レジスタの制御 6. 命令セットアーキテクチャ 7. 演習問題 8. パイプライン処理 9. メモリ階層 : キャッシュ

TopSE並行システム はじめに

POSIXプログラミング Pthreads編

10-vm1.ppt

Handbook機能ガイド

ディジタル回路 第1回 ガイダンス、CMOSの基本回路

Windows GPO のスクリプトと Cisco NAC 相互運用性

01-introduction.ppt

Microsoft Word - Office365_EndUser_Basic_Guide.docx

図 1 アドインに登録する メニューバーに [BAYONET] が追加されます 登録 : Excel 2007, 2010, 2013 の場合 1 Excel ブックを開きます Excel2007 の場合 左上の Office マークをクリックします 図 2 Office マーク (Excel 20

Microsoft PowerPoint - sp ppt [互換モード]

Microsoft PowerPoint - OpenMP入門.pptx

■POP3の廃止について

また RLF 命令は 図 2 示す様に RRF 命令とは逆に 各ビットを一つずつ 左方向に回転 ( ローテイト ) する命令である 8 ビット変数のアドレスを A とし C フラグに 0 を代入してから RLF A,1 を実行すると 変数の内容が 左に 1 ビットシフトし 最下位ビット (LSB)

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

Wasedaメール(Office365)ユーザーズガイド

スライド 1

スライド 1

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

ガイダンス

アルファメール 移行設定の手引き Outlook2016

電話帳配布 利用者マニュアル

電子化シートマニュアル(インストール編)_ver106

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

オペレーティングシステム

Microsoft PowerPoint - No15›¼‚z‰L›¯.ppt

PowerPoint プレゼンテーション

せどりすとプレミアム電脳機能マニュアル

PowerPoint プレゼンテーション

どこでも写真管理 Plus (Android 版 ) 操作手順書 ( 黒板作成 連携ツール使用時 ) EX-TREND 武蔵の写真管理 黒板作成 連携ツール どこでも写真管理 Plus でデータを連携して 電子小黒板機能付き工事写真を撮影する手順を解説します 解説内容がオプションプログラムの説明であ

メソッドのまとめ

Microsoft Word - WebMail.docx

研究室LANの設定方法

/* モジュールストップ解除 */ SYSTEM.MSTPCRA.BIT.MSTPA24 = 0; /* MSTPA24(S12ADA 制御部 ) クロック供給開始 */ SYSTEM.MSTPCRA.BIT.MSTPA17 = 0; /* MSTPA17(S12ADA0) クロック供給開始 */

スライド 1

Microsoft PowerPoint - lec4.ppt

(Microsoft PowerPoint - \221g\202\335\215\236\202\335\203\\\203t\203g\203E\203F\203A\215H\212w No03\201i\224z\225z\227p\201j.pptx)

複数の Nios II を構成する際の注意事項

JavaプログラミングⅠ

NUMAの構成

マニュアル訂正連絡票

変更点

動作環境と操作の概要 A スマホのテザリングを使う方法と B WiFi ルーターを使う方法があります A スマホのテザリングを使う場合 図のように 1 台のスマホのテザリングを有効にして パソコンや他のスマホ タブレットを テザリング機器に WiFi 接続し ます 1スマホのテザリングを有効にします

EPSON エプソンプリンタ共通 取扱説明書 ネットワーク編

untitled

ありがとうございました

EPSON エプソンプリンタ共通 取扱説明書 ネットワーク編

Transcription:

この資料は 情報工学レクチャーシリーズオペレーティングシステム松尾啓志著 ( 森北出版株式会社 ) を用いて授業を行うために 名古屋工業大学松尾啓志 津邑公暁が作成しました オペレーティングシステム #4 並行プロセス : 排他制御基礎 パワーポイント 2007 で最終版として保存しているため 変更はできませんが 授業でお使いなる場合は松尾 (matsuo@nitech.ac.jp) まで連絡いただければ 編集可能なバージョンをお渡しする事も可能です プロセスの同時実行 複数プロセスが同時に動作する際に... 4.1 プロセスの競合, 協調, 干渉 プロセス協調 仕事の分担や通信など, 複数プロセスが助け合う プロセス競合 複数プロセスで有限リソースを取り合う 調停し, 各プロセスに適切にリソース割当 プロセス干渉 他プロセスの影響で異常が発生すること 原因はプログラムのバグ

プロセス協調 プロセス協調 例 ) プロセス間通信 何も通信のための仕組みがない場合... 送信側と受信側でタイミングを合わせる必要 受信側は, 常にメッセージが来ないかをチェックしていなければならない 通信バッファ 問題 読み出す前に上書き... とりこぼし バッファ 格納する前に再読込... だぶって受け取り バッファ バッファ フラグによる管理 プロセス競合 受信すべきメッセージがバッファ内に存在するか否かをフラグで判断 バッファ フラグが立っている間, 送信側は新たに送信を行わない 上書き回避 フラグが降りている間, 受信側は新たに順を行わない 再受信回避 例 ) 磁気テープの利用 プログラム例 LOAD NUM, R DEC R, 1 STORE NUM, R : : テープ使用 : LOAD NUM, R INC R, 1 STORE NUM, R テープを確保 テープを解放 NUM: 空きテープ数

プログラムの意味 テープの確保 変数 NUM の値をレジスタにロード レジスタから 1 減算 レジスタの値を変数 NUM にストア ( 格納 ) テープの解放 変数 NUM の値をレジスタにロード レジスタから 1 減算 レジスタの値を変数 NUM にストア LOAD NUM, R DEC R, 1 STORE NUM, R : : : LOAD NUM, R INC R, 1 STORE NUM, R プロセスAとプロセスBがテープにアクセス プロセスBが確保中 プロセスAによる確保とプロセスBによる解放が発生 結果, テープの空き数は変化しないはず 空きテープ ケース1 ケース2 DEC R, 1 R=0 STORE NUM, R R=0 NUM DEC R, 1 R=0 NUM LOAD NUM, R R=0 INC R, 1 R=2 INC R, 1 R=1 STORE NUM, R R=0 STORE NUM, R R=1 STORE NUM, R R=2 テープの空きは 1 で OK テープの空きは 1 しかないはず ( 実際より多いと勘違い )

ケース3 DEC R, 1 R=0 STORE NUM, R R=0 INC R, 1 R=2 STORE NUM, R R=2 NUM テープの空きは 1 あるはず ( 実際より少ないと勘違い ) 原因 変数 NUM から値を読んで, 変数 NUM に値を書くまでの間に, 他のプロセスが変数 NUM を読んでしまう 対処法 他のプロセスからみて, 変数 NUM は変化していない 実際は変化させるための手続きが始まっている LOADからSTOREまでの一連の処理を不可分に クリティカルセクション : このような分割してはいけない一連の処理 排他制御 (mutual exclusion): クリティカルセクションなどを他のプロセスと排他的に実行するための制御 プロセスがクリティカルセクションを他のプロセスと排他的に実行できるように 排他制御 4.2 排他制御 重要な性質 即時性 デッドロック防止 公平性

排他制御の性質 クリティカルセクション 即時性 クリティカルセクションの実行に競合するプロセスがほかにない場合, プロセスはクリティカルセクションの実行を即座に許可される デッドロック防止 競合するプロセスがある場合でも, 許可されるまで永久に待たされてはいけない 公平性 どのプロセスも, 他のプロセスがクリティカルセクションを実行することを妨げられない エントリーシーケンス クリティカルセクションに入る権利を獲得する処理 イグジットシーケンス クリティカルセクションから出るための処理 例 ) フラグによる制御 例 ) フラグによる制御 例 ) フラグによる制御 新幹線のトイレと同じ うまくいかない場合 空いた! 空いてる... クリティカルセクション ( トイレ ) に入ろうとするプロセス ( 乗客 ) は, フラグ ( インジケータ ) を確認し, 入れるかどうかを決定 入ると同時にフラグを下げる ( インジケータが点く ) 空いてる空いてる フラグを見て確認 入る という2つの処理は不可分 空いてない... 一見うまくいく この方式では排他制御を実現できない

2 プロセスの排他制御を行うことを可能とする 4.3 Interest プロセス A,B がクリティカルセクションに興味があるか否かを示す Priority プロセス A,B がクリティカルセクションに同時に興味を持った場合, どちらを優先するかを決定する Interest Interest[A] = TRUE; while( Interest[B] ){ if( Priority == B ){ Interest[A] = FALSE; while( Priority == B ){; Interest[A] = TRUE; Interest[B] = TRUE; while( Interest[A] ){ if( Priority == A ){ Interest[B] = FALSE; while( Priority == A ){; Interest[B] = TRUE; 空いてる 競合者なし 状 まずクリティカルセクションに入る前に, クリティカルセクションに入りたい旨を宣言 競合者がいなければ入れる Priority = B; Interest[A] = FALSE; Priority = A; Interest[B] = FALSE;

さっき私だったので どうぞ 競合者あり Priority 競合者がいた場合 Priority が示す優先度でどちらが入るか決定 自分に優先度が回ってくるまで Interest 状態を解除 状 Interest[A] = TRUE; Interest[B] 権 = TRUE; while( Interest[B] ){ while( Interest[A] ){ if( Priority == B ){ if( 状 Priority 権 == A ){ Interest[A] = FALSE; 優先権を得たら Interest[B] = FALSE; while( Priority == B ){; 再びInterest while( 状態オン Priority == A ){; Interest[A] = TRUE; Interest[B] = TRUE; 状 空いてる空いてる Priority = B; Interest[A] = FALSE; 終わったら優先権を 相手に渡して Interest 状態オフ Priority = A; Interest[B] = FALSE; ポイント 入る前に手を挙げる 優先権により競合を解決 問題点 ユーザプログラムに依存 ちゃんとプロセスが約束を守ってくれないと破綻 ビジーウェイト (busy wait) 一方がクリティカルセクションを実行中, 待っている方は優先権をひたすらチェックし続ける CPUリソースの無駄 4.4 割り込み制御による排他制御

ユニプロセッサの場合 割り込みのみがプロセス中断を発生させる エントリーシーケンスで割り込み禁止命令を実行しておけばよい 同様にイグジットシーケンスで割り込み禁止を解除 ただし... 割り込み禁止時間の増加はシステムの性能に影響 4.5 ハードウェアによる排他制御 ハードウェアによる排他制御 TEST AND SET による排他制御 対話処理の重要性から排他制御の必要性が認識 Flag X = 1; テストアンドセット命令 ハードウェア自体に, 排他制御のための仕組みを v = test_and_set(x) v = x と x = 0 を同時に実行する命令 競合者フラグのチェックとセットを同時に行える Int v; Repeat v = test_and_set(x); Until v == 1; クリティカルセクション X = 1; Int u; Repeat u = test_and_set(x); Until u == 1; クリティカルセクション X = 1;

今日のまとめ プロセス競合 クリティカルセクション : リソース競合が発生する可能性のある部分 排他制御 (MUTEX): クリティカルセクションに同時に複数プロセスが入らないようにする制御 ソフトウェアによる排他制御の基本手法 ビジーウェイトという問題点 プロセス協調