Introduction & Background
- Introduction to operating system, Application software, System software, Machine language,
- Microprogramming, Physical devices
- History of Operating Systems, Introduction to Unix, MS-DOS and Windows
Operating System Structure
- Process management, Memory management, File management, I/O system management, Secondary storage management, Networking
- System protection, Operating system services
- OS layered approach, OS/2 layer structure, Virtual machines
- System design goals, Mechanisms and policies, Operating system implementation, System generation
Process Concepts
- The process concept, Program vs process
- Process creation, Process control block, Process table, Shell, Operation on processes
- Kernel/kernel mode
- System calls, Types of systems calls
- Interrupts, Interrupt processing, Types of Interrupts
Memory Management
- Memory, memory hierarchy, Process loading and swapping, Memory management, Memory allocation methods, Single partition allocation
- Storage management strategies, Fetch strategies, Placement strategies, Replacement strategies, Variable partition with compaction,
- Non contiguous memory allocation: Paging vs Segmentation, Simple paging, Implementation of paging, Simple segmentation, Segment addressing,
Virtual Memory
- Virtual memory, Mechanism of virtual memory, Address translation, Page fault,
- Page replacement, Page replacement algorithm, FIFO, Belady’s anomaly, Optimal LRU, Random page replacement, LFU, MFU, Non-used recently page replacement algorithm
- Paging Mechanism, Additional techniques, Memory protection and sharing, MS-DOS Memory management, Windows memory management, Unix memory management
Process Management
- Context Switch, Process states, Process states transitions, Process life cycle, Five state process model, Unix process state transition diagram
- Scheduler, Scheduling algorithm, Objectives of Scheduling, Criteria for scheduling, CPU-bound vs I/O-bound processes
- Types of Scheduling, Process scheduling queues
- FCFS, SJF, Priority, Round Robin, Multilevel feedback queues scheduling
- BSD Unix scheduling, Multiple processor scheduling
- Threads, Thread support Solaris
Threads & Multitasking
- Multitasking, Threads
- Types of threads, Kernel threads, User level threads
- Multithreading model, One to One Model, Many to One Model, Many to Many Model
- Solaris 2 threads, Windows 2000 threads, Linux threads, Java threads
Concurrent Processes
- Concurrent processes, Resources, Race condition
- Critical section, Mutual Exclusion, Deadlock
Inter-process communication
- Pipes, Semaphores, use of semaphore for critical section problem, Monitors, Signals, Message passing, use of messages for synchronization, Shared memory, Object linking & embedding