Mutual Exclusion      Last updated on 2014/2558 12 6, a full moon day;

WHO producer vs. consumer exist; WHEN critical region is available OR 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 critical regions 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}

e.g. 1 instance only WHILE setting up, also see: 4iComputer;

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 (e.g. Mutual_exclusion): 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 hyper plane'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; also see: Code Page;

...

Up