日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微软开源P语言,实现安全的异步事件驱动编程

發布時間:2023/12/4 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微软开源P语言,实现安全的异步事件驱动编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

微軟最近開源了P語言,致力于在Linux、macOS和Windows上編寫安全的異步事件驅動程序。

微軟將P描述為一種領域特定語言,對異步系統的組件間通信進行建模,例如嵌入式、網絡或分布式系統。P程序是通過有限狀態機(finite state machine)來定義的,這些狀態機會并發運行。每個狀態機都有一個輸入隊列、狀態、轉換、機器本地存儲,并且可以發送異步信息給其他狀態機。在P中的基本操作要么是更新本地存儲,發送消息,要么就是創建新的狀態機。如下的代碼片段展示了如何使用P來描述一個狀態及其轉換。除此之外,它還展現了如何發送消息或創建新的狀態機:

... start state Init {entry {server = new Server();raise SUCCESS;} on SUCCESS goto SendPing; state SendPing {entry {send server, PING, this;raise SUCCESS;}on SUCCESS goto WaitPong; } ...

按照微軟的說法,P程序能夠使用模型檢查功能來進行核實。這樣的話,就允許開發人員確保所有的事件均能得到及時地處理。對于P程序來說,要想保證響應性,它的狀態機就要處理每個狀態上所有可以出隊(dequeue)的事件。這種做法并不一定總是可行,因此對一些事件可能會進行延遲處理。在這種情況下,語言能夠確保某個事件不會無限期延遲。P編譯器能夠核實程序的狀態,還可以生成C代碼,并交給C編譯器執行,另外,它還可以輸出Zing模型,用于系統測試。Zing是一個針對并發程序的開源模型檢查器,它能夠系統性地暴露一個模型所有可能出現的狀態。

微軟使用P語言實現和檢驗了Windows 8 USB設備驅動棧的核心功能。按照微軟的說法,工程師使用P來序列化大量來自硬件、操作系統、功能驅動以及其他驅動組件的不同事件,提升了性能和可靠性。他們尤其指出,在新的USB hub驅動中,非法內存訪問和競態條件的數量不那么明顯了,同時,枚舉時間快了30%,也沒有觀察到worker條目餓死的現象。

原文鏈接:http://www.infoq.com/cn/news/2016/10/microsoft-p-language-opensourced


.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注

總結

以上是生活随笔為你收集整理的微软开源P语言,实现安全的异步事件驱动编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。