国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

淺析網(wǎng)絡(luò)程序設(shè)計(jì)中的并發(fā)復(fù)雜性

2016-06-30 20:28夏德宏
電腦知識(shí)與技術(shù) 2016年14期
關(guān)鍵詞:線程程序設(shè)計(jì)協(xié)作

夏德宏

摘要:隨著近年來科學(xué)技術(shù)的不斷發(fā)展,互聯(lián)網(wǎng)技術(shù)成為現(xiàn)代社會(huì)不可缺少的基礎(chǔ)設(shè)施。隨著網(wǎng)絡(luò)人數(shù)的增加,并發(fā)問題也隨之出現(xiàn),使其成為網(wǎng)絡(luò)發(fā)展的一個(gè)重大阻礙,如果這一問題得不到解決,網(wǎng)絡(luò)開發(fā)將停滯不前。本文將介紹一些解決并發(fā)問題的模型。

關(guān)鍵詞:并發(fā);復(fù)雜性

中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)14-0223-02

近些年,由于信息技術(shù)的高速發(fā)展,網(wǎng)絡(luò)應(yīng)用已經(jīng)廣泛。由于網(wǎng)絡(luò)自身的特點(diǎn),決定了網(wǎng)絡(luò)環(huán)境的分布性,異構(gòu)性,異步性,并發(fā)性及訪問延誤等問題,匯結(jié)到一起,就很難解決。這樣對高質(zhì)量的網(wǎng)絡(luò)程序開發(fā)方面,使用傳統(tǒng)的程序設(shè)計(jì)方法使網(wǎng)絡(luò)開發(fā)便會(huì)碰到很多難題,尤其是并發(fā)程序的處理。并發(fā)性是造成網(wǎng)絡(luò)程序設(shè)計(jì)復(fù)雜性的最主要因素。因此,并發(fā)性問題是目前網(wǎng)絡(luò)程序設(shè)計(jì)中的瓶頸問題,這一問題能否的到有效的解決將成為動(dòng)態(tài)網(wǎng)站開發(fā)中的關(guān)鍵性問題。

1 網(wǎng)絡(luò)程序設(shè)計(jì)的并發(fā)復(fù)雜性

并發(fā),即一齊發(fā)生。即像在單核處理器上的單程序是一樣的。也就是說程序在運(yùn)行過程中處理器只能同時(shí)做一件事,不能同時(shí)做兩件或多件事情。并發(fā)的根源在于操作系統(tǒng),動(dòng)態(tài)網(wǎng)絡(luò)程序開發(fā)過程中所涉及的并發(fā)性問題與操作系統(tǒng)所涉及的并發(fā)性問題基本上是一致的,其解決方法大相徑庭。近些年來很多學(xué)者都在探討和研究,如何來解決程序的并發(fā)性問題,也下足了功夫、耗費(fèi)了相當(dāng)大的人力和物力以及時(shí)間,也沒有得到有效徹底的解決。在研究中也得出了一些能夠降低并發(fā)所造成的錯(cuò)誤性問題,但沒有從根本上解決這一問題。在研究過程中所得到的一些模型驅(qū)動(dòng)以及多線程模型,這兩種模型各有優(yōu)缺點(diǎn),在不同的開發(fā)環(huán)境下也對程序造成不同的作用,所以這兩種模型在不同的程序設(shè)計(jì)中的作用也是不同的,在優(yōu)越性上無法比較誰更優(yōu)秀。在模型的選擇上,要根據(jù)存在的實(shí)質(zhì)性問題選擇合適的模型來進(jìn)行相應(yīng)的程序設(shè)計(jì),但是在現(xiàn)在的開發(fā)過程中許多人都是將兩者混合使用以滿足現(xiàn)有的設(shè)計(jì)需求。

2 程序設(shè)計(jì)的驅(qū)動(dòng)并發(fā)模型

現(xiàn)在社會(huì)上所使用的計(jì)算機(jī)結(jié)構(gòu)上仍然是馮諾依曼計(jì)算機(jī)結(jié)構(gòu)模型而設(shè)計(jì)的,馮諾依曼計(jì)算機(jī)結(jié)構(gòu)模型有很多種,常見的只有兩種。一種是基于事件的驅(qū)動(dòng)并發(fā)模型,另一種是基于數(shù)據(jù)流驅(qū)動(dòng)的計(jì)算機(jī)模型。二者的原理相似?;谑录尿?qū)動(dòng)并發(fā)模型是現(xiàn)在網(wǎng)絡(luò)程序設(shè)計(jì)中應(yīng)用最為廣泛。工作時(shí)按照操作分配為兩種不同的模式進(jìn)行工作,從而大大提高了計(jì)算機(jī)在面多多程序并發(fā)下的數(shù)據(jù)安全性和一致性。這兩種模式分別是反應(yīng)式和前攝式。反應(yīng)式模型也叫做非阻塞模型,前攝式模型也稱為異步模型。這兩種事件模型也十分相似,也可以相互轉(zhuǎn)化,具體使用過程中存在相同的問題,在方法的復(fù)雜性上也類似。前者的工作原理是在數(shù)據(jù)滿足條件后運(yùn)行操作,后者的原理是在操作等待時(shí)完成。

