オペレーティングシステム 第3回(2009.04.30) デッドロックと排他制御.

Slides:



Advertisements
Similar presentations
並列プログラミング言語による Dining Philosophers Problem の検証 大井 謙 数理科学コース 4 年 福永研究室 2010 年 3 月 4 日 ( 木 ) 1.
Advertisements

プログラミングとは Q.プログラムとは何か? A.コンピュータを制御するための,コンピュータに対する命令(指示)の集まり.
第3回 並列計算機のアーキテクチャと 並列処理の実際
記 憶 管 理(1) オペレーティングシステム 第9回.
筋トレ支援システム 青春!筋トレ日記        作成   IE4 高橋・中務・藤本・重田・市川 
Android と iPhone (仮題) 情報社会とコンピュータ 第13回
プログラミング入門 (教科書1~3章) 2005/04/14(Thu.).
情報処理基礎 2006年 6月 1日.
スレッドの同期と、スレッドの使用例 スレッドの同期 Lockオブジェクト: lockオブジェクトの生成
オペレーティングシステム (プロセス管理)
実行時のメモリ構造(1) Jasminの基礎とフレーム内動作
オペレーティングシステムJ/K 2004年10月7日
プログラミングとは Q.プログラムとは何か? A.コンピュータを制御するための,コンピュータに対する命令(指示)の集まり.
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
オペレーティングシステム (OSの機能と構造)
ソフトウェア階層 分類 具体例 応用ソフト 基本ソフト アプリケーションソフト 個別アプリケーション SEやユーザが開発するプログラム
小型デバイスからのデータアクセス 情報処理系論 第5回.
RDBMSについて 2年7組  小鹿 慎太郎.
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
割 込 み(1) オペレーティングシステム No.5.
計算機システムⅡ 入出力と周辺装置 和田俊和.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
CONCURRENT PROGRAMMING
第9回 プロセスの協調と排他制御 並行プロセスと資源の競合 競合問題 セマフォ 不可分命令の実装 プロセス間通信 PV命令
オペレーティングシステムとは オペレーティングシステム 第3回.
15.同時実行制御,トランザクション, データベースの回復
2004年度 サマースクール in 稚内 JavaによるWebアプリケーション入門
2003年度 データベース論 安藤 友晴.
オペレーティングシステム (プロセス管理)
オペレーティングシステム (プロセス管理)
C言語でスレッド (Pthread) 2007年1月11日 海谷 治彦.
OSの仕組みとその機能 1E16M001-1 秋田 梨紗 1E16M010-2 梅山 桃香 1E16M013-3 大津 智紗子
SPINを用いたウェブアプリケーションにおける 階層別モデル検査支援方法
セキュリティ 05A2013 大川内 斉.
オペレーティングシステム イントロダクション
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Linux リテラシ 2006 第5回 SSH と SCP CIS RAT.
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
コンピュータ概論B ー ソフトウェアを中心に ー #02 システムソフトウェアと アプリケーションソフトウェア
オペレーティングシステム 第2回 割り込みとOSの構成
1.情報機器について知ろう(p.8-9) 第1章 第1節
計算機構成 第3回 データパス:計算をするところ テキスト14‐19、29‐35
計算機工学III オペレーティングシステム #4 並行プロセス:排他制御基礎 2006/04/28 津邑 公暁
Ibaraki Univ. Dept of Electrical & Electronic Eng.
※内容は初版刊行当時のものです。 OPACで図書を探してみよう 学術情報総合センター情報サービス部門.
コンピュータにログイン 第1章 コンピュータにログイン 啓林館 情報A最新版 (p.6-13)
情報基礎演習I(プログラミング) 第11回 7月12日 水曜5限 江草由佳
OSが管理している、デフォルトの入出力装置 入力:stdin キーボード 出力:stdout モニタ(コマンドプロンプトの画面)
C言語 はじめに 2016年 吉田研究室.
総合講義B:インターネット社会の安全性 第7回 情報システムの信頼性
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
明星大学 情報学科 2012年度前期     情報技術Ⅰ   第1回
オペレーティングシステム (OSの機能と構造)
高度情報演習1A スクリーンセーバ作成 2016年4月13日 情報工学科 篠埜 功.
Handel-Cを用いた パックマンの設計
コンピュータアーキテクチャ 第 4 回.
情報基礎Ⅱ (第1回) 月曜4限 担当:北川 晃.
6.5 セマフォ セマフォ(semaphore): 複数のタスク(もしくはスレッド)が「同期」または「相互排除」の制御のために取得(acquire)・リリース(release)できるカーネルオブジェクトの総称.
コンピュータアーキテクチャ 第 4 回.
オペレーティングシステムJ/K (並行プロセスと並行プログラミング)
コンピュータアーキテクチャ 第 5 回.
強制パススルー機構を用いた VMの安全な帯域外リモート管理
Ibaraki Univ. Dept of Electrical & Electronic Eng.
明星大学 情報学科 2014年度前期     情報技術Ⅰ   第1回
全体ミーティング(9/15) 村田雅之.
オペレーティングシステム (プロセス管理)
printf・scanf・変数・四則演算
Presentation transcript:

