/
Section 3 Section 3

Section 3 - PowerPoint Presentation

myesha-ticknor
myesha-ticknor . @myesha-ticknor
Follow
371 views
Uploaded On 2015-11-27

Section 3 - PPT Presentation

TrueFalse Changing the order of semaphores operations in a program does not matter False TrueFalse Apple was the first company to develop mice and overlapping windows False Xerox ID: 206651

wait signal lock item signal wait item lock release false instance resource deadlock finishes thread send printf hoare allocates

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Section 3" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Section 3Slide2

True/False

Changing the order of semaphores’ operations in a program does not

matter.

FalseSlide3

True/False

Apple was the first company to develop mice and overlapping windows

.

False

: Xerox

Parc

was the first to develop Mice and

WindowsSlide4

True/False

If

the banker's algorithm finds that it's safe to allocate a resource to an existing

thread

, then all threads will eventually complete.

False: The

banker’s algorithm simply prevents resource-related deadlock. One of

the

threads could still go into an infinite loop and fail to complete

.Slide5

Short Answers

List

the four requirements for

deadlock

Mutual

exclusion

Non-

preemptable

Resources hold

and

wait

Circular

chain

of

waiting.Slide6

Deadlock

Consider a system with four processes P1, P2, P3, and P4, and two resources, R1, and R2, respectively.

Each

resource has two instances. Furthermore:

- P1 allocates an instance of R2, and requests an instance of R1;

- P2 allocates an instance of R1, and doesn’t need any other resource;

- P3 allocates an instance of R1 and requires an instance of R2;

- P4 allocates an instance of R2, and doesn’t need any other resourceSlide7

a). Draw the resource allocation graph.Slide8

b). Is there a cycle in the graph? If yes name it

.

P2 and P4 are running, P1 is waiting for R1, and P2 is waiting for R2. Slide9

c). Is the system in deadlock? If yes, explain why. If not, give a possible sequence of executions after

which

every process completes.

There is a cycle, but no deadlock.

- P2 finishes, release R1;

- P4 finishes, release R2;

- P1 acquires R1, finishes and release R1,R2;

- P3 acquires R2, finishes and release R1,R2;Slide10

Producer and ConsumerSlide11

Consider the following two functions implementing a producer and

consumer

by using monitors

:

void send(item) {

lock.acquire

()

enqueue

(item

);

printf

(“before signal()\n”);

dataready.signal

(&lock);

printf

(“after signal()\n”);

lock.release();}

item = get() {

lock.acquire

();

while

(

queue.isEmpty

()) {

printf

(“before wait()\n”);

dataready.wait

(&lock);

printf

(“after wait()\n”);

}

item

=

dequeue

();

lock.release

();

}Slide12

a).

Use no more than three sentences to contrast Hoare and Mesa

monitors

With

Hoare the signaler gives the CPU and the lock to the waiter; With Mesa the

signaler

schedules the waiter, and then finishes.Slide13

b). Assume two threads T1 and T2, as follows

:

T1

T2

send(item); item = get

();

What

are the possible outputs if the monitor uses the Hoare implementation?

[T2, T1]

before

wait

before signal

after wait

after signal

[T1, T2]

before

signal

after_signalSlide14

C). Repeat question (b) for a Mesa implementation of the monitor

[T1, T2]

before

signal

after_signal

[T2, T1]

before

wait

before signal

after signal

after

waitSlide15

d). Now assume a third thread T3, i.e

.,

T1

T2

T3

send(item);

item = get(); send(item

);

What

are the possible outputs if the monitor uses the Hoare implementation?

Please specify from which thread does an output come by specifying the thread id

in

front of the output line, e.g., [T1] before signal or [T2] after

wait.Slide16

[T1, T2/T3] [T3, T1/T2]

[

T1] before signal

[

T3] before signal

[

T1] after

signal

[T3] after

signal

[T3] before signal

[T1] before signal

[T3] after

signal [

T1] after

signalSlide17

[T2, T1, T3] [T2, T3, T1]

[

T2] before

wait

[T2] before

wait

[T1] before

signal

[T3] before

signal

[T2] after

wait

[T2] after

wait

[T1] after

signal

[T3] after signal

[

T3] before signal

[T1] before signal

[T3] after

signal [T1] after signal