Ignore:
Timestamp:
Jun 27, 2022, 8:29:11 AM (3 months ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
master, pthread-emulation, qualifiedEnum
Children:
e4ea4b8d
Parents:
9b817e15
Message:

talk about Go safe-points

File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/theses/thierry_delisle_PhD/thesis/text/existing.tex

    r9b817e15 rcad61f4  
    103103\subsection{User-Level Schedulers}
    104104By comparison, user level schedulers tend to be simpler, gathering fewer metrics and avoid complex notions of fairness. Part of the simplicity is due to the fact that all \glspl{at} have the same user, and therefore cooperation is both feasible and probable.
    105 \paragraph{Go}
    106 Go's scheduler uses a randomized work-stealing algorithm that has a global run-queue (\emph{GRQ}) and each processor (\emph{P}) has both a fixed-size run-queue (\emph{LRQ}) and a high-priority next ``chair'' holding a single element~\cite{GITHUB:go,YTUBE:go}. Preemption is present, but only at function call boundaries.
     105
     106\paragraph{Go}\label{GoSafePoint}
     107Go's scheduler uses a randomized work-stealing algorithm that has a global run-queue (\emph{GRQ}) and each processor (\emph{P}) has both a fixed-size run-queue (\emph{LRQ}) and a high-priority next ``chair'' holding a single element~\cite{GITHUB:go,YTUBE:go}. Preemption is present, but only at safe-points,~\cit{https://go.dev/src/runtime/preempt.go} which are inserted detection code at various frequent access boundaries.
    107108
    108109The algorithm is as follows :
Note: See TracChangeset for help on using the changeset viewer.