Кіріспе
Бағдарламаның дұрыстығын тексеру үшін қолданылатын алгоритм Банкер алгоритмі - ресурстарды бөлу және тұйықталудан аулақ болу алгоритмі. Бұл алгоритм Эдсгер Дайкстра әзірлеген, ол барлық ресурстардың алдын ала белгіленген ең жоғары мүмкін мөлшерін бөлуді симуляциялау арқылы қауіпсіздікті тексереді, содан кейін басқа барлық күтілетін іс-шаралар үшін мүмкін тұйықталу жағдайларын тексеру үшін "s state" тексеруін жүргізеді, содан кейін бөлуді жалғастыруға рұқсат етілу керек пе, жоқ па, шешуге дейін. Алгоритм THE операциялық жүйесінің жобалау процесінде әзірленді және бастапқыда EWD108-де (голланд тілінде) сипатталған. Жаңа процесс жүйеге кіргенде, ол әр ресурс түрінің ең көп саны туралы мәлімдеуі керек; бұл сан жүйедегі ресурстардың жалпы санынан аспауы керек. Сонымен қатар, процесс барлық сұратылған ресурстарды алған кезде оларды шекті уақыт ішінде қайтару керек.
Banker's algorithm is a resource allocation and deadlock avoidance algorithm developed by Edsger Dijkstra that tests for safety by simulating the allocation of predetermined maximum possible amounts of all resources, and then makes an "s state" check to test for possible deadlock conditions for all other pending activities, before deciding whether allocation should be allowed to continue. The algorithm was developed in the design process for the THE operating system and originally described (in Dutch) in EWD108. When a new process enters a system, it must declare the maximum number of instances of each resource type that it may ever claim; clearly, that number may not exceed the total number of resources in the system. Also, when a process gets all its requested resources it must return them in a finite amount of time.
Шектеулер
Басқа алгоритмдер сияқты, Банкирдің алгоритмі де іске асырылған кезде кейбір шектеулерге ие. Нақтырақ айтқанда, ол әр ресурстың қаншасын процес талап етуі мүмкін екенін білуі керек. Көптеген жүйелерде бұл ақпарат қол жетімді емес, сондықтан Банкердің алгоритмін іске асыру мүмкін емес. Сондай-ақ, процестер саны статикалық деп болжау шындыққа сай емес, өйткені көптеген жүйелерде процестер саны динамикалық түрде өзгереді. Сонымен қатар, процесстің барлық ресурстарын босатуы (процесс аяқталған кезде) алгоритмнің дұрыстығы үшін жеткілікті, бірақ ол практикалық жүйе үшін жеткіліксіз. Ресурстардың босатылуын бірнеше сағат (немесе тіпті бірнеше күн) күту әдетте қабылдауға болмайды.