成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

.NET 4將支持用軟件實現的事務內存:STM.NET

開發 后端
微軟發布了.NET 4.0 Beta 1的一個單獨的新版本,其中包含了STM.NET,也就是Software Transactional Memory。微軟將STM.NET定義為:Software Transactional Memory(STM.NET)是一種可以高效隔離共享狀態的機制。

事務內存是一種并行程序設計的方式,其來自于數據庫管理系統(DBMS)中的事務(Transaction)概念。事務內存目前有兩種實現方式,基于軟件的STM(Software Transactional Memory)和基于硬件的HTM(Hardware Transacational Memory)。

雖然事物內存的事務編程概念來自于數據庫的事務,但在概念上還是有很大的區別的。
1 數據庫的 數據是存儲在磁盤上的,而在事物內存技術中數據是存放在內存的。
2 事物內存技術中事務不滿足acid 中的d(durable) 性質,因為它只在內存中有效。
3 事物內存技術中事 務相對小的多。

最近,微軟發布了.NET 4.0 Beta 1的一個單獨的新版本,其中包含了STM.NET,也就是Software Transactional Memory。通常我們使用基于鎖的同步機制來控制對共享內存的訪問,STM則是鎖之外的另一種選擇。

微軟將STM.NET定義為:Software Transactional Memory(STM.NET)是一種可以高效隔離共享狀態的機制。開發人員可以將一段代碼標記為“原子”事務,并與其它并行運行的事務代碼“隔離”開來。

事務內存(Transactional memory)在學術界被認為是一項有前途的技術,并且在當前利用多核硬件提高程序擴展性的大潮中,也作為一項受歡迎的技術被反復提及,其目的是使應用程 序開發人員可以利用STM的并發功能,將那些由專家開發的組件組合在一起,事務內存使這變得簡單而安全。

軟件事務內存 (STM) 是一種模擬數據庫事務的并發控制 機制來控制在并行計算時對共享內存的訪問控制。它是鎖的一種替代機制。在STM中,一個事務指的是一段讀、寫共享內存的代碼。這些讀寫操作在邏輯上是一個獨立的單元,其中間狀態對于其它的事務而言,是不可見的。

性能

與現在許多多線程應用程序廣泛使用的鎖機制不同,STM是一種非常樂觀的并發控制機制:一個線程獨立完成對共享內存的修改,完全忽略可能會有其它的線程存在,但是線程在日志中記錄對共享內容的每一個讀寫動作。其他的并發控制一般是在進行寫操作時來保證與其他事務的一致性(不能修改已經被別的失誤修改過的共享數據),STM在完成一個事務之后,再驗證其它線程沒有并發的對共享內存進行或修改,從而保證事務是完整的。因此,STM事務的最后一個操作是驗證,如果驗證通過,則提交,否則取消,導致所有以前進行的修改動作回滾。如果一個事務不能夠提交,一般的,事務將回顧,并且從入口開始重新執行。

采用這種樂觀策略可以增加并發性能:任何線程無需等待一個資源,多個線程可以并行而且安全的修改同一數據結構的多個部分(如果采用鎖,它們一般在同一個鎖的保護之下)。除了在事務失敗后需要重試而增加開銷之外,在現實世界中,由于沖突是很罕見的,因此,實際上可以帶來性能的提升。尤其是在多處理器的情況下。

不過,在一些實踐中,在較少CPU(1-4)的系統上,基于STM的應用程序相對于一些精心調節的基于Lock的應用程序而言,會有一定的性能損失。主要的原因是在STM事務中,需要維持log,以及額外的花在提交事務上的時間。不過,即使在這種情況下,性能也不會低于50%。 [1]? 相對而言,STM擁護者認為STM帶來的優勢更為明顯。

理論上,在最糟糕的情況下,當 n 個并發事務同時運行,他們需要 n 倍的內存和處理器,實際的需要取決于具體的實現細節(比如說一個事務可以盡早的失敗以避免后續額外的開銷)。在某些應用場景下,基于Lock機制的算法會比基于STM機制的算法更好。

STM.NET的優點與缺點

除了性能上的優勢之外,STM可以在概念上簡化多線程應用的模型,使得程序與一些已知的抽象概念如對象、模塊等相處更為融洽,從而變得更易為維護。基于Lock的軟件開發在實踐上存在如下的問題:
  
• 需要將一些相互交錯、局部的操作理解成為一系列的獨立的、關系不密切的代碼,這對程序員而言,是一個艱巨而且很容易犯錯的任務。
  
• 需要程序員采用一定的策略來避免死鎖、活鎖,以及其他可能的錯誤。這些策略是強制的,且很容易犯錯的,當出現相關的問題時,難以重現、排錯。
  
• 會導致優先級沖突。經常會出現一個高優先級的線程需要等待另外一個低優先級的線程。

