导图社区 王道进程的切换,同步与互斥
王道进程的切换和同步与互斥的思维导图,任何进程的切换都是在操作系统内核的支持下运行的;同步是为了合作完成某任务而建立的多个进程,所以要相互进行通信同步;互斥是当一个进程访问临界资源的时候,其他进程不能访问。
王道408处理机调度(下)--经典的调度算法,内容有:先来先服务(FCFS)、短作业优先(SF)、优先级调度算法、高响应比调度算法、时间片轮转调度算法、多级队列调度算法、多级反馈队列调度算法。
王道408计算机系统概述--操作系统的发展与分类,操作系统是负责协调软硬件等计算机资源的工作,为上层用户,应用程序提供方便的接口软件系统。
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
进程的切换,同步与互斥
进程切换
任何进程的切换都是在操作系统内核的支持下运行的。
上下文切换
上下文的概念:上下文是指某一时刻CPU寄存器和程序计数器的内容
概念:切换CPU到另一个进程需要保存当前进程状态并恢复另一个进程状态
上下问切换的实质:是指处理机从一个进程的运行转到另一个进程上运行,程序的运行环境产生了实质性的变化
切换过程
挂起一个进程,保存当前进程上下文
更新PCB信息
将进程移入相应队列
选择另一个进程执行,并更新PCB
跳转到新的PCB
恢复处理机上下文
模式切换:用户态和内核态之间的切换
上下文切换和模式切换的区别
上下文切换只能发生在内核态,是多任务操作系统的必需的特性
模式切换时,CPU逻辑上可能还在执行同一进程。
同步与互斥
基本概念
临界资源
概念:一次只允许一个进程使用的资源
对临界资源的访问,必须互斥进行
临界资源的访问过程
进入区:检查进程能否进入临界区
临界区:可以访问临界资源的代码
退出区:将正在访问临界区的标志清除
剩余区:代码中的其余部分
同步
为了合作完成某任务而建立的多个进程,所以要相互进行通信同步
遵循的原则
空闲让进:临界区空闲时,可以允许一个请求进入临界区的进程立即进入临界区。
忙则等待:已有进程进入临界区后,其他试图进入临界区的进程必须等待。
有限等待:对于请求访问临界区的进程,在有限时间内进入临界区
让权等待:进程不能进入临界区的时候,应当立即释放处理机。
互斥
当一个进程访问临界资源的时候,其他进程不能访问。
实现临界区互斥访问的基本方法
软件实现方法
单标志法
基本思想:设置一个公用整形变量turn,用以指示被允许进入临界区的进程编号。进程之间可以交替进入临界区,不可同时进入。
主要问题:若某个进程不进入,则另一个进程也无法进入(违背了“空闲让进”)
双标志法先检查
基本思想:每个进程访问临界资源前,先检查临界资源是否被访问,再设置自己的标志。如果正在被访问,则该进程需等待,否则进程进入自己的临界区
主要问题:不用交替进入可以连续使用,可能会同时进入临界区(违反“忙则等待”)
双标志法后检查
基本思想:先设置自己标志,表明自己想要进入,再检查对方标志,如果对方也要进入,那么就等待,否则就进入。
主要问题:两个进程都想进入时,会相互谦让,从而导致”饥饿“
皮特森算法
基本思想:防止两个进程无限期等待,在双标志法后检查基础上,再增加一个标志位,从而防止饥饿。
主要问题:未遵守“让权等待”
硬件实现方法(又叫低级方法,元方法)
中断屏蔽方法
思想:对中断进行屏蔽,关中断防止其他进程进入临界区进入访问。
优点:关中断非常方便
缺点:限制了处理机交替执行程序的能力
硬件指令法
由硬件逻辑直接实现指令,不会被中断,从而实现进程互斥
硬件实现方法优缺点
优点
适用于任意数目的进程
简单且容易验证正确性
支持进程内有多个临界区
缺点
不能实现让权等待
可能会导致饥饿现象
信号量
整形信号量
定义为一个用于表示资源数目的整形量S,S.wait -1,S.signal +1
没有遵循让权等待机制,会导致进程处于“忙等”状态。
记录型信号量
记录型信号量不存在“忙等”现象,除了需要一个用于代表资源数目的整形变量value外,再增加一个进程链表L,用于链接所有等待该资源的进程。
利用信号量实现同步
设S为进程P1和P2同步的公共信号量,初值为0,通过设置S的值可以使得P1与P2按照一定顺序执行。
利用信号量实现同步操作
1.分析需要同步的两个操作,即必须保证一前一后的执行顺序的操作。
2.设置同步信号量S,初始为0
3.在前操作之后执行V操作
4.在后操作之前执行P操作
管理
概念
一组数据以及定义在这组数据之上的对这组数据的操作组成的软件模块,这组操作能初始化并改变管程中的数据和同步进程。
组成
局部于管程的共享结构数据说明
对该数据结构进行操作的一组过程
对局部于管程的共享数据设置初始值的语句
基本特性
局部于管程的数据只能被局部于管程内的过程所访问
一个进程只有通过调用管程内的过程才能进入管程访问共享数据
每次仅允许一个进程在管程内执行某个内部过程。
注意临界资源和临界区的区别