ECE 69500 - Introduction to Operating Systems


Ran as ECE 59500 in Spring 2017, Spring 2018, Fall 2019 semesters.

Course Details

Lecture Hours: 3 Credits: 3

Areas of Specialization:

  • Computer Engineering

Counts as:

  • EE Elective
  • CMPE Special Content Elective

Normally Offered:

Each Fall


On-campus and online

Requisites by Topic:

C programming, data structures, computer design and prototyping, and basic operating systems.

Catalog Description:

This course will cover basic design principles of major components of modern Operating Systems: 1. Processes Management: processes, threads, CPU scheduling, inter-process communication, process synchronization, mutual exclusion, deadlocks; 2. Memory Management: dynamic address relocation, segmentation, paging, virtual memory, page replacement algorithms, protection, sharing; 3. File Systems: file system interface, file system implementation, including directories, disk allocation, disk scheduling, memory-mapped files, Network File System 4. Storage Systems: Disk structure, disk scheduling, swap-space management, RAID The course will additionally introduce (1) system design principles including extra-level of indirection, optimizing the common case, separation of policy and mechanism, and the principle of locality and caching, (2) advance OS topics such as Network File System, and (3) Case study of a modern OS such as Linux. Students are expected to spend at least three hours per week gaining hands-on experience building major components of a modern time-sharing operating system.

Required Text(s):

  1. Operating System Concepts , 9th Edition , A. Silberschatz, P. Galvin, and G. Gagne , John Wiley & Sons , 2013 , ISBN No. 9781118063330

Recommended Text(s):

  1. Operating Systems: Design and Implementation , 3rd Edition , A. Tannenbaum and A. Woodhull , Pearson Prentice Hall , 2006

Learning Outcomes

A student who successfully fulfills the course requirements will have demonstrated:

  • an understanding of basic concepts of and technologies in processes, process control, synchronization, scheduling, memory management, secondary and tertiary storage management, file systems, distributed and networked operating systems
  • an ability to design and modify components of an operating system
  • an ability to model and analyze the performance of OS components

Lecture Outline:

Weeks Topic
1 Introduction to OS
1 Processes and Threads
2 Processes Synchronization
1 CPU Scheduling
1 Deadlocks
3 Memory Management
3 File Systems
1 Storage Systems
1 Network File System, Distributed Systems
1 Case Study: Linux

Assessment Method:

Exams, programming projects