Mar 21, 2023  
2019-2020 Undergraduate Academic Catalog 
2019-2020 Undergraduate Academic Catalog [ARCHIVED CATALOG]

Add to Portfolio (opens a new window)

CS 3840 - Operating Systems

4 lecture hours 0 lab hours 4 credits
Course Description
This course introduces students to the design and implementation of modern operating systems. Topics covered include the history of operating systems, process synchronization and scheduling, deadlock detection and avoidance, memory management, file systems, protection and security, and input/output systems. Students will be exposed to the POSIX interface through lecture and homework assignments. Students will see the construction of a simple operating system executing on a small microprocessor. Students will construct simple shell scripts to run in a UNIX shell. (prereq: (CS 2711  or CE 1921 ) and (CS 2040  or CS 3210 ))
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
  • Identify the components of operating system process management
  • Recognize issues related to concurrent processes and synchronization techniques
  • Discuss and illustrate several approaches to operating system memory management
  • Analyze the usage of memory management systems experimentally
  • Discuss and illustrate commonly used scheduling algorithms
  • Describe input/output handling in operating systems
  • Illustrate file system interfaces and implementation
  • Apply POSIX system calls
  • Construct and execute simple shell scripts

Prerequisites by Topic
  • C/C++ programming experience (including memory management, C/C++ compilation model, structures/unions)
  • RISC Assembly Language programming

Course Topics
  • Course introduction (1 class)
  • Operating systems overview (2 classes)
  • Operating systems architecture and design (1 class)
  • Processes (1 class)
  • Context switching (1)
  • Interprocess communication (2 lectures)
  • Threads (2 lectures)
  • Scheduling (2 lectures)
  • Synchronization (2)
  • Deadlocks (2 lectures)
  • Swapping (1 lecture)
  • Virtual memory (1 lecture)
  • Page replacement algorithms and performance (2 lectures)
  • File systems introduction (1 lecture)
  • Access control (1 lecture)
  • File allocation schemes ( 1 lecture)
  • DMA (1 lecture)
  • Security (2 lectures)
  • Shell scripting (4 lectures)
  • Exams, review, and course assessment (4 lectures)
  • Developing OS topics (4 lectures)

Dr. Walter Schilling

Add to Portfolio (opens a new window)