列举几种进程的同步机制及优缺点

进程间通信3. 同步方式及各自特点     为了能够有效的控制多个进程之间的沟通过程,保证沟通过程的有序和和谐,OS必须提供一定的同步机制保证进程之间不会自说自话而是有效的协同工作。比如在共享内存的通信方式中,两个或者多个进程都要对共享的内存进行数据写入,那么怎么才能保证一个进程在写入的过程中不被其它的进程打断,保证数据的完整性呢?又怎么保证读取进程在读取数据的过程中数据不会变动,保证读取出的数据是完整有效的呢?    常用的同步方 阅读详情

1)信号量机制:
一个信号量只能置一次初值,以后只能对之进行p操作或v操作。
由此也可以看到,信号量机制必须有公共内存,不能用于分布式操作系统,这是它最大的弱点。
2)自旋锁:
旋锁是为了保护共享资源提出的一种锁机制。
调用者申请的资源如果被占用,即自旋锁被已经被别的执行单元保持,则调用者一直循环在那里看是否该自旋锁的保持着已经释放了锁
自旋锁是一种比较低级的保护数据结构和代码片段的原始方式,可能会引起以下两个问题;
(1)死锁
(2)过多地占用CPU资源
3)管程:
信号量机制功能强大,但使用时对信号量的操作分散,而且难以控制,读写和维护都很困难。因此后来又提出了一种集中式同步进程——管程。其基本思想是将共享变量和对它们的操作集中在一个模块中,操作系统或并发程序就由这样的模块构成。这样模块之间联系清晰,便于维护和修改,易于保证正确性。
4)会合:
进程直接进行相互作用
5)分布式系统:
由于在分布式操作系统中没有公共内存,因此参数全为值参,
而且不可为指针。

优缺点:
信号量(Semaphore)及PV操作
优:PV操作能够实现对临界区的管理要求;实现简单;允许使用它的代码休眠,持有锁的时间可相对较长。
缺:信号量机制必须有公共内存,不能用于分布式操作系统,这是它最大的弱点。信号量机制功能强大,但使用时对信号量的操作分散,而且难以控制,读写和维护都很困难。加重了程序员的编码负担;核心操作P-V分散在各用户程序的代码中,不易控制和管理;一旦错误,后果严重,且不易发现和纠正。
自旋锁:
优:旋锁是为了保护共享资源提出的一种锁机制; 调用者申请的资源如果被占用,即自旋锁已经被别的执行单元保持,则调用者一直循环在那里看是否该自旋锁的保持者已经释放了锁; 低开销;安全和高效;
缺:自旋锁是一种比较低级的保护数据结构和代码片段的原始方式,可能会引起以下两个问题;
(1)死锁
(2)过多地占用CPU资源
传统自旋锁由于无序竞争会导致“公平性”问题
管程:
优: 集中式同步进程——管程。其基本思想是将共享变量和对它们的操作集中在一个模块中,操作系统或并发程序就由这样的模块构成。这样模块之间联系清晰,便于维护和修改,易于保证正确性。
缺:如果一个分布式系统具有多个CPU,并且每个CPU拥有自己的私有内存,它们通过一个局域网相连,那么这些原语将失效。而管程在少数几种编程语言之外又无法使用,并且,这些原语均未提供机器间的信息交换方法。
会合:
进程直接进行相互作用
分布式系统:
消息和rpc
由于在分布式操作系统中没有公共内存,因此参数全为值参,
而且不可为指针

操作体统基础笔试题 1.列举几种进程的同步机制,并比较其优缺点。 答:原子操作,信号量机制,自旋锁,管程,会合,分布式系统 2.进程之间通信的途径 答:共享存储系统,消息传递系统,管道:以文件系统为基础 3.进程死锁的原因 答:资源竞争及进程推进顺序非法 4.死锁的4个必要条件 答:互斥、请求保持、不可剥夺、环路 5.死锁的处理 答:鸵鸟策略、预防策略、避免策略、检测与解除死锁 6.操作系统中进程 阅读详情

相关推荐

快速了解Spyder

