Changes in / [73de175:35a9e41]
- Location:
- doc/papers/concurrency
- Files:
-
- 3 added
- 1 edited
-
Paper.tex (modified) (6 diffs)
-
notes/cor-thread-traits.c (added)
-
notes/lit-review.md (added)
-
notes/notes.md (added)
Legend:
- Unmodified
- Added
- Removed
-
doc/papers/concurrency/Paper.tex
r73de175 r35a9e41 1309 1309 void print( Tree & mutex tree ) { $\C{// prefix traversal}$ 1310 1310 // write value 1311 print( *tree->left ); $\C{// multiply acquire monitor lock for tree on each recursion}$1312 print( *tree->right );1311 print( tree->left ); $\C{// multiply acquire monitor lock for tree on each recursion}$ 1312 print( tree->right ); 1313 1313 } 1314 1314 \end{cfa} … … 2089 2089 In \CFA, ordering of monitor acquisition relies on memory ordering to prevent deadlock~\cite{Havender68}, because all objects have distinct non-overlapping memory layouts, and mutual-exclusion for a monitor is only defined for its lifetime. 2090 2090 When a mutex call is made, pointers to the concerned monitors are aggregated into a variable-length array and sorted. 2091 This array persists for the entire duration of the mutual exclusion and is used extensively for synchronization operations.2091 This array persists for the entire duration of the mutual-exclusion and is used extensively for synchronization operations. 2092 2092 2093 2093 To improve performance and simplicity, context switching occurs inside a routine call, so only callee-saved registers are copied onto the stack and then the stack register is switched; … … 2170 2170 \end{cfa} 2171 2171 The method used to get time is @clock_gettime( CLOCK_REALTIME )@. 2172 Each benchmark is performed @N@ times, where @N@ varies depending on the benchmark; 2173 the total time is divided by @N@ to obtain the average time for a benchmark. 2172 Each benchmark is performed @N@ times, where @N@ varies depending on the benchmark, the total time is divided by @N@ to obtain the average time for a benchmark. 2174 2173 All omitted tests for other languages are functionally identical to the shown \CFA test. 2175 2174 … … 2316 2315 } 2317 2316 \end{cfa} 2318 \captionof{figure}{\CFA Internal -scheduling benchmark}2317 \captionof{figure}{\CFA Internal scheduling benchmark} 2319 2318 \label{f:int-sched} 2320 2319 2321 2320 \centering 2322 \captionof{table}{Internal -scheduling comparison (nanoseconds)}2321 \captionof{table}{Internal scheduling comparison (nanoseconds)} 2323 2322 \label{tab:int-sched} 2324 2323 \bigskip … … 2367 2366 } 2368 2367 \end{cfa} 2369 \captionof{figure}{\CFA external -scheduling benchmark}2368 \captionof{figure}{\CFA external scheduling benchmark} 2370 2369 \label{f:ext-sched} 2371 2370 2372 2371 \centering 2373 2372 2374 \captionof{table}{External -scheduling comparison (nanoseconds)}2373 \captionof{table}{External scheduling comparison (nanoseconds)} 2375 2374 \label{tab:ext-sched} 2376 2375 \bigskip … … 2398 2397 } 2399 2398 \end{cfa} 2400 \captionof{figure}{\CFA object -creation benchmark}2399 \captionof{figure}{\CFA object creation benchmark} 2401 2400 \label{f:creation} 2402 2401
Note:
See TracChangeset
for help on using the changeset viewer.