Implementation of locks, Operating System

Assignment Help:

How could we implement locks? No matter how we choose to implement them, we must have some hardware support. One possibility for implementing locks on a uniprocessor machine is is to disable interrupts when testing/setting locks. With interrupts disabled on a single processor machine, the processor cannot switch processes, and so we can guarantee that only the active process will have access to the shared data. Another option would be to make use of atomic operations, such as test and set. This type of operation (which usually corresponds to a single atomic assembly instruction) behaves as if it used the following C function, atomically:

int test_and_set(int x) // let x be strictly either 0 or 1.
{
if (x) { return 1; } else { x=1; return 0; }
}

All this needs to be implemented atomically, in hardware. Using this type of atomic operation, one could implement thread lock(l) simply as while test_and_set(l) {

; // do nothing
} // spinlock version of thread_lock()
and thread unlock(l) simply as
l = 0; // we need this to be an atomic clear (or assign) instruction

The assembly instruction test and set can bemade to be atomic acrossmultiple processors. An equivalent option would be an atomic compare and swap assembly instruction. These low-level hardware solutions are then built up into high-level functions, either built into the languages, or in libraries. In general, do not implement your own locking functions, but rather use functions from a tested library. Getting things right can be tricky, and your own solution is also likely to be non-portable.


Related Discussions:- Implementation of locks

What is contiguous allocation, What is contiguous allocation? Allocati...

What is contiguous allocation? Allocation of a group of consecutive sectors for a one file.

Define dynamic linking, Define dynamic linking. Dynamic linking is same...

Define dynamic linking. Dynamic linking is same to dynamic loading, rather that loading being postponed unless execution time, linking is postponed. This feature is usually use

AIMMS3.9, Do you have writers that can use the software AIMMS version 3.9?

Do you have writers that can use the software AIMMS version 3.9?

DOS, Ask question #Minimum 500 words accepted#

Ask question #Minimum 500 words accepted#

Multiprogramming, explain how response time are reduced by allowing time sh...

explain how response time are reduced by allowing time sharing on top of multiprogramming

Define a layer that is not of an io management module, Define a layer that ...

Define a layer that is not of an IO management module  MCS that is Management Control System is not of an IO management module

Process Management, In a table format, discuss the differences between th...

In a table format, discuss the differences between the fixed partition and the variable partition memory organization in terms of the basic idea, memory structure, advantages

Search and print between two words/patterns, what if we need the portion fr...

what if we need the portion from a text based on some keyword. For eg. My file is like below, ------------------------------------------------ Order=[ 1 2 3 4 5 Order=[ 6 7 8 9

Computer number systems, Binary number based systems   Binary is a  ' base...

Binary number based systems   Binary is a  ' base 2' number system, only two numbers exist namely '0' and '1'. Conversion from binary to base 10 is easy if the number column techn

Nachos oprating system assignment, i am just wondering if you have expert i...

i am just wondering if you have expert in nachos operating system thank you

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