Topics |
- Computer generations, Von Neumann architecture, batch processing, punched cards, computer family, emulation, batch multiprogramming, time-sharing
- Hardware: CPU registers, pipelining, interrupts, memory, cache, I/O
- Command line interpreters, kernel, system calls, monolithic kernel, multitier architecture, microkernel, client-server model, virtual machine, UNIX, Windows
- Processes, Process Control Block (PCB), process states, fork / exec, example: shell
- Threads, POSIX threads, synchronization of threads, threads in userspace, example: webserver
- Scheduling: static/dynamic, First-Come First-Served, Shortest Job First, Shortest Remaining Time Next, Round-Robin, (dynamic) priorities, QNX, Rate Monotonic Scheduling, Earliest Deadline First, UNIX, Windows
- critical sections, busy-waiting, priority inversion problem, mutex, semaphore, producer-consumer problem, conditional variables, monitors, IPC
- Deadlocks: forming, recognition, correction, prevention, avoidance
- Memory management: addressing, relocation, swapping, partitioning, placement strategies, paging, page table, MMU / TLB
- Page replacement algorithms: NRU, FIFO, Second Chance, Clock, LRU, NFU, Aging, Working Set, WSClock
- Controller, Memory Mapped I/O, I/O Mapped I/O, device drivers, buffering
- Hard disc drives, slices, tracks, sectors, cylinders, zones, Scheduling algorithms (SSTF, elevator), cache
- File systems: names, extensions, attributes, directories, operations, data structure (contiguous, linked lists, FAT, inodes), block sizes, backups, consistency, virtual file systems, NFS
|