Please use this identifier to cite or link to this item: https://www.um.edu.mt/library/oar/handle/123456789/94010
Full metadata record
DC FieldValueLanguage
dc.date.accessioned2022-04-19T07:52:53Z-
dc.date.available2022-04-19T07:52:53Z-
dc.date.issued2007-
dc.identifier.citationFenech, S. (2007). Model checking : concurrent assembly algorithms (Bachelor's dissertation).en_GB
dc.identifier.urihttps://www.um.edu.mt/library/oar/handle/123456789/94010-
dc.descriptionB.Sc. IT (Hons)(Melit.)en_GB
dc.description.abstractDeveloping correct concurrent algorithms has always been a very challenging endeavor. The independent tasks can interact in so many different ways that it is difficult to visualise the resultant computation, let alone be sure of its correctness. Among many things, one must eliminate all possible deadlock situations and remove any race-conditions in order to achieve correctness. One way to ensure that the algorithm is correct is to use model checking, a formal method that is used to verify properties on models. In this project we modelled the concurrent algorithms as Kripke structures to enable the automatic model checking of desired properties. This translation was the basis for the construction of a tool that translates normal programming source code into the Kripke structures, thus providing a "push-button" approach to verification. Due to the state explosion problem inherent in model checking we are limited in the number of state variables a model can have while still being tractable to model check. In order to alleviate this problem we make use of abstraction to remove certain detail of the model. Using a partial-order technique we remove interleaving of certain sections of the model that are not accessible from other tasks thus reducing the number of states while still leaving the overall behavior identical. Another technique investigated was induction which permits us to reduce an infinite state space into a finite state space. Making use of symmetry and an inductive method we could verify algorithms with an unbounded number of identical participating tasks. We depict each of these methods with case studies of concurrent assembly algorithms showing the viability of using model checking as a development tool and also how model checking can be applied. We highlight this by verifying a number of concurrent algorithms like a barrier synchronisation algorithm and wait-free CSP channel communication.en_GB
dc.language.isoenen_GB
dc.rightsinfo:eu-repo/semantics/restrictedAccessen_GB
dc.subjectAlgorithmsen_GB
dc.subjectModel-integrated computingen_GB
dc.subjectComputer programs -- Verificationen_GB
dc.titleModel checking : concurrent assembly algorithmsen_GB
dc.typebachelorThesisen_GB
dc.rights.holderThe copyright of this work belongs to the author(s)/publisher. The rights of this work are as defined by the appropriate Copyright Legislation or as modified by any successive legislation. Users may access this work and can make use of the information contained in accordance with the Copyright Legislation provided that the author must be properly acknowledged. Further distribution or reproduction in any format is prohibited without the prior permission of the copyright holder.en_GB
dc.publisher.institutionUniversity of Maltaen_GB
dc.publisher.departmentFaculty of Information and Communication Technology. Department of Artificial Intelligenceen_GB
dc.description.reviewedN/Aen_GB
dc.contributor.creatorFenech, Stephen (2007)-
Appears in Collections:Dissertations - FacICT - 1999-2009
Dissertations - FacICTAI - 2002-2014

Files in This Item:
File Description SizeFormat 
B.SC.(HONS)IT_Fenech_Stephen_2007.pdf
  Restricted Access
6.76 MBAdobe PDFView/Open Request a copy


Items in OAR@UM are protected by copyright, with all rights reserved, unless otherwise indicated.