操作系统原理培训课件.ppt

操作系统原理培训课件.ppt

ID:58783367

大小:633.50 KB

页数:136页

时间:2020-10-03

操作系统原理培训课件.ppt_第1页
操作系统原理培训课件.ppt_第2页
操作系统原理培训课件.ppt_第3页
操作系统原理培训课件.ppt_第4页
操作系统原理培训课件.ppt_第5页
资源描述:

《操作系统原理培训课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、操作系统原理第二章进程管理第三节进程同步主要内容进程同步的概念临界资源与临界区信号量机制管程机制典型的进程同步问题1、进程同步的概念多道系统与多任务系统——程序的并发执行——程序执行失去封闭型——引入进程的概念——使得多进程能够并发执行并能够保证运行环境封闭与进程的独立性——问题:如何进行资源共享?解决办法(1)排队,有共享资源控制访问——需要专门的守护进程,增加了开销(2)由用户进程控制访问——互斥1、进程同步的概念先看一个例子:进程P1、P2公用一个变量COUNT,初始值为0当P1完成COUNT=1,当P2完成,COUNT=2交错执行,进程执行完成后,C

2、OUNT=11、进程同步的概念P1、P2两个进程的执行顺序是随机的,P1、P2可能顺序执行或交错执行。由图可见,不同的执行顺序,COUNT值会不同,这是不允许的。出现这种现象的原因,在于在一个进程执行过程中,该进程能够修改的全局变量如COUNT应该不允许其他进程修改。即在进程P1执行前,必须保证在P1执行过程中没有其他进程修改COUNT的值1、进程同步的概念进程运行中的两种制约关系由于竞争资源形成的间接制约关系;由于相互合作造成的直接制约关系;进程同步指多个相关进程在执行次序上的协调2、临界资源与临界区临界资源(criticalsource)在一段时间内只允

3、许有限个进程访问的资源,如打印机等I/O设备,缓冲区等临界区(criticalsection)每个进程中访问临界资源的那段代码,被称之为进程的临界区可把一个访问临界资源的循环进程描述如下:2、临界资源与临界区repeatcriticalsection;remaindersection;untilfalse;2、临界资源与临界区同步机制应遵循的规则空闲让进;忙则等待;有限等待;对要求进入临界区的进程,应在有限时间内使之进入,以免陷入“死等”。让权等待;对于等待进入临界区的进程而言,它必须立即释放处理机,以免进程“忙等”2、临界资源与临界区例:生产者-消

4、费者问题有一个或多个生产者生产某着类型的产品(数据、记录、字符等等),并放置在缓冲区中;有一个或多个消费者从缓冲区中取数据,每次取一项;系统保证对缓冲区的操作是互斥进行的,即每次只有一个进程能够访问缓冲区。其中:缓冲区是临界资源,而访问缓冲区的代码是临界区3、信号量机制引例:生产者-消费者问题分析:首先需要定义产品的类型,缓冲区的长度,读写指针,资源变量counter。Intn;Intin,out;Structureitem;Itembuffer[n];Intcounter;3、信号量机制Voidprocedure(){while(true){生产一个产品放

5、入nextp;while(counter==n){no-op;}buffer[in]=nextp;in++;counter++;}}3、信号量机制Voidcomsumer(){while(true){while(counter==0){no-op;}nextc=buffer[out];out++;counter--;消费nextc中的产品;}}3、信号量机制问题:并发执行时,消费者进程与生产者进程都可以改变counter的值,执行顺序不同,counter的结果也不一样,而且与实际结果也不相同。为解决这个问题,引入一个互斥变量mutex,来控制对变量count

6、er的访问。引入互斥变量后的生产者消费者代码如下:3、信号量机制Voidprocedure(){while(true){生产一个产品放入nextp;wait(mutex);while(counter==n){no-op;}buffer[in]=nextp;in++;counter++;single(mutex);}}3、信号量机制Voidcomsumer(){while(true){wait(mutex);while(counter==0){no-op;}nextc=buffer[out];out++;counter--;single(mutex);消费ne

7、xtc中的产品;}}Mutex是互斥变量,它是一个整型数,称为整形信号量3、信号量机制用一个数据结构来描述临界资源的的使用状态或给临界资源加锁,这个数据结构就是信号量(1)整形信号量:用一位整数表示临界资源的忙闲状态原子操作:wait(S):whileS≤0dono-opS∶=S-1;signal(S):S∶=S+1;3、信号量机制(1)记录型信号量由于整形信号量出现忙等现象,因此引入记录型信号量typesemaphore=recordvalue:integer;L:listofprocess;endstructsemaphore{intvalue;L

8、istofprocessL;}3、信号量机制相应的,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。