1. Trang chủ
  2. » Công Nghệ Thông Tin

Lecture Operating systems: Internals and design principles (6/E): Chapter 5 - William Stallings

75 52 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 75
Dung lượng 646,47 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chapter 5 - Concurrency: Mutual exclusion and synchronization. After studying this chapter, you should be able to: Discuss basic concepts related to concurrency, such as race conditions, OS concerns, and mutual exclusion requirements; understand hardware approaches to supporting mutual exclusion; define and explain semaphores; define and explain monitors;...

Trang 1

Chapter 5 Concurrency: Mutual

Exclusion and

Synchronization

Operating Systems: Internals and Design

Trang 3

Multiple Processes

Systems is managing multiple processes

– Multiprocessing

– Distributed Processing

– Managing the interaction of all of these

processes

Trang 4

– Extension of modular design

– OS themselves implemented as a set of processes or threads

Trang 5

Key Terms

Trang 6

Interleaving and Overlapping Processes

be interleaved on uniprocessors

Trang 7

Interleaving and Overlapping Processes

on multi-processors

Trang 8

Difficulties of Concurrency

resources

results are not deterministic and

reproducible

Trang 11

Enforce Single Access

may enter the function at a time then:

– P2 tries to enter but is blocked – P2 suspends

Trang 12

Race Condition

– Multiple processes or threads read and write data items

– They do so in a way where the final result

depends on the order of execution of the

processes

race last

Trang 13

Operating System

Concerns

raised by the existence of concurrency?

– Keep track of various processes

– Allocate and de-allocate resources

– Protect the data and resources against

interference by other processes.

– Ensure that the processes and outputs are independent of the processing speed

Trang 14

Process Interaction

Trang 15

Competition among Processes for Resources

Three main control problems:

– Critical sections

Trang 16

Requirements for Mutual Exclusion

the critical section for a resource

section must do so without interfering with other processes

Trang 17

Requirements for Mutual Exclusion

a critical section when there is no other

process using it

process speeds or number of processes

for a finite time only

Trang 20

while (true) {

/* disable interrupts */; /* critical section */;

/* enable interrupts */;

/* remainder */;

}

Trang 22

Compare&Swap

Instruction

int compare_and_swap (int *word,

int testval, int newval)

Trang 23

Mutual Exclusion (fig 5.2)

Trang 25

Exchange Instruction

(fig 5.2)

Trang 26

Hardware Mutual Exclusion: Advantages

either a single processor or multiple

processors sharing main memory

sections

Trang 27

Hardware Mutual Exclusion: Disadvantages

leaves a critical section and more than one process is waiting

– Some process could indefinitely be denied

access.

Trang 29

– An integer value used for signalling among processes

on a semaphore, all of which are atomic:

– initialize,

Trang 30

Semaphore Primitives

Trang 31

Binary Semaphore

Primitives

Trang 32

Strong/Weak Semaphore

on the semaphore

– In what order are processes removed from the queue?

order of removal from the queue

Trang 33

Example of Strong

Semaphore Mechanism

Trang 34

Example of Semaphore

Mechanism

Trang 35

Mutual Exclusion Using

Semaphores

Trang 36

Processes Using

Semaphore

Trang 37

Producer/Consumer

Problem

• General Situation:

– One or more producers are generating data and

placing these in a buffer

– A single consumer is taking items out of the buffer

one at time

– Only one producer or consumer may access the

buffer at any one time

– Ensure that the Producer can’t add data into full buffer and consumer can’t remove data from empty buffer

Producer/Consumer Animation

Trang 39

Buffer

Trang 40

Incorrect Solution

Trang 41

Possible Scenario

Trang 42

Correct Solution

Trang 43

Semaphores

Trang 44

Bounded Buffer

Trang 45

Semaphores

Trang 46

Functions in a Bounded Buffer

/* consume item w

*/

}

Trang 47

– Demonstrates the bounded-buffer consumer/producer problem using semaphores.

Trang 49

construct that provides equivalent

functionality to that of semaphores and

that is easier to control

languages, including

– Concurrent Pascal, Pascal-Plus,

– Modula-2, Modula-3, and Java.

Trang 51

variables within a monitor

– only accessible by the monitor.

process on condition c

process blocked after a cwait on the same

condition

Trang 52

Structure of a Monitor

Trang 53

Bounded Buffer Solution

Using Monitor

Trang 54

Solution Using Monitor

Trang 55

Bounded

Buffer Monitor

Trang 57

Process Interaction

two fundamental requirements must be

– Added bonus: It works with shared memory

and with distributed systems

Trang 58

Message Passing

normally provided in the form of a pair of primitives:

Trang 59

– Sender must send before receiver can receive

a send or receive primitive?

– Sender and receiver may or may not be

blocking (waiting for message)

Trang 60

Blocking send, Blocking receive

message is delivered

processes

Trang 61

– Neither party is required to wait

Trang 62

which process should receive the

message

– Direct addressing

– Indirect Addressing

Trang 63

Direct Addressing

of the destination process

time which process a message is

expected

parameter to return a value when the

receive operation has been performed

Trang 64

Indirect addressing

structure consisting of queues

mailbox and the other process picks up the message from the mailbox

Trang 65

Indirect Process Communication

Trang 66

General Message Format

Trang 67

Mutual Exclusion Using

Messages

Trang 68

Producer/Consumer

Messages

Trang 70

Readers/Writers Problem

processes

– Some processes only read the data area,

some only write to the area

1 Multiple readers may read the file at once.

2 Only one writer at a time may write

3 If a writer is writing to the file, no reader may

read it.

interaction of readers and writers.

Trang 71

Readers have Priority

Trang 72

Writers have Priority

Trang 74

Message Passing

Ngày đăng: 30/01/2020, 03:42

TỪ KHÓA LIÊN QUAN