From cac015a6d1a33252cb5f7f65cda001c659dd5d31 Mon Sep 17 00:00:00 2001 From: Niklas Landin Date: Thu, 12 May 2011 19:36:44 +0200 Subject: [PATCH 1/2] Changes to 3.1 --- report.lyx | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/report.lyx b/report.lyx index f8b088f..3f0a259 100644 --- a/report.lyx +++ b/report.lyx @@ -3486,12 +3486,12 @@ 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 @@ -3584,13 +3584,13 @@ textbf{Context switch}}{The act of switching from one context, commonly \end_layout \begin_layout Standard -The cost of swapping operating system processes becomes a problem when many +The cost of swapping operating system processes become a problem when many processes are involved. 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 can, the mapping between the real world - system (described in + times more than an operating system can, the relation between the real + world and the GGS (described in \begin_inset CommandInset ref LatexCommand vref reference "sec:Design-of-the" @@ -3601,7 +3601,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 @@ -3610,7 +3610,7 @@ Erlang allows the GGS to create several process for each player connecting, \end_layout \begin_layout Standard -In addition to creating (or +Besides creating (or \emph on spawning \emph default @@ -3718,11 +3718,11 @@ 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 gamers - machines will be chess game clients. + machine will be chess game clients. Clients connect through a network, pictured as a cloud, to the dispatcher process in the GGS. The dispatcher process and all other modules are discussed in From 27f2bdc4dccdae9262be40d32c40150013771d8d Mon Sep 17 00:00:00 2001 From: Niklas Landin Date: Thu, 12 May 2011 20:06:49 +0200 Subject: [PATCH 2/2] Revisited 3.2 --- report.lyx | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/report.lyx b/report.lyx index 3f0a259..36aa014 100644 --- a/report.lyx +++ b/report.lyx @@ -3749,8 +3749,8 @@ name "sec:The-usage-of-erlang" \end_layout \begin_layout Standard -Erlang was designed by Ericsson, beginning in 1986, for the purpose of creating - concurrent applications and improving telecom software. +Erlang was designed by Ericsson, beginning in 1986, for creating concurrent + applications and improving telecom software. Features essential for the telecom industry to achieve high availability in telecom switches were added to the language. \begin_inset ERT @@ -3762,7 +3762,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 @@ -3807,10 +3807,10 @@ 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 operating - system's scheduler, this is a main reason of Erlang's capability of running + system's scheduler, this is one main reason of Erlang's capability of running many concurrent processes \begin_inset CommandInset citation LatexCommand citet @@ -3830,12 +3830,12 @@ 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 makes use of when - scaling across several computers in order to achieve higher performance. +The distributed nature of Erlang is something the GGS makes use of, when + scaling across several computers to achieve higher performance. The distribution is also important in creating redundancy. Erlang promotes a non-defensive programming style in which processes are allowed to crash and be restarted in favor of having the processes recover @@ -3868,10 +3868,10 @@ 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. + caller but they are implemented in C. \end_layout \begin_layout Standard @@ -3954,7 +3954,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 @@ -3967,7 +3967,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 @@ -3999,8 +3999,8 @@ gen_server increasing the usefulness of the server process. There are many gen_servers in the GGS, it is the most widely used behavior in the project. - In addition to introducing a state to the server, the gen_server behavior - also imposes patterns for synchronous and asynchronous communication between + Besides introducing a state to the server, the gen_server behavior also + imposes patterns for synchronous and asynchronous communication between other gen_servers and other OTP behaviors. \end_layout @@ -4016,8 +4016,8 @@ gen_fsm \end_layout \begin_layout Standard -In addition to supplying behaviors, the OTP also has a style for packaging - and running Erlang applications. +Besides supplying behaviors, the OTP also has a style for packaging and + running Erlang applications. By packaging the GGS as an \emph on application @@ -4034,7 +4034,7 @@ status open \backslash nomenclature{ \backslash -textbf{Application}}{A way of packaging Erlang software in a uniform way} +textbf{Application}}{A way of packaging Erlang software in an uniform way} \end_layout \end_inset