版权归原作者所有,如有侵权,请联系我们

[科普中国]-鸵鸟算法

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

鸵鸟算法,一种计算机操作系统算法,用于当死锁真正发生且影响系统正常运行时,手动干预—重新启动。

简介在计算机科学中,鸵鸟算法是一个忽略潜在问题的一种算法策略,这种策略对计算机程序可能出现的问题采取无视态度(类似于鸵鸟在遇到危险时将头埋在地里,装作看不见)。鸵鸟算法的使用前提是,问题出现的概率很低。1

什么是鸵鸟算法传说中鸵鸟看到危险就把头埋在地底下。当你对某一件事情没有一个很好的解决方法时,那就忽略它,就像鸵鸟面对危险时会把它深埋在沙砾中,装作看不到。这样的算法称为“鸵鸟算法“。这实在不算是一个算法,但却是目前实际系统采用最多的一种策略。例如在计算机操作系统中,当死锁真正发生且影响系统正常运行时,手动干预—重新启动。2

鸵鸟算法的应用鸵鸟算法可以称之为不是办法的办法。在计算机科学中,鸵鸟算法是解决潜在问题的一种方法。假设的前提是,这样的问题出现的概率很低。比如,在操作系统中,为应对死锁问题,可以采用这样的一种办法。当系统发生死锁时不会对用户造成多大影响,或系统很少发生死锁的场合采用允许死锁发生的鸵鸟算法,这样一来可能开销比不允许发生死锁及检测和解除死锁的小。如果死锁很长时间才发生一次,而系统每周都会因硬件故障、编译器错误或操作系统错误而崩溃一次,那么大多数工程师不会以性能损失或者易用性损失的代价来设计较为复杂的死锁解决策略,来消除死锁。大多数操作系统,包括UNIX,LINUX和windows,处理死锁问题的办法仅仅是忽略它。其假设前提是大多数用户宁可在极偶然的情况下发生死锁也不愿接受因为死锁解决算法带来的性能上的损失。因为解决死锁的问题,通常代价很大。鸵鸟算法的实质:出现死锁的概率很小,并且出现之后处理死锁会花费很大的代价,还不如不做处理,OS中这种置之不理的策略称之为鸵鸟算法。所以鸵鸟算法,是平衡性能和复杂性而选择的一种方法。1

计算机程序计算机程序Computer Program)是指一组指示计算机或其他具有消息处理能力装置每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。打个比方,一个程序就像一个用汉语(程序设计语言)写下的红烧肉菜谱(程序),用于指导懂汉语(编译器)同时也会烹饪手法的人(体系结构)来做这道菜。 通常,以英文文本为基础的计算机程序要经过编译和链接而成为一种人们不易看清而计算机可解读的一连串数字的格式,然后放入运行。未经编译就可运行的程序,通常称之为脚本程序(script)。1

本词条内容贡献者为:

杨明 - 副教授 - 西南大学