基于事件的驅(qū)動(dòng)并發(fā)模型中,有一很重要的組成是事件分配器,該模式就是通過事件分配器來處理事件,并對其維護(hù)狀態(tài)以及函數(shù)運(yùn)行時(shí)間進(jìn)行處理。同時(shí)函數(shù)之間的通信問題是依靠事件完成的。事件的維護(hù)則由分配器管理完成。這一過程中待函數(shù)完成特定操作后一定要交出其控制權(quán)給事件分配器,由事件分配器來進(jìn)行接下來的處理和維護(hù)工作,以達(dá)到合理的分配工作。當(dāng)然,在此過程中時(shí)間內(nèi),未完成的操作可以繼續(xù)進(jìn)行,這一操作并不存在數(shù)據(jù)丟失,可讓計(jì)算機(jī)更加完美的操作數(shù)據(jù),這就形成了控制權(quán)的反轉(zhuǎn)機(jī)制。所以說,基于事件的驅(qū)動(dòng)并發(fā)模型在進(jìn)行任務(wù)處理時(shí),事件分配器非常重要,在工作過程中必須對函數(shù)進(jìn)行拆分,以達(dá)到操作系統(tǒng)的最優(yōu)化。事件在處理器的拆分過程中會(huì)導(dǎo)致大量的函數(shù)分裂問題,這些函數(shù)分裂會(huì)造成網(wǎng)絡(luò)程序出現(xiàn)故障。增加了函數(shù)調(diào)度難度,還會(huì)造成內(nèi)存泄露或程序中斷。事件的驅(qū)動(dòng)并發(fā)模型在調(diào)用時(shí)基于時(shí)間驅(qū)動(dòng)的函數(shù)來完成的。所以事件驅(qū)動(dòng)函數(shù)在工作時(shí)就要進(jìn)行大量的函數(shù)分裂,來完成函數(shù)并發(fā)模型的調(diào)用工作,在此過程中會(huì)出現(xiàn)許多問題,有的使得函數(shù)的內(nèi)部細(xì)節(jié)部分暴露出來,從而降低函數(shù)事件的安全性,從而函數(shù)的穩(wěn)定性也隨之降低,因此函數(shù)事件的驅(qū)動(dòng)并發(fā)模型模板的復(fù)用性也就有所降低。

3 多線程程序的并發(fā)模型

多線程并發(fā)模型在線程處理方面更加靈活。對線程的調(diào)用可以分為兩種一種是搶占式,一種是協(xié)作式。有些計(jì)算機(jī)系統(tǒng)內(nèi)核對線程進(jìn)行調(diào)度的管理模式屬于搶占式,有些計(jì)算機(jī)內(nèi)核進(jìn)行調(diào)度時(shí)則是協(xié)作式。搶占式多線程操作不會(huì)受到應(yīng)用程序控制,而協(xié)作式多線程操作主要是用應(yīng)用層協(xié)作方式進(jìn)行運(yùn)行多任務(wù)線程。由于這兩種線程的調(diào)度方法不同 ,致使二者表現(xiàn)出來的特征以及衍生的問題也存在明顯的差異,因此在工作中導(dǎo)致計(jì)算機(jī)操作系統(tǒng)的運(yùn)行效果也大不相同。所以在計(jì)算機(jī)選在并發(fā)模型是要根據(jù)具體的情況來進(jìn)行擇優(yōu)選擇,以達(dá)到具體的要求效果。在搶占式調(diào)度中,CPU的控制權(quán)受到調(diào)度器的控制,調(diào)度器對前面程序的執(zhí)行具有十分明顯的了解。這時(shí)調(diào)度器對程序進(jìn)行調(diào)度屬于強(qiáng)制調(diào)度。即調(diào)度器在進(jìn)行工作時(shí)可能暫停線程的工作,進(jìn)行上一線程,使得CPU的控制權(quán)強(qiáng)制交由另一線程進(jìn)行控制,這樣上一個(gè)線程可能會(huì)對當(dāng)前線程造成數(shù)據(jù)接觸處理。在控制不當(dāng)?shù)那闆r下,有可能導(dǎo)致數(shù)據(jù)競爭情況出現(xiàn),嚴(yán)重會(huì)造成死鎖,使程序崩潰,因此搶占式調(diào)度在許多線程同時(shí)調(diào)度時(shí),不能達(dá)到預(yù)期效果。協(xié)作式調(diào)度對CPU的控制權(quán)比搶占式調(diào)度靈活且優(yōu)越。協(xié)作式調(diào)度對CPU的控制權(quán)只有當(dāng)前線程放棄數(shù)據(jù)處理時(shí)才會(huì)轉(zhuǎn)交到其他線程,這樣便大大降低了因資源占用而導(dǎo)致的系統(tǒng)死鎖現(xiàn)象??梢妳f(xié)作式調(diào)度充分利用了處理器的并行處理機(jī)制。但在調(diào)度的實(shí)用性上,搶占式調(diào)度比協(xié)作式調(diào)度優(yōu)越,比如在處理級別較高的任務(wù)時(shí),搶占式明顯比協(xié)作式占有一定優(yōu)勢。因此操作系統(tǒng)在進(jìn)行選擇時(shí)應(yīng)該根據(jù)具體情況進(jìn)行擇優(yōu)選擇。

