Computer_Science
 Home | People | Curriculum | Projects | Resources | Media

CMSC 356: Concurrency and Co-Design in Operating Systems

Instructor: David Wonnacott

Semester: Spring 2011

Schedule: Lecture T/Th 1:00-2:30; Lab t.b.a.

Texts:

Requirements: Exams, weekly homework or lab assignments, class participation.

Collaboration: You are encouraged to discuss the lecture material, labs, and written work with other students, subject to the following restriction: the only "product" of your discussion should be your memory of it - you may not write up solutions together, or exchange written work or computer files.

Collaboration is not allowed on exams.

Prerequisites: CMSC 240 Concurrent enrollment in this and two other CMSC lab courses requires permission of the instructor.


Related Courses: CMSC 355: Operating Systems is usually taught by Dianna Xu (at Bryn Mawr) with an emphasis on the "kernel design" and "security" aspects of an operating system. CMSC 356 briefly touches on these issues (to provide context), but focuses primarily on general issues of shared-memory concurrency and on the role of hardware/software co-design in the creation of the "device driver" components of an operating system (these typically treated only briefly in CMSC 355).

The instructors for CMSC 356 have communicated with Dianna Xu to ensure minimal content overlap, so that students can take both courses for credit.

Description: A practical introduction to the principles of shared-memory concurrent programming and of hardware/software co-design, which together underlie modern operating systems. This course includes a substantial laboratory component using Java and HERA. Topics covered in this course include:


Schedule:

// Much of the course will focus on principles of concurrent programming, drawing primarily from Doug Lea's book; interspersed with this will be elements of hardware/software co-design for simple I/O. If time permits, additional lectures may focus on other aspects of operating system design and implementation or concurrent programming.

((

) & (
));

// Advanced topics such as:

(

)


Lab Assignments:

 

Haverford College Page maintained by John Dougherty and David Wonnacott.
Computer Science Department, Haverford College.