Merge branch 'master' of github.com:jeena/GGS-report
Conflicts: report.lyx
This commit is contained in:
commit
88b991a812
1 changed files with 19 additions and 14 deletions
33
report.lyx
33
report.lyx
|
@ -3559,12 +3559,17 @@ reference "cha:Theory"
|
||||||
|
|
||||||
.
|
.
|
||||||
Here the problems and their solutions are discussed in greater detail,
|
Here the problems and their solutions are discussed in greater detail,
|
||||||
and at times the text becomes more specific to GGS.
|
and at times the text becomes more specific to the GGS.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Much of what is discussed in this chapter has been implemented in the Erlang
|
Much of what is discussed in this chapter has been implemented in the GGS
|
||||||
GGS prototype.
|
prototype.
|
||||||
|
Specific solutions such as
|
||||||
|
\emph on
|
||||||
|
supervisor structures
|
||||||
|
\emph default
|
||||||
|
and distribution of erlang nodes on physical nodes.
|
||||||
The different means of communications within the GGS and outside the GGS
|
The different means of communications within the GGS and outside the GGS
|
||||||
with third parties are also discussed here.
|
with third parties are also discussed here.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -3650,8 +3655,8 @@ The cost of swapping operating system processes becomes a problem when many
|
||||||
If the GGS system had been developed using regular operating system processes,
|
If the GGS system had been developed using regular operating system processes,
|
||||||
it would have had to be designed in a way to minimize the number of processes.
|
it would have had to be designed in a way to minimize the number of processes.
|
||||||
Using Erlang, which is capable of running very many processes, several
|
Using Erlang, which is capable of running very many processes, several
|
||||||
times more than an operating system, the relation between the real world
|
times more than an operating system, the relation between the real
|
||||||
system (described in
|
world and the GGS (described in
|
||||||
\begin_inset CommandInset ref
|
\begin_inset CommandInset ref
|
||||||
LatexCommand vref
|
LatexCommand vref
|
||||||
reference "sec:Design-of-the"
|
reference "sec:Design-of-the"
|
||||||
|
@ -3662,7 +3667,7 @@ reference "sec:Design-of-the"
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Erlang allows the GGS to create several process for each player connecting,
|
Erlang allows the GGS to create several processes for each player connecting,
|
||||||
these processes can handle a multitude of different tasks, parsing data
|
these processes can handle a multitude of different tasks, parsing data
|
||||||
for example.
|
for example.
|
||||||
Since each task is handled by a different process, the tasks are clearly
|
Since each task is handled by a different process, the tasks are clearly
|
||||||
|
@ -3779,7 +3784,7 @@ reference "fig:The-layout-of"
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
the entire GGS system is represented graphically.
|
the entire GGS system is represented graphically.
|
||||||
The circles marked with 'C' topmost in the picture represent game clients.
|
The circles marked with 'C' topmost in the picture represents game clients.
|
||||||
These circles represent processes running on gamers computers, and not
|
These circles represent processes running on gamers computers, and not
|
||||||
on the GGS machine.
|
on the GGS machine.
|
||||||
If a game of chess is to be played on the server, the clients on the machines
|
If a game of chess is to be played on the server, the clients on the machines
|
||||||
|
@ -3830,7 +3835,7 @@ status open
|
||||||
\backslash
|
\backslash
|
||||||
nomenclature{
|
nomenclature{
|
||||||
\backslash
|
\backslash
|
||||||
textbf{Mutex}}{A construct for achieving mutial exclusion, used to avoid
|
textbf{Mutex}}{A construct for achieving mutual exclusion, used to avoid
|
||||||
simultaneous access to shared resources in computer systems}
|
simultaneous access to shared resources in computer systems}
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
@ -3878,7 +3883,7 @@ Processes in Erlang are also called
|
||||||
Light Weight Processes.
|
Light Weight Processes.
|
||||||
|
|
||||||
\emph default
|
\emph default
|
||||||
The Erlang processes are very cheaply created.
|
The Erlang processes are inexpensive to create.
|
||||||
Processes exist within an Erlang machine, or Erlang node.
|
Processes exist within an Erlang machine, or Erlang node.
|
||||||
The Erlang machine has its own scheduler and does not rely on the scheduler
|
The Erlang machine has its own scheduler and does not rely on the scheduler
|
||||||
of the operating system, this is a main reason of Erlang's capability of
|
of the operating system, this is a main reason of Erlang's capability of
|
||||||
|
@ -3901,11 +3906,11 @@ The strong isolation of Erlang processes make them ideal for multi-core
|
||||||
which computer the process runs on, is not important when communicating
|
which computer the process runs on, is not important when communicating
|
||||||
with the process.
|
with the process.
|
||||||
Processes can communicate regardless of whether they run on the same system
|
Processes can communicate regardless of whether they run on the same system
|
||||||
of not, transparently.
|
or not, transparently.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
The distributed nature of Erlang is something the GGS can make use of when
|
The distributed nature of Erlang is something the GGS can make use of, when
|
||||||
scaling across several computers in order to achieve higher performance.
|
scaling across several computers in order to achieve higher performance.
|
||||||
The distribution is also important in creating redundancy.
|
The distribution is also important in creating redundancy.
|
||||||
The GGS prototype does not make use of the distributed nature of Erlang,
|
The GGS prototype does not make use of the distributed nature of Erlang,
|
||||||
|
@ -3945,7 +3950,7 @@ s (Native implemented functions)
|
||||||
.
|
.
|
||||||
|
|
||||||
\emph default
|
\emph default
|
||||||
Through ports communication can take place much in the same way communication
|
Through ports communication can take place in a similar way communication
|
||||||
is performed over sockets.
|
is performed over sockets.
|
||||||
NIFs are called like any other functions without any difference to the
|
NIFs are called like any other functions without any difference to the
|
||||||
caller but are implemented in C, this implementation makes NIFs a very
|
caller but are implemented in C, this implementation makes NIFs a very
|
||||||
|
@ -4039,7 +4044,7 @@ behaviors
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
The GGS makes heavy use of the behaviors supplied in the OTP.
|
The GGS makes heavy use of the behaviors supplied in the OTP.
|
||||||
The behaviors impose a programming style suitable for distributed and concurren
|
The behaviors impose a programming style suitable for distributed and concurren
|
||||||
t applications, perfectly suitable for the GGS.
|
t applications.
|
||||||
In particular, the GGS uses the following behaviors:
|
In particular, the GGS uses the following behaviors:
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
@ -4052,7 +4057,7 @@ supervisor
|
||||||
Supervisors are used when monitoring processes in the Erlang system.
|
Supervisors are used when monitoring processes in the Erlang system.
|
||||||
When a process exits wrongfully, the supervisor monitoring the process
|
When a process exits wrongfully, the supervisor monitoring the process
|
||||||
in question decides which action to take.
|
in question decides which action to take.
|
||||||
In the GGS, the most common action is simply to restart the faulting process.
|
In the GGS, the most common action is to restart the faulting process.
|
||||||
A more thorough discussion on supervisors can be found in section
|
A more thorough discussion on supervisors can be found in section
|
||||||
\begin_inset CommandInset ref
|
\begin_inset CommandInset ref
|
||||||
LatexCommand ref
|
LatexCommand ref
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue