Skip to main contentSkip Navigation or Skip to Content

COMP 3411: Operating Systems

The purpose of this course is to provide students basic knowledge of operating systems, difference between the kernel and user modes, concepts of application program interfaces, methods and implementations of interrupts. Students are introduced to the schedulers, policies, processes, threads, memory management, virtual memory, protection, access control, and authentication. Students learn system calls in different popular operating systems used in the industry.

Learning outcomes

  • Explain the objectives and functions of modern operating systems.
  • Describe how computing resources are used by application software and managed by system software.
  • Describe reasons for using interrupts, dispatching, and context switching to support concurrency in an operating system.
  • Evaluate the trade-offs in terms of memory size (main memory, cache memory, auxiliary memory) and processor speed.
  • Articulate the need for protection and security in an operating system.

Course topics

  • Module 1: Introduction, and Computer System Structures
  • Module 2: Operating System Structures
  • Module 3: Processes
  • Module 4: Threads
  • Module 5: CPU Scheduling
  • Module 6: Synchronization Tools
  • Module 7: Synchronization Examples
  • Module 8: Deadlocks
  • Module 9: Main Memory Management
  • Module 10: Virtual Memory
  • Module 11: Mass Storage Structure
  • Module 12: Input/Output
  • Module 13: File System Interface
  • Module 14: File System Implementation

Required text and materials

Students require the following e-textbook, which can be purchased directly from the TRU bookstore site at: https://thebookstore.tru.ca/site_digital.asp

  1. Silberschatz, A., Galvin, P.B., & Gagne, G. (2018). Operating System Concepts with Java, (10th ed.). John Wiley & Sons.
    Type: E-Text. ISBN: 9781119320913

Additional requirements

  • Java Programming Language
  • Microsoft Office or other Office software to view Power Point presentations

Assessments

Please be aware that should your course have a final exam, you are responsible for the fee to the online proctoring service, ProctorU, or to the in-person approved Testing Centre. Please contact exams@tru.ca with any questions about this.

To successfully complete this course, students must achieve a passing grade of 50% or higher on the overall course, and 50% or higher on the final mandatory exam.

Assignment 1: Introduction to Linux 5%
Assignment 2: Unix Processes 5%
Assignment 3: Multithread Programming 9%
Assignment 4: Calculation of CPU Scheduling Algorithms 5%
Assignment 5: Process Synchronization 8%
Assignment 6: Memory Management 8%
Assignment 7: Mass Storage 5%
Assignment 8: File Systems 5%
Final Examination (mandatory) 50%
Total: 100%

Open Learning Faculty Member Information

An Open Learning Faculty Member is available to assist students. Students will receive the necessary contact information at the start of the course.

Search To Top