CSE 381 Systems 2: OS, Concurrency, 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.
Prerequisites:
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:
- Carry out the key steps involved in loading and starting an operating system
- Critique the design and tradeoffs in file systems and computer memory hierarchy and their interfaces
- Use Multiprocessing and Inter-Process Communication (IPC) concepts and tools including pipes to monitor and control processes
- Use Concurrency and Multithreaded programming concepts to create processes with multiple cooperating threads in ways that avoid deadlock and livelock
- Use virtualization and cloud services in effective ways
- 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