Show simple item record

dc.contributor.authorPichon-Pharabod, Jean Yves Alexis
dc.date.accessioned2018-03-28T15:53:26Z
dc.date.available2018-03-28T15:53:26Z
dc.date.issued2018-05-19
dc.date.submitted2017-09-20
dc.identifier.urihttps://www.repository.cam.ac.uk/handle/1810/274465
dc.description.abstractMany hardware and compiler optimisations introduced to speed up single-threaded programs also introduce additional, sometimes surprising, behaviours for concurrent programs with shared mutable state. How many of these extra behaviours occur in practice depends on the combination of the hardware, compiler, runtime, etc. that make up the platform. A memory model, which prescribes what values each read of a concurrent program can read, allows programmers to determine whether a program behaves as expected without having to worry about the details of the platform. However, capturing these behaviours in a memory model without also including undesirable "out-of-thin-air" behaviours that do not occur in practice has proved elusive. The memory model of C and C++ allows out-of-thin-air behaviour, while the Java memory model fails to capture some behaviours that are introduced in practice by compiler optimisations. In this thesis, we propose a memory model that forbids out-of-thin-air behaviour, yet allows the behaviours that do occur. Our memory model follows operational intuitions of how the hardware and compilers operate. We illustrate that it behaves as desired on a series of litmus tests. We show that it captures at least some of the expected behaviours, that it forms an envelope around some common compiler optimisations, and that it is implementable on common hardware using the expected compilation schemes. We also show that it supports some established programming idioms.
dc.description.sponsorshipEPSRC Programme Grant REMS: Rigorous Engineering for Mainstream Systems, EP/K008628/1 Computer Laboratory Premium Research Studentship
dc.language.isoen
dc.rightsAll rights reserved
dc.rightsAll Rights Reserveden
dc.rights.urihttps://www.rioxx.net/licenses/all-rights-reserved/en
dc.subjectconcurrency
dc.subjectrelaxed memory models
dc.subjectC/C++
dc.titleA no-thin-air memory model for programming languages
dc.typeThesis
dc.type.qualificationlevelDoctoral
dc.type.qualificationnameDoctor of Philosophy (PhD)
dc.publisher.institutionUniversity of Cambridge
dc.publisher.departmentComputer Laboratory
dc.date.updated2018-03-28T13:28:27Z
dc.identifier.doi10.17863/CAM.21597
dc.publisher.collegeTrinity Hall
dc.type.qualificationtitlePhD in Computer Science
cam.supervisorSewell, Peter
cam.thesis.fundingtrue
rioxxterms.freetoread.startdate2018-03-28


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record