posix mini challenge
play

POSIX mini-challenge Leo Freitas and Jim Woodcock University of - PowerPoint PPT Presentation

POSIX mini-challenge 01 POSIX mini-challenge Leo Freitas and Jim Woodcock University of York December 2006 @ TC Dublin POSIX mini-challenge 02 A grand challenge Tony Hoare automatically verified software: a grand scientific challenge


  1. POSIX mini-challenge 01 POSIX mini-challenge Leo Freitas and Jim Woodcock University of York December 2006 @ TC Dublin

  2. POSIX mini-challenge 02 A grand challenge • Tony Hoare automatically verified software: a grand scientific challenge for computing • UK EPSRC-funded meetings, US NSF-funded meetings • Z¨ urich conference vstte.inf.ethz.ch • Macau conference www.iist.unu.edu/icfem06 • FACJ 2006, IEEE Computer articles, April 2006, October 2006 • research roadmap qpq.csl.sri.com • UK-China network • VSR-net vsr.sourceforge.net

  3. POSIX mini-challenge 03 Hoare’s Verification Grand Challenge A mature scientific discipline should set its own agenda and pursue ideals of purity, generality, and accuracy far beyond current needs what should we do? • achieve a significant body of verified programs • precise external specifications • complete internal specifications • machine-checked proofs of correctness • a collection of verified programs – 1,000,000 lines – replacing existing unverified ones (i.e., UNIX-POSIX)

  4. POSIX mini-challenge 04 Deliverables 1. a comprehensive theory of programming • covering the features needed to build practical and reliable programs 2. a coherent toolset • automating the theory and scaling up to large codes 3. a collection of verified programs

  5. POSIX mini-challenge 05 Formalising POSIX file-stores • requirements • discussion of objectives: JPL mini-challenge! vstte.ethz.ch/Files/joshi-holzmann.pdf • POSIX documentation guideline – standards – formal specification – Morgan & Sufrin’s UNIX file store • achieved so far • choosing formalisms • conclusions • discussion: what now/next?

  6. POSIX mini-challenge — requirements 06 1800 APIs, where shall we start? Proposal: orthogonally layered approach (Intel inspired) • functionality modelling • hardware interfacing • fault-tolerance guarantees • risk/hazard analysis JPL minimal interface c reate, open, close, unlink, read, write, truncate, ftruncate, stat, fstat, mkdir, rmdir, rename, opendir, readdir, rewinddir, closedir, format, mount, unmount

  7. POSIX mini-challenge — requirements 07 What to avoid? — JPL suggestions • user/group/other file permissions • hard- or symbolic-links • sockets, pipes, networking (i.e., have just plain files) In the spare time . . . • user-level operations – encryption – directory contents listing – operations with regular expressions • multi-threading and real-time • generic interface for most NAND devices

  8. POSIX mini-challenge — requirements 08 What is our ambition? • initials scope: POSIX subset enough for flash memory • whole XNFS (network file system) interface • as much user utilities as possible Open questions: • is the whole POSIX to be a target? • set the standard for UNIX domain modelling?

  9. POSIX mini-challenge — requirements 09 What is JPL’s ambition? — fault-tolerance issues • NAND flash hardware faults – bad blocks and read errors • reset robustness “no corruption in the presence of unexpected power loss” • JPL multi-threading disclaimer: performance traded for simplicity “we make the very conservative guarantee that the result of executing concurrent filesystem operations is equivalent to executing them in some serial order”

  10. POSIX mini-challenge — objectives 10 What do we want? Formal model of POSIX/UNIX • functional model • hardware requirements • risk analysis and fault-tolerance dependability • do we intend to aim at coding/prototyping? JPL using our work • minimal subset first • fault-tolerance in hostile environment • flash memory hardware issues (i.e., balance levelling)

  11. POSIX mini-challenge — documentation 11 What documents are available? The Single UNIX Specification Version 3 — Book • index/reference manual for IEEE Std. 1003.1 2001 (POSIX) • CD-ROM: set of (4000p.) requirements + specifications • www.opengroup.org/pubs/catalog/g041.htm • www.opengroup.org/onlinepubs/009695399/ • www.unix.org/version3 Z specification of POSIX — ftp.sei.cmu.edu • *real-time distributed communication* – endpoint data/message transfer: broad/multi/unicast • C-language interface for POSIX

  12. POSIX mini-challenge — documentation 12 What documents are available? XNFS Version 3W — PDF • POSIX (network) file store interface • greatly detailed requirements • www.opengroup.org/pubs/catalog/c702.htm Morgan & Sufrin’s UNIX file store in Z — paper • *refinement to a Z hashmap (JML-aware)* • mechanically verified in Z/Eves • Fu Zheng’s MSc. dissertation

  13. POSIX mini-challenge — documentation 13 What documents are available? Intel flash file system core — PDF • POSIX-aware interface for flash memory devices • detailed requirements and architecture • covers functionality, hardware, and fault-tolerance! • download.intel.com/design/flcomp/manuals/30443601.pdf Other flash memory file systems — WWW • IBM JFSS2 — suitable for NOR FS • YAFFS2 — improved version NOR+NAND (JPL suggestion) • en.wikipedia.org/wiki/YAFFS

  14. POSIX mini-challenge — achievements 14 What do we have already? Morgan & Sufrin’s UNIX file store in Z/Eves IEEE 1003.21 RTDS in Z/Eves • improved version of Z spec. aimed at automation • model of priority message queues • model of endpoints for data transfer • system-wide and local-endpoint operations • multi-cast groups for endpoints • covers IEEE companion requirements document

  15. POSIX mini-challenge — choosing formalisms 15 What shall we use for modelling? • not to be a burden or a competitive task • Z subset to allow interoperability (e.g., with B)? • JML/Spec# translators as target for coding/prototyping? • extend CZT Z2B and Z2JML (prototype) translators Importance of layered work • allows parallelism: functionality � hardware � fault-tolerance • requires an agreed architecture: Intel’s flash memory core (?) • e.g., occam-like POSIX-aware OS available

  16. POSIX mini-challenge — choosing formalisms 16 What shall we use for modelling? Formalism interchange • trading assertions among tools & techniques • Z2B & B2Z translators • JML/Java for prototyping • Spec#/C# for implementation • JML2Spec# ? By-products • domain modelling for UNIX standardisation • interoperability among methods (theory) and their tools (practice)

  17. POSIX mini-challenge — conclusions 17 What have we learned? General theorem proving laws • also used in Mondex, and UNIX hashmap file store • reuse of (general) laws ⇒ greater automation – injectivity: function and sequence updates – finiteness: sets and schema bindings – free types: injectivity of constructors – schema calculus: surgical expansion Open source Z/Eves • Canadian government negotiation for EVES licence • powerful theorem proving technology @ York

  18. POSIX mini-challenge — discussion: what now/next 18 What to do next? Aim at JPL minimal subset of POSIX first What to do with the available models in Z? • refactor them for interoperability with other methods? • redo the models from scratch via requirements doc? How will be integrate/progress our work? • use VSR @ sourceforge for discussion and archive • independent student projects: interoperability of methods/tools?

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend