Reader/Writer Locks operating systems

Learning Goal: I’m working on a computer science project and need an explanation and answer to help me learn.

In this project will

  1. design and implement a reader/writer lock using semaphores that does not starve the readers and does not starve the writers;
  2. write the main C or C++ program that uses the reader/writer lock;
  3. come up with a set of input scenarios that shows the behavior of your nonstarving lock compared to the starving lock.

The readers/writers problem is presented in section 31.5 of the textbook along with the readers/writers lock that starves writers. There may be solutions published in articles over the years – feel free to consult and cite them. It is not acceptable to use code that implements this solution from the Internet or other sources other than your own work. It is acceptable to use the code from the textbook as your starter code, if useful.

This is an individual project.

The deliverables of this project are

  • A report (in PDF) that includes
    • A short description of the problem you address in your own words.
    • Both a written description in plain English and pseudocode of your solution.
    • An estimation of the time you spent working on the project.

This is likely to be a very short report – do not try to make it longer than it needs. But do make it neat in presentation.

  • A tar file that includes
    • A makefile for easy compilation. The target executable should be rwmain.
    • A README file that describes how to run your project (arguments, etc).
    • A C or C++ program, named readerwriter.c/cpp, that implements the nonstarving locks.
    • A C or C++ program, named main.c/cpp, that uses the locks and shows their
      functionality. Note that the reading/writing parts of the code are only
      simulated: you do not have to read or write a particular data structure;
      instead, you might want to pretend to do it, and take some time such as
reading_writing(){
    int x=0, T;
    T = rand()%10000;
    for(i = 0; i < T; i++)
        for(j = 0; j < T; j++)
            x=i*j;

This function is only meant to waste time for a variable amount of time. Feel free to adjust this code as you see fit (or ignore all together if not useful in your solution).

There are no required inputs to this program. You may use inputs if useful and explain their use in the README file. Output messages useful for testing and debugging may be included as well.

    • An input file, named scenarios.txt, that proves that your lock
      • Is a correct readers/writers lock.
      • Does not starve the writers.
      • Does not starve the readers.
      • Each scenario takes one line (as the traces file in last project)
      • An example and interpretation of this file is below:
        rwrrrrwrr
        wwrrrrwr
        This file contains two scenarios

        1. One in which one reader arrives first, then a writer, then four more readers, another writer, then two more readers.
        2. And the second in which two writers arrive first, then four readers, one more writer, and one more reader.
      • You want these scenarios to test corner cases that are relevant for the point of your design: specifically, that writers will not starve. Thus, you design these test scenarios to make it possible for writers to starve. You do not need lots of readers/writers to make the case. You might want to limit each scenario to 10–15 readers and writers at the very most.

To ease the task of grading, please name your files as requested and put all these files in the same folder. In addition, please hardcode the file name for scenarios.txt with the relative path (not the absolute path) in your main.c/cpp code, e.g.,

FILE* ptr = fopen("scenarios.txt ","r");
Get 20% Discount on This Paper
Pages (550 words)
Approximate price: -

Try it now!

Get 20% Discount on This Paper

We'll send you the first draft for approval by at
Total price:
$0.00

How it works?

Follow these simple steps to get your paper done

Place your order

Fill in the order form and provide all details of your assignment.

Proceed with the payment

Choose the payment system that suits you most.

Receive the final file

Once your paper is ready, we will email it to you.

Our Services

Paper Helper has assembled a team of highly skilled writers with diverse experience in the online writing circles. Our aim is to become a one stop shop for all your Academic/ online writing. Check out below our amazing service!

Essays

Essay Writing Services

At Paper Helper, we prioritize on all aspects that creates a good grade such as impeccable grammar, proper structure, zero-plagiarism, and conformance to guidelines. The principal purpose of essay writing is to present the author's evaluation concerning a singular subject about which they have made. Since Professionalism is the mother of every success, try our team of experienced writers in helping you complete your essays and other assignments.

Admissions

Admission Papers

You have been trying to join that prestigious institution you long yearned for, but the hurdle of an admission essay has become a stumbling block. We have your back, with our proven team that has gained invaluable experience over time, your chance of joining that institution is now! Just let us work on that essay.How do you write an admission essay? How do you begin the essay? For answers, try Quality Custom Writers Now!

Editing

Editing and Proofreading

Regardless of whether you're pleased with your composing abilities, it's never an impractical notion to have a second eye go through your work. The best editing services leaves no mistake untouched. We recognize the stuff needed to polish up a writing; as a component of our editing and proofreading, we'll change and refine your write up to guarantee it's amazing, and blunder free. Our group of expert editors will examine your work, giving an impeccable touch of English while ensuring your punctuation and sentence structures are top-notch.

Coursework

Technical papers

We pride ourselves in having a team of clinical writers. The stringent and rigorous vetting process ensures that only the best persons for job. We hire qualified PhD and MA writers only. We equally offer our team of writers bonuses and incentives to motivate their working spirit in terms of delivering original, unique, and informative content. They are our resources drawn from diverse fields. Therefore your technical paper is in the right hands. Every paper is assessed and only the writers with the technical know-how in that field get to work on it.

Coursework

College Essay Writing

If all along you have been looking for a trustworthy college essay service provider that provides superb academic papers at reasonable prices, then be glad that you search has ended with us. We are your best choice! Get high-quality college essay writing from our magnificent team of knowledgeable and dedicated writers right now!

Coursework

Quality Assignment/Homework Help

We give the students premium quality assignments, without alarming them with plagiarism and referencing issues. We ensure that the assignments stick to the rules given by the tutors. We are specific about the deadlines you give us. We assure you that you will get your papers well in advance, knowing that you will review and return it if there are any changes, which should be incorporated.