Read-write locks, Operating System

Assignment Help:

Consider a large web-based database. In some sense, Google is sort of like this. There might be many users who want to read from the database, but only a few users who are allowed to write to the database. If we use standard locks to control access to the database, the application will be much slower than it could be with a more clever type of lock.

Suppose we have one object that is shared among several threads. Suppose also that each thread is either a reader or a writer. Readers only read data but never modify it, while writers read and modify data. If we know which threads are reading and which ones are writing, what can we do to increase concurrency?

First, we have to prevent two writers from writing at the same time. In addition, a reader cannot read while a writer is writing. There is no problem, however in allowing lots of readers to read at the same time. Read-write locks achieve this, and can greatly improve performance for this sort of application.

Note that the lock is the same for both readers andwriters (called 'rw' in the slides), but the readers use an rlock() on the lock and writers use a wlock() on the same lock. Writers requesting a wlock() will have to wait until all readers and writers have released the lock. Readers requesting a rlock() can acquire it even if other readers are holding the lock. Readers however will still have to wait until any writer holding the lock releases the lock.


Related Discussions:- Read-write locks

What is degree of multiprogramming?, What is degree of multiprogramming ? ...

What is degree of multiprogramming ? Degree of multiprogramming signifies the number of processes in memory. If the degree of Multiprogramming is steady after that the average

What is page fault, Problem: a) The CPU can access 2 storage devices di...

Problem: a) The CPU can access 2 storage devices directly. What are these 2 storage devices? b) Define 2 key issues involved in memory management. c) How do processes sha

What is a latency time, What is a Latency Time Latency Time is the time...

What is a Latency Time Latency Time is the time required through a sector to reach below read/write head.

Define an imperative statement, Determine an imperative statement Imper...

Determine an imperative statement Imperative statement points out an action to be carried out during execution of assembled program

Operating system design, You are required to study the important system com...

You are required to study the important system components, including important data structures, important functions and algorithms, and the various organizational, structural, logi

Selection of a disk-scheduling algorithm, Q. How would utilize of a RAM di...

Q. How would utilize of a RAM disk affect your selection of a disk-scheduling algorithm? What factors would you require to consider? Do the similar considerations apply to hard-di

Operation on file system, Question : The file system is the most visibl...

Question : The file system is the most visible aspect of an operating system. It provides the mechanism for on-line storage and access to both data and programs of the operatin

What are the major differences between operating systems, Q. What are the m...

Q. What are the major differences between operating systems for mainframe computers and personal computers? Answer: In general operating systems for batch systems have simpler

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