Changeset 3d5701e for doc/papers


Ignore:
Timestamp:
Feb 25, 2020, 1:17:33 PM (20 months ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
arm-eh, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr
Children:
7dc2e015
Parents:
9fb8f01 (diff), dd9e1ca (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

resolve conflict

Location:
doc/papers
Files:
7 added
1 edited

Legend:

Unmodified
Added
Removed
  • doc/papers/concurrency/Paper.tex

    r9fb8f01 r3d5701e  
    239239\lstMakeShortInline@%
    240240
     241\newcommand{\commenttd}[1]{{\color{red}{Thierry : #1}}}
     242
    241243\let\OLDthebibliography\thebibliography
    242244\renewcommand\thebibliography[1]{
     
    11631165% }
    11641166% int main() {
    1165 % 
     1167%
    11661168%       for ( int i = 0; i < 10; i += 1 ) {
    11671169%               printf( "%d\n", fib() );
     
    18341836                if ( random() % 3 ) transfer( b1, b2, 7 );
    18351837        }
    1836 }   
     1838}
    18371839int main() {
    18381840        `Person p1 = { b1, b2 }, p2 = { b2, b1 };`
     
    18641866                if ( random() % 3 ) transfer( b1, b2, 7 );
    18651867        }
    1866 }   
     1868}
    18671869int main() {
    18681870        `thread p1(person, ref(b1), ref(b2)), p2(person, ref(b2), ref(b1));`
     
    27392741% \section{Parallelism}
    27402742% \label{s:Parallelism}
    2741 % 
     2743%
    27422744% Historically, computer performance was about processor speeds.
    27432745% However, with heat dissipation being a direct consequence of speed increase, parallelism is the new source for increased performance~\cite{Sutter05, Sutter05b}.
     
    27462748% However, kernel threads are better as an implementation tool because of complexity and higher cost.
    27472749% Therefore, different abstractions are often layered onto kernel threads to simplify them, \eg pthreads.
    2748 % 
    2749 % 
     2750%
     2751%
    27502752% \subsection{User Threads}
    2751 % 
     2753%
    27522754% A direct improvement on kernel threads is user threads, \eg Erlang~\cite{Erlang} and \uC~\cite{uC++book}.
    27532755% This approach provides an interface that matches the language paradigms, gives more control over concurrency by the language runtime, and an abstract (and portable) interface to the underlying kernel threads across operating systems.
     
    27552757% Like kernel threads, user threads support preemption, which maximizes nondeterminism, but increases the potential for concurrency errors: race, livelock, starvation, and deadlock.
    27562758% \CFA adopts user-threads to provide more flexibility and a low-cost mechanism to build any other concurrency approach, \eg thread pools and actors~\cite{Actors}.
    2757 % 
     2759%
    27582760% A variant of user thread is \newterm{fibres}, which removes preemption, \eg Go~\cite{Go} @goroutine@s.
    27592761% Like functional programming, which removes mutation and its associated problems, removing preemption from concurrency reduces nondeterminism, making race and deadlock errors more difficult to generate.
Note: See TracChangeset for help on using the changeset viewer.