一 面板介绍菜单栏:放置所有功能工具栏:放置快捷菜单,可以通过菜单栏中的View的Toolbars的复选框来勾选工作区:写代码的地方属性页的标题栏:可以显示当前代码的名字和位置查看栏:查看文件、调试时的对象及变量输出栏:查看程序的输出信息,也可以作为shell终端来输入Python语句状态栏:用来显示当前文件权限、编码,光标指向位置和系统内存二 注释功能注释功能为编写代码很常用功能,下面介绍Spy...

实践求真知 1万+

二十、管程

一、知识总览 二、为什么要引入管程 1.由于信号量机制存在编写程序困难、易出错的问题,于是就想到能不能设计一种机制,让程序员写程序的时候不需要再关注复杂的PV操作,而达到写代码更轻松的目的呢?于是就引入了管程。 2.管程是一种高级的同步机制,比PV操作更容易操作。 三、管程的定义和基本特征 1.管程是一种特殊的软件模块,有这些部分组成: 1)局部于管程的共享数据结构说明; 2)对该数据结构进行操作的一组过程(其实就是“函数”); 3)管程有一个名字。 2.管程的基本特征: 1)局部于管程的数据只能被局部于

zhaozhiwei314的博客 747

Windows 11 安装 JDK 11:下载、安装、配置环境变量、验证

本文详细介绍了在 Windows 11 系统中安装 JDK 11 的完整流程,包括从 Oracle 官网下载压缩包、解压到自定义目录、配置 JAVA_HOME 与 Path 环境变量,并验证安装是否成功。文章还包含一个专为 JDK 11 新特性设计的测试程序,涵盖 Lambda 表达式 var 语法、HTTP 客户端 API、字符串增强方法等,帮助读者确认安装版本正确无误,适合初学者和需要多版本 JDK 共存的开发者参考。

寒水馨 · 轻量级技术文档 · hanshuixin.org 2776

系统架构师进阶 进程,PV操作,管程与线程,死锁

进程 什么叫进程 1:进程就是运行起来的程序,程序运行起来需要被加载到内存中(用户角度)。 2:在操作系统中,进程是进行系统资源分配,调度和管理的最小单位(线程是处理器分配资源的最小单位) 进程的组成 1:从静态观点看,进程由程序,数据,进程控制块组成(Process Control Block,PCB) 2:从动态上看,进程是计算机状态的一个有序集合。 三态 1:运行态:占有处理器正在运...

jielun1995的博客 782

RDkit入门

今天开始写RDkit的入门教程,每天学习和写一小点,相信一句话“不积跬步无以至千里,不积小流无以成江海”,所以就慢慢来,一点一滴积累叭,从最简单的开始喽希望自己每天都能保持写博客的好习惯,把自己的代码笔记就极在这里,RDkit一块啃了很久的骨头,今天终于要下定决心,好好总结一波了,希望保持这个更新的频率,每天都能有所学。............

博客而已 6682

【NLP】第十章:位置编码Positional Encoding

前面讲RNN时一般都会有一个ht的输出,这个输出就是样本与样本之间的信息,而且RNN是时序循环的,所以RNN本身的结构,在物理上,就自带词的前后顺序信息的。比如词never,不管never本身的词向量是什么,只要你在序列中排第一个位置,你的位置向量就是[0,1,01],你排第三个位置,你的位置向量就是[0.9,-0,4,0.2,1.0]。也所以,你可以理解为:embedding后的词嵌入,PE按照每个样本在sequence中的位置,把embedding后的词嵌入给扭转后,才送入attention的。

因为热爱所以坚持 1917

信号量与管程

一、概述  信号量是操作系统提供的一种协调共享资源访问的方法。和用软件实现的同步比较,软件同步是平等线程间的的一种同步协商机制,不能保证原子性。而信号量则由操作系统进行管理,地位高于进程,操作系统保证信号量的原子性。 信号量是跟锁机制在同一个层次上的编程方法。 管程是为了解决信号量在临界区的PV操作上的配对的麻烦,把配对的PV操作集中在一起,生成的一种并发编程方法。其中使用了条件...

weixin_30378311的博客 324