相反的,STM的概念要簡單得多,因為每一個事務可以理解為隔離的,就像只有單個線程進行操作一般。死鎖等會完全避免,無需程序員擔心這個問題。優先級沖突的問題仍然存在,但一個高優先級的事務可以令得其他低優先級的事務提前終止。

相應的,由于需要提前結束事務,也對STM的事務提出了一些限制:在事務中不能夠操作那些不能回滾的動作,例如大部分的IO操作。這些限制在實際開發中是通過創建緩沖區,記錄這些不可回滾的操作,然后在事務完成后,在事務之外一次性的執行。在Haskell語言中,編譯器會利用類型信息,做這個強制性檢查。
  STM.NET使用Atomic.Do()將一段代碼標記為一個事務:
  Atomic.Do(()=> { 
  });

STM與鎖機制一樣會導致系統性能降低,這是因為它需要維護讀寫日志,而且提交時會花費額外的時間。一些人認為STM比鎖更容易使用,因此在易用性上的優勢足以抵消性能上的降低。在一項名為《事務編程真的容易么?》的研究中,來自奧斯丁德克薩斯大學的Christopher J. Rossbach、Owen S. Hofmann和 Emmett Witchel比較了STM與鎖的學習和開發過程:
  
一般來說,事務內存比簡單的鎖需要更多的開發時間,但少于細致的鎖和條件同步。
  
……我們發現在更復雜的情況下,簡單的鎖和事務所用的時間要少于細致的鎖。這體現了事務的初衷,在需要多個鎖的情況下,減少編碼、調試和鎖順序的復雜性。
  
這項研究總結道:
  
這證明了即使新手在理解事務方面可能存在困難,但事務編程比高性能的鎖更安全。對學生的主觀評測顯示,他們認為事務內存比簡單的鎖要難一些,但是比細致的 鎖和條件同步簡單。然而在學生寫的代碼中,同步錯誤的比率呈現出戲劇化的結果。對于相似的編程問題,使用事務比使用鎖更容易得到正確的結果。
  
系統配置需求:Visual Studio 2008,Windows Installer 3.1以上, Internet Explorer 5.01以上。目前STM.NET只支持C#。

【編輯推薦】

  1. .NET 4.0 Beta 1新增STM特性概覽
  2. 微軟.Net 4.0實驗版更新 預計明春發布正式版
  3. .NET 4.0 Beta 1將為PLINQ帶來生機?
  4. .NET 4.0中WCF服務配置的簡化與改進
  5. .NET 4.0內存映射文件詳解

責任編輯:周立方 來源: IT168
相關推薦

2009-07-30 13:17:44

STM.NET.NET 4 Beta

2009-08-05 11:04:12

ASP.NET MVCSTM.NET

2009-08-31 10:08:24

VS 2010.NET 4Visual Stud

2009-08-18 09:08:08

微軟.NET擴展

2021-04-27 09:40:43

微軟.NET Framew應用

2021-04-27 15:35:00

Microsoft.Net Framew開發人員

2009-07-28 09:54:23

.NET內存管理

2019-07-02 15:21:39

緩存NET單線程

2022-06-08 17:24:13

數據庫管理工具

2021-09-23 14:55:57

.NETHTTP服務器

2011-11-11 16:14:37

LocalDB

2025-01-03 08:29:53

2009-10-26 19:22:29

VB.NET使用Log

2010-05-27 09:04:25

MEF架構.NET 4

2010-06-18 09:23:33

SortedSet.NET 4

2010-08-23 09:49:53

.NET 4

2014-03-04 13:12:18

2011-05-18 10:18:10

2009-07-23 15:49:21

mod_aspdotnApache支持ASP

2009-01-13 10:13:05

Ja.NETJava整合.NET整合
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美激情在线精品一区二区三区 | 91亚洲精| 久久新| 日本a v在线播放 | 欧美一级在线视频 | 妞干网av | 99re在线 | 九九精品在线 | 国产高清在线观看 | 精品国产一区二区国模嫣然 | 成人特级毛片 | 成人三级视频 | 一区二区三区在线 | 久久精品国产一区二区 | 亚洲国产精品一区 | 午夜视频一区 | 综合国产在线 | 国产三级日本三级 | 国产亚洲精品美女久久久久久久久久 | 亚洲成人精品国产 | 久久久精品综合 | 四虎在线观看 | 一级欧美黄色片 | 亚洲综合精品 | 超碰在线免费 | 日韩av在线免费 | 欧美日韩精品专区 | 国产黄色网址在线观看 | 国产精品地址 | 免费在线成人网 | 欧美一级高潮片免费的 | 欧美国产日韩在线观看 | 91在线观看 | 中文字幕成人 | 一区二区三区小视频 | 亚洲精品一区二区久 | 国产人免费人成免费视频 | www.天天操.com| 在线视频第一页 | 亚洲精品福利视频 | 亚洲国产欧美在线 |