4 混合型并發(fā)模型

現(xiàn)今主流的并發(fā)處理模型有兩種,程序設(shè)計(jì)的驅(qū)動(dòng)并發(fā)模型和多線程的并發(fā)模型,但是這兩種方法都存在優(yōu)缺點(diǎn)。所以面對現(xiàn)實(shí)中存在的問題,這兩種模型在并發(fā)復(fù)雜性處理方面也不能夠達(dá)到預(yù)期的效果。因此經(jīng)過多年的探索發(fā)現(xiàn),相關(guān)人員綜合了這兩種并發(fā)模型的優(yōu)點(diǎn),建立了混合并發(fā)模型。這種思想不僅解決了當(dāng)前的瓶頸問題,還大大提升了并發(fā)性模型的使用效果和使用效率?;旌喜l(fā)模型的通用性相比較上述兩種模型的性能比較差,在具體的網(wǎng)絡(luò)程序中不能較好的寫作。因?yàn)樵谶M(jìn)行線程調(diào)度時(shí)CPU要進(jìn)行合理優(yōu)化,選擇相應(yīng)的模式,在此過程中需要消耗較多的時(shí)間,增加了整體運(yùn)行時(shí)間。但基于運(yùn)行時(shí)轉(zhuǎn)換的混合模型就不存在上述問題,目前這項(xiàng)技術(shù)在實(shí)際應(yīng)用中已得到證實(shí)。但是這種模型在具體的處理過程中比較復(fù)雜,而且存在處理機(jī)制的異常。但是這種模式能夠很好地將搶占式和協(xié)作式進(jìn)行合理調(diào)度,將兩種模式的優(yōu)點(diǎn)合二為一。從整體實(shí)際效果來看,這種模式已經(jīng)讓操作系統(tǒng)調(diào)度達(dá)到最優(yōu)效果。但性能還需要進(jìn)行檢驗(yàn),需要在實(shí)踐中進(jìn)行優(yōu)化,以滿足當(dāng)前科技發(fā)展。

5 結(jié)語

網(wǎng)絡(luò)程序中并發(fā)復(fù)雜性的分析與技術(shù)的解決,為網(wǎng)絡(luò)的發(fā)展提供了事實(shí)依據(jù),直接影響到網(wǎng)絡(luò)科技的發(fā)展。網(wǎng)絡(luò)程序設(shè)計(jì)將成為應(yīng)用設(shè)計(jì)和開發(fā)的主要任務(wù)。因此網(wǎng)絡(luò)程序設(shè)計(jì)技術(shù)在今后的一段時(shí)間內(nèi)將成為重要研究內(nèi)容。其中并發(fā)性問題是其核心問題所在。期待夠好的解決方法來應(yīng)對大數(shù)據(jù)下網(wǎng)絡(luò)程序設(shè)計(jì)中的并發(fā)復(fù)雜性問題。

參考文獻(xiàn):

[1] 李慧霸.網(wǎng)絡(luò)程序設(shè)計(jì)中的并發(fā)復(fù)雜性[J].軟件學(xué)報(bào),2011(1):22

[2] 李德毅.網(wǎng)絡(luò)時(shí)代的軟件工程.中國計(jì)算機(jī)學(xué)會(huì)通訊,2009,1:712.

猜你喜歡
線程程序設(shè)計(jì)協(xié)作
基于Visual Studio Code的C語言程序設(shè)計(jì)實(shí)踐教學(xué)探索
團(tuán)結(jié)協(xié)作成功易
從細(xì)節(jié)入手,談PLC程序設(shè)計(jì)技巧
協(xié)作
淺談linux多線程協(xié)作
高職高專院校C語言程序設(shè)計(jì)教學(xué)改革探索
協(xié)作
可與您并肩協(xié)作的UR3
PLC梯形圖程序設(shè)計(jì)技巧及應(yīng)用
基于上下文定界的Fork/Join并行性的并發(fā)程序可達(dá)性分析*
宁乡县| 商洛市| 蒙城县| 通榆县| 喜德县| 晋宁县| 济源市| 营口市| 和平县| 莲花县| 噶尔县| 法库县| 昭苏县| 贞丰县| 交城县| 镇康县| 康保县| 潞城市| 富阳市| 杭州市| 大化| 宣威市| 安溪县| 汾阳市| 丰顺县| 金秀| 盐源县| 宝丰县| 天长市| 巩留县| 虎林市| 水富县| 定远县| 贵定县| 蚌埠市| 彭州市| 新源县| 富民县| 松溪县| 吉安市| 泰顺县|