【Linux】临界资源和临界区

目录

一、临界资源

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

1、互斥量

2、信号量

3、临界区

三、临界区

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


一、临界资源

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

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

1、互斥量

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

2、信号量

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

3、临界区

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

三、临界区

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

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

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

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

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

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

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

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

相关推荐
微露清风1 天前
系统性学习Linux-第二讲-基础开发工具
linux·运维·学习
不会代码的小猴1 天前
Linux环境编程第六天笔记--system-V IPC
linux·笔记
阳光九叶草LXGZXJ1 天前
达梦数据库-学习-48-DmDrs控制台命令(同步之Manager、CPT模块)
linux·运维·数据库·sql·学习
诸神缄默不语1 天前
Linux命令行教程
linux
小二李1 天前
第11章 nestjs服务端开发:登录鉴权
运维·服务器
i建模1 天前
如何在Arch Linux中重设忘记的root密码
linux·运维·服务器
kida_yuan1 天前
【Linux】运维实战笔记 — 我常用的方法与命令
linux·运维·笔记
@syh.1 天前
【linux】进程控制
linux
何中应1 天前
vmware的linux虚拟机如何设置以命令行方式启动
linux·运维·服务器
野犬寒鸦1 天前
从零起步学习并发编程 || 第一章:初步认识进程与线程
java·服务器·后端·学习