Modelling Concurrent Programs as Multi-Player Games of Imperfect Information against Nature

Concurrent programs exists all around us. Whether someone is liking a photo on a social media platform or whether someone is doing a bank-transaction, concurrency is acting behind the scenes. Due to the nature of concurrent pro- grams having multiple Users, or Threads, a range of different problems...

Full description

Bibliographic Details
Main Authors: Glimmerfors, Tobias, Olander Ålund, Simon
Format: Others
Language:English
Published: KTH, Skolan för elektroteknik och datavetenskap (EECS) 2020
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-280337
Description
Summary:Concurrent programs exists all around us. Whether someone is liking a photo on a social media platform or whether someone is doing a bank-transaction, concurrency is acting behind the scenes. Due to the nature of concurrent pro- grams having multiple Users, or Threads, a range of different problems can emerge. Some of these problems stem from the limited knowledge of each Thread. Similar to how people use their knowledge to make decisions in everyday life, a Thread’s knowledge of a program’s state can aid the decision of which action to take. An interesting question is thus whether we can model the knowledge of a concurrent system in order to aid the execution of instructions. In this report we investigate the plausibility of modelling problematic concur- rent programs as games of imperfect information against nature. Successfully modelled programs are analysed from the perspective of each Thread’s distributed knowledge by applying Multi-Player Knowledge Based Subset Construction (MKBSC). In this report we have successfully modelled three different programs that each handle a concurrency-related problem. We have also shown how we can synthesise winning strategies from the knowledge of each Player for two out of three game models. === Distribuerade system finns överallt i vardagen. Allt från en gillad bild på sociala medier till en genomförd banktransaktion är möjliga på grund av distribuerade system. Distribuerade system är system med fler Användare, eller Trådar, som alla arbetar samtidigt. På grund av denna samtidighet, kan en upp- sjö av olika problem uppstå. Vissa av dessa problem grundar sig i att systemets Trådar har begränsad kunskap av hela systemet. Precis som när människor an- vänder sin kunskap för att göra val i vardagen, så kan Trådarnas kunskap bidra till vilka instruktioner som ska utföras. Således finns det en intressant fråge- ställning huruvida man kan modellera Trådarnas kunskap, för att förebygga eventuella problem i distribuerade system. I denna rapport undersöker möjligheten att modellera Trådarnas kunskap i problematiska distribuerade system som spel med imperfekt information mot naturen. De modeller som lyckas framställas analyseras med ambition att redogöra för Trådens distribuerade förståelse genom att applicera Multi-Player Knowledge Based Subset Construction (MKBSC). Vi lyckades modellera tre olika distribuerade program med varsitt problem. Vi kunde utgöra att den kunskap som Trådarna innehade kunde användas för framställandet av vinnande strategier i två av tre modeller.