CSE306

Course CSE306
Title Operating Systems
Credits 3
Course Coordinator

Michael Kifer

Description

Students are introduced to the structure of modern operating systems. Topics include virtual memory, resource allocation strategies, concurrency, and protection. The design and implementation of a simple operating system are performed.

Prerequisite C or higher: CSE 219 or CSE 260; CSE 320 or ESE 380; CSE Major or ECE major.
Course Outcomes
  • Understanding of fundamental concepts underlying modern operating systems, including virtual memory and multiprogramming.
  • Working knowledge of the components of operating systems, including file systems, the I/O subsystem, and the CPU scheduler.
  • An ability to design and implement simplified versions of the main modules of operating systems.

Textbook
  • William Stallings
    Operating Systems, Internals and Design Principles (7th edition, latest)
    Pearson (Prentice Hall), March 2012.
    ISBN-10: 0-13-230998-X. ISBN-13: 978-0-13-230998-1
  • Supplementary Material: 
    Tanenbaum, Modern Operating Systems, (3rd edition), Prentice Hall, 2007. ISBN-10: 0-13-600663-9. ISBN-13: 978-0136006633. 
    Abraham Silberschatz, Peter Galvin, Greg Gagne Operating System Concepts (seventh edition), Wiley, 2004. ISBN 0-471-69466-5.

Major Topics Covered in Course
  • Computer architecture
  • Memory management
  • I/O subsystem
  • Resource allocation strategies
  • Concurrency
  • Threads and processes
  • CPU Scheduling

Laboratory Projects
  • Implementation of various modules of operating systems. Typically 3-4 projects that span the period of 8 weeks. The projects are based on either NACHOS or OSP software.

Course Webpage

CSE306