Skip to Content

University of Colorado Boulder
Search

Search

Computer Science
College of Engineering and Applied Science
Computer Science

Main menu

  • Home
  • Academics
  • Research
  • People
  • News & Events
  • Admissions

Secondary Menu

  • Students
  • Engage
  • Faculty/Staff Resources

Mobile menu

  • Home
  • Academics
  • Research
  • People
  • News & Events
  • Admissions
  • Students
  • Engage
  • Faculty/Staff Resources
  • About
  • Admissions
  • Contact Us
  • Jobs
  • Funding Opportunities

CSPB 3753 - Design and Analysis of Operating Systems

Course Details

*Note: This course description is only applicable for the Computer Science Post-Baccalaureate program. Additionally, students must always refer to course syllabus for the most up to date information. 

  • Credits: 4.0 
  • Prerequisites: CSPB or CSCI 2270 Data Structures and CSPB or CSCI 2824 Discrete Structures (all minimum grade C-). Need to be able to write code in ‘C’ for inclusion in the operating system.
  • Recommended Prerequisite: CSPB or CSCI 3308 Software Development Methods and Tools
  • Minimum Passing Grade: C-
  • Textbook: "Operating System Concepts", 10th Edition, Abraham Silberschatz, Peter Galvin, Greg Gagne (electronic or hardcover) 

Brief Description of Course Content

Examines the structure and function of operating systems as an intermediary between applications and computer hardware.

Topics include OS design goals, hardware management, multitasking, process and thread abstractions, file and memory management, security, and networking. Upon completion, students should be able to perform operating systems functions at the support level in a single-user environment.  

Microcontrollers are ubiquitous in the modern world, in everything from your toaster, microwave, and refrigerator, to the complex and sophisticated systems in satellites and self-driving vehicles.  We have augmented our Operating Systems course to use a Raspberry Pi in hands-on assignments such as adding systems calls to the Linux operating system running on the Raspberry Pi.  The goal is for you to learn to apply the theory of operating systems and gain experience physically working with and changing a real working computer.

Specific Goals for the Course

Specific Outcomes of Instruction
Upon completion of this course, students are able to:
  • Explain basic concepts in the design and structure of operating systems, including kernel/user mode, system calls, preemptive multitasking, and monolithic/microkernel structure.
  • Describe how interrupt-based processing achieves efficient management of device input/output communication.
  • Define processes and threads, describe different ways to communicate between processes and threads, and apply mutual exclusion-based solutions to synchronize multi-threaded processes without deadlock occurring.
  • Identify different scheduling algorithms and their suitability for different types of applications, including compute-bound, I/O-bound and real time.
  • Explain the concept of virtual memory, the rationale for on-demand paging, and the role of working sets to avoid thrashing in a caching-based memory hierarchy.
  • Demonstrate understanding of fundamental concepts in file system design, including linked and indexed file allocation, mounting, a virtual file system layer, memory mapping, journaling, and performance optimizations for storage media (magnetic and solid state).
  • Describe basic concepts to secure and protect operating systems.
  • Explain basic concepts in networked operating systems design, including layered network architecture and distributed file systems structure.
  • Describe the basic concept of a virtual machine and different types of virtual machines.
  • Successfully modify, add functionality to, and re-compile the kernel of an operating system.

Brief List of Topics to be Covered
  • Operating System Design and Structure
  • Device Input/Output Management
  • Process and Thread Management and Scheduling
  • Inter-Process Communication and Synchronization
  • Memory Management 
  • File System and Storage Management 
  • Security
  • Networking
  • Virtual Machines

Mathematical Concepts Used in Course
Basic arithmatic, averages, recursions, and random numbers and distributions.

Return to Course List

  • Facebook
  • Twitter
  • LinkedIn
  • Instagram
  • YouTube

Apply  Visit  Give

Departments

  • Ann and H.J. Smead Aerospace Engineering Sciences
  • Chemical & Biological Engineering
  • Civil, Environmental & Architectural Engineering
  • Computer Science
  • Electrical, Computer & Energy Engineering
  • Paul M. Rady Mechanical Engineering

Programs

  • Applied Mathematics
  • Biomedical Engineering
  • Creative Technology & Design
  • Engineering Management
  • Engineering Physics
  • Engineering Plus
  • Environmental Engineering
  • Materials Science & Engineering

Affiliates & Partners

  • ATLAS Institute
  • BOLD Center
  • Colorado Mesa University
  • Colorado Space Grant Consortium
  • Discovery Learning
  • Engineering Honors
  • Engineering Leadership
  • Entrepreneurship

 

  • Herbst Program for Engineering, Ethics & Society
  • Idea Forge
  • Integrated Teaching and Learning
  • Global Engineering
  • Mortenson Center for Global Engineering
  • National Center for Women & Information Technology
  • Western Colorado University

Footer menu

  • About
  • Admissions
  • Contact Us
  • Jobs
  • Funding Opportunities

Computer Science

1111 Engineering Drive
ECOT 717, 430 UCB
Boulder, CO 80309-0430 USA
Phone: 303-492-7514
Contact Us by Email
Fax: 303-492-2844   
GPS Coordinates 40.006387, -105.261582

College of Engineering & Applied Science
Phone: 303-492-5071
Email: cueng@colorado.edu

Connect with CU Engineering

  • Facebook
  • Twitter
  • YouTube
  • LinkedIn
  • Instagram

University of Colorado Boulder

University of Colorado Boulder
© Regents of the University of Colorado
Privacy • Legal & Trademarks • Campus Map

Return to the top of the page