当前位置: 首页 > article >正文

进程同步问题

在操作系统中引入进程后,一方面系统中多道程序可以并发进行,有效的改善了资源利用率,提高了系统的吞吐量。但另一方面,系统变得更加复杂了,如果不能通过有效措施对多个进程进行有效管理,那么必然会因为这些进程对资源的无序争夺造成混乱,导致每次处理结果存在不确定性。为此,操作系统引入了进程同步机制,对多个程序在执行次序进行协调,使并发进程之间能够按照一定的规则共享系统资源,相互合作,从而使程序的执行具有可再现性。

两种形式的制约关系:

(1)互斥:间接相互制约关系

并发进程之间因相互争夺独占性资源而产生的竞争制约关系。

(2)同步:直接相互制约关系

并发进程之间为共同任务基于某个条件来协同执行先后关系而产生的协作制约关系。

临界资源:一次只能被一个进程使用的资源称为临界资源。

在计算机系统中,许多硬件资源如打印机,磁带机,共享变量等,都属于临界资源

例:生产者和消费者问题

现有生产者Producer和消费者Consumer两个进程,这两个进程通过一个缓冲区进行生产和消费的协作过程。生产者将得到的数据放入缓冲区中,而消费者则从缓冲区当中取得数据进行消费。

缓冲区buffer为一个有界数组,buffer中的数据用count表示。

如果按照上述顺序执行,正确的count值应当为5,但现在为4。
这表明程序的执行已失去了再现性。
诸进程间应采取互斥方式,实现对这种临界资源的共享。

临界区(criticalsection)
由前所述可知,不论是硬件临界资源还是软件临界资源,多个进程必须互斥地对它进行访问。人们把在每个进程中访问临界资源的那段代码称为临界区。
F临界区管理的三个要求:

  • 一次最多允许一个进程停留在相关的临界区内
  • 一个进程不能无限止地停留在临界区
  • 一个进程不能无限止地等待进入在临界区


为实现进程互斥地进入自己的临界区,可用软件方法,更多的是在系统中设置专门的同步机构来协调各进程间的运行。

所有同步机制都应遵循下述四条准则:

1)空闲让进。
2)忙则等待。
3)有限等待。
4)让权等待。


http://www.kler.cn/news/343524.html

相关文章:

  • TCP连接的三次握手与四次挥手详解
  • 项目管理系统介绍,核心概念与操作技巧
  • Python3一些常用的SSH连接_paramiko使用
  • 调度算法-先来先服务
  • EtherNet IP网关HT3S-EIS-MDN读取七星华创CS310空气流量计数据应用案例
  • JavaScript 代码行前添加分号
  • 【部署分布式数据库DBMS】
  • 机房空调远程控制-Thingsboard MQTT 接口说明
  • 吐槽kotlin之垃圾设计
  • 用Electron时候碰到的小问题
  • <OS 有关> Docker.Desktop - Unexpected WSL error #14030 不能启动, 问题已经解决 fixed
  • PDFToMarkdown
  • 如何使用ssm实现新冠病毒校园监控平台的设计与实现+vue
  • 【进阶OpenCV】 (8)--摄像头操作--->识别文档内容
  • Java->Map和Set
  • VMWare vsphere ESXi 6.7在线升级至7.0.3
  • 使用antdv的a-table行拖拽
  • 强化学习笔记之【SAC算法】
  • 学习笔记之指针进阶(10.11)
  • 数据库SQL 某字段按首字母排序_sql按首字母排序