操作系统课件进程同步.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《操作系统课件进程同步.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课件 进程 同步
- 资源描述:
-
1、第三章第三章 进程的同步与通信进程的同步与通信3.1 3.1 进程的同步进程的同步3.2 3.2 进程通信进程通信3.1 3.1 进程的同步进程的同步3.1.1 3.1.1 临界区临界区3.1.2 3.1.2 利用硬件的方法解决进程互利用硬件的方法解决进程互 斥问题斥问题互斥的加锁实现互斥的加锁实现3.1.3 3.1.3 信号量机制信号量机制3.1.1 3.1.1 临界区临界区一、临界区一、临界区3.1 3.1 进进程程的的同同步步例例二、进程间的制约关系二、进程间的制约关系3.1.1 3.1.1 临界区临界区3.1 3.1 进进程程的的同同步步三、临界区的进入:三、临界区的进入:3.1.1
2、3.1.1 临界区临界区2.2.同步机制应遵循的准则同步机制应遵循的准则1.1.访问过程访问过程3.1 3.1 进进程程的的同同步步空闲让进空闲让进忙则等待忙则等待有限等待有限等待让权等待让权等待3.1.2 3.1.2 利用硬件的方法解决进程互斥问题利用硬件的方法解决进程互斥问题互斥的加锁实现互斥的加锁实现 可以利用某些硬件指令其读写操作由一条可以利用某些硬件指令其读写操作由一条指令完成,因而保证读操作与写操作不被打断;指令完成,因而保证读操作与写操作不被打断;这些指令允许对一个字的内容进行检测和修正,这些指令允许对一个字的内容进行检测和修正,或交换两个字的内容。或交换两个字的内容。一、利用一
3、、利用Test-and-SetTest-and-Set指令实现互斥指令实现互斥二、利用二、利用SwapSwap指令实现进程互斥指令实现进程互斥3.1 3.1 进进程程的的同同步步3.1.2 3.1.2 利用硬件的方法解决进程互斥问题利用硬件的方法解决进程互斥问题互斥的加锁实现互斥的加锁实现一、利用一、利用Test-and-SetTest-and-Set指令实现互斥指令实现互斥1.Test-and-Set1.Test-and-Set指令指令该指令读出标志后设置为该指令读出标志后设置为TRUETRUEboolean TS(boolean boolean TS(boolean*lock)lock)b
4、oolean boolean old;old;old=old=*lock;lock;*lock=TRUE;lock=TRUE;return old;return old;locklock表示资源的两种状态:表示资源的两种状态:TRUETRUE表示临界区正被表示临界区正被占用(忙),占用(忙),FALSEFALSE表示空闲。表示空闲。3.1 3.1 进进程程的的同同步步3.1.2 3.1.2 利用硬件的方法解决进程互斥问题利用硬件的方法解决进程互斥问题互斥的加锁实现互斥的加锁实现一、利用一、利用Test-and-SetTest-and-Set指令实现互斥指令实现互斥2.2.利用利用TSTS指令实
5、现进程互斥指令实现进程互斥while TS(&lock);lock=FALSE;critical sectionremainder sectionn利用利用TSTS实现进程互斥:每个临界资源设置一个公实现进程互斥:每个临界资源设置一个公共布尔变量共布尔变量locklock,初值为,初值为FALSEFALSEn在在“进入区进入区”利用利用TSTS进行检查:若有进程在临界进行检查:若有进程在临界区时,重复检查;直到其它进程退出时,检查通区时,重复检查;直到其它进程退出时,检查通过;过;3.1 3.1 进进程程的的同同步步3.1.2 3.1.2 利用硬件的方法解决进程互斥问题利用硬件的方法解决进程互
6、斥问题互斥的加锁实现互斥的加锁实现二、利用二、利用SwapSwap指令实现进程互斥指令实现进程互斥1.Swap1.Swap指令指令交换两个字(字节)的内容交换两个字(字节)的内容void SWAP(int void SWAP(int*a,int a,int*b)b)int int temp;temp;temp=temp=*a;a;*a=a=*b;b;*b=temp;b=temp;3.1 3.1 进进程程的的同同步步3.1.2 3.1.2 利用硬件的方法解决进程互斥问题利用硬件的方法解决进程互斥问题互斥的加锁实现互斥的加锁实现二、利用二、利用SwapSwap指令实现进程互斥指令实现进程互斥2.2
7、.利用利用SwapSwap实现进程互斥实现进程互斥 每个临界资源设置一个公共布尔变量每个临界资源设置一个公共布尔变量locklock,初值为,初值为FALSEFALSE。每个进程设置一个私有布尔变量。每个进程设置一个私有布尔变量keykeykey=TRUE;do SWAP(&lock,&key);while(key);lock=FALSE;critical sectionremainder section3.1 3.1 进进程程的的同同步步3.1.2 3.1.2 利用硬件的方法解决进程互斥问题利用硬件的方法解决进程互斥问题互斥的加锁实现互斥的加锁实现3.1 3.1 进进程程的的同同步步n硬件方
8、法的优点硬件方法的优点n适用于任意数目的进程,在单处理器或多处理器上适用于任意数目的进程,在单处理器或多处理器上n简单,容易验证其正确性简单,容易验证其正确性n可以支持进程内存在多个临界区,只需为每个临界可以支持进程内存在多个临界区,只需为每个临界区设立一个布尔变量区设立一个布尔变量n硬件方法的缺点硬件方法的缺点n循环测试锁状态循环测试锁状态,损耗损耗CPUCPU时间。时间。n可能可能“饥饿饥饿”:从等待进程中随机选择一个进入临:从等待进程中随机选择一个进入临界区,有的进程可能一直选不上界区,有的进程可能一直选不上(不公平现象不公平现象)3.1 3.1 进进程程的的同同步步3.1.3 3.1.
9、3 信号量机制信号量机制一、信号量一、信号量 是对系统中资源及其组织情况的抽象。它由一是对系统中资源及其组织情况的抽象。它由一个记录型数据表示。包含两个数据项个记录型数据表示。包含两个数据项:type semaphore=recordtype semaphore=record value:integer;value:integer;L:list of process;L:list of process;end end 其中其中:valuevalue的值表示可用资源的数目的值表示可用资源的数目;L:L:为等待此类资源的进程为等待此类资源的进程PCBPCB表链。表链。3.1 3.1 进进程程的的同
10、同步步3.1.3 3.1.3 信号量机制信号量机制二、二、P PV V操作操作1.1.P P操作:操作:wait(s)wait(s)功能:功能:请求系统分配请求系统分配一个一个单位的资源单位的资源参数:参数:信号量信号量S S流程:流程:3.1 3.1 进进程程的的同同步步3.1.3 3.1.3 信号量机制信号量机制二、二、P PV V操作操作2.2.V V操作:操作:signal(s)signal(s)功能:功能:释放释放一个一个单位的资源单位的资源参数:参数:信号量信号量S S流程:流程:3.1 3.1 进进程程的的同同步步3.1.3 3.1.3 信号量机制信号量机制三、信号量的应用三、信
展开阅读全文