- Timestamp:
- Aug 23, 2022, 6:40:54 AM (2 years ago)
- Branches:
- ADT, ast-experimental, master, pthread-emulation
- Children:
- 8baa40aa
- Parents:
- 4fee301 (diff), 94eff4c (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. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/thierry_delisle_PhD/thesis/text/existing.tex
r4fee301 r0c40bfe 50 50 It can therefore be desirable for schedulers to support \ats with identical priorities and/or automatically setting and adjusting priorities for \ats. 51 51 Most common operating systems use some variant on priorities with overlaps and dynamic priority adjustments. 52 For example, Microsoft Windows uses a pair of priorities 53 \cite{win:priority}, one specified by users out of ten possible options and one adjusted by the system. 52 For example, Microsoft Windows uses a pair of priorities~\cite{win:priority}, one specified by users out of ten possible options and one adjusted by the system. 54 53 55 54 \subsection{Uninformed and Self-Informed Dynamic Schedulers} … … 137 136 The scheduler may also temporarily adjust priorities after certain effects like the completion of I/O requests. 138 137 139 In~\cite{russinovich2009windows}, Chapter 1 section ``Processes, Threads, and Jobs'' discusses the scheduling policy more in depth.140 Multicore scheduling is based on a combination of priorities ,preferred \proc.141 Each \at is assigned an \newterm{ideal} \proc using a round-robin policy.142 \Gls {at} are distributed among the \procs according to their priority, preferring to match \ats to their ideal \proc and then to the last \proc they ran on.143 This is similar to a variation of work stealing, where the stealing \proc restore the \at to its original \proc after running it, but with priorities added onto the mix.138 In~\cite{russinovich2009windows}, Chapter 1 section ``Processes, Threads, and Jobs''\todo{Look up section number.} discusses the scheduling policy more in depth. 139 Multicore scheduling is based on a combination of priorities and preferred \proc. 140 Each \at is assigned an initial processor using a round-robin policy, called the \at's \newterm{ideal} \proc. 141 \Glspl{at} are distributed among the \procs according to their priority, preferring to match \ats to their ideal \proc and then to the last \proc they ran on. 142 This approach is a variation of work stealing, where the stealing \proc restore the \at to its original \proc after running it, but mixed with priorities. 144 143 145 144 \paragraph{Apple OS X} … … 203 202 204 203 \paragraph{Grand Central Dispatch} 205 An Apple \cite{apple:gcd} API that offers task parallelism~\cite{wiki:taskparallel}.204 An Apple~\cite{apple:gcd} API that offers task parallelism~\cite{wiki:taskparallel}. 206 205 Its distinctive aspect is multiple ``Dispatch Queues'', some of which are created by programmers. 207 206 Each queue has its own local ordering guarantees, \eg \ats on queue $A$ are executed in \emph{FIFO} order. 208 207 209 While the documentation only gives limited insight into the scheduling and load balancing approach, \cite{apple:gcd2} suggests an approach fairly classic; 210 Where each \proc has a queue of \newterm{blocks} to run, effectively \ats, and they drain their respective queues in \glsxtrshort{fifo}. 211 They seem to add the concept of dependent queues with clear ordering, where a executing a block ends-up scheduling more blocks. 212 In terms of semantics, these Dispatch Queues seem to be very similar to Intel\textregistered ~TBB @execute()@ and predecessor semantics. 208 While the documentation only gives limited insight into the scheduling and load balancing approach, \cite{apple:gcd2} suggests a fairly classic approach. 209 Each \proc has a queue of \ats to run, called \newterm{blocks}, which are drained in \glsxtrshort{fifo}. 210 \todo{update: They seem to add the concept of dependent queues with clear ordering, where executing a block ends-up scheduling more blocks. 211 In terms of semantics, these Dispatch Queues seem to be very similar to Intel\textregistered ~TBB \lstinline{execute()} and predecessor semantics.} 212 213 213 214 214 \paragraph{LibFibre}
Note: See TracChangeset
for help on using the changeset viewer.