Table of Contents

Course Outline

The course outline is a guideline to topics that will be discussed in the course, and when they will be discussed:

Weeks 1 and 2

Introduction: multiprogramming, multitasking, interrupt-driven, kernel, system calls, etc. (chapters 1,2)

Week 3

Process: concept, PCB, context switch, Inter-Process Communication (IPC), Unix programming (signals, pipes, message queues). (chapter 3)

Week 4

Thread: concept (vs process), thread models, multithreaded programming (Pthreads). (Chapter 4)

Week 5

CPU scheduling: criteria, algorithm, implementation. (chapter 5)

Week 6

Process Synchronization (I): critical-section problem & example, bakery algorithm, Peterson’s solution. (chapter 6.1-6.3)

Midterm

Week 7

Process Synchronization (II): hardware solution, semaphore, classic problems (B-B, R-W,_ D-P); high-level tools (monitor). (chapter 6.4-6.8)

Week 8

Deadlock. (chapter 7)

Week 9

Memory Management (I): logical vs. physical memory, address binding, Contiguous memory allocation. (chapter 8.1-8.3)

Week 10

Memory Management (II): paging, segmentation, examples. (chapter 8.4-8.8)

Week 11

Virtual Memory: demand paging, replacement, thrashing. (chapter 9)

Week 12

Protection and Security (chapters 14 and 15)