Changeset 41870a5 for doc/theses/thierry_delisle_PhD/thesis/text/io.tex
- Timestamp:
- Feb 25, 2022, 6:20:22 PM (3 years ago)
- Branches:
- ADT, ast-experimental, enum, master, pthread-emulation, qualifiedEnum
- Children:
- 05ffb7b
- Parents:
- afe9e45 (diff), c5af4f9 (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/io.tex
rafe9e45 r41870a5 1 1 \chapter{User Level \io} 2 2 As mentioned in Section~\ref{prev:io}, User-Level \io requires multiplexing the \io operations of many \glspl{thrd} onto fewer \glspl{proc} using asynchronous \io operations. 3 Different operating systems offer various forms of asynchronous operations and as mentioned in Chapter~\ref{intro}, this work is exclusively focused on the Linux operating-system.3 Different operating systems offer various forms of asynchronous operations and, as mentioned in Chapter~\ref{intro}, this work is exclusively focused on the Linux operating-system. 4 4 5 5 \section{Kernel Interface} … … 178 178 Since completions are sent to the instance where requests were submitted, all instances with pending operations must be polled continously 179 179 \footnote{As will be described in Chapter~\ref{practice}, this does not translate into constant cpu usage.}. 180 Note that once an operation completes, there is nothing that ties it to the @io_uring@ instance that handled it. 181 There is nothing preventing a new operation with, for example, the same file descriptors to a different @io_uring@ instance. 180 182 181 183 A complicating aspect of submission is @io_uring@'s support for chains of operations, where the completion of an operation triggers the submission of the next operation on the link. … … 240 242 To remove this requirement, a \gls{thrd} would need the ability to ``yield to a specific \gls{proc}'', \ie, park with the promise that it will be run next on a specific \gls{proc}, the \gls{proc} attached to the correct ring.} 241 243 , greatly simplifying both allocation and submission. 242 In this design, allocation and submission form a ringpartitionned ring buffer as shown in Figure~\ref{fig:pring}.244 In this design, allocation and submission form a partitionned ring buffer as shown in Figure~\ref{fig:pring}. 243 245 Once added to the ring buffer, the attached \gls{proc} has a significant amount of flexibility with regards to when to do the system call. 244 Possible options are: when the \gls{proc} runs out of \glspl{thrd} to run, after running a given number of threads\glspl{thrd}, etc.246 Possible options are: when the \gls{proc} runs out of \glspl{thrd} to run, after running a given number of \glspl{thrd}, etc. 245 247 246 248 \begin{figure}
Note: See TracChangeset
for help on using the changeset viewer.