150 likes | 269 Vues
This review session aims to cover essential topics in multiprocessing and synchronization for Prelim 1. Key areas of focus include processes, threads, program counter, memory management, race conditions, and critical sections. We'll delve into synchronization methods such as semaphores, monitors, and condition variables, along with classic synchronization problems like the bounded buffer and dining philosophers. Additionally, we'll explore deadlock conditions, prevention, and avoidance strategies, including the Banker's algorithm. Utilize available resources and clarify your doubts during this comprehensive review.
E N D
COMS 414 - Prelim 1 Review Session Multiprocessing and Synchronization Sunny(srg8@cornell.edu) Vivek(vu22@cornell.edu)
Prelim 1 • There are many, many resources available for your Prelim 1 needs: (presented in random order) • Your notes! • The book and its website • FA2000 Homeworks/Solutions • FA2000 Prelim 1 review slides • SP2001 Lecture notes • Newsgroup • Plenty of office hours! • Additional support by appointment
Before we begin … • Any questions from the CS314 review session? • Register set, stack, heap • Program counter • Interrupts / exceptions • Interrupt priority levels • Programmable I/O vs. DMA • Polling • Memory protection (base/limit)
Multitasking • What is a: • Process or Task? • Thread? • What is the difference between a program and a process? • What is in the PCB? • Differences between O/S processes and user processes? • Differences between user-level threads and kernel-level threads?
Multitasking • What is kernel space? • What is user space? • What is a system call? • What is a context switch? • What states may a process be in? • How do processes go between states? • What is a race condition?
Synchronization • What is a critical section? • What are the three requirements for protection of a critical section? • What is busy waiting? • What are atomic instructions? • What is a semaphore?
Synchronization • Three levels of abstraction for concurrent programming: • Hardware instructions • O/S functions • Programming language constructs
Vivek Presents … • Classic Synchronization Problems • Monitors, Condition Variables and Language Support • Deadlocks, Prevention and Avoidance
Monitors • What is a monitor? • What are condition variables? • Differentiate between semaphores and condition variables.
Synchronization Problems • Bounded buffer problem • Readers writers problem • Dining philosophers problems
Deadlock • What is a deadlock? • Necessary conditions for deadlock ?
. . P1 P2 P3 . . R3 Deadlocks R1 R2
Deadlocks R1 R2 . . P1 P2 P3 . . . R3 P4
Deadlock Prevention Make sure that one of the necessary conditions does not hold -- Mutual exclusion -- Hold and Wait -- No Pre Emption -- Circular Wait
Deadlock Avoidance • What is it? • What is Safe State? • Safety Check? • Bankers Algorithm