TCSS 422: Operating Systems

csu-logo

Announcements Syllabus Grading Schedule Assignments

Home


Prerequisites: TCSS 342 with a 2.0 or better, TCSS 371 with a 2.0 or better

Textbook
Remzi Arpaci-Dusseau, Andrea Arpaci-Dusseau
Operating Systems - Three Easy Pieces, Version 0.90+
Publisher - Lulu Press, 2016.

Optional
Thomas Anderson, Michael Dahlin
Operating Systems: Principles and Practice, 2nd Edition
Publisher: Recursive Books, 2014.
Instructor:
Wes J. Lloyd
Office: Cherry Parkes 229
Office Hours: M 6-7p, W 2:30-3:30p, or by appt
E-mail: wlloyd <@> uw.edu
Tel: (253) 692-5681





Course Information
Operating systems provide an interface between user programs and the underlying hardware providing a means to share the resources of the system across one or more concurrently running programs. Operating systems are used on modern platforms today ranging from supercomputers, to embedded systems, to cellphones, desktops, and more. This course will describe and explore the fundamental architectural and algorithm concepts involved in the design and implementation of modern operating systems. We will draw on core concepts and ideas from prior classes including data structures, algorithms, and computer architecture. This course will introduce key tradeoffs made in operating system design. We will introduce the OS and focus on the following core design principles: processes, inter-process communication, concurrent programming, CPU scheduling, memory management, file systems, device management, and discuss implications of recent multi-core and emerging architectures.

Learning Objectives
A primary objective for this course is learning how to think about complex systems and their dynamics. We will consider how systems are represented and reason about their behavior to support critical thinking about the tradeoff spaces involved in operating system design decisions.

The primary objectives of TCSS 422 is to communicate a diverse array of topics and design tradeoffs which underlie modern Operating Systems. This course will cover a broad range of topics including:

  • Concepts of OS design and operations
  • OS Components and Structure
  • Processes and Threads (kernel, user, and management)
  • Synchronization, Semaphores, Monitors, and Deadlock
  • Scheduling
  • Memory Management
  • Virtual Memory
  • I/O Device Management
  • Filesystems
  • OS principles in the context of Cloud Computing

  • School of Engineering and Techolnogy Support
    Please maintain communication with the School of Engineering and Technology advisors regarding your studies and notify them of any personal or learning struggles. It's important to reach out early: http://www.tacoma.uw.edu/institute-technology/academic-advising

    School of Engineering and Technology Labs
    Key cards for access to the INSTTECH general development labs (DOU 110, SCI 106/108) are available at the Campus Safety Office (DOU 180) on the first day of the quarter. If you registered late, it can take two or more business days after you register before your key card is ready. Additional information about the computer labs can be found at: http://www.tacoma.uw.edu/institute-technology/technology-labs

    Campus Information, Resources, Policies, and Expectations
    Please refer to the general University of Washington - Tacoma Campus Information and Course Resources Policies, and Expectations available online here:
    UWT Campus Information - Course Resources, Policies, and Expectations