如何免费快速的部署一个自用免VIP的自动追剧工具!NAS新玩法!豆瓣与迅雷结合,轻松实现自动下载电影自动追剧功能(支持Windows,群晖nas,飞牛nas,软路由,服务器等Docker快速部署)

追剧党狂喜!豆瓣追剧神器,自动添加云盘,自动下载,微信通知,一键搞定!

XiaoqiangClub的博客 4580

信号量

信号量 简介 信号量(semaphore)由(1972年的图灵奖获得者,实现了ALGOL60的编译器、提出了图论中最短路径的Dijkstra算法的)荷兰计算机科学家E. W. Dijkstra提出(1965),是解决并发进程问题的第一个重要进展,需要OS支持。 信号量可以用于进程之间的互斥与同步,还可以用于进程间通信(IPC),这里主要讲进程之间的互斥与同步。 信号量实际上是一个数字,这个数字表示...

qq_36267931的博客 1405

vue2 - 详细实现播放AMR格式音频并实现自定义播放器样式,支持amr音频文件在线地址URL播放、调用服务端API接口获取二进制文件流amr形式、用户本地上传amr文件并实现立即播放(详细代码)

vue2,amr,amr文件播放,vue播放amr音频文件以及在线url跨域问题解决,vue使用audio标签播放amr音频,amr跨域解决,amr网页解码播放,文件上传后怎么播放,vue2播放.amr语音文件,api接口形式调用获取的amr如何播放,vue中如何使用audio元素播放AMR格式的文件,进度条,vue前端如何播放AMR格式的音频文件,vue播放语音文件AMR格式,播放amr格式音频AMR录音机,h5原生audio播放amr格式的音频,VUE2使用benz-amr-recorder 实现解码、

✅ 精选推荐文章 7413

SAP_ABAP_SD_BAPI清单案例教程——销售订单开票_BAPI_BILLINGDOC_CREATEMULTIPLE_VF01_S4版本

SAP BAPI(Business Application Programming Interface)是SAP系统中的一组规范和标准,用于从SAP系统中获取数据、输入数据和更新数据。这些API允许开发者以编程方式与SAP系统交互,而无需编写大量的自定义代码。2.1 Copy代码 直接可使用。2.2 VF01开票。

java_zhong1990的专栏 2213

IO进程相关面试问题

这里分享一下IO进程相关的面试问答知识

dshycorz的博客 252

Eplan设计师必会—伺服安全回路的设计方法

本文介绍了在EPLAN中设计伺服STO安全回路的方法。首先需查阅伺服驱动器说明书确定STO接线端子,重点关注双通道配置。设计步骤包括:使用黑盒子功能绘制驱动器外形,正确标注STO接线点,并连接安全继电器或PLC的安全输出。关键注意事项有:必须采用双通道独立布线,确保同步动作,遵循故障安全原则,使用常闭触点串联回路。文中以西门子V90和汇川伺服为例说明具体接线要求,并附有项目实例参考。

Qinmingyue13的博客 436

列举几种进程的同步机制

原子操作、信号量机制、自旋锁、管程、会合、分布式系统。

Jake2549794390的博客 1310

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

进程同步机制及优缺点

1.信号量机制: 一个信号量只能置一次初值,以后只能对之进行p操作或v操作。 由此也可以看到,信号量机制必须有公共内存,不能用于分布式操作系统,这是它最大的弱点。 2.自旋锁: 旋锁是为了保护共享资源提出的一种锁机制。 调用者申请的资源如果被占用,即自旋锁被已经被别的执行单元保持,则调用者一直循环在那里看是否该自旋锁的保持着已经释放了锁 自旋锁是一种比较低级的保护数据结构和代码片段的原

dongliang的博客 940

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

常用进程的同步机制

一、原子操作 所谓原子操作是指不会被线程调度机制打断的操作。 通常所说的原子操作包括对非long和double型的primitive进行赋值以及返回这两者之外的primitive。 原子操作不需要同步机制。 P.S:volatile修饰的long和double型的赋值和返回是原子操作 二、信号量机制

清闲居 1516

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

什么是多线程同步?请列举多种多线程同步机制并⽐较它们的优缺点

