Producer-consumer using condition variables, Operating System

Assignment Help:

Now let us present an implementation of a producer-consumer system using condition variables. This implementation works.

dequeue()

lock(A)

while (queue empty) {
wait(A, C) // atomically releases lock A and sleeps, waiting for
// condition variable C.
// When the thread wakes up, it re-acquires the lock.
// C is the condition variable that means ''queue not empty''.
}

remove_item()
unlock(A)
enqueue()
lock(A)
insert_item()
signal(C)
unlock(A)

In dequeue() above, if the thread wakes up and by chance the queue is empty, there is no problem: that's why we need the "while" loop.


Related Discussions:- Producer-consumer using condition variables

Invalid page fault, Invalid page fault :If a page fault happens for a ref...

Invalid page fault :If a page fault happens for a reference to an address that's not part of the virtual address space, so that there could not be a page in memory corresponding

Information system, using the transformation process model and system think...

using the transformation process model and system thinking concepts explain the key operation of TGL works.

Binary and data representation, Computing uses three number bases:- Binary ...

Computing uses three number bases:- Binary (base 2), Octal (base 8) and Hexadecimal (base 16). Binary has been described before, although various catchphrases are used to describe

Networking sockets with the use of shared memory, Q. Compare the utilizatio...

Q. Compare the utilization of networking sockets with the use of shared memory as a mechanism for communicating data between processes on a single computer. What are the merits of

Explain the advantage of assembly language, Explain the Advantage of Assemb...

Explain the Advantage of Assembly Language The advantages of assembly language program is: a)    Reduced errors  b)    Faster translation times  c)    Changes could be ma

Explain threads in details?, What are threads? A thread - sometimes c...

What are threads? A thread - sometimes called as an implementation context or a lightweight process - is a single sequential flow of control within a program. We use threads

What are the issues in designing a network, Normal 0 false fa...

Normal 0 false false false EN-US X-NONE X-NONE MicrosoftInternetExplorer4

Explain lru approximation page replacement in detail, LRU approximation pag...

LRU approximation page replacement In this we utilize the reference bit associated with the page entry to choose a page to be removed. The various algorithms used for the imp

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd