CS703 : Advanced Operating Systems

I like this Course

Course Info

Course Category

Computer Science/Information Technology

Course Level

Graduate

Credit Hours

3

Pre-requisites

N/A

Instructor

Mr. Farhan Zaidi
MS Computer Science
University of Southern California, USA

Course Contents

Course Objectives, Introduction, Issues involved in the design of Operating Systems, Major Components, Structure and Internal Architecture of an OS, Monolithic vs Micro-kernel, Linking and Loading Anatomy of a Process; Static, Dynamic and Shared libraries, Processes: Definition, Address Space; Context Switching, Process Management Models, Process Management Models, State Machines, PCB, System Calls for Process Management, fork() Examples, Zombies, wait and waitpid system calls, Concurrency, Threads, Threads: design space, address space, user and kernel level threads POSIX Threads: interface, e.g; clone() system call, Process/Threads states, FSM in Linux, Shared Variables, Concurrency and Synchronization, Critical Sections, Concurrency examples, Locks, Implementing Locks, Semaphores, Producer Consumer Problem, Semaphores, Condition Variables and monitors, Readers/Writers problem, Thread Safety and reentrant functions, solving thread un-safety, Deadlocks: definition, required conditions, examples, detection, avoidance, prevention, Thread usage paradigms, Paper by Hauser et al., Pros and Cons of different paradigms, Design alternatives for concurrent servers, CPU Scheduling, Scheduling: Round Robin, Priority Scheduling, STCF, Multilevel queue, Scheduling in: Unix, Linux; Multiprocessor Systems, Assignment and Scheduling of processes | threads to Processors, Real-time Systems, Real-time Operating Systems, Goals of a good Allocator, Memory Fragmentation, Implementation Issues of Memory Allocator, Explicit free lists base allocator, Segregated free lists, Exploiting allocation patterns, Goals of OS Memory Management, Multiprogramming, Virtual Addresses, Fixed & Variable Part, Paging, Address Translation, Page Tables & Page Table Entries, Segmentation, Combined Segmentation and Paging, Efficient Translation and Caching, Set Associative & Fully Associative Cache, Demand Paging, Page Replacement Algorithms, Page Replacement, Thrashing, Working Set Model, Page Fault Frequency, Copy on Write, Page Fault Frequency, Sharing, Copy on Write, Mapped Files, P6 Memory System, File Systems: Basic Operations, File Access Methods, Directories, Protection, Indexed Allocation, i-node format, File Buffer Cache, Caching Writes, Read Ahead, Consistency Problem, Atomic Disk Operations, Files Systems (cont.): deleting a file, bogus reference count, creating a new file, FSCK, File Systems (cont.): physical disk structure, disk scheduling, BSD 4.4 FFS, File Systems (cont.): Log Structured File Systems, I/O Subsystem: Goals, Layers, Direct vs Memory Mapped, Interrupt Driven, Polled; DMA, Device Independent I/O Software Layer, Buffered & un-buffered I/O, Block & Char. Devices, Interrupt Handlers, Interrupts & Exceptions, Linux Interrupt Handling, Top, Bottom halfs, Loadable kernel modules & device drivers, Linux module: mgt., conflict resolution, Security Issues, Policy vs Mechanism, Design principles for security, requirements, User Authentication, Password based Authentication, Unix password scheme, ACL vs Capabilities, Delegation vs Revocation, Operations on capabilities, roles, Trojan Horses, Login spoofing attacks, Logic bombs, Trap doors, Buffer & stack overflow, Types of buffer overflow attacks, Methods for fighting, StackGuard & PointGurad, Libsafe, Java security, Unix file security, Setuid programs, Windows security, SE Linux, OS research directions, Reliability of commodity OSes, Mobile phone risks and security