mirror of
https://github.com/schoebel/mars
synced 2025-02-20 06:06:58 +00:00
doc: move control model
This commit is contained in:
parent
47544459f0
commit
6d5f412728
@ -141,6 +141,163 @@ LatexCommand tableofcontents
|
||||
Basic Working Principle
|
||||
\end_layout
|
||||
|
||||
\begin_layout Section
|
||||
Control Model
|
||||
\begin_inset CommandInset label
|
||||
LatexCommand label
|
||||
name "sec:Control-Model"
|
||||
|
||||
\end_inset
|
||||
|
||||
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
Although MARS tries to
|
||||
\emph on
|
||||
approximate
|
||||
\emph default
|
||||
/
|
||||
\emph on
|
||||
emulate
|
||||
\emph default
|
||||
the synchronous control behaviour of DRBD at the interface level (
|
||||
\family typewriter
|
||||
marsadm
|
||||
\family default
|
||||
) in many situations as best as it can, the
|
||||
\emph on
|
||||
internal
|
||||
\emph default
|
||||
control model is necessarily asynchronous.
|
||||
As an experiencend sysadmin, you will be curious how it works in principle.
|
||||
When you know something about it, you will no longer be surprised when
|
||||
some (detail) behaviour is different from DRBD.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
The general principle is an asynchronous 2-edge handshake protocol, which
|
||||
is used almost everywhere in MARS:
|
||||
\begin_inset Separator latexpar
|
||||
\end_inset
|
||||
|
||||
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
\noindent
|
||||
\align center
|
||||
\begin_inset Graphics
|
||||
filename images/handshake.fig
|
||||
width 80col%
|
||||
|
||||
\end_inset
|
||||
|
||||
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
We have a binary todo switch, which can be either in state
|
||||
\begin_inset Quotes eld
|
||||
\end_inset
|
||||
|
||||
on
|
||||
\begin_inset Quotes erd
|
||||
\end_inset
|
||||
|
||||
or
|
||||
\begin_inset Quotes eld
|
||||
\end_inset
|
||||
|
||||
off
|
||||
\begin_inset Quotes erd
|
||||
\end_inset
|
||||
|
||||
.
|
||||
In addition, we have an actual response indicator, which is similar to
|
||||
an LED indicating the actual status.
|
||||
In our example, we imagine that both are used for controlling a big ventilator,
|
||||
having a huge inert mass.
|
||||
Imagine a big machine from a power plant, which is as tall as a human.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
We start in a situation where the binary switch is off, and the ventilator
|
||||
is stopped.
|
||||
At point 1, we turn on the switch.
|
||||
At that moment, a big contactor will sound like
|
||||
\begin_inset Quotes eld
|
||||
\end_inset
|
||||
|
||||
zonggg
|
||||
\begin_inset Quotes erd
|
||||
\end_inset
|
||||
|
||||
, and a big motor will start to hum.
|
||||
At first you won't hear anything else.
|
||||
It will take a while, say 1 minute, until the big wheel will have reached
|
||||
its final operating RPM, due to the huge inert mass.
|
||||
During that spin-up, the lights in your room will become slightly darker.
|
||||
When having reached the full RPM at point 2, your workplace will then be
|
||||
noisier, but in exchange your room lights will be back at ordinary strength,
|
||||
and the actual response LED will start to lit in order to indicate that
|
||||
the big fan is now operational.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
Assume we want to turn the system off.
|
||||
When turning the todo switch to
|
||||
\begin_inset Quotes eld
|
||||
\end_inset
|
||||
|
||||
off
|
||||
\begin_inset Quotes erd
|
||||
\end_inset
|
||||
|
||||
at point 3, first nothing will seem to happen at all.
|
||||
The big wheel will keep spinning due to its heavy inert mass, and the RPM
|
||||
as well as the sound will go down only slowly.
|
||||
During spin-down, the actual response LED will stay illuminated, in order
|
||||
to warn you that you should not touch the wheel, otherwise you may get
|
||||
injuried
|
||||
\begin_inset Foot
|
||||
status open
|
||||
|
||||
\begin_layout Plain Layout
|
||||
Notice that it is only safe to access the wheel when
|
||||
\emph on
|
||||
both
|
||||
\emph default
|
||||
the switch and the LED are off.
|
||||
Conversely, if at least one of them is on, something is going on inside
|
||||
the machine.
|
||||
Transferred to MARS: always look at
|
||||
\emph on
|
||||
both
|
||||
\emph default
|
||||
the todo switch and the correponding actual indicator in order to not miss
|
||||
something.
|
||||
\end_layout
|
||||
|
||||
\end_inset
|
||||
|
||||
.
|
||||
The LED will only go off after, say, 2 minutes, when the wheel has actually
|
||||
stopped at point 4.
|
||||
After that, the cycle may potentially start over again.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
As you can see, all four possible cartesian product combinations between
|
||||
two boolean values are occurring in the diagram.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
The same handshake protocol is used in MARS for communication between userspace
|
||||
and kernelspace, as well as for communication in the widely distributed
|
||||
system.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Section
|
||||
The Lamport Clock
|
||||
\begin_inset CommandInset label
|
||||
|
@ -32021,152 +32021,6 @@ Old Structure (TO DISAPPEAR)
|
||||
Quick Start Guide
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
Although MARS tries to
|
||||
\emph on
|
||||
approximate
|
||||
\emph default
|
||||
/
|
||||
\emph on
|
||||
emulate
|
||||
\emph default
|
||||
the synchronous control behaviour of DRBD at the interface level (
|
||||
\family typewriter
|
||||
marsadm
|
||||
\family default
|
||||
) in many situations as best as it can, the
|
||||
\emph on
|
||||
internal
|
||||
\emph default
|
||||
control model is necessarily asynchronous.
|
||||
As an experiencend sysadmin, you will be curious how it works in principle.
|
||||
When you know something about it, you will no longer be surprised when
|
||||
some (detail) behaviour is different from DRBD.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
The general principle is an asynchronous 2-edge handshake protocol, which
|
||||
is used almost everywhere in MARS:
|
||||
\begin_inset Separator latexpar
|
||||
\end_inset
|
||||
|
||||
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
\noindent
|
||||
\align center
|
||||
\begin_inset Graphics
|
||||
filename images/handshake.fig
|
||||
width 80col%
|
||||
|
||||
\end_inset
|
||||
|
||||
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
We have a binary todo switch, which can be either in state
|
||||
\begin_inset Quotes eld
|
||||
\end_inset
|
||||
|
||||
on
|
||||
\begin_inset Quotes erd
|
||||
\end_inset
|
||||
|
||||
or
|
||||
\begin_inset Quotes eld
|
||||
\end_inset
|
||||
|
||||
off
|
||||
\begin_inset Quotes erd
|
||||
\end_inset
|
||||
|
||||
.
|
||||
In addition, we have an actual response indicator, which is similar to
|
||||
an LED indicating the actual status.
|
||||
In our example, we imagine that both are used for controlling a big ventilator,
|
||||
having a huge inert mass.
|
||||
Imagine a big machine from a power plant, which is as tall as a human.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
We start in a situation where the binary switch is off, and the ventilator
|
||||
is stopped.
|
||||
At point 1, we turn on the switch.
|
||||
At that moment, a big contactor will sound like
|
||||
\begin_inset Quotes eld
|
||||
\end_inset
|
||||
|
||||
zonggg
|
||||
\begin_inset Quotes erd
|
||||
\end_inset
|
||||
|
||||
, and a big motor will start to hum.
|
||||
At first you won't hear anything else.
|
||||
It will take a while, say 1 minute, until the big wheel will have reached
|
||||
its final operating RPM, due to the huge inert mass.
|
||||
During that spin-up, the lights in your room will become slightly darker.
|
||||
When having reached the full RPM at point 2, your workplace will then be
|
||||
noisier, but in exchange your room lights will be back at ordinary strength,
|
||||
and the actual response LED will start to lit in order to indicate that
|
||||
the big fan is now operational.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
Assume we want to turn the system off.
|
||||
When turning the todo switch to
|
||||
\begin_inset Quotes eld
|
||||
\end_inset
|
||||
|
||||
off
|
||||
\begin_inset Quotes erd
|
||||
\end_inset
|
||||
|
||||
at point 3, first nothing will seem to happen at all.
|
||||
The big wheel will keep spinning due to its heavy inert mass, and the RPM
|
||||
as well as the sound will go down only slowly.
|
||||
During spin-down, the actual response LED will stay illuminated, in order
|
||||
to warn you that you should not touch the wheel, otherwise you may get
|
||||
injuried
|
||||
\begin_inset Foot
|
||||
status open
|
||||
|
||||
\begin_layout Plain Layout
|
||||
Notice that it is only safe to access the wheel when
|
||||
\emph on
|
||||
both
|
||||
\emph default
|
||||
the switch and the LED are off.
|
||||
Conversely, if at least one of them is on, something is going on inside
|
||||
the machine.
|
||||
Transferred to MARS: always look at
|
||||
\emph on
|
||||
both
|
||||
\emph default
|
||||
the todo switch and the correponding actual indicator in order to not miss
|
||||
something.
|
||||
\end_layout
|
||||
|
||||
\end_inset
|
||||
|
||||
.
|
||||
The LED will only go off after, say, 2 minutes, when the wheel has actually
|
||||
stopped at point 4.
|
||||
After that, the cycle may potentially start over again.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
As you can see, all four possible cartesian product combinations between
|
||||
two boolean values are occurring in the diagram.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
The same handshake protocol is used in MARS for communication between userspace
|
||||
and kernelspace, as well as for communication in the widely distributed
|
||||
system.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Chapter
|
||||
Basic Working Principle
|
||||
\end_layout
|
||||
|
Loading…
Reference in New Issue
Block a user