The course outline is a guideline to topics that will be discussed in the course, and when they will be discussed:
Introduction: multiprogramming, multitasking, interrupt-driven, kernel, system calls, etc. (chapters 1,2)
Process: concept, PCB, context switch, Inter-Process Communication (IPC), Unix programming (signals, pipes, message queues). (chapter 3)
Thread: concept (vs process), thread models, multithreaded programming (Pthreads). (Chapter 4)
CPU scheduling: criteria, algorithm, implementation. (chapter 5)
Process Synchronization (I): critical-section problem & example, bakery algorithm, Peterson’s solution. (chapter 6.1-6.3)
Process Synchronization (II): hardware solution, semaphore, classic problems (B-B, R-W,_ D-P); high-level tools (monitor). (chapter 6.4-6.8)
Deadlock. (chapter 7)
Memory Management (I): logical vs. physical memory, address binding, Contiguous memory allocation. (chapter 8.1-8.3)
Memory Management (II): paging, segmentation, examples. (chapter 8.4-8.8)
Virtual Memory: demand paging, replacement, thrashing. (chapter 9)
Protection and Security (chapters 14 and 15)