CSE 535 -- Asynchronous Systems

Fall 2007






Information for Students

Meeting Time and Place

MW 5:20 - 6:40, Room: Computer Science Bldg Conference Room, Rm 1441

Prerequisites

The prerequisite course for CSE 535 is CSE 306 (Operating Systems).

Instructor

Scott A. Smolka: sas@cs.sunysb.edu, http://www.cs.sunysb.edu/~sas/

Office

Computer Science Building, Room #1423, ext. 2-8453

Office Hours

Mon 4:00pm-5:00pm, or by appointment

Textbooks

Michael Huth and Mark Ryan, Logic in Computer Science -- Modelling and Reasoning about Systems (2nd edition), Cambridge University Press, 2004. ISBN 0 521 54310X paperback.

Glynn Winskel, The Formal Semantics of Programming Languages, The MIT Press, 1993. (Excellent introduction to operational semantics. On reserve in the Computer Science library.)

Course Description

This is a course on the theory and practice of asynchronous systems; i.e., systems composed of concurrently executing sequential processes that, from time to time, synchronize to exchange data or to cooperate on a common task. Asynchronous systems are noteworthy in their absence of a global clock and are generally felt to be much harder to program correctly than their sequential counterparts. Examples of asynchronous systems are multiprogramming computer systems, concurrent/distributed database systems, process-control systems such as a factory automation system or a fly-by-wire aircraft controller, and communication protocols.

The course will cover a variety of techniques for specifying and verifying asynchronous systems. The specification and verification techniques to be covered include temporal logic, hierarchical state machines, model checking, and process algebra. Tools providing automated support for these techniques will also be discussed. A recurring theme of the course will be model checking, a verification technique aimed at determining whether a system specification satisfies a temporal-logic formula.

The following outlines the topics to be covered this semester, and gives an estimate of the time to be spent on each topic:

I. Concurrency Theory
B. Temporal Logic & Model Checking
Temporal Logic (3 weeks)
Model Checking (3 week)
C. Process Algebra
Milner's CCS (3 weeks)
Structural Operational Semantics and Behavioral Equivalences (2 weeks)
Axiom Systems for Process Algebra (1 week)

II. Tools and Applications
A. Spin and Promela (1 week)
B. Murphi model checker (1 week)
C. Protocol Verification (1 week)

Students will be asked to do carry out a semester-long project in specifying and verifying a real-life asynchronous system using an automated verification tool such as the Concurrency Workbench (Stony Brook), XMC (Stony Brook), Murphi (Stanford), MATLAB/Simulink/Stateflow (The MathWorks, Inc.) or Spin (Bell Labs). Several past course projects have turned into peer-reviewed publications in respected CS conferences and journals.

Course Work

The following, which is subject to change, is a summary of the work required for this course.

Reading Assignments: The Huth & Ryan textbook makes for an excellent reference source for the temporal-logic and model-checking portions of the course. In particular, you should read Chapter 1 for a nice review of Propositional Logic, and Chapters 3 and 6 as background material for the lectures on temporal-logic model checking.

Homework Assignments: There will be two or three homework assignments. They will count for 20% of your final grade.

Exams: There will be two in-class exams. They will count for 30% of your final grade.

Course Project: You are to specify and attempt to verify an asynchronous system of your choice using one or more of the verification tools discussed in class. The course project will count for 50% of your final grade.

You can work by yourself or choose a partner from the class. If you work in a team of two, you will be expected to take on a more formidable project. The following schedule will be in effect for the final project:
Oct. 3: Identify the system you will specify and verify, or the programming project you will undertake, and the supporting
documentation for your project.
Nov. 7: Progress report due. You must show significant progress toward completing your project by this date.
Dec. 10: Demonstrate your specification and verification, and hand in final report.

The first task is in some sense the most important and also the most difficult, so get started right away. I will provide ideas for candidate systems, which can be software (e.g., a communications protocol) or hardware (e.g., a cache coherency protocol). Other professors in the department may also contribute ideas for projects (e.g., Profs. Zadok, Grosu and C.R. Ramakrishnan). Please use HTML or Microsoft Word to write your reports and make them accessibile from your homepages.

For the first assignment, please prepare an HTML or Word document containing the following information. Handin a hardcopy in class and include a URL where I can find the document online.

  1. Your name (and partner's name, if applicable)
  2. A brief description of the project you will be carrying out this semester. For those of you who will be specifying and verifying a real-life system such as a communications protocol, be sure to explain exactly what aspects of the system you intend to focus on. Most of the systems you attempt to specify and verify will be too large to consider them in their entirety. Also explain what properties of the system you intend to verify.
  3. A brief fdescription of documentation you will be using. This should contain clickable URLs wherever appropriate.
  4. The verification tool you will be using.

Click here for a description of potential term projects.

If you have a physical, psychological, medical or learning disability that may impact on your ability to carry out assigned course work, I would urge that you contact the staff in the Disabled Student Services office (DSS) in the ECC building (where the Computer Store used to be), 632-6748v/TDD. DSS will review your concerns and determine with you what accommodations are necessary and appropriate. All information and documentation of disability are confidential.

Computing Facilities

Students may use the Computer Science department compserv server machines for their course work. I expect to have many of the tools I discuss this semester available for use on these machines. You may also use your home PCs assuming you have installed the softweare required for the course work.

Grading

NO INCOMPLETES will be given for this course.
Late homeworks and other assignments will be penalized on the order of 5% off for each business day late.
Collaboration on homeworks and exams is not permitted. Students found in violation of this rule of conduct will automatically receive an F on the assignment or exam in question. Two such incidents, over the course of your stay at Stony Brook, will lead to automatic expulsion from the Graduate Program.


Useful links


Scott Smolka
Wed Sep 5 14:25:46 EDT 2007