Index: doc/theses/thierry_delisle_PhD/thesis/text/intro.tex
===================================================================
--- doc/theses/thierry_delisle_PhD/thesis/text/intro.tex	(revision 4d85e47ce1d9a145f02b0ebdc7963bb786f6adc9)
+++ doc/theses/thierry_delisle_PhD/thesis/text/intro.tex	(revision 13088f13c15bd2e6f535c0263b9902d2520292f2)
@@ -17,5 +17,5 @@
 
 After examining, testing and selecting specific approaches to these scheduling issues, a completely new scheduler was created and tested in the \CFA (C-for-all) user-threading runtime-system.
-The goal of the new scheduler to offer increased safety and productivity without sacrificing performance.
+The goal of the new scheduler is to offer increased safety and productivity without sacrificing performance.
 The quality of the new scheduler is demonstrated by comparing it with other user-threading work-stealing schedulers with the aim of showing equivalent or better performance while offering better fairness.
 
@@ -25,4 +25,5 @@
 Chapter~\ref{core} analyses different scheduler approaches, while looking for scheduler mechanisms that provide both performance and fairness.
 Chapter~\ref{s:UserLevelIO} covers the complex mechanisms that must be used to achieve nonblocking I/O to prevent the blocking of \glspl{kthrd}.
+Chapter~\ref{practice} presents the mechanisms needed to adjust the amount of parallelism, both manually and automatically.
 Chapters~\ref{microbench} and~\ref{macrobench} present micro and macro benchmarks used to evaluate and compare the new scheduler with similar schedulers.
 
@@ -34,5 +35,5 @@
 In general, work units without threads, like routines and coroutines, are self-scheduling, while work units with threads, like tasks and programs, are scheduled.
 For scheduled work-units, a scheduler takes a sequence of threads and attempts to run them to completion, subject to shared resource restrictions and utilization.
-A general-purpose dynamic-scheduler for an open system cannot anticipate (future) work requests, so its performance is rarely optimal.
+A general-purpose dynamic-scheduler for an open system cannot anticipate work requests, so its performance is rarely optimal.
 Even with complete knowledge of arrive order and work, creating an optimal solution is a bin packing problem~\cite{wiki:binpak}.
 However, optimal solutions are often not required: schedulers often produce excellent solutions, without needing optimality, by taking advantage of regularities in work patterns.
@@ -70,5 +71,5 @@
 \end{tabular}
 \end{center}
-Beyond these two schedulers are a host of options, \ie adding an optional global, shared queue to MQMS.
+Beyond these two schedulers are a host of options, \eg adding an global shared queue to MQMS or adding multiple private queues with distinc characteristics.
 
 Once there are multiple resources and ready queues, a scheduler is faced with three major optimization criteria:
@@ -90,6 +91,4 @@
 \newterm{contention}: safe access of shared objects by multiple processors requires mutual exclusion in some form, generally locking.\footnote{
 Lock-free data-structures do not involve locking but incur similar costs to achieve mutual exclusion.}
-
-\noindent
 Mutual exclusion cost and latency increases significantly with the number of processors access\-ing a shared object.
 \end{enumerate}
@@ -103,5 +102,5 @@
 Significant research effort has looked at load balancing by stealing/sharing work units among queues: when a ready queue is too short or long, respectively, load stealing/sharing schedulers attempt to push/pull work units to/from other ready queues.
 These approaches attempt to perform better load-balancing at the cost of affinity and contention.
-However, \emph{all} approaches come at a cost (zero-sum game), but not all compromises are necessarily equivalent, especially across workloads.
+However, \emph{all} approaches come at a cost, but not all compromises are necessarily equivalent, especially across workloads.
 Hence, some schedulers perform very well for specific workloads, while others offer acceptable performance over a wider range of workloads.
 
@@ -139,7 +138,7 @@
 An algorithm for load-balancing and idle sleep of processors, including NUMA awareness.
 \item
-A mechanism for adding fairness on top of work-stealing through helping (used both for the I/O and ready-queue).
+A mechanism for adding fairness on top of MQMS algorithm through helping, used both for scalable scheduling algorithm and the user-level \glsxtrshort{io}.
 \item
-An optimization of the work-stealing helping-mechanism for load balancing to reduce scheduling costs.
+An optimization of the helping-mechanism for load balancing to reduce scheduling costs.
 \item
 An optimization for the alternative relaxed-list for load balancing to reduce scheduling costs in embarrassingly parallel cases.
