複製鏈接
請複製以下鏈接發送給好友

鴕鳥算法

鎖定
鴕鳥算法,一種計算機操作系統算法,用於當死鎖真正發生且影響系統正常運行時,手動干預—重新啓動。
中文名
鴕鳥算法
外文名
Ostrich algorithm
手動干預—重新啓動
應    用
計算機操作系統 算法
特    點
稱之為不是辦法的辦法 置之不理

鴕鳥算法簡介

在計算機科學中,鴕鳥算法是一個忽略潛在問題的一種算法策略,這種策略對計算機程序可能出現的問題採取無視態度(類似於鴕鳥在遇到危險時將頭埋在地裏,裝作看不見)。鴕鳥算法的使用前提是,問題出現的概率很低。 [1] 

鴕鳥算法什麼是鴕鳥算法

傳説中鴕鳥看到危險就把頭埋在地底下。當你對某一件事情沒有一個很好的解決方法時,那就忽略它,就像鴕鳥面對危險時會把它深埋在沙礫中,裝作看不到。這樣的算法稱為“鴕鳥算法“。這實在不算是一個算法,但卻是目前實際系統採用最多的一種策略。例如在計算機操作系統中,當死鎖真正發生且影響系統正常運行時,手動干預—重新啓動。 [2] 

鴕鳥算法鴕鳥算法的應用

鴕鳥算法可以稱之為不是辦法的辦法。在計算機科學中,鴕鳥算法是解決潛在問題的一種方法。假設的前提是,這樣的問題出現的概率很低。比如,在操作系統中,為應對死鎖問題,可以採用這樣的一種辦法。當系統發生死鎖時不會對用户造成多大影響,或系統很少發生死鎖的場合採用允許死鎖發生的鴕鳥算法,這樣一來可能開銷比不允許發生死鎖及檢測和解除死鎖的小。如果死鎖很長時間才發生一次,而系統每週都會因硬件故障、編譯器錯誤或操作系統錯誤而崩潰一次,那麼大多數工程師不會以性能損失或者易用性損失的代價來設計較為複雜的死鎖解決策略,來消除死鎖。大多數操作系統,包括UNIXLINUX和windows,處理死鎖問題的辦法僅僅是忽略它。其假設前提是大多數用户寧可在極偶然的情況下發生死鎖也不願接受因為死鎖解決算法帶來的性能上的損失。因為解決死鎖的問題,通常代價很大。鴕鳥算法的實質:出現死鎖的概率很小,並且出現之後處理死鎖會花費很大的代價,還不如不做處理,OS中這種置之不理的策略稱之為鴕鳥算法。所以鴕鳥算法,是平衡性能和複雜性而選擇的一種方法。 [1] 

鴕鳥算法計算機程序

計算機程序Computer Program)是指一組指示計算機或其他具有消息處理能力裝置每一步動作的指令,通常用某種程序設計語言編寫,運行於某種目標體系結構上。打個比方,一個程序就像一個用漢語(程序設計語言)寫下的紅燒肉菜譜(程序),用於指導懂漢語(編譯器)同時也會烹飪手法的人(體系結構)來做這道菜。 通常,以英文文本為基礎的計算機程序要經過編譯鏈接而成為一種人們不易看清而計算機可解讀的一連串數字的格式,然後放入運行。未經編譯就可運行的程序,通常稱之為腳本程序(script)。 [1] 
參考資料
  • 1.    Michael Sipser. Introduction to the Theory of Computation. PWS Publishing. 1997. ISBN 978-0-534-94728-6. Section 1.4: Nonregular Languages, pp.77–83. Section 2.3: Non-context-free Languages, pp.115–119.
  • 2.    Eric Baum What is Thought MIT Press 2004年 ISBN 0-262-02548-5