Lecture 12. Processes and Processes Synchronization  Process

advertisement
Lecture 12. Processes and Processes
Synchronization





Process
Time-sharing system
Critical section problem
Semaphore
Process communication
Page 1
5/29/2016
CS3369 Realtime Control Computer
Software/WANG Lusheng
Process
 A process is a program in execution.
 A computer can run several programs
simultaneously.
 A program can be executed several times by
the same computer simultaneously.
Page 2
5/29/2016
CS3369 Realtime Control Computer
Software/WANG Lusheng
Time-sharing System
 Multiple jobs (processes) are executed by the
CPU switching between them, but the switches
occur so frequently that the users may interact
with each program while it is running.
 The switch among processes is done by OS.
Page 3
5/29/2016
CS3369 Realtime Control Computer
Software/WANG Lusheng
 Data communication in embedded systems.


Channels: directed transfer of information.
Pools: shared information.
 Process Symbol:
input
processing
output
Page 4
5/29/2016
CS3369 Realtime Control Computer
Software/WANG Lusheng
Channels
 A channel provides the medium for items of
information to be passed between one process and
another.
 More than one item of information can pass through a
channel at any one time and they are usually ordered
according to the rule of FIFO (first-in-first-out).

Interrupt #0x09 stores keys typed by users in a buffer which
is accessible by other interrupts.
put
ch._1
p
get
g
Page 5
5/29/2016
CS3369 Realtime Control Computer
Software/WANG Lusheng
Pools
 Items of information in a pool are available for
reading and/or writing by a number of processes in
the system.
 Information does not flow within a pool. A pool acts
as a repository of information.
 Any item in a pool will be available to processes
using the pool.
Page 6
5/29/2016
CS3369 Realtime Control Computer
Software/WANG Lusheng
 Pools are as important as processes:



processes are software models of the activities that an
embedded system must perform;
pools form the software models of items in the system.
These includes physical devices and mechanisms in the
control system, and conceptual items such as logical files.
In many applications, the pool has information written
into it endlessly.
Page 7
5/29/2016
CS3369 Realtime Control Computer
Software/WANG Lusheng
Process Synchronization
 Producer-consumer Problem
 Producer keeps producing items and putting
them in the buffer
 Consumer keeps taking items away from the
buffer.
Page 8
5/29/2016
CS3369 Realtime Control Computer
Software/WANG Lusheng
Process Synchronization
Producer’s code
Repeat
…
produce an item in nextp
…
while counter = n do no-op;
buffer[in]:=nextp;
in:= in + 1 mod n;
counter:= counter + 1;
Until false;
Page 9
5/29/2016
CS3369 Realtime Control Computer
Software/WANG Lusheng
Process Synchronization
Consumer’s codes
Repeat
while counter =0 do no-op;
nextc:= buffer[out];
out:=out + 1 mod n;
counter:=counter –1;
…
consume the item in nextc
…
Untile false;
Page 10
5/29/2016
CS3369 Realtime Control Computer
Software/WANG Lusheng
counter := counter +1 and counter: =counter -1
Each high level language statement corresponds to several lower level
language statements.
register1:=counter;
register2:=counter;
register1:=register1+1;
register2=register2-1;
counter:=register1;
counter=register2
counter=counter+1;
counter=counter-1;
Page 11
5/29/2016
CS3369 Realtime Control Computer
Software/WANG Lusheng
The results could be wrong
If counter =5 then after
counter=counter+1;
counter=counter-1;
The result should be counter =5.
However, it could be wrong:
T0: producer register1:=counter;
T1:producer
{register1=5}
register1:=register1+1; {register1=6}
T2:consumer register2:=counter;
{register2=5}
T3:consumer register2=register2-1;
{register2=4}
T4:producer
counter:=register1;
{counter =6}
T5:consumer
counter=register2
{counter=4}
Page 12
5/29/2016
CS3369 Realtime Control Computer
Software/WANG Lusheng
Cirtical section
Why the result is wrong?
Two processes access the same variable
counter at about the same time.
A critical section is a segment of codes that
the process may be changing common
resources, e.g., variables.
Page 13
5/29/2016
CS3369 Realtime Control Computer
Software/WANG Lusheng
Semaphore
A synchronization tool that can be used
to solve some synchronization problem,
e.g., the critical section problem.
Page 14
5/29/2016
CS3369 Realtime Control Computer
Software/WANG Lusheng
Semaphore
A semaphore S is an integer variable that,
apart from initialization, is accessed only
through two standard atomic operations:
wait and signal.
Wait(s): while S<=0 do no-op;
s=s-1;
Signal(S): s=s+1;
Page 15
5/29/2016
CS3369 Realtime Control Computer
Software/WANG Lusheng
Solve the Critical Section Problem
Producer’s code
Repeat
…
produce an item in nextp
…
while counter = n do no-op;
wait(S);
buffer[in]:=nextp;
in:= in + 1 mod n;
counter:= counter + 1;
signal(S):
Until false;
5/29/2016
Page 16
CS3369 Realtime Control Computer
Software/WANG Lusheng
Solve the Critical Section Problem
Consumer’s codes
Repeat
wait(S);
while counter =0 do no-op;
nextc:= buffer[out];
out:=out + 1 mod n;
counter:=counter –1;
signal(S);
…
consume the item in nextc
…
Untile false;
5/29/2016
Page 17
CS3369 Realtime Control Computer
Software/WANG Lusheng
Download