在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>嵌入式開發>Linux中的進程同步無競爭態讀寫解析

Linux中的進程同步無競爭態讀寫解析

2017-11-06 | rar | 0.5 MB | 次下載 | 1積分

資料介紹

引 言
  在對實時采集更新的數據進行處理時,往往會遇到數據更新速度與數據處理的速度不匹配的問題。這種情況下,會出現數據丟失而導致數據處理結果不準確,甚至會帶來不可預測的后果,因此需要一種機制來協調數據更新與數據處理,從而保證數據的完整性和處理結果的準確性。作為一個多任務、多用戶操作系統,Linux支持多個進程在系統中并發運行,由于進程本身的動態特性,用來描述實時數據處理非常合適,因此,解決好Linux進程間的同步與通信問題就能解決實時數據處理的問題。
  在Linux環境下,進程通常存在運行(running)、阻塞(blocked)、就緒(ready)、終止(terminated)四種狀態。當多個進程并發執行時,往往會出現進程間的競態。我們希望進程能協調彼此間的行為,使得一個進程只有在其他的進程執行到一個特定的點時才會執行一個動作,即控制同步;同時,當并發進程訪問共享數據時不應當出現競爭條件。這一點通過在訪問共享數據時執行互斥來確保,即數據訪問同步。
  實現同步的基本技術是阻塞一個進程,直到一個特定條件滿足為止;實現數據訪問同步是通過阻塞一個進程直到另外的進程完成訪問共享數據。
  1 有限長度緩沖區的生產者一消費者問題模型
  當僅存在單個生產者和消費者時,生產進程和消費進程所對應的是同樣的數據結構,它們共享同一個數據空間。生產進程和消費進程如何進行相互協調,使得消費進程每次使用的數據都是生產進程新生產寫人的,又使生產進程新寫入的數據不會覆蓋還未被消費進程讀出使用的數據,是該問題模型實現的關鍵問題。
  在生產者一消費者問題模型中,生產者進程不斷生產產品并把它們放入緩沖區,消費者進程不斷從緩沖區中取走產品進行消費。當緩沖區中產品已經放滿時,表示生產速度高于消費速度,出現了供過于求,此時生產者必須等待產品被消費;當緩沖區為空時,表示消費速度高于生產速度,出現了供不應求,此時消費者進程必須等待產品的生產。生產和消費的進程必須達到同步運行,才能實現供需平衡。
  處理讀寫同步的兩種常見的策略被稱為“強讀者同步(strong reader synchronization)”和“強寫者同步(strongwriter synchronization)”。在強讀者同步中,總是給讀者以優先權,只要寫者當前沒有進行寫操作,讀者就可以獲得訪問權;在強寫者同步中,寫者總是獲得優先權,只要強讀者當前沒有進行讀操作,寫者就可以獲得訪問權。而生產者消費者同步與單純的讀寫同步又有不同,消費者可以通過訪問資源對資源進行刪除或銷毀。
  一個有限長度緩沖區的生產者消費者問題模型,是由若干生產者和消費者進程以及一個有限的緩沖池構成的。每個緩沖區能夠存儲一個信息記錄,一個生產者一次生產一個信息記錄。產生一個記錄之后,等待單獨進入一個空的緩沖區后將記錄寫入緩沖區。一個消費者進程一次消費一個信息記錄。當它需要消費時,它等待單獨進入一個滿的緩沖區后將記錄讀出。
  通過上面的描述可以得出,解決生產者一消費者問題模型的方案需要滿足以下幾個條件:
  ◇生產者不應覆蓋一個滿的緩沖區;
  ◇消費者不應使用一個空的緩沖區;
  ◇生產者和消費者應按互斥方式訪問數據緩沖區;
  ◇數據必須按照先進先出(FIFO)方式;
  ◇不能出現忙等待。
  必須避免數據寫進程不斷、反復地檢查緩沖區直到找到一個空緩沖區為止,而讀進程也必須避免不斷檢查直到找到一個滿緩沖區為止。這相當于系統內部產生忙等待,是在僅使用臨界段(CS)算法實現進程同步時難以避免的問題。
  針對問題模型解決方案的限制條件,采用信號量方式解決實時更新數據處理的進程同步問題,即上述的生產者一消費者問題模型。
  信號量是一個非負值的共享整數值,只能用于初始化和不可分操作。不可分操作是指在對一個數據D進行操作時不能與任何其他對D的操作重疊的操作。定義操作P和V為不可分操作。P和V的不可分性意味著這些操作不能并發執行,避免了對信號量的競爭條件。定義P和V的操作語義為:
  Linux中的進程同步無競爭態讀寫解析
  由上述定義的語義看,對一個信號量S的操作,P和V為改變S的值,或者掛起或喚醒一個對S進行P操作的進程。被掛起的進程為阻塞狀態,因而避免了忙等待問題。一個二進制的信號量只取0和1,用來實現互斥。
  在P和V操作中,對進程的阻塞和喚醒需要操作系統的進程管理組件的參與,因此信號量會被操作系統實現而不是應用程序實現。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關電源基礎知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統的設計與實現
  10. 0.61 MB  |  2次下載  |  免費
  11. 6基于FPGA的C8051F單片機開發板設計
  12. 0.70 MB  |  2次下載  |  免費
  13. 751單片機窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21548次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 婷婷久久综合九色综合98 | 午夜精品久久久久久久四虎| 国产性做久久久久久| 国产精品污视频| 亚洲成人激情片| 四虎.com| 欧美性一级交视频| 激情五月婷婷综合| 国产 日韩 欧美 高清| 最新福利网站| 日本在线看小视频网址| 操人视频网站| 在线免费看黄视频| 狠狠色婷婷七月色综合| 亚洲成人激情片| 日本午夜大片| 国产色婷婷精品综合在线观看| 99久久综合| 神马影视午夜| 亚洲成a人片77777kkk| 日本不卡免费高清视频| 亚洲第二色| 欧美freesex交| 第四色男人天堂| 天天碰天天| 日本人的xxxxxxxxx69| 久热99| 天天摸日日摸人人看| 年轻的护士3| www.成人av.com| 免费欧美黄色片| 69日本人xxxx16-18| 亚洲激情都市| 美女流白浆网站| brazzersvideosex欧美最| 美女视频网站免费播放视| 97爱sese| 天堂免费视频| 国产福利不卡一区二区三区| 奇米999| 美女扒开尿口给男人桶爽视频|