操作系统(6)- 并发程序设计

并发程序设计的概念

程序是实现算法的操作序列,每个程序在处理器上是严格有序的,称之为程序执行的内部顺序性

进程的并发执行:多道程序设计让多个程序同时进入内存去竞争处理器,以获得运行机会。OS允许计算机系统在一个时间段内存在多个正在运行的进程,即允许多个程序的并发执行。OS保证按照“顺序程序设计”方法编制的程序在并发执行时不受影响,如同独占计算机。这些按照顺序程序设计思想编制的进程在OS中并发执行属于无关的并发进程。
在这里插入图片描述
在这里插入图片描述
并发程序设计:把一个具体问题求解设计成若干个可同时执行的程序模块。
在这里插入图片描述

并发进程的制约关系

无关与交往的并发进程
无关并发进程:一组并发进程分别在不同的变量集合上运行,一个进程的执行与其他并发进程的进展无关。
交往并发进程:一组并发进程共享某些变量,一个进程的执行可能影响其他并发进程的结果
与时间有关的错误
对于一组交往的并发进程,执行的相对速度无法相互控制,如果程序设计不当,可能出现各种“与时间有关的”错误,即结果错误,或者永远等待

在这里插入图片描述
进程互斥与进程同步
根据上面案例,交互的并发进程在执行时必须进程制约,才能保证得到合理的结果。
进程互斥:并发进程之间因相互争夺独占性资源而产生的竞争制约关系。
进程同步:并发进程之间,为了完成某个共同的任务,基于某个条件来协调执行先后关系而产生的协作制约关系,举例:必须完成输入进程后,才能执行计算进程。

临界区

互斥与临界区
临界资源:互斥共享变量所代表的资源,即一次只能被一个进程使用的资源
临界区:指并发进程中与互斥共享变量相关的程序段
多个进程访问临界资源时,存在竞争制约关系,如果两个进程同时停留在相关的临界区内,就会出现与时间相关的错误
在这里插入图片描述
临界区管理的三个要求
①一次最多允许一个进程停留在相关的临界区内
②一个进程不能无限制地停留在临界区内
③一个进程不能无限制地等待进入临界区
临界区的嵌套使用
在这里插入图片描述
注意进程排序级别:级别高的,不允许申请嵌套级别低的进程,防止死锁的现象出现

临界区管理实现的尝试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

临界区管理实现的硬件管理

在这里插入图片描述
在这里插入图片描述
实现临界区管理的硬件设施
以上两种方式(测试并建立指令,对换指令)均是忙式等待,效率低。
简单的解决办法是在进入临界区时开关中断
由于进程切换需要依赖中断来实现,如果屏蔽中断,则不会引起进程切换,因此为了实现对临界资源的互斥使用,可以在进程进入临界区之前关闭中断,等进程退出临界区以后在打开中断这样临界区就不会中断了,执行就有原子性
关中断 -> 临界区 -> 开中断
在这里插入图片描述
关中断缺点:限制交叉执行程序的能力,关中断方法不适合多CPU系统,关中断权利赋予给用户十分危险

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值