answersLogoWhite

0


Best Answer

1) CRITICAL REGIONS

a) Motivation

The time dependent errors can be easily generated when semaphores are used to solve

the critical section problem. To overcome this difficulty a new language construct, the

critical region was introduced.

b) Definition and notation

A variable v of type T, which is to be shared among many processes, can be declared:

VAR v: SHARED T;

The variable v can be accessed only inside a region statement of the following form:

REGION v DO S;

This construct means that while statement S is being executed, no other process can access the variable v. Thus, if the two statements,

REGION v DO S1;

REGION v DO S2;

are executed concurrently in distinct sequential processes, the result will be equivalent

to the sequential execution S1 followed by S2, or S2 followed by S1.

To illustrate this construct, consider the frames CLASS defined in abstract data type.

Since mutual exclusion is required when accessing the array free, we need to declare

it as a shared array.

VAR free: SHARED ARRAY [l..n] OF boolean;

The acquire procedure must be rewritten as follows;

PROCEDURE ENTRY acquire (MAR index: integer);

BEGIN

REGION free DO

FOR index := 1 TO n DO

IF free[index] THEN

BEGIN

free[index] := false;

exit;

END;

index := 1;

END;

The critical-region construct guards against some simple errors associated with the semaphore solution to the critical section problem which may be made by a programmer.

c) Compiler implementation of the critical region construct.

For each declaration

VAR v: SHARED T;

the compiler generates a semaphore v-mutex initialized to 1. For each statement,

REGION v DO S;

the compiler generates the following code:

p(v-mutex);

S;

V(v-mutex);

Critical region may also be nested. In this case, however, deadlocks may result.

Example of deadlock)

VAR x, y: SHARED T;

PARBEGIN

Q: REGION x DO REGION y DO S1;

R: REGION y DO REGION x DO S2;

PAREND;

2) CONDITIONAL CRITICAL REGIONS

The critical region construct can be effectively used to solve the critical section problem.

It cannot, however, be used to solve some general synchronization problems. For this

reason the conditional critical region was introduced.

The major difference between the critical region and the conditional critical region

constructs is in the region statement, which now has the form:

REGION v WHEN B DO S;

where B is a boolean expression.

As before, regions referring to the same shared variable exclude each other in time.

Now, however, when a process enters the critical section region. the boolean expression

B is evaluated if the expression is true, statement S is executed. if it is false, the

process relinquishes the mutual exclusion and is delayed until B becomes lame and no

other process is in the region associated with v.

Example for bounded buffer problem)

VAR buffer: SHARED RECORD

pool: ARRAY [0..n-l] OF item;

count, in. out: integer;

END;

The producer process inserts a new item nextp in buffer by executing

REGION buffer WHEN count < n DO

BEGIN

pool[in] := nextp;

in := in + i MOD n;

count := count + 1;

END;

The counter process removes an item from the shared buffer and puts it in nextc by

executing:

REGION buffer WHEN count > 0 DO

BEGIN

nextc := pool[out];

out := out +1 MOD n;

count := count - 1;

END;

However, the CLASS concept alone cannot guarantee that such sequences will be

observed.

* A process might operate on the file without first gaining access permission to it;

* A process might never release the file once it has been granted access to it;

* A process might attempt to release a file that it never required;

* A process might request the same file twice;

Not that we have now encountered difficulties that are similar in nature to those that

motivated us to develop the critical region construct in the first place. Previously, we

had to worry about the correct use of Semaphores. Now we have to worry about the

correct useo higher-level programmer-defined operations, with which the comelier can

no longer assist us.

User Avatar

Wiki User

13y ago
This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: What is critical region in operating systems?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Related questions

In addition to personal operating systems and server operating systems there are also mobile operating systems and?

Virtual operating system


What is an example of a real-time operating system?

there are: &bull; bookings (any) &bull; games &bull; control process (any) &bull; safety critical systems &bull; any other suitable example


Advantages of network operating systems?

When you network operating systems you will have the benefit of both operating systems. You have to ensure both systems are compatible before networking them.


Critical software facilities?

The most critical software facilities is the system software particularly the operating system for this systems are the one responsible for the operations and the proper running of all the hardware and the correct execution of tasks given by a program.


What are the examples of oparating systems in the application software?

Operating systems are not in applications. Applications are installed on Operating Systems.


Different types of Microsoft operating systems?

several types of operating systems are there.


What are the disadvantages of operating systems?

what are the disadvantages of operating systems effects of information technology


Do Supercomputers use single-user multitask operating systems?

Single-user multitask operating systems are also known as network operating systems


What are the three operating systems and who makes them?

There are loads more than three - most are designed for a specific purpose, especially for safety critical applications. Three are: Windows Linux Solaris Type in Operating Systems to wikipedia. Why don't people check wikipedia before asking silly questions like this?


What are two operating systems?

Two operating systems are; Windows, and Linux.


Do game systems have operating systems?

No they don't.


Some stand-alone operating systems are called?

complete operating system that works on a desktop computers