オペレーティングシステム 第3回(2009.04.30) デッドロックと排他制御

排他制御とは? 誰かが使っている時に、他の人に使わせない、他の人に使用させない。 座席予約 電話をかけた。 残り数枚になりました。 インターネットや、携帯電話、窓口などで、複数の予約が入った

座席予約の場合 窓際に、二人がけで座りたい。 空き状態:B1, C3, D3, D4, E2-E5 窓際に、二人がけで座りたい。 スレッド1 起動 スレッド2 起動

各スレッドの論理 「窓際に二人がけ」で該当する座席を探す。 ほとんど同時にアクセスがあったため、どちらのスレッドも同じ「空き席状況」の情報を持っている。 「スレッドって何ですか?」

座席予約の場合 スレッド1 座席「E4-E5」が予約できました。 座席「E4-E5」が予約できました。 スレッド2 さて、何が起きるでしょうか?

スレッドって何ですか? 一つのホームページ(WEBページ)に複数の人がアクセスしています。 誰もが同じ画面を見ていても、「入力」が違えば返す画面が違う。 一つのプログラムが、複数同時に「ユーザ対応」していて、この一つ一つの「対応窓口」をスレッドと考えてください。 「特定のセッションIDに結び付けられた、エンティティ」 詳しくは、第5回「割込みプロセス制御」で 教科書P95

エンティティって何ですか? 「実体」のことです。 「プログラム」は、「機械語が記述されたファイル」としてコンピュータに存在する。 「プログラム」が起動されると「プロセス」として メモリ 入出力端末(ポート) 実行状態管理メモリ などを割り付けられる。 詳しくは、第5回「割込み・プロセス制御」で 教科書P83 この「プログラム、メモリ、入出力」などを割り付けられて、今実行しているプロセスや、そのプロセスが使用している資源全体を「エンティティ」と呼ぶ。

排他制御 教科書P103 二つのスレッドが協調して動作する状況が発生した。

座席予約の場合 スレッド1 座席「E4-E5」が予約できました。 座席予約状況の確認部分を「排他実行」にする ご希望の、二人並んで窓側の席は、ありません。 スレッド2

アクセスの競合 教科書P105 同一メモリ(記憶域)に競合してアクセスすると、結果不正が起こる。 それぞれの処理が「排他的」に「順次に」しか実行できないようにする。 このような実行部分を「クリティカルセクション」と呼ぶ。

LockとUnlock クリティカルな資源(排他実行したい資源)にロックをかける。 教科書P107

クリティカルって? 「一番重要!」 クリティカルパス 最も少ない資源に「要求」が集中するような部分のこと 文化祭で、「たこ焼き屋」をやりました。 フロアは30席、ウェイターは5人、調理当番は3人準備した。 ところが、「たこ焼き器」は、家庭用が一つしかない。 この場合、「たこ焼き器」がクリティカルパス ウェイターは5人、たこ焼き器は10台、調理当番5人を準備した。 ところが、フロアには、座席が一つしかない。 この場合、「フロアの座席」がクリティカルパス 最も少ない資源に「要求」が集中するような部分のこと

座席予約の場合 スレッド1 座席「E4-E5」が予約できました。 Lockした 入ってま~す! スレッド2 空いたよ! Lockしたい 仕方ない。 待つか! Lockした

セマフォ(Semaphore) ロックとアンロックの場合、「二つのプロセス」以上には対応しきれない。 セマフォを用いると、複数のプロセスの競合状況をうまくプログラムできる。

デッドロック 教科書P114 同期の取り方がまずくて、処理が先に進めなくなってしまった状態

デッドロックの例 かくして、二つのスレッドは、「相手が資源を手放す」のを 永遠に待ち続けたのでした・・・。めでたし、めでたし?? 使うぞ!取った! こっちは私が使う。 Lockしました。 いつまで待たせるんだろう? よし、結果を印刷したら終わりだ! 使用中! 使用中だよ。待ちな! 空かないなぁ・・・

まとめ 排他制御とは、「データの整合性」を確保するために、独占的に資源にアクセスする、など、「競合」が起きないようにするために行われる。 スレッドやプロセスの間で連携を取る必要がある。 排他制御には、LockとUnLockという方法がある。 多数のプロセスが排他制御を行うために、セマフォというメカニズムを使用する場合がある。 排他制御に失敗すると、デッドロックが発生する。