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

Lecture Operating system principles - Chapter 5: Concurrency: Mutual exclusion and synchronization

42 68 1

Đ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 42
Dung lượng 495,32 KB

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

Nội dung

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

Trang 3

Interleaving and Overlapping Processes

• Earlier (Ch2) we saw that processes may

be interleaved on uniprocessors

Trang 4

Interleaving and Overlapping Processes

• And not only interleaved but overlapped on

multi-processors

• Both interleaving and overlapping present the

same problems in concurrent processing

Trang 5

One Difficulty of

Concurrency

• Sharing of global resources can be

problematic

Trang 8

Enforce Single Access

• If we enforce a rule that only one process may

enter the function at a time then:

– P1 & P2 run on separate processors

– P1 enters echo first,

• P2 tries to enter but is blocked

– P1 completes execution

• P2 resumes and executes echo

Solution: Control access

Trang 9

Competition among Processes for Resources

Three main control problems:

• Need for Mutual Exclusion

– Only one program at a time be allowed in its

critical section.

– Critical resource: nonsharable resource,

e.g., printer

– Critical section: portion of the program that

uses a critical resource

• Deadlock

• Starvation

Trang 10

Requirements for Mutual Exclusion

• Only one process at a time is allowed in

the critical section for a resource

• A process that halts in its noncritical

section must do so without interfering with other processes

• No deadlock or starvation

Trang 11

Requirements for Mutual Exclusion

• A process must not be delayed access to

a critical section when there is no other

process using it

• No assumptions are made about relative

process speeds or number of processes

• A process remains inside its critical section for a finite time only

Trang 13

Disabling Interrupts

• Uniprocessors only allow interleaving

• Interrupt Disabling

– A process runs until it invokes an operating

system service or until it is interrupted

– Disabling interrupts guarantees mutual

exclusion because the critical section cannot

be interrupted

Trang 15

Special Machine

Instructions

• Use of atomic action: instruction is treated

as a single step that cannot be interrupted

– Compare&Swap Instruction

int compare_and_swap (int *word,

int testval, int newval) { /* checks a memory location (*word) against a test value

Trang 16

Mutual Exclusion (fig 5.2)

• The only process

that may enter its

Trang 17

Hardware Mutual Exclusion: Advantages

• Applicable to any number of processes on either a single processor or multiple

processors sharing main memory

• It is simple and therefore easy to verify

• It can be used to support multiple critical

sections

Trang 18

Hardware Mutual Exclusion: Disadvantages

• Busy-waiting consumes processor time

• Starvation is possible when a process leaves a

critical section and more than one process is

waiting

– Some process could indefinitely be denied access

because selection of a waiting process is arbitrary

• Deadlock is possible

Trang 20

• Fundamental principle: Processes can

cooperate by means of simple signal such that a process can be forced to stop at a

specified place until it has received a

specific signal

Trang 21

• Semaphore:

– An integer value used for signalling among

processes

• Only three operations may be performed

on a semaphore, all of which are atomic:

– initialize (to a nonnegative integer value)

– decrement (semWait), to receive a signal

– increment (semSignal), to transmit a signal

Trang 22

Semaphore Primitives

Trang 23

Binary Semaphore

Primitives

Trang 24

Strong/Weak Semaphore

• A queue is used to hold processes waiting

on the semaphore

– In what order are processes removed from the queue?

• Strong Semaphores use FIFO

• Weak Semaphores don’t specify the

Trang 25

Mutual Exclusion Using

Semaphores

1 The first process that executes a semWait will be able to enter the critical section immediately,

setting the value of s to 0

2 Any other processes attempting

to enter the critical section will find it busy and will be blocked

Trang 26

Processes Accessing Shared Data Using

Trang 27

Mutual Exclusion Using

Semaphores

• The semaphore can be initialized to a

specified value to allow more than one

process in its critical section at a time

– s.count 0: the number of processes that can execute semWait(s) without suspension

– s.count < 0: the magnitude is the number

processes suspended in s.queue

Trang 28

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

• The Problem:

Trang 30

The producer can generate items and store them in the buffer

at its own pace Each time, in is incremented

The consumer must

make sure that the

producer has

advanced beyond it

( in > out) before

proceeding

Trang 31

Prevent the consumer and any other producer from accessing the buffer during the append operation

n is equal to the number of items

in the buffer

The consumer must wait on both semaphores before proceeding

Trang 33

Functions in a Bounded Buffer

w = b[out];

out = (out + 1) % n;

/* consume item w

in and out are initialized to 0 and n is the size of the buffer

Trang 34

e keeps track of the number

of empty spaces

Trang 36

Readers/Writers Problem

• A data area (e.g., a file) is shared among

many processes

– Some processes (readers) only read the data

area, some (writers) only write to the area

• Conditions to satisfy:

1.Multiple readers may simultaneously read the file 2.Only one writer at a time may write

Trang 37

Readers have Priority

wsem is used to enforce

mutual exclusion: as long as one writer is accessing the shared data area, no other

the first reader that attempts to

read should wait on wsem

readcount keeps track of the

number of readers

x is used to assure that

readcount is updated properly

Trang 38

Readers/Writers Problem

• Once a single reader has begun to access the data area, it is possible for readers to

retain control of the data area as long as

there is at least one reader reading

– Therefore, writers are subject to starvation

• An alternative solution: no new readers

are allowed access to the data area once

Trang 39

Writers have Priority

rsem inhibits all readers while

there is at least one writer desiring access to the data area

y controls the updating of writecount

writecount controls the setting

of rsem

Trang 40

Writers have Priority

only one reader is allowed to

queue on rsem, with any additional readers queuing on z

Trang 41

Writers have Priority

Trang 42

Key Terms

Ngày đăng: 30/01/2020, 05:11

TỪ KHÓA LIÊN QUAN