0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

操作系统中进程同步介绍

麦辣鸡腿堡 来源:盼盼编程 作者:晨梦思雨 2023-10-08 15:42 次阅读

进程同步

图片

动画展示,临界区的资源,在某个时刻,只能有一个进程在使用。

临界资源

一旦有对资源的共享,就必然涉及竞争限制。

临界资源用来表示一种,公共资源或者说是共享数据,可以被多个线程使用。

但是每一次,只能有一个线程使用它。一旦临界资源被占用,其他线程,要想使用这个资源,就必须等待。

进程同步的主要任务是,对多个相关进程,在执行次序上进行协调,以使并发执行的诸进程之间,能有效地共享资源和相互合作,从而使程序的执行,具有可再现性。

临界区

有了临界资源的概念,就很容易理解临界区的概念。在程序中,所有的操作,都是通过代码执行的,访问临界资源的那段代码就是临界区

处理竞争或者合作依赖导致的制约

空闲让进:对于临界资源,如果空闲没有被使用,谁来了之后都可以使用

忙则等待:如果临界资源正在被使用,那么其他后来者就需要进行等待。

有限等待:要求访问临界资源的进程,应保证有限时间内,能进入自己的临界区,自己不能傻傻的等

让权等待:如果无法进入自己的临界区时,应立即释放处理机,而不能占着CPU死等,你死等就算了,别人却也不能用了。

锁就是对资源施加控制,锁指的是一种控制权。

当进入临界区时,我们称之为获得锁,获得锁之后就可以访问临界资源。

其他线程想要进入临界区,也需要先获得锁。

当前线程结束后,将会释放锁,别的线程就可以获取这个资源的锁。

死锁

锁表示一种控制权,对临界资源的访问权限。

下面动画展示,两个小人,都要使用资源1和资源2,才能达到对面。左边小人战友资源1,右边小人占有资源2。他们占有当前资源,再去获取对方的资源时,就会产生死锁的情况。

图片

如果临界资源不止一个,就可能出现:需要先后访问两种临界资源A和B,thread1获得了A线程的锁之后,等待获得B的锁,但是thread2获得了资源B的锁,在等待A资源的锁,这就出现了互相等待的情况。

解决方案

AND型信号量机制就是用于解决这种多共享资源下的同步问题的。

将进程在整个运行过程中,需要的所有资源,一次性全部地分配给进程,待进程使用完后再一起释放。

只要尚有一个资源未能分配给进程,其它所有可能为之分配的资源,也不分配给它。

也就是对,若干个临界资源的分配,采取原子操作方式:要么把它所请求的资源全部分配到进程,要么一个也不分配。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    6799

    浏览量

    123279
  • 线程
    +关注

    关注

    0

    文章

    504

    浏览量

    19674
  • 进程
    +关注

    关注

    0

    文章

    203

    浏览量

    13960
收藏 人收藏

    评论

    相关推荐

    #操作系统原理 进程同步背景

    操作系统
    电子技术那些事儿
    发布于 :2022年10月17日 22:40:20

    Windows和Linux同步机制4.6.2Linux父子进程同步(1)#操作系统

    操作系统
    学习硬声知识
    发布于 :2023年05月25日 18:16:56

    Windows和Linux同步机制4.6.2Linux父子进程同步(2)#操作系统

    操作系统
    学习硬声知识
    发布于 :2023年05月25日 18:17:48

    进程同步(1)(1)#操作系统

    操作系统
    学习硬声知识
    发布于 :2023年06月01日 12:07:52

    进程同步(1)(2)#操作系统

    操作系统
    学习硬声知识
    发布于 :2023年06月01日 12:08:32

    进程同步(2)(1)#操作系统

    操作系统
    学习硬声知识
    发布于 :2023年06月01日 12:09:11

    进程同步(2)(2)#操作系统

    操作系统
    学习硬声知识
    发布于 :2023年06月01日 12:09:37

    进程同步(2)(3)#操作系统

    操作系统
    学习硬声知识
    发布于 :2023年06月01日 12:10:14

    操作系统中进程调度策略有哪几种

    操作系统中进程调度策略有哪几种? 求大神指点啊
    发表于 11-07 21:18

    进程同步与互斥介绍

    进程同步是指进程间一种直接的协同工作关系,是一些进程相互合作,共同完成一项任务。进程间的直接相互作用构成进程
    发表于 08-06 06:12

    操作系统进程同步

    互相协作的进程之间有共享的数据,于是这里就有一个并发情况下,如何确保有序操作这些数据、维护一致性的问题,即进程同步
    发表于 08-07 06:35

    操作系统 : 进程与线程

    本文为《现代操作系统》的读书笔记目录程序顺序执行与并发执行进程的定义进程的状态转换进程控制块进程控制程序顺序执行与并发执行
    发表于 07-01 10:49

    操作系统讲解(操作系统课件)

    操作系统讲解(操作系统课件) 第五章 文件管理.doc第六章 设备管理(部分).doc第二章 进程管理.doc第3章 并发控制——互斥与同步.doc
    发表于 05-16 18:06 0次下载

    嵌入式Linux中的进程同步无竞争态读写

    的问题。关键词 嵌入式 Linux进程同步 无竞争态读写引 言 在对实时采集更新的数据进行处理时,往往会遇到数据更新速度与数据处理的速度...  摘要 Linux作为一个开源、稳健的操作系统,支持多种
    发表于 04-02 14:43 240次阅读

    Python中进程操作

    进程是计算机中的程序关于某数据集合的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
    的头像 发表于 08-19 09:45 1216次阅读
    Python<b class='flag-5'>中进程</b>的<b class='flag-5'>操作</b>