多线程同步是一种确保多个线程在访问共享资源或数据时,不会出现竞争条件或数据不一致的问题的机制。由于线程是并发执行的,当多个线程同时访问或修改同一共享资源时,可能会导致数据错误或不可预测的行为。因此,需要同步来协调线程的执行顺序和访问权限。在实际开发中,根据场景和性能需求选择合适的同步机制,同时注意避免死锁等问题的发生。

fapw15的博客 650

进程同步与进程互斥

进程同步: 进程同步:在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。 进程同步的概念:把异步环境下的一组并发进程因直接制约而互相发送消息、进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。具有同步关系的一组并发进程称为合作进程,合作进程间互相发送的信号称为消息或事件。 进程间制约关系: (1)资源共享关系: 1.互斥共享方式 2.同时共享方式 (2)相互合作关系 进程互斥: 1.进程..

kkyh28的博客 6446

进程 进程通信 死锁

.列举几种进程的同步机制,并比较其优缺点。答案: 原子操作 信号量机制 自旋锁 管程,会合,分布式系统 .进程之间通信的途径答案:共享存储系统消息传递系统管道:以文件系统为基础 .进程死锁的原因答案:资源竞争及进程推进顺序非法 .死锁的4个必要条件答案:互斥、请求保持、不可剥夺、

ysdaniel的专栏 1021

Linux内核同步机制之基本概念

一、概述

不捡风筝的玖伍贰柒 1972

进程同步与互斥C语言代码,实现进程同步的机制 进程同步与进程互斥之间的区别...

请列举几种进程的同步机制,并比较其优缺点?什么是进程同步?wait是如何实现进程同步的进程间通信的方法有哪些?那一种方法效率最高?进进程间通信机制 1 文件映射 文件映射(Memory-Mapped Files)能使进程把文件内容当作进程地址区间一块内存那样来对待。因此,进程不必使用文件I/O操作,只需简单的指针操作就可读取和修改文件的内容。 Win32 API允许多个进程访问同一文件映射对象在l...

weixin_33076057的博客 733

Linux进程间通信的几种方式

一、进程间通信的目的 数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间 共享数据:多个进程要操作共享数据,一个进程对共享数据 信息传递:一个进程需要向另一个进程发送消息,通知它发生了某种事件。 资源共享:多个进程之间共享同样的数据。为了做到这一点,需要内核提供锁和同步机制。 进程控制:有些进程希望完全控制另一个进程的执行,此时控制进程希...

cjhjy520的博客 967

android中的多进程模式

1.开启多进程 在xml文件中注册Activity时,指定process属性,俩种方式    1)android:process="包名+remote"   全局进程,其他进程可以通过ShareUID方式和他跑到同一个进程中    2) android:process=":remote"  表示为私有进程,不能喝其他应用组件跑到一个进程中 启动Activity时,系统会为这个A

smilepointwho的博客 506

进程的同步(上)

一.进程同步的目的 在引入进程之后,程序实现了并发执行,但是也带来了程序的运行结果有不可再现性的隐患,因此期望通过进程的同步来避免程序运行结果的不可再现性 二.进程同步的基本概念 没有实行进程同步之前: 1.两种形式的制约关系 (1)相交进程(相互之间有关系的进程,进程之间多为该关系) 1)相互合作的进程 *直接制约关系 *为完成某一任务而相互合作 *举例:生产者消费者问题,读者写者问题。 *...

一一的博客 295

进程同步的几种机制

进程同步的几种机制 多进程的系统中避免不了进程间的相互关系。本讲将介绍进程间的两种主要关系——同步与互斥,然后着重讲解解决进程同步的几种机制。        进程互斥是进程之间发生的一种间接性作用,一般是程序不希望的。通常的情况是两个或两个以上的进程需要同时访问某个共享变量。我们一般将发生能够问共享变量的程序段称为临界区。两个进程不能同时进入临界区,否则就会导致数据的不一致

lishenglong666的专栏 868

进程和线程问题解答

进程状态的切换有哪几种?

weixin_63556308的博客 1028
上一篇: iOS- 断点续传实现原理
下一篇: 进程和线程关系及区别
Setoge
博客等级 码龄10年 11粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值