Merge branch 'master' of github.com:jeena/GGS-report

Conflicts:
	report.lyx
This commit is contained in:
Jonatan Pålsson 2011-05-12 20:22:37 +02:00
commit 88b991a812

View file

@ -3559,12 +3559,17 @@ reference "cha:Theory"
.
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
\begin_layout Standard
Much of what is discussed in this chapter has been implemented in the Erlang
GGS prototype.
Much of what is discussed in this chapter has been implemented in the GGS
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
with third parties are also discussed here.
\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,
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
times more than an operating system, the relation between the real world
system (described in
times more than an operating system, the relation between the real
world and the GGS (described in
\begin_inset CommandInset ref
LatexCommand vref
reference "sec:Design-of-the"
@ -3662,7 +3667,7 @@ reference "sec:Design-of-the"
\end_layout
\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
for example.
Since each task is handled by a different process, the tasks are clearly
@ -3779,7 +3784,7 @@ reference "fig:The-layout-of"
\end_inset
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
on the GGS machine.
If a game of chess is to be played on the server, the clients on the machines
@ -3830,7 +3835,7 @@ status open
\backslash
nomenclature{
\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}
\end_layout
@ -3878,7 +3883,7 @@ Processes in Erlang are also called
Light Weight Processes.
\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.
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
@ -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
with the process.
Processes can communicate regardless of whether they run on the same system
of not, transparently.
or not, transparently.
\end_layout
\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.
The distribution is also important in creating redundancy.
The GGS prototype does not make use of the distributed nature of Erlang,
@ -3945,7 +3950,7 @@ s (Native implemented functions)
.
\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.
NIFs are called like any other functions without any difference to the
caller but are implemented in C, this implementation makes NIFs a very
@ -4039,7 +4044,7 @@ behaviors
\begin_layout Standard
The GGS makes heavy use of the behaviors supplied in the OTP.
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:
\end_layout
@ -4052,7 +4057,7 @@ supervisor
Supervisors are used when monitoring processes in the Erlang system.
When a process exits wrongfully, the supervisor monitoring the process
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
\begin_inset CommandInset ref
LatexCommand ref