第三章 进程互斥与同步.

Slides:



Advertisements
Similar presentations
作者 : 陳鍾誠 單位 : 金門技術學院資管系 URL : 日期 : 2016/7/21 行程的同步 註:本章學術性較重,但考試常考。
Advertisements

渡黑水溝 郁永河. 2 戎克船:是明末清初時期往返兩岸的主要交通工具 ∗ 1. 關於台灣的開發歷史,我們到底了解多少呢?不妨試著說出 就我們所知有關台灣開發史的故事、小說、電影、音樂與大 家分享。 ∗ 2. 什麼是黑水溝?黑水溝為什麼會成為大陸移民渡海來臺時最 大的威脅? ∗ 3. 有聽過「六死三留一回頭」、「有唐山公,無唐山嬤」這兩.
1 認識創業之財務 ( 資金 ) 及稅務問題 講師 : 蘇炳章 日期 : 92 年 8 月 12 日.
南 通. 南通概述 南通,位于江苏省东部, 东抵黄海,南望长江。 “ 据江 海之会、扼南北之喉 ” ,隔江 与中国经济最发达的上海及 苏南地区相依,被誉为 “ 北上 海 ” 。 南通也是中国首批对 外开放的 14 个沿海城市之一 ,被称为 “ 中国近代第一城 ” 。 南通面临海外和内陆两大经 济辐射扇面,素有.
1 天天 5 蔬果 國立彰化特殊教育學校 延杰股份有限公司營養師:陳婷貽. 2 蔬果彩虹 579 蔬果彩虹 歲以內兒童,每天 攝取五份新鮮蔬菜水 果,其中應有三份蔬 菜兩份水果 蔬菜份數水果份數總份數 兒童 325 女性 437 男性 549.
高等学校英语应用能力考试 考务培训 兰州文理学院教务处 2014 年 12 月. 考务培训 21 日请监考人员上午 8:00 (下午 2:30 )到综合楼 205 教室集合,查看 监考安排,由考务负责人进行考务 培训。
語言與文化通識報告 - 台日年菜差異 - 指導老師 : 葉蓁蓁 小組 : 日本微旅行 組員 :4a21b032 吳采玲 4a21b037 沈立揚 4a 洪雅芳 4a 陳楚貽 4a 王巧稜.
第一章 人口与环境 第一节 人口增长模式.
105年基北區高中職適性入學宣導 教育會考後相關作業說明
高齡自主學習團體終身學習試辦計畫經費核銷
行政公文 纪 要 讲授人: 安学珍 铜仁职业技术学院.
二代健保補充保費 代扣項目說明 簡報.
说课课件 感悟工业革命力量,闪耀科技创新光辉 ----《走向整体的世界》教学设计及反思 爱迪生 西门子 卡尔·本茨 诺贝尔 学军中学 颜先辉.
舌尖上的昭通.
第4课 “千古一帝”秦始皇.
台北縣98年三鶯區語文研習 --建國國小 修辭與標點符號 福和國中廖惠貞
房地产开发企业 土地增值税清算 (基础篇).
班級老師:潘盈仁 班級:休閒三甲 學號:4A0B0124 學生:柯又瑄
有三件事我很確定: 第一、愛德華是吸血鬼 第二、出於天性,他渴望喝我的血 第三、我無可救藥地愛上他了……
99年成語200題庫(21-40).
颈椎移位.
腐败的食物表面有白色小圆斑点,绿色斑点等
第二章 进程的描述与控制管理.
美国史 美利坚合众国创造了一个人类建国史的奇迹,在短短230年的时间从一个被英帝国奴役的殖民地到成为驾驭全世界的“超级大国”、“世界警察”,美国的探索为人类的发展提供了很宝贵的经验。
作業系統 第六章 同步與死結.
你,是扼殺 孩子競爭力的幫兇嗎?.
教師專業發展評鑑(一) 實施計畫與規準討論
第四章 借贷记账法的应用.
第五章 主要经济业务核算 第一节 筹集资金的核算 第二节 供应过程的核算 第三节 生产过程的核算 第四节 销售过程的核算
第三章 生产费用的核算 第一节 材料费用的归集和分配 第二节 工资费用的归集和分配 第三节 辅助生产费用的归集和分配
试卷 20 14安徽 13全国卷 大纲卷 13山东卷 13浙江卷 2013上海卷 13海 南 卷 13江苏卷 题号 30 32
營建自動化 -營建管理資訊化 授課老師:劉俊杰 副教授 中華民國89年9月27日.
昆明心桥心理健康研究所 心理健康工作者 钱锡安 讲座预约 个案咨询预约
成本会计 主讲教师:钟小玲 讲师 硕士 主讲教师:钟小玲 讲师 硕士 办公电话: 手机:
上节主要内容回顾 借贷记账法的主要内容: 总分类账户与明细分类账户的平行登记 记账规则 试算平衡 要点:内容相同、方向一致、金额相等
高三地理专题复习 地方时和区时 解题技巧.
房产税纳税申报---全部自用 全部自用 问:该企业应纳多少房产税?每月应纳多少房产税? 案例1(全部自用)
邂逅“行程”——行程问题 四年级 数学 周凯.
公務員廉政倫理規範.
105年基北區高中職適性入學宣導 教育會考後相關作業說明
組 員: 王 新 惠 吳 映 暄 李 盈 慧 廖 香 涵 盧 姵 華 訪談日期:
操作系统 (并发进程) 徐锋 南京大学计算机科学与技术系 2018年9月18日3时52分.
作業系統 第六章 同步與死結.
全方位自主學習平台- 教師評鑑平台 操作說明
第三章 进程互斥与同步.
临界区软件互斥软件实现算法.
操作系统原理 Operating System Principles
第四单元:可能性 掷一掷 武汉市洪山区教育科学研究培训中心 李桂玲.
临界区软件互斥软件实现算法 主讲教师:夏莹杰
第三节 实对称矩阵的对角化 一、方阵对角化的条件 二、实对称矩阵的对角化 三、小结与思考 2019/4/6.
票據與生活.
海水运动→→洋流 你知道吗 在十年前,日本的科学家曾经做过一个有趣的实验:在日本以东的洋面拨撒了大量的带有颜色的物质。
資料結構與C++程式設計進階 排序與搜尋 講師:林業峻 CSIE, NTU 6/ 14, 2010.
成 本 会 计 学 第七章 产品成本计算的辅助方法.
在山的那边 ——作者: 张家新 —— 小时候,我常伏在窗口痴想 ——山那边是什么呢? 妈妈告诉我:海 哦,山那边是海吗?
2008学年上学期教材分析 四年级上 范谊 2008年9月1日.
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
南宁翰林华府 ——地中海风格与现代住宅的融合.
高雄半日遊 西子灣-旗津-駁二.
聚合型第一種:隱沒帶、島弧 例子:臺灣東方的琉球海溝、南美洲智利海溝. 聚合型第一種:隱沒帶、島弧 例子:臺灣東方的琉球海溝、南美洲智利海溝.
临界区问题的硬件指令解决方案 (Synchronization Hardware)
例  一导体球半径为 R ,带电量 q ,在离球心 O
歡迎大家來到開心國小! 我們每個月舉辦一次慶生會, 所以現在要調查全班的生日。 1號: 9/19 9號: 3/17 2號: 9/5 10號: 5/12 3號: 1/8 11號: 7/25 4號:11/27 12號:10/4 5號: 8/31 13號: 9/5 6號:
6上 5 小數除法(二) 9.有A、B兩袋金幣,金幣的數量相同。 的金幣全部是真的,共重 。 中有一些金幣是假的,共重 。 A袋
自动控制原理.
小學常識六年級 知 識 產 權 知 多 少 樊佩芳老師.
組員:.
 主講人:楊文明主任委員   106/06/30 中華電信職工福利委員會台北分會業務簡介.
資料!你家住哪裏? --談指標 綠園.
Section 2-2: 4 (6), 7, 12 (14), 13, 18 (16), 21, 25, 28, 30, 36, 46, 48, 50, 54a Section 3-1: 4 (2), 5, 10, 15, 20, 29, 32 Section 4-1: 3, 7, 8,
Presentation transcript:

第三章 进程互斥与同步

主要内容 进程的同步和互斥机制的主要任务:控制并发执行的诸进程之间能有效地共享和相互协作,同时使并发执行的程序仍具有可再现性。 进程互斥 进程同步 利用信号量机制解决具体问题

进程间的关系 并发系统中诸进程由于资源共享、进程合作,而产生进程之间的相互制约;又因共享资源的方式不同,而导致两种不同的制约关系: 1 间接制约关系(进程互斥) 由于共享资源而引起的临界区内不允许并发进程交叉执行的现象。由共享公有资源而造成的对并发进程执行速度的间接制约 2 直接制约关系(进程同步) 由于并发进程互相共享对方的私有资源所引起的直接制约。

临界资源 象打印机这类资源一次只允许一个进程使用的资源称为临界资源。属于临界资源有硬件打印机、磁带机等,软件有消息缓冲队列、变量、数组、缓冲区等。当然还有一类象磁盘等资源,它允许进程间共享,即可交替使用,所以它称为共享资源,而临界资源又称独享资源。

