Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Ostrich algorithm
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Strategy in computer science}} In [[computer science]], the '''ostrich algorithm''' is a strategy of ignoring potential problems on the basis that they may be exceedingly rare. It is named after the [[ostrich effect]] which is defined as "to stick one's head in the sand and pretend there is no problem". It is used when it appears the situation may be more cost-effectively managed by allowing the problem to continue to occur rather than to attempt its prevention. ==Use with deadlocks== This approach may be used in dealing with [[Deadlock (computer science)|deadlock]]s in [[concurrent programming]] if they are believed to be very rare and the cost of detection or prevention is high. A set of processes is deadlocked if each process in the set is waiting for an event that only another process in the set can cause. The ostrich algorithm pretends there is no problem and is reasonable to use if deadlocks occur very rarely and the cost of their prevention would be high. The [[UNIX]] and [[Windows]] operating systems take this approach.<ref>{{Cite book |last=English |first=John |url=https://books.google.com/books?id=vyJIEAAAQBAJ&dq=windows+use+ostrich+algorithm&pg=PA124 |title=Introduction to Operating Systems: Behind the Desktop |date=2017-09-16 |publisher=Bloomsbury Publishing |isbn=978-0-230-37408-9 |language=en |access-date=2022-09-30 |archive-date=2022-10-06 |archive-url=https://web.archive.org/web/20221006073624/https://books.google.com/books?id=vyJIEAAAQBAJ&dq=windows+use+ostrich+algorithm&pg=PA124 |url-status=live }}</ref><ref>{{Cite book |last1=Kaur |first1=Gurusharan |url=https://books.google.com/books?id=sJ-dDwAAQBAJ&dq=windows+use+ostrich+algorithm&pg=PA266 |title=Elements and Digitization of Computer |last2=Kaur |first2=Lakhbir |last3=Kaur |first3=Rajinder |publisher=Educreation Publishing |language=en |access-date=2022-09-30 |archive-date=2022-10-06 |archive-url=https://web.archive.org/web/20221006073624/https://books.google.com/books?id=sJ-dDwAAQBAJ&dq=windows+use+ostrich+algorithm&pg=PA266 |url-status=live }}</ref> Although using the ostrich algorithm is one of the methods of dealing with [[Deadlock (computer science)|deadlock]]s, other effective methods exist such as dynamic avoidance, [[banker's algorithm]], detection and recovery, and prevention.<ref>{{Cite web|url=http://www.ceng.metu.edu.tr/~genc/334/Ch_6_Deadlocks.ppt|title=Middle East Technical University. Deadlocks.|access-date=2016-12-09|archive-date=2012-04-12|archive-url=https://web.archive.org/web/20120412225937/http://www.ceng.metu.edu.tr/~genc/334/Ch_6_Deadlocks.ppt|url-status=live}}</ref> ==See also== *[[Crash-only software]] *[[End-to-end principle]] ==References== {{reflist}} ==External links== *[http://www.cs.rpi.edu/academics/courses/fall04/os/c10/index.html Ostrich algorithm] *[http://nohardlockrwlocker.codeplex.com/ Non-Hard Locking Read-Write Locker] {{Webarchive|url=https://web.archive.org/web/20111218194302/http://nohardlockrwlocker.codeplex.com/ |date=2011-12-18 }} *[https://www.youtube.com/watch?v=g5rJwMQtDaY Deadlock Basics + Modelling + Ostrich Algorithm] [[Category:Concurrent algorithms]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Webarchive
(
edit
)