进程互斥  定义:两个或两个以上的进程,不能同时进入关于同一组共享变量的临界区域,否则可能发生与时间有关的错误,这种现象被称作进程互斥.

在多道程序环境下,存在着临界资源,它是指多进程存在时必须互斥访问的资源。也就是某一时刻不允许多个进程同时访问,只能单个进程的访问。我们把这些程序的片段称作临界区或临界段,它存在的目的是有效的防止竞争条件又能保证最大化使用共享数据。而这些并发进程必须有好的解决方案,才能防止出现以下情况:多个进程同时处于临界区,临界区外的进程阻塞其他的进程,有些进程在临界区外无休止的等待。除此以外,这些方案还不能对CPU的速度和数目做出任何的假设。只有满足了这些条件,才是一个好的解决方案。

访问临界资源的循环进程可以这样来描述:

Repeat

entry section

Critical sections;

exit section

Remainder sectioni;

Until false

为实现进程互斥,可以利用软件的方法,也可以在系统中设置专门的同步机制来协调多个进程,但是所有的同步机制应该遵循四大准则:

1.空闲让进 当临界资源处于空闲状态,允许一个请求进入临界区的进程立即进入临界区,从 而有效的利用资源。

2.忙则等待 已经有进程进入临界区时,意味着相应的临界资源正在被访问,所以其他准备进 入临界区的进程必须等待,来保证多进程互斥。

3.有限等待 对要求访问临界资源的进程,应该保证该进程能在有效的时间内进入临界区,防 止死等状态。

4.让权等待 当进程不能进入临界区,应该立即释放处理机,防止进程忙等待。

早期解决进程互斥问题有软件的方法和硬件的方法,如:严格轮换法,Peterson的解决方案,TSL指令,Swap指令都可以实现进程的互斥,不过它们都有一定的缺陷,这里就不一一详细说明,而后来Kijkstra提出的信号量机制则更好的解决了互斥问题。

◆◆

评论读取中....

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

什么是临界资源计算机网络,如何利用信号量机制来实现多个进程对临界资源的互斥访问...相关推荐

  1. 利用信号量机制实现前驱关系

    记录型信号量: typedef struct{int value;struct process_control_block *list;//阻塞队列 }semaphore; wait(semaphor ...

  2. 信号量机制以及各种例题

    信号量机制 1.整型信号量 整型信号量定义为一个用于表示资源数目的整型量,除了初始化外,只能由wait(S)和signal(S)这两个操作访问.wait又称为P操作,signal又称为V操作. wai ...

  3. 进程同步之信号量机制(pv操作)及三个经典同步问题

    上篇博客中(进程同步之临界区域问题及Peterson算法),我们对临界区,临界资源,锁机制详细解读了下,留下了一个问题,就是锁机制只能判断临界资源是否被占用,所以他解决了互斥问题,但是他不能确定前面的 ...

  4. 进程同步之信号量机制(pv操作)

    1.信号量机制 信号量机制即利用pv操作来对信号量进行处理. 什么是信号量?信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程.信号量的值与相应资源的使用情况有 ...

  5. 采用信号量机制实现消费者与生产者的线程同步_你还能聊聊常用的进程同步算法? 上篇[五]...

    点击上方 " 布衣码农 " ,免费订阅~选择" 设为星标 ",第一时间免费获得更新~ 「布衣码农」进程同步的最佳实践! 进程同步回顾 进程同步控制有多种方式:算 ...

  6. 操作系统之-----信号量机制

    信号量机制是一种卓越成效的进程同步工具,信号量机制已经被广泛的使用于单处理机,和多处理系统的计算机网络中. 信号量S是一个整数,S大于等于零代表可供并发进程使用的资源实体数,当S小于零时则表示正在等待 ...

  7. 信号量机制——读者-写者问题

    信号量机制--读者-写者问题 问题描述 一个共享数据区,有若干个进程负责对其进行读入工作,若干个进程负责对其进行写入工作. 允许多个进程同时读数据 互斥读数据 若有进程写数据,不允许读者读数据 对照生 ...

  8. 用信号量解决进程的同步与互斥

    转自:http://www.cnblogs.com/whatbeg/p/4435286.html 现代操作系统采用多道程序设计机制,多个进程可以并发执行,CPU在进程之间来回切换,共享某些资源,提高了 ...

  9. 进程的同步和互斥反映了_用信号量解决进程的同步与互斥探讨【持续更新】

    现代操作系统采用多道程序设计机制,多个进程可以并发执行,CPU在进程之间来回切换,共享某些资源,提高了资源的利用率,但这也使得处理并发执行的多个进程之间的冲突和相互制约关系成为了一道难题.如果对并发进 ...

最新文章

  1. hdu-4302-Holedox Eating-线段树-单点更新,有策略的单点查询
  2. 解读Raft(二 选举和日志复制)
  3. java不需要导的包
  4. [导入]给家人补补钙!双莲炖腔骨
  5. CSS浏览器兼容汇总
  6. 【Python之os模块】使用
  7. php curl处理get和post请求
  8. 计算机应用技术研究生开题报告,计算机应用技术专业论文开题报告.doc
  9. mysql新浪微盘_Android62期视频教程全集下载
  10. Raki的读paper小记:DEBERTA: DECODING-ENHANCED BERT WITH DISENTANGLED ATTENTION
  11. 《概率论与数理统计》
  12. StretchDIBits函数隐含的图像坐标系设置
  13. 应用程序现代化权威指南
  14. linux嵌入式做智能家居,嵌入式系统在智能家居中的应用
  15. yarn install报错及解决办法
  16. 从全球最大同性交友网站抄了一份不一样的2048小游戏
  17. Flink大数据实时计算系列-案例初体验:HotPages
  18. 无聊猿将与 Coinbase 共同制作电影三部曲进军好莱坞
  19. 【创业分享】2022年,仅赚几万,但却很踏实?
  20. 图纸文档管理系统让设计变得更简单、规范

热门文章

  1. scroll系列和offset系列
  2. 云图说丨初识可信分布式身份服务
  3. MATLAB顺序结构及选择结构程序设计
  4. 大模型开发(四):OpenAI API调用方法
  5. Matplotlib pyplot嵌入PYQT5的实战与反思
  6. 如何比较两个文件是否完全一样,Windows、MacOS、Linux(使用自带命令比较)certutil,摘要,digest
  7. Removing Columns
  8. c语言中的错误提示,C语言20条编程中遇到的错误提示.doc
  9. 前端传过来集合,后端如何接
  10. Angular学习教程-英雄之旅