CSE 381 Systems 2: OS, Currency, Virtualization, and Security (3 credits)

Typically offered only during during the fall semester.

Catalog description:

Introduction to operating systems concepts. The operating system as a resource manager. The principles for the design and implementation of operating systems. Process scheduling and deadlock prevention. Memory management, virtual memory, paging, and segmentation. Interrupt processing. Device management, I/O systems and I/O processing. Concurrency and multithreading. Virtualization and cloud services. Security and protection.


CSE 278: Systems 1

Required topics (approximate weeks allocated):

  • C/C++ (3 weeks)
    • dynamic memory
    • iterators
    • <algorithm>
    • using custom classes in set, sort, etc.
  • OS topics (3.5 weeks)
    • processes
    • virtual vs physical memory
    • paging
    • boot sequence
    • File Organization including Network File Systems
    • Basic Permissions and security
    • Caching
    • Risc/Cisc
    • Embedded OS (batch, real time, multitasking)
  • Threaded Programming (3 weeks)
  • Cloud Services (1 week)
    • Introduction to virtualization
    • AWS, Azure, Openstack…
  • Device Drivers and Libraries (.5 weeks)
    • DLLs, share Objects
  • IPC (.5 weeks)
    • Shared Memory
    • Semaphores
    • Pipes
  • Architecture (1 week)
  • Security (1 week)
  • OS Security
    • Buffer Overflow
    • Input Checking
    • Race Conditions
    • Viruses/Trojans/RootKits
    • Firewalls
  • Exams (.5 weeks)

Learning Outcomes:

1. Carry out the key steps involved in loading and starting an operating system
2. Critique the design and tradeoffs in file systems and computer memory hierarchy and their interfaces
3. Use Multiprocessing and Inter-Process Communication (IPC) concepts and tools including pipes to monitor and control processes
4. Use Concurrency and Multithreaded programming concepts to create processes with multiple cooperating threads in ways that avoid deadlock and livelock.
5. Use virtualization and cloud services in effective ways
6. Use various security features provided by an operating system to avoid common security problems such as buffer overflow, stack smaching, trojans, and root kit problems.