Publication:
Verification of programs in virtual memory using separation logic

dc.contributor.advisor Klein, Gerwin en_US
dc.contributor.advisor Elphinstone, Kevin en_US
dc.contributor.author Kolanski, Rafal Michal en_US
dc.date.accessioned 2022-03-23T19:03:53Z
dc.date.available 2022-03-23T19:03:53Z
dc.date.issued 2011 en_US
dc.description.abstract Formal reasoning about programs executing in virtual memory is a difficult problem, as it is an environment in which writing to memory can change its layout. At the same time, correctly reasoning about virtual memory is essential to operating system verification, a field we are very much interested in. Current approaches rely on entering special modes or making high-level assertions about the nature of virtual memory which may or may not be correct. In this thesis, we examine the problems created by virtual memory and develop a unified view of memory, both physical and virtual, based on separation logic. We first develop this model for a simple programming language on a simplified architecture with a one-level page table, taking care to prove it constitutes a separation logic. We then extend the framework to deal with low-level C programs executing in a virtual memory environment of the ARMv6 architecture with a two-level page table. We perform two case studies involving mapping in of a new page into the current address space: first for the simple version of our logic, and finally for our full framework. The case studies demonstrate that separation logic style modular reasoning via the frame rule can be used in a unified model which encompasses virtual memory, even in the presence of page table writes. To our knowledge, we present the first model offering a unified view of virtual and physical memory, the first separation logic involving an address translation mechanism, as well as the first published model of a functional subset of ARM memory management unit. Our memory models, framework, proofs and all results are formalised in the Isabelle/HOL interactive theorem prover. en_US
dc.identifier.uri http://hdl.handle.net/1959.4/51288
dc.language English
dc.language.iso EN en_US
dc.publisher UNSW, Sydney en_US
dc.rights CC BY-NC-ND 3.0 en_US
dc.rights.uri https://creativecommons.org/licenses/by-nc-nd/3.0/au/ en_US
dc.subject.other Formal verification en_US
dc.subject.other Separation logic en_US
dc.subject.other Virtual memory en_US
dc.title Verification of programs in virtual memory using separation logic en_US
dc.type Thesis en_US
dcterms.accessRights open access
dcterms.rightsHolder Kolanski, Rafal Michal
dspace.entity.type Publication en_US
unsw.accessRights.uri https://purl.org/coar/access_right/c_abf2
unsw.identifier.doi https://doi.org/10.26190/unsworks/23844
unsw.relation.faculty Engineering
unsw.relation.originalPublicationAffiliation Kolanski, Rafal Michal, Computer Science & Engineering, Faculty of Engineering, UNSW en_US
unsw.relation.originalPublicationAffiliation Klein, Gerwin, National ICT Australia en_US
unsw.relation.originalPublicationAffiliation Elphinstone, Kevin, Computer Science & Engineering, Faculty of Engineering, UNSW en_US
unsw.relation.school School of Computer Science and Engineering *
unsw.thesis.degreetype PhD Doctorate en_US
Files
Original bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
whole.pdf
Size:
1.37 MB
Format:
application/pdf
Description:
Resource type