Producer - consumer synchronization, Operating System

Assignment Help:

This assignment is based on Programming Project 6.40 in Silbershatz. Implement the ProducerXConsumer program according to the instructions for Project 6.40 for both Linux and Win32 threads. (1) However BEFORE you add any synchronization to your code use sleep()/usleep() calls to force your code to produce as many different types of synchronization bugs as possible.  Use the output produced by your program and for your Linux implementation only also use 'strace -f' to explain how and where in your code the synchronization bugs occur.  Be sure to use the command line argument for strace - see the man pages for details on this Each of your threads should fprint out a line of output to stderr when it is first started, and again when each buffer of input/output is processed.  

Submit code and annotated  test output for these experiments explaining where the race conditions occur.

NEXT, modify your code by adding appropriate synchronization (mutex locks and/or signal semaphores and/or count semaphores) so that it always executes correctly.   Use diff on Linux & comp on Windows to verify that the input & output files are identical by annotating your trace output clearly and concisely and using diff/comp to compare the contents of the input & output files.  Explain the logic of how you synchronized your code in your design documentation by submitting high level pseudocode with semaphore synchronization (init, p(), v()) and an explanation of the logic that you used; (2)  submit wellXcommented source code and annotated output (including strace listings) to demonstrate that your code is executing correctly, despite the sleep/usleep commands from the previous part.

Run your final program with 3 buffers (each of which is 13 bytes long),  6 producers, 3 consumers and a file that contains about 200 bytes; annotate & submit this output. (3) For the third part of this assignment, modify your synchronization so that a deadlock condition occurs, and document this situation by explaining in your design documentation how deadlock was produced in your code and how it can be avoided.


Related Discussions:- Producer - consumer synchronization

Mechanism by which one segment belong to two address spaces, Q. Explain a m...

Q. Explain a mechanism by which one segment could belong to the address space of two different processes. Answer: Because segment tables are a collection of base-limit register

Identify the binding and non-binding constraints, Crumbles Bakery needs to ...

Crumbles Bakery needs to decide how many and what types of cupcakes to make today. Currently, they make two types of cupcakes: chocolate cupcakes and carrot cake cupcakes. Chocolat

Define the tlsfree(tlsindex) function, Define the TlsFree(TLSIndex) Functio...

Define the TlsFree(TLSIndex) Function This function should be called to free a TLSindex allocated by TlsAlloc. It would be executed when there are no more threads in a process

How does communication takes place in a distributed system?, How does commu...

How does communication takes place in a distributed system? Distributed systems depend on the networking for their functionality. A network is a communication path among two

How can an index file be used to speed up, How can an index file be used to...

How can an index file be used to speed up the access in direct-access files? Have an index in memory; the index gives the key and the disk location of its corresponding record.

What are scheduling queues?, What are scheduling queues? Since the proc...

What are scheduling queues? Since the processes enter the system they are put into job queue. This queue contains all processes in the system. The processes that are exist in m

For what reason would such a scheme be useful, Q. A Burroughs B7000/B6000 ...

Q. A Burroughs B7000/B6000 MCP file is able to be tagged as sensitive data. When such a file is removed its storage area is overwritten by some random bits. For what reason would

Explain first fit algorithm, FIRST FIT ALGORITHM Scanning a list along...

FIRST FIT ALGORITHM Scanning a list along with if a free hole is available with necessary space for the process to allocate it allocates the process in that space. The first s

Briefly discuss on bankers algorithm, Briefly discuss on Bankers algorithm?...

Briefly discuss on Bankers algorithm? The resource-allocation graph algorithm is not applicable to a resource-allocation system with multiple examples  for each resource type.

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