- 1、本文档共83页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第4章同步、通信与死锁;4.1并发进程;4.1.1顺序程序设计;顺序程序设计特点;4.1.2进程的并发性;并行工作图示;并发的实质;3、与时间有关的错误;3、与时间有关的错误(例子1);3、与时间有关的错误(例子2);11;12;3、与时间有关的错误(例子3);T1、T2并发执行,可能出现如下交叉情况:
T1:X1=Aj;//X1=m
T2:X2=Aj;//X2=m
T2:X2--;Aj=X2;{输出一张票};//Aj=m-1
T1:X1--;Aj=X1;{输出一张票};//Aj=m-1
同一张票卖给两位旅客;(永远等待)主存管理问题;若对borrow和return的并发执行不加限制将会导致错误,例如:
Borrow:while(BX);
Return:X=X+B;{修改主存分配表};{释放等待主存资源的进程};
此时,因为borrow还没有进入等待队列,因此,return的释放操作是空操作,当borrow进入等待队列时,可能没有进程再来归还,处于永远等待状态。;3.1.3进程的交互:竞争与协作(1)
第一种是竞争关系;进程的交往:竞争与协作(2)
第二种是协作关系;4.2临界区管理;20;21;22;4.2.1互斥与临界区(1);24;互斥与临界区(2);26;软件方案
Dekker解法、Peterson解法
硬件方案
屏蔽中断、TSL(XCHG)指令;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;Peterson算法;4.2.4实现临界区管理的硬件设施;“开关中断”指令(特权指令)可实现原语操作
操作步骤如下:
Step1:执行“关中断”指令
Step2:临界区操作
Step3:执行“开中断”指令;关中断;测试并建立指令TS指令的处理过程;测试并建立指令;对换指令(1);对换指令(2);软件方法:开销,编程技巧
硬件方法
忙等待(busywaiting)
进程在得到临界区访问权之前,持续测试而不做其他事情(单处理器避免使用)
自旋锁Spinlock(多处理器);4.3信号量与PV操作;进程同步:
指系统中多个进程中发生的事件存在某种时序关系,需要相互合作,共同完成一项任务;4.3.1同步和同步机制;生产者--消费者问题表述;生产者-消费者问题算法描述(1);生产者-消费者问题算法描述(2);62;63;64;生产者-消费者问题解决方法的不足;4.3.2信号量与PV操作;信号量与PV操作(3);68;信号量与PV操作;70;71;72;73;74;75;76;77;78;79;#includestdio.h
#includestdlib.h
#includeunistd.h
#includesemaphore.h
#includepthread.h
#definep(x)sem_wait(x)//intsem_wait(sem_t*sem);
#definev(x)sem_post(x)
sem_tfull,empty;//sem_t信号量数据类型
pthread_mutex_tmutex;//pthread_mutex_tlinux线程互斥量
intcount;
voidinit(){
sem_init(full,0,0);
sem_init(empty,0,100);
count=100;
};void*_producer(){
while(1){
p(full);
pthread_mutex_lock(mutex);
count=count+1;
printf([++]:Nowtherehas%dthings\n,count);
pthread_mutex_unlock(mutex);
sleep(5);
v(empty);
}
}
void*_consumer(){
while(1){
p(empty);
pthread_mutex_lock(mutex);
count=count-1;
printf([--]:Nowtherehas%dthings\n,count);
pthread_mutex_unlock(mutex);
sleep(1);
v(full);
}
};intmain(){
init();intconsumers[2];
pthread_tb;
pthread_tpthreads[2];
pthread_create(b,NULL,_producer,NULL);
for(inti=0;i2;i
您可能关注的文档
- 滤波器种类近年原文.doc
- 电力建设涉及的安全规程规范.doc
- 活动方案之计算机室建设方案.docx
- 血清Ⅰ型前胶原氨基端前肽、Ⅰ型前胶原羧基端前肽、Ⅰ型胶原羧基端肽在骨转移性癌诊断中的应用.pdf
- (名师整理)最新部编人教版道德与法治9年级上册第4单元第7课第1框《促进民族团结》市优质课一等奖教案.doc
- 人教版小学音乐一年级上册《大鼓和小鼓》教案(电子备课).docx
- 多元回归光度法同时测定复方对乙酰氨基酚片中对乙酰氨基酚和乙酰水杨酸.docx
- 山东省实验中学2020-2021学年上学期期中考试高一数学试卷Word版含解析.doc
- 高三数学一轮复习-第8篇-第2节-圆与方程课件-理.ppt
- 第二版幼儿园教育活动设计与实践教案.doc
最近下载
- 《信息技术应用创新软件适配改造成本评估规范》.pdf
- 中国行业标准 YY/T 1939-2024医疗器械细菌内毒素试验方法 重组C因子法.pdf
- 各类游资炒股心法及感悟,套利模式.pdf
- 【客户管理】龙湖客户细分及工作模式分享精华篇-102p.pptx
- 学校智慧平台管理制度范文.docx VIP
- ASME中国制造-ISO12944-5-2018 中文译稿 第5部分 防护涂料体系.pdf
- 《诫子书》公开课课件(共24张ppt)部编版语文七年级上册.ppt
- 三年级数学下册期中试卷及答案【可打印】.doc
- 关于《佛山市市级财政资金投资建设项目工程概算预算结算.doc
- 二年级上册语文选择题强化练习(一).docx
文档评论(0)