Operating Systems
- Operating systems definition, structure and organization, interrupts
- Operating systems structures, user mode and system mode, design and implementation of operating system, system boot, memory hierarchy and performance
- Processes, process scheduling, interprocess communication, communication in client-server systems
- Threads, multi-core programming, thread libraries, threading issues, inter-thread communications
- Process synchronization, the critical-section problem, petersons solution, busy waiting, hardware locks, mutex locks, semaphores, monitors, examples
- deadlock definition, deadlock handling, deadlock prevention, deadlock avoidance, deadlock detection, deadlock recovery, livelock
- CPU scheduling, scheduling criteria, scheduling algorithms, thread scheduling, real-time CPU scheduling, examples and evaluations
- Main memory, swapping, contiguous memory allocation, segmentation, paging, page table, TLB
- Virtual memory, deman paging, page replacement, Thrashing, memory-mapped files
- mass-storage structures, disk structure, attachment, scheduling, management, RAID structure, some implementations of stable storages
- File system interface, access methods, directory and disk structure, file system mounting, file sharing
- file system implementation, allocation methods, free-space management, efficiency and performance, recovery