Teaching Assistant (CS 350)

Undergraduate, University of Waterloo, 2021

Role

Teaching Assistant

Course

CS 350 (Operating Systems)

Terms(s)

  • Fall (Sep. - Dec.) 2021

Language(s)

C

Topics

  • Historical overview of operating system development
  • Operating system architectures
  • Multi-Programming
    • Processes and threads, system calls, context switching
    • Managing processor time
    • Types of scheduling, scheduling algorithms
  • Concurrency Principles of concurrency
    • Mutual exclusion and semaphores
    • Deadlock detection and prevention
  • Memory Management
    • Simple memory management techniques: partitioning, dynamic loading, simple segmentation
    • Virtual addressing and address translation
    • Virtual memory management: segmentation, paging, caching strategies
    • Load control, swapping, and thrashing
  • Device Management
    • Physical structure and properties of devices, device control and interaction, blocking, buffering, disk scheduling, DMA
  • File Systems
    • File naming, types and logical organization
    • Space allocation and management
    • File system interfaces
    • Implementation strategies
    • Case studies
  • Interprocess Communication (5 hours)
    • Terminology and issues, message passing functionality, pipes, sockets, signals, shared memory, and other communication mechanisms

Duties

  • Moderated online discussions on Piazza and answered questions