b"\n_START_ARTICLE_\nBakl\xc3\xa5s (datavetenskap)\n_START_PARAGRAPH_\nBakl\xc3\xa5s eller d\xc3\xb6dl\xc3\xa4ge (deadlock p\xc3\xa5 engelska) \xc3\xa4r en situation inom till exempel logistik eller programmering d\xc3\xa4r tv\xc3\xa5 (eller flera) processer \xc3\xa4r inblandade och d\xc3\xa4r var och en av processerna v\xc3\xa4ntar p\xc3\xa5 att den andra processen ska \xc3\xa5terl\xc3\xa4mna en resurs vilken kr\xc3\xa4vs f\xc3\xb6r att den f\xc3\xb6rsta processen ska kunna bli klar med sitt \xc3\xa5tagande._NEWLINE_Processerna v\xc3\xa4ntar p\xc3\xa5 varandra och ingen kan bli f\xc3\xa4rdig, detta \xc3\xa4r programmeringens moment 22. Situationen kan l\xc3\xb6sas antingen genom att en av processerna tillf\xc3\xb6rs mer resurser s\xc3\xa5 att den kan bli klar och d\xc3\xa4refter \xc3\xa5terl\xc3\xa4mna resurserna, eller att n\xc3\xa5gon av processerna backas s\xc3\xa5 att dess resurser frig\xc3\xb6rs.\n_START_SECTION_\nUndvika bakl\xc3\xa5s\n_START_PARAGRAPH_\nEdsger Dijkstra formulerade en algoritm f\xc3\xb6r detta, bankiralgoritmen (Banker's algorithm), som anger villkor f\xc3\xb6r hur resurser f\xc3\xa5r allokeras i ett system. F\xc3\xb6r att den ska fungera i praktiken utan att g\xc3\xb6ra systemet ineffektivt m\xc3\xa5ste emellertid systemet vara konstruerat p\xc3\xa5 ett s\xc3\xa5dant s\xc3\xa4tt att resurser kan allokeras och \xc3\xa5terl\xc3\xa4mnas i l\xc3\xa4mpliga m\xc3\xa4ngder, till exempel b\xc3\xb6r enkelsp\xc3\xa5riga j\xc3\xa4rnv\xc3\xa4gar ha m\xc3\xb6tesplatser med dubbelsp\xc3\xa5r med j\xc3\xa4mna mellanrum."