OS形式化設計與驗證

2021-06-23 08:51:22 字數 961 閱讀 3031

os往往無法提供理想的安全服務和安全保障。這主要存在兩方面的原因,首先在os實現過程中os開發者不可避免地存在程式設計錯誤、實現與設計不一致等問題,另外更重要的是在os設計過程存在os功能設計與安全目標不一致等問題。

目前,公認的、最為合理的方案是利用嚴格的形式化方法來對os進行設計實現和驗證。形式化方法是指使用基於數學邏輯和各種推理驗證的技術來描述、開發以及驗證軟體和硬體系統的方法。利用形式化方法對os進行設計和驗證包括利用嚴格的數學形式方法描述os的操作行為和語義,建立os語義模型,並驗證其**實現了設計預定的功能需求。這種方法稱為形式化驗證(formal verification)形式化驗證包括模型檢測(model checking) 和定理證明(theoremproving)兩種方式。模型檢測方式主要是利用對系統問題建立的

數學模型進行自動推理;定理證明一般採用互動式的定理輔助證明器來對系統問題進行抽象描述,並以數學公式定理的方式表達系統的功能和安全性,採用數學定理推導演算的方法進行驗證。值得一提的是,就目前而言,定理證明方式可以驗證的問題數量顯然比模型檢測來的多。對於os形式化設計與驗證,由於存在狀態空間膨脹等問題,模型檢測的方法並不適用於os形式化設計與驗證。

採用形式化方法對os進行設計和驗證,涉及到對os進行建立模型,將非形式化的概念轉化為模型中形式化的部分,然後在此基礎上進行設計和驗證。在此過程中,即使使用形式化的方法,在設計和驗證中也難免會引入人為的錯誤,特別是在對大型系統的驗證過程中。

形式化模型只能無限地接近被描述的真實系統,而無法完全精確地表達真實系統,而且模型越是精確,建模耗費的時間和空間就越是多,後續的驗證過程越是困難。我們對現實世界的模擬,重要的是根據不同的任務將相關的內容進行建模,而摒棄不相關的內容,從而達到抽象的目的,即需要明確抽象的精確程度。抽象層次從高到低,涉及高層語言層(如c語言)、組合語言層以及機器語言層。

形式化 半形式化和非形式化

形式化 半形式化和非形式化是三種類 型的規範風 格。形式化規範就是用一套基於明確定義的數學概念的符號來書寫,並且通常伴隨著支援性的解釋 非形式化 語句。這些數學概念被用來定義符號的句法和語義,以及支援邏輯推理的證明規則。支援形式化符號的句法和語義規則應該定義如何明確地識別其結構和確定其含義。並且必須...

形式化方法

軟體形式化方法最早可追溯到20世紀50年代後期對於程式語言編譯技術的研究,即 j.backus 提出bnf 描述algol60 語言的語法,出現了各種語法分析程式自動生成器以及語法制導的編譯方法,使得編譯系統的開發從 手工藝製作方式 發展成具有牢固理論基礎的系統方法。形式化方法的研究高潮始於20 世...

形式化方法

1 形式化方法的發展 軟體形式化方法最早可追溯到20世紀50年代後期對於程式語言編譯技術的研究,即j.backus提出bnf描述algol60語言的語法,出現了各 種語法分析程式自動生成器以及語法制導的編譯方法,使得編譯系統的開發從 手工藝製作方式 發展成具有牢固理論基礎的系統方法。形式化方法的研究...