進(jìn)程間通信(IPC)解決和問題和算法
谈谈我们的进程间通信,上次我们谈进程是什么?进程是社会的一个个人,每个都有自己的财产,都有自己的空间,那么人需要通信吗?人需要通信,否则社会不会向前流通,而进程作为一个个实体也会有自己的沟通,否则一个个憋在那能干什么?当然当个笑话听!这里面涉及到三个问题,第一是比较棘手的,怎么把信息从一个进程传给另外一个进程?这个我们这样想,人在社会上生存是不是要交流,你给老外讲中文他能听懂?所以信息必须以一种约定好的规格传递,当然,这只是我这样想。第二点,人在社会中生存,我们都会有竞争,我们都需要抢夺资源,这对于进程来讲也一样的,而且很多时候两者会产生冲突造成一些不可预估的结果,我们想人之间有冲突会打架需要调节,进程不一样的吗?最后一点是进程间的执行有时是需要秩序的,进程A获得数据而进程B打印数据,诸如此类。 所以我们归纳进程间通信(IPC)主要解决三个问题:在进程间传递数据进程间约定秩序协调对于共享数据的互斥访问 topic1: 竞争条件:当两个或多个进程同时访问某个共享区域时(通常会有读写两种情况),最后的运行结果取决于进程的运行时序,这样就产生了竞争条件,很经典的问题就是对文件的读写,一个在读,一个在写,读出来的东西很可能不是你想要的,所有IPC必需要协调好对于共享数据的互斥访问,也就是说,必需要有这样一种机制能够避免这种竞争的发生! 临界区的概念: 既然有竞争,那我们就必须要去协调!如何避免?比如张三和李四都想要某个东西,两个人打起来了,现在怎么办,他们自己肯定不想停下来,都想要这个东西,现在我们作为他们的上级,肯定要说,你们不要打了,让其中一个拿走这个东西,或者更好的建议是,我们在之前就应该分配好,在更高的层次上说,比如张三就应该先拿走这个东西,可是这样对于其他人(其他进程)是不公平的,所以谁先到先得,我们只需要保证,当他拿到这个东西的时候,其他人不能抢夺,拿不走,同样的思想,运用在进程上!这种思想的根本在于对于互斥的实现,一个人在做,另外的人只能看! 不知你懂否,看了这么久,其实我们就是在探讨一个问题,上面的问题3,如何达到互斥访问,但是这样的描述其实还不够精确,因为事实上,进程真正访问共享区域的只有一部分时间而已,为了把互斥做得更细致,我们要往下走!一个进程访问共享区域的那部分代码,我们不妨称之临界区,其实名字无所谓,但是这个考试或者面试经常考,而且很多人误以为是内存或者资源,不要闹了笑话!那我们以这样的视角看,大家都有开车的时候,这么多人,都某个点开出来那么肯定会堵车,那我们只要让大家错开时间段出来就好了啊! 当然这依然是一个很粗的模型,事实上,我们需要提出一个方案(也就是一个算法)解决互斥(如同解决交通堵塞问题一样),这个方案最好应该满足以下的条件: 基本条件,解决互斥 你的方案不应该对cpu速度和这类条件作任何假设,这个很容易理解,cpu的执行在多道程序模型下是具有不可再现性的! 因为临界区互斥,A进程在占用,B进程阻塞,但是C进程不能因为B进程的阻塞阻塞,也就是说不要引起无关人的损伤! A执行,B阻塞,你让我一直等!no!那我还咋混!笑话听。 上面最后两点涉及到后面会谈到的死锁,活锁,饥饿,反正大家记住,系统就是要让每个进程都能安安稳稳的执行! 说白了,比较好的结果就,A执行,B等一会,A走了,B跑,大家走,理想的效果! 下面就这个算法向大家介绍一些比较典型的算法! 这个为了讲清楚,我不想讲的很笼统,首先大家要知道从大的角度看,有两种方式,忙等待与非忙等待! 忙等待和非忙等待不是两种算法,而是两种思路,下面包括实际的解决方法,其实忙等待和非忙等待是很经典的两个模型,不仅在进程通信有这个概念,其实就是事件模型,当某个事件发生的时候,你如何知道?比如你在等某一个人,如果你很急,你可能会不断跑到门口去看,来了没有啊!这就是忙等待,非忙等待就是我在这睡觉,咦,有人敲门了,好,等到了!这个听懂了,很多其他开发你自然理解了! 我们说忙等待,如何实现互斥? 笼统的讲,忙等待实现互斥是通过不断的检测一个状态变量,当这个状态变量为某个值的时候就往下执行!你也可以按你的思路理解,这个状态变量,就像一把锁,你不断去看开了没有,也可以理解为一个信号灯,随你的想法了,但是思想都是一样的! 忙等待的几个算法: first:禁止中断,这种方法你需要知道一个前提,我们需要让进程1执行完后进程2,3,4.。。依次执行,如何实现?我们通过时间中断,每次时间中断后更新进程x的执行时间,到了时间了,对不起了您,收拾东西先回去吧!所以如果你关了中断,这就是开了外挂啊,哥想执行多久就执行多久,谁还能抢夺我的时间,我得资源?可是这样带来了一些问题,第一用户没有权利开关中断,限于内核编程,另外现在cpu多核,关一般关一个核的中断,最后,你掌控了全局的寿命,这不是很安全的做法,要是你小子不把时间给其他人咋办?所以,现在这种方式不是很有用。 second:严格交替法,设置一个变量不妨为x,这种方法在进程1和进程0间讨论,设x最开始为0,进程0不断对x检测看是否为0,进程1不断对x检测看是否为1,这里先叙述到这,下章再续。
推薦系統(tǒng)
雨林木風(fēng) winxp下載 純凈版 永久激活 winxp ghost系統(tǒng) sp3 系統(tǒng)下載
系統(tǒng)大小:0MB系統(tǒng)類型:WinXP雨林木風(fēng)在系統(tǒng)方面技術(shù)積累雄厚深耕多年,打造了國內(nèi)重裝系統(tǒng)行業(yè)知名品牌,雨林木風(fēng)WindowsXP其系統(tǒng)口碑得到許多人認(rèn)可,積累了廣大的用戶群體,是一款穩(wěn)定流暢的系統(tǒng),雨林木風(fēng) winxp下載 純凈版 永久激活 winxp ghost系統(tǒng) sp3 系統(tǒng)下載,有需要的朋友速度下載吧。
系統(tǒng)等級:進(jìn)入下載 >蘿卜家園win7純凈版 ghost系統(tǒng)下載 x64 聯(lián)想電腦專用
系統(tǒng)大?。?/em>0MB系統(tǒng)類型:Win7蘿卜家園win7純凈版是款非常純凈的win7系統(tǒng),此版本優(yōu)化更新了大量的驅(qū)動,幫助用戶們進(jìn)行舒適的使用,更加的適合家庭辦公的使用,方便用戶,有需要的用戶們快來下載安裝吧。
系統(tǒng)等級:進(jìn)入下載 >雨林木風(fēng)xp系統(tǒng) xp系統(tǒng)純凈版 winXP ghost xp sp3 純凈版系統(tǒng)下載
系統(tǒng)大?。?/em>1.01GB系統(tǒng)類型:WinXP雨林木風(fēng)xp系統(tǒng) xp系統(tǒng)純凈版 winXP ghost xp sp3 純凈版系統(tǒng)下載,雨林木風(fēng)WinXP系統(tǒng)技術(shù)積累雄厚深耕多年,采用了新的系統(tǒng)功能和硬件驅(qū)動,可以更好的發(fā)揮系統(tǒng)的性能,優(yōu)化了系統(tǒng)、驅(qū)動對硬件的加速,加固了系統(tǒng)安全策略,運(yùn)行環(huán)境安全可靠穩(wěn)定。
系統(tǒng)等級:進(jìn)入下載 >蘿卜家園win10企業(yè)版 免激活密鑰 激活工具 V2023 X64位系統(tǒng)下載
系統(tǒng)大小:0MB系統(tǒng)類型:Win10蘿卜家園在系統(tǒng)方面技術(shù)積累雄厚深耕多年,打造了國內(nèi)重裝系統(tǒng)行業(yè)的蘿卜家園品牌,(win10企業(yè)版,win10 ghost,win10鏡像),蘿卜家園win10企業(yè)版 免激活密鑰 激活工具 ghost鏡像 X64位系統(tǒng)下載,其系統(tǒng)口碑得到許多人認(rèn)可,積累了廣大的用戶群體,蘿卜家園win10純凈版是一款穩(wěn)定流暢的系統(tǒng),一直以來都以用戶為中心,是由蘿卜家園win10團(tuán)隊(duì)推出的蘿卜家園
系統(tǒng)等級:進(jìn)入下載 >蘿卜家園windows10游戲版 win10游戲?qū)I(yè)版 V2023 X64位系統(tǒng)下載
系統(tǒng)大?。?/em>0MB系統(tǒng)類型:Win10蘿卜家園windows10游戲版 win10游戲?qū)I(yè)版 ghost X64位 系統(tǒng)下載,蘿卜家園在系統(tǒng)方面技術(shù)積累雄厚深耕多年,打造了國內(nèi)重裝系統(tǒng)行業(yè)的蘿卜家園品牌,其系統(tǒng)口碑得到許多人認(rèn)可,積累了廣大的用戶群體,蘿卜家園win10純凈版是一款穩(wěn)定流暢的系統(tǒng),一直以來都以用戶為中心,是由蘿卜家園win10團(tuán)隊(duì)推出的蘿卜家園win10國內(nèi)鏡像版,基于國內(nèi)用戶的習(xí)慣,做
系統(tǒng)等級:進(jìn)入下載 >windows11下載 蘿卜家園win11專業(yè)版 X64位 V2023官網(wǎng)下載
系統(tǒng)大?。?/em>0MB系統(tǒng)類型:Win11蘿卜家園在系統(tǒng)方面技術(shù)積累雄厚深耕多年,windows11下載 蘿卜家園win11專業(yè)版 X64位 官網(wǎng)正式版可以更好的發(fā)揮系統(tǒng)的性能,優(yōu)化了系統(tǒng)、驅(qū)動對硬件的加速,使得軟件在WINDOWS11系統(tǒng)中運(yùn)行得更加流暢,加固了系統(tǒng)安全策略,WINDOWS11系統(tǒng)在家用辦公上跑分表現(xiàn)都是非常優(yōu)秀,完美的兼容各種硬件和軟件,運(yùn)行環(huán)境安全可靠穩(wěn)定。
系統(tǒng)等級:進(jìn)入下載 >
相關(guān)文章
- 如何解決銳龍2200g死機(jī)藍(lán)屏
- Win8.1本地搜索為什么無法使用
- Win8.1無線網(wǎng)絡(luò)不穩(wěn)定/掉線怎么辦
- 電腦機(jī)箱漏電怎么消除?電腦機(jī)箱漏電是哪里的問題?
- 電腦開不了機(jī)怎么辦?電腦無法開機(jī)怎么解決?
- 硬盤雙擊無法打開的問題該怎么辦
- 風(fēng)行下載速度慢甚至是為0怎么辦?風(fēng)行播放器下載問題及解決方法匯總
- 蘋果回應(yīng)新的iOS惡意軟件YiSpector:已在iOS8.4中解決該問題
- 沒有路由器怎么連無線 160wifi 解決沒有路由器連接無線問題
- 維棠FLV下載視頻失敗問題匯總及解決方法
- Word2016 出現(xiàn)“此功能看似已中斷 并需要修復(fù)”問題解決方案(圖文)
- Cisco管理的35個常見問題及解答
- NanoStudio怎么用?NanoStudio使用方法及常見問題
- IE瀏覽器登錄網(wǎng)上銀行時出現(xiàn)崩潰問題的解決辦法
熱門系統(tǒng)
推薦軟件
推薦應(yīng)用
推薦游戲
熱門文章
常用系統(tǒng)
- 1win11最新娛樂版下載 技術(shù)員聯(lián)盟x64位 ghost系統(tǒng) ISO鏡像 v2023
- 2電腦公司windows7純凈版 ghost x64位 v2022.05 官網(wǎng)鏡像下載
- 3外星人系統(tǒng)Win11穩(wěn)定版系統(tǒng)下載 windows11 64位穩(wěn)定版Ghost V2022
- 4win11一鍵裝機(jī)小白版下載 外星人系統(tǒng) x64位純凈版下載 筆記本專用
- 5蘿卜家園Ghost win10 64位中文版專業(yè)版系統(tǒng)下載 windows10純凈專業(yè)版下載
- 6【國慶特別版】番茄花園Windows11高性能專業(yè)版ghost系統(tǒng) ISO鏡像下載
- 7青蘋果系統(tǒng) GHOST WIN7 SP1 X64 專業(yè)優(yōu)化版 V2024
- 8深度技術(shù)ghost win7純凈版最新下載 大神裝機(jī)版 ISO鏡像下載
- 9雨林木風(fēng)windows11中文版免激活 ghost鏡像 V2022.04下載