【Linux】临界资源和临界区

目录

一、临界资源

二、如何实现对临界资源的互斥访问

1、互斥量

2、信号量

3、临界区

三、临界区

四、进程进入临界区的调度原则


一、临界资源

概念:临界资源是一次 仅允许一个 进程使用的共享资源,如全局变量等。

二、如何实现对临界资源的互斥访问

1、互斥量

互斥量是用来保护临界区的一种机制。当一个线程需要访问临界资源时,先在进入临界区之前尝试获得互斥量,如果获得了就进入临界区,否则就等待直到获得互斥量为止。对于其他线程来说,只有当互斥量被释放后,才能进入临界区。

2、信号量

信号量也可以用来保护临界资源。在进入临界区之前,线程需要先尝试请求信号量,如果获得了就进入临界区,否则就等待直到信号量可用。与互斥量不同的是,信号量可以支持多个线程同时访问临界区。

3、临界区

临界区是操作系统提供的一种保护临界资源的机制。对于每个临界区,只有一个线程可以进入执行。当一个线程进入临界区时,其他线程不允许进入,直到该线程执行完毕并退出临界区,其他线程才能进入。

三、临界区

概念:每个进程中访问临界资源的那段程序称之为临界区。

临界区不是内核对象,而是系统提供的一种数据结构,程序中可以声明一个该类型的变量,之后用它来实现对资源的互斥访问。当欲访问某一临界资源时,先将该临界区加锁(若临界区不空闲则等待),用完该资源后,将临界区释放。

因为一个进程可能有多个临界区,分别用来访问不同的临界资源,所以临界资源分为:内核程序临界资源,普通临界资源。

  • 内核程序临界资源:系统时钟。
  • 普通临界资源:普通I/O设备,如打印机(进程访问这些资源的时候,很慢,会自动阻塞,等待资源使用完成)。

四、进程进入临界区的调度原则

  1. 如果有若干进程请求进入空闲的临界区,一次仅允许一个进程进入。
  2. 任何时候,处于临界区内的进程不可多于一个,若已有进程进入自己的临界区,则其它想进入自己临界区的进程必须等待。
  3. 进行临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。
  4. 如果其它进程不能进入自己的临界区,则应让出 CPU,避免进程出现 "忙等" 现象。

本文要是有不足的地方,欢迎大家在下面评论,我会在第一时间更正。

老铁们,记着点赞加关注!!!

相关推荐
dbitc1 分钟前
WIN11把WSL2移动安装目录
linux·运维·ubuntu·wsl
KingRumn1 分钟前
Linux同步机制之信号量
linux·服务器·网络
嵌入式学习菌1 分钟前
SPIFFS文件系统
服务器·物联网
旺仔Sec2 分钟前
2026年度河北省职业院校技能竞赛“Web技术”(高职组)赛项竞赛任务
运维·服务器·前端
BullSmall22 分钟前
linux 根据端口查看进程
linux·运维·服务器
herinspace27 分钟前
管家婆软件年结存后快马商城操作注意事项
服务器·数据库·windows
_F_y33 分钟前
Linux:进程间通信
linux
weixin_4624462341 分钟前
Kali/ubuntu Linux 中彻底删除 Cursor 编辑器(含 dpkg 非空目录警告解决)
linux·ubuntu·cursor
Hard but lovely1 小时前
linux:----进程守护化(Daemon)&&会话的原理
linux·运维·服务器
芝麻馅汤圆儿1 小时前
sockperf 工具
linux·服务器·数据库