Mutual Exclusion Last
updated on
, a full moon day
WHO producer vs. consumer exist; WHEN critical region is available / not available; Very very carefully essential design logic is needed; In order to do so, mutual exclusion problem must be studied first;
Do While
TRUE
entryeither_producer_or_consumer
critical region 1
exit 1
process NOT
block THIS executing
Loop
OR
Do While
TRUE
entryeither_producer_or_consumer
critical region 2
exit 2
process NOT
block THIS executing
Loop
Notice that either producer, producer itself, consumer, consumer itself can be inside of critical region, and block itself, or become having problem such as mutual exclusion;
{TRUE}
Public Logic abcdefg()
{
(critical region 1)}
Do While
TRUE
{
(critical region 1)}
critical region 1
logic flow 1
exit 1
process NOT
block THIS executing
Loop
{FALSE}
OR
{
(critical region 1)}
Do While
TRUE
{
(critical region 1)}
critical region 1
logic flow 1
exit 1
process NOT
block THIS executing
Loop
{FALSE}
End Logic
{FALSE}
Solving mutual exclusion problem as follow:
{TRUE} i.e. Duo-binary OSI Draft's Set{...}; Distribution's Fuzzy Set{... , i.e. Movie online, very latest technology, very advance, very real time, very low S/N ratio, very bandwidth independent, ... ;
instruction1, instruction2
{instruction: (instruction2(critical region 2)
(
2))
(instruction1(critical region 1)
(
1))}
Public Logic abcdefg( )
{instruction
(critical
region 1)}
Do While
TRUE
instruction
(critical
region 1)
./file_number1:time_stamp1: instruction1 = TRUE
{instruction
critical region 1
instruction 1}
Notice that in hardware LSIs' complex functions, addressable circuit's software function ; for example
1h0 : :
opcode = 2h1;
2h1 ::
opcode = 1h0;
and, notice the : and mutual exclusion is needed
1:
If instruction2
{instruction
@
1
instruction1
(instruction2
(time_stamp2)}
exit 1
{instruction
instruction1
(instruction2
(time_stamp2)}
End If
{instruction
instruction1
(instruction2
(time_stamp2)}
propagation (critical region 1)(instruction
instruction1
(instruction2
(time_stamp2))
{instruction
(critical
region 1)}
exit 1
process NOT
block THIS executing
Loop
{FALSE}
OR
{instruction
(critical
region 2)}
Do While
TRUE
instruction
(critical
region 2)
./file_number2:time_stamp2: instruction2 = TRUE
{instruction
critical region 2
instruction 2}
2:
If instruction1
{instruction
@
2
instruction2
(instruction1
(time_stamp1)}
exit 2
{instruction
instruction2
(instruction1
(time_stamp1)}
End If
{instruction
instruction2
(instruction1
(time_stamp1)}
propagation (critical region 2)(instruction
instruction2
(instruction1
(time_stamp1))
{instruction
(critical
region 2)}
exit 2
process NOT
block THIS executing
Loop
{FALSE}
End Logic
{FALSE}
For humanoid engineers only: mathematically prove that aspect-variations of toggle are whether in sea-level, or non-sea-level;
For Monbusho level space engineers only: mathematically prove the diff of 2π mechanical toggle vs. physical hole toggle; Time.Space.Action, and ACT1 space's time t1 must synchronize to ACT2 hyperspace's time t1, and ACT2 hyperplane's time t1 must synchronize to ACT3 ... ;
For systems engineers only: define local machine and remote machine by TCP/IP(BOOTP) vs. RIS(TCP/IP); WHILE synchronization: define binary semaphores, split binary semaphores, each lock for each mutual exclusion;
|
|
|