举例:临界资源 进程P1和P2共享变量count, R1和R2是处理机中的寄存器 P1: R1=count; R1=R1+1; 若执行顺序变为 P1: R1=count; P2: R2=count; P1: R1=R1+1; count=R1; P2: R2=R2+1; count=R2;

临界区Critical sections 多个进程共享临界资源时必须互斥使用,例如A和B两个进程都需要使用打印机,它们必须互斥使用。如果为了保证结果的正确性限制A、B二进程推进序列,规定进程A执行好再执行进程B,这样的限制就显得过死,因为它已不能保证进程A、B能并发执行,所以必须把限制减少到最少,以尽可能支持并发执行。为此把各进程分解,把访问临界资源的那段代码(称为临界区)与其它段代码分割开来,只对各种进程进入自己的临界区加以限制,即各进程互斥地进入自己的临界区。

举例:临界区 While ( 1 ) { …… entry_section; //申请进入 critical_section; //临界区 exit_section; //声明退出 ……… }

进程同步机制 进程在并发执行时为了保证结果的可再现性,各进程执行序列必须加以限制以保证互斥地使用临界资源,相互合作完成任务。 多个相关进程在执行次序上的协调称为进程同步。用于保证多个进程在执行次序上的协调关系的相应机制称为进程同步机制。 准则 空闲让进 忙则等待 阻塞等待 有限等待

一个由临界区和剩余区1和剩余区2程序段组成的进程采用进程同步机制后的描述如下: { remainder section 1; 剩余区1 进入区; critical section ; 临界区 退出区; remainder section 2 ; 剩余区2 } 进程同步机制在临界区前加上进入区,它负责对欲访问的临界资源状态进行检查,以决定是允许该进程进入临界区还是等待。同时在临界区后加上退出区,它负责释放临界资源以便其它等待该临界资源的进程使用。 实现进程互斥和同步的信号量机制有软件方法、硬件指令方法、信号量机制和管程等。

互斥-软件的忙等待方法-1 算法1 int flag[2]={ 0, 0 } Cobegin void P0(void) { while( 1 ) { while ( flag[1] == 1) ; flag[0] = 1; ……; //P0的临界区代码 flag[0] = 0; …….; // P0的非临界区代码 } void P1(void) while ( flag[0] == 1) ; flag[1] = 1; ……; // P1的临界区代码 flag[1] = 0; …….; // P1的非临界区代码 Coend

互斥-软件的忙等待方法-2 1.P0每小时进一次而P1每小时进入1000次 2.若某进程发生意外永远不能运行….. 算法2 int turn = 0; Cobegin void P0(void) { while( 1 ) { while ( turn != 0 ) ; ……; //P0的临界区代码 turn = 1; …….; // P0的非临界区代码 } void P1(void) while ( turn != 1 ) ; ……; // P1的临界区代码 turn = 0; …….; // P1的非临界区代码 Coend 1.P0每小时进一次而P1每小时进入1000次 2.若某进程发生意外永远不能运行…..

互斥-软件的忙等待方法-3 Peterson 1981 为了防止二进程为进入临界区而无限期等待,又设置变量turn,表示不允许进入临界区的编号,每个进程在先设置自己标志后再设置turn标志,不允许另一个进程进入,这时再同时检测另一个进程状态标志和不允许进入标志,这样可以保证当二个进程同时要求进入临界区时,只允许一个进程进入临界区。 仅适用于两个进程互斥

互斥-软件的忙等待方法-3 算法3 Int flag[2] = { 0, 0 } Int turn = 0; Cobegin void P0(void) { while( 1 ) { flag [ 0 ] =1; //P0申请进入临界区 turn = 1; while( flag[1] == 1 && turn ==1) ; //等待获准进入 ……; //P0的临界区代码 flag[ 0 ] =0; //声明退出临界区 …….; // P0的非临界区代码 } void P1(void) flag [ 1 ] =1; //P1申请进入临界区 turn = 0; while( flag[0] == 1 && turn ==0) ; //等待获准进入 flag[ 1 ] =0; //声明退出临界区 …….; // P1的非临界区代码 Coend

互斥-硬件支持1-禁止中断 提高临界区代码执行中断优先级 这种方法在UNIX和Windows NT中都使用,它是在单机系统中有效地实现互斥的一种方法。 因为在传统操作系统中,打断进程对临界区代码的执行只有中断请求、中断被接受后,系统有可能还调用其它进程进入临界区,并修改此全局数据库。所以用提高临界区中断优先级方法就可以屏蔽了其它中断,保证了临界段的执行不被打断,从而实现了互斥。

禁止中断举例 Void Pi(void) { while ( 1 ) { disable_interrupts; ……; //临界区代码 enable_interrupts; ……; //非临界区代码 } 在多处理机情况下,用提高临界段代码执行的中断优先级方法是无法保证互斥的,因为在一个处理机上提高中断优先级并不能阻止其它处理器上的中断,所以必须采用其它方法。

互斥-硬件支持2-特殊机器指令 1 Test-and-Set 处理机指令 对于同一主存块访问要求,即使两个处理机同时提出,存储控制逻辑也只能让其中之一先访问,但在一个处理机的两个存储周期间却可以插入另一个处理机的存储周期。现在用一条指令来完成检测和修改两个功能,这样中断和插入另一处理机的存储周期均不可能,所以不会影响此公用变量数据的完整性。

Test-and-Set的语义 int Test_and_Set( int target ) { int temp; temp = target; target = 1; return temp; }

Test-and-Set 的应用 //lock为被测试变量,初值为0,互斥进程Pi(i=1,2...n)调用TS void Pi( void ) { while (1) { while( Test_and_Set( lock)) ; .....; //Pi 临界区代码 lock = 0; //退出临界区 .....; //Pi 非临界区代码 }

互斥-硬件支持2-特殊机器指令 2 swap 处理机指令,语义如下: void swap(int a, int b) { int temp; temp = a; a = b; b = temp; }

Swap 的应用 //lock为公用变量,初值为0(表临界资源空闲) //keyi为进程Pi的对应变量,初值为0表示不要求进入临界区 void Pi( void ) { while (1) { keyi = 1; while( keyi != 0 ) swap( lock, keyi ); .....; //Pi 临界区代码 lock = 0; //退出临界区 .....; //Pi 非临界区代码 }