Salsa Theory Debrief 2

9 downloads 83 Views 30KB Size Report
June 6, 2002. Serguei A. Mokhov, [email protected]. 1. Salsa Theory Debrief 2. COMP346 - Operating Systems. Tutorial 6. Edition 1.1, June 19, 2002 ...
Salsa Theory Debrief 2 COMP346 - Operating Systems Tutorial 6 Edition 1.1, June 19, 2002 June 6, 2002

Serguei A. Mokhov, [email protected]

1

Topics • • • • •

Device Drivers Mutual Exclusion Some Deadlock Processes fork() and exec() System Calls

• Processes vs. Threads, Take II • Message Passing vs. System Calls

June 6, 2002

Serguei A. Mokhov, [email protected]

2

Device Drivers 1. Provide Common Interface (a layer of abstraction) 2. Execute privileged instructions 3. Part of the OS (Why? :-)) 4. Have two halves: • •

Upper Half – Exposes 1. to the rest of OS Lower Half • •

June 6, 2002

Provides Device-Specific implementation of 1 Interrupt handling Serguei A. Mokhov, [email protected]

3

Device Drivers (2) • Mapping independent I/O functions to device-dependent Upper half. Works at CPU’s speed

open() close() read() write() … Buffers to sync data between the halves

Int handling, dev_open(), dev_close()… June 6, 2002

Serguei A. Mokhov, [email protected]

Lower Half. Operates at device’s speed 4

Mutual Exclusion • Possible Implementations: – General semaphores on top of counting ones – Using interrupts

• Drawbacks – ME violation – Starvation

June 6, 2002

Serguei A. Mokhov, [email protected]

5

Drivers • Example: – LP driver

June 6, 2002

Serguei A. Mokhov, [email protected]

6

Mutual Exclusion • Binary semaphores were implemented as separate entities for efficiency reasons [1]. • General semaphores were using binary ones.

June 6, 2002

Serguei A. Mokhov, [email protected]

7

Mutual Exclusion P() { wait(mutex); count – 1; if (count < 0) { signal(mutex); wait(delay); } else { signal(mutex); } }

V() { wait(mutex); count + 1; if (count