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

进程同步与进程互斥

1.进程同步

知识点回顾:
进程具有异步性的特征。
异步性是指,各并发执行的进程以各自独立的、不可预知的速度向前推进。

如何解决这种异步问题,就是“进程同步”所讨论的内容。

  • 同步亦称直接制约关系,它是指为完成某种任务而建立的两个或多个进程,
  • 这些进程因为需要在某些位置上协调它们的工作次序而产生的制约关系。
  • 进程间的直接制约关系就是源于它们之间的相互合作。

2.进程互斥

进程的“并发”需要“共享”的支持。
各个并发执行的进程不可避免的需要共享一些系统资源
(比如内存,又比如打印机、摄像头这样的I/O设备)

1.互斥共享方式

系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访间该资源。

2.同时共享方式

系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问。

  • 我们把一个时间段内只允许一个进程使用的资源称为临界资源
  • 许多物理设备(比如摄像头、打印机)都属于临界资源。
  • 此外还有许多变量、数据、内存缓冲区等都属于临界资源。

对临界资源的访问,必须互斥地进行。互斥,亦称间接制约关系
进程互斥指当一个进程访问某临界资源时,另一个想要访问该临界资源的进程必须等待。
当前访问临界资源的进程访问结束,释放该资源之后,另一个进程才能去访问临界资源。

3.对临界资源的互斥访问,可以在逻辑上分为如下四个部分:

  1. 进入区:负责检查是否可进入临界区,若可进入,则应设置正在访问临界资源的标志(可理解为“上锁”),以阻止其他进程同时进入临界区
  2. 临界区:访问临界资源的那段代码
  3. 退出区:负责解除正在访问临界资源的标志(可理解为“解锁”)
  4. 剩余区:做其他处理

注意:

  • 临界区是进程中访问临界资源的代码段。
  • 进入区和退出区是负责实现互斥的代码段。
  • 临界区也可称为“临界段”。

4.为了实现对临界资源的互斥访问,同时保证系统整体性能,需要遵循以下原则:

  1. 空闲让进。临界区空闲时,可以允许一个请求进入临界区的进程立即进入临界区;
  2. 忙则等待。当已有进程进入临界区时,其他试图进入临界区的进程必须等待;
  3. 有限等待。对请求访问的进程,应保证能在有限时间内进入临界区(保证不会饥饿)﹔
  4. 让权等待。当进程不能进入临界区时,应立即释放处理机,防止进程忙等待。
http://www.lryc.cn/news/183805.html

相关文章:

  • 公司安防工程简要介绍及系统需求分析
  • JMETER自适应高分辨率的显示器
  • Linux工具(三)
  • 基于SSM+Vue的鲜花销售系统设计与实现
  • 矢量图形编辑软件illustrator 2023 mac特点介绍
  • 【计算机网络面试题(62道)】
  • JVM-满老师
  • 加锁常见的问题
  • 【LeetCode力扣】LCR170 使用归并排序的思想解决逆序对问题(详细图解)
  • python经典百题之一个素数能被几个9整除
  • Thymeleaf 内联语法使用教程
  • Django学习笔记-实现聊天系统
  • C++转换函数
  • Spring Boot中的@Controller使用教程
  • 【17】c++设计模式——>原型模式
  • 金三银四好像消失了,IT行业何时复苏!
  • PDF文件超出上传大小?三分钟学会PDF压缩
  • java入坑之国际化编程
  • Kafka客户端核心参数详解
  • 踩大坑ssh免密登录详细讲解
  • 操作系统八股
  • Hudi SQL DDL
  • gin 框架的 JSON Render
  • 《Dataset Condensation with Differentiable Siamese Augmentation》
  • 多普勒频率相关内容介绍
  • win10睡眠快捷方式
  • C++中的static和extern关键字
  • JAVA经典百题之找完数
  • CSS 滚动驱动动画 view-timeline-inset
  • ansible部署二进制k8s