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.
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.
what are the disadvantages of operating systems effects of information technology
what are hierachies are used for process in operating systems
Operating systems are designed to manage computer hardware and software resources
Operating systems are used in caculators. Operating systems act as a layer between applications and the hardware allowing for smooth operations between the two.
Virtual operating system
there are: • bookings (any) • games • control process (any) • safety critical systems • any other suitable example
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.
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.
Operating systems are not in applications. Applications are installed on Operating Systems.
several types of operating systems are there.
what are the disadvantages of operating systems effects of information technology
Single-user multitask operating systems are also known as network operating systems
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?
Two operating systems are; Windows, and Linux.
No they don't.
complete operating system that works on a desktop computers