ECE 69500 - Introduction to Operating Systems

Note:

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

Course Details

Lecture Hours: 3 Credits: 3

Counts as:

  • EE Elective
  • CMPE Special Content Elective

Normally Offered:

Each Fall

Campus/Online:

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

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