Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...


I need help with the following lab. Can anyone explain it to
me on how to approach this problem. Coding would be great
too !!!
No busy waiting allowed. Remember that Java monitors are
'signal and continue'. The input data is called the database
(DB). In this problem, it consists of a single variable
initialized in the main thread, to contain the current time
of day in HH:MM:SS:mmm format (mmm is milliseconds)
truncated to 3 digits. Threads follow these rules:
1. Readers may all attempt to read at the same time, but NOT
if a writer is writing (i.e.; the writer is in the monitor.
2. Writing is exclusive (only 1 writer at a time, no readers
while writing).
3. Options: (to be specified by instructor)
a. Readers have absolute priority over writers.
b. Writers have absolute priority over readers
c. When a reader arrives and a writer is waiting, the reader
is suspended behind the writer instead of being admitted
immediately. Thus, a writer waits for readers that were
running when it arrived, but does not to wait for new readers.

You may program this in C++ or Java. There are 4 controlling
input values:
1. r – number of readers
2. w – number of writers
3. R – delay for a reader to restart
4. W – delay for a writer to restart
Create the following program consisting of 1 main process
(your main program) with n threads:
1. The main thread:
a. Creates the 'n' threads needed. Of these, r of them are
readers and w of them are writers. Starts all readers and
writers.
b. Waits for all 'n' threads to complete. You may use any
method to detect when they are all complete.
c. Prints out the resulting outputs from the threads.
2. Threads:
a. When a thread starts to run, it immediately tries to
enter the monitor.
b. A reader thread reads the DB, outputs the exact message
below, then exits:
>>> DB value read =: HH:MM:SS:mmm by reader number: rr
where the underlined text is replaced with actual data.
c. A writer thread updates the DB with a new value (from the
system time), outputs the exact message below, then exits:
*** DB value set to: HH:MM:SS:mmm by writer number: ww
where the underlined text is replaced with actual data.
d. Each thread accesses the data a total of 10 times,
exiting, then re-entering the monitor after each access.

Hints:
1. File access *might* not be thread-safe, so you should be
prepared to handle this. Read the documentation for the
language you are using.
2. Suggested values for delays are:
a. If looping, R >=1,000,000 and W>=100,000
b. If using “sleep”, then R=100 ms, W=50 ms.

Additional:
• Thread output is to ONE file used by ALL threads (so you
need to synchronize access to it).
• Readers must provide sufficient delay that results are
useful (delay by R before re-trying). R is another input value.
• Writers must also delay. Delay by W, updating the DB each
time. W is an input.
• Test your program with AT LEAST TWO different sets of
values for r and w (#s of readers and writers) plus this
set: r = 4, w=2.

Basic operation of a thread: attempt to enter the monitor.
If unsuccessful, you get put on a queue. When you get in,
read or write the data (depending on type of thread), exit
the monitor, wait the required delay amount, then try again.
Repeat 10 times.


No Answer is Posted For this Question
Be the First to Post Answer

Post New Answer

More C Interview Questions

int zap(int n) { if(n<=1)then zap=1; else zap=zap(n-3)+zap(n-1); } then the call zap(6) gives the values of zap [a] 8 [b] 9 [c] 6 [d] 12 [e] 15

10 Answers   Wipro,


Explain what is meant by 'bit masking'?

0 Answers  


How to convert a binary number to Hexa decimal number?? (Note:Do not convert it into binary and to Hexadecimal)

1 Answers   iLantus, Subex,


write a c/c++ program that takes a 5 digit number and calculates 2 power that number and prints it?

4 Answers  


any limit on the number of functions that might be present in a C program a) max 35 functions b) max 50 functions c) no limit d) none of the above

0 Answers  


Write a code to generate divisors of an integer?

0 Answers   Ericsson,


Find greatest number out of 10 number without using loop.

5 Answers   TCS,


Main must be written as a.the first function in the program b.Second function in the program c.Last function in the program d.any where in the program

19 Answers   CTS, HCL, TCS,


typedef enum { html, java, javascript, perl, cgi } lang;The above statement defines a : a) Union b) User defined type c) Enumerated variable d) none

0 Answers  


write a program to arrange the contents of a 1D array in ascending order

4 Answers  


Why c language?

0 Answers  


What is sizeof c?

0 Answers  


Categories