Changeset a2fd937 for doc/theses/thierry_delisle_PhD
- Timestamp:
- Sep 15, 2022, 11:48:19 AM (2 years ago)
- Branches:
- ADT, ast-experimental, master, pthread-emulation
- Children:
- 2c63fa2
- Parents:
- 95e5018
- Location:
- doc/theses/thierry_delisle_PhD/thesis
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/thierry_delisle_PhD/thesis/local.bib
r95e5018 ra2fd937 842 842 } 843 843 844 @manual{MAN:bash, 845 title = {Bash Reference Manual}, 846 author = {Chet Ramey and Brian Fox}, 847 year = "2020", 848 month = "December", 849 version = {5,1}, 850 howpublished = {\href{https://www.gnu.org/software/bash/manual/bash.pdf}{https://\-www.gnu.org/\-software/\-bash/\-manual/\-bash.pdf}} 851 } 852 844 853 @misc{MAN:io_uring, 845 854 title = {Efficient IO with io\_uring}, … … 850 859 howpublished = {\href{https://kernel.dk/io_uring.pdf}{https://\-kernel.dk/\-io\_uring.pdf}} 851 860 } 861 852 862 853 863 % -------------------------------------------------- -
doc/theses/thierry_delisle_PhD/thesis/text/io.tex
r95e5018 ra2fd937 30 30 Hence, if one \gls{kthrd} is managing the select calls, other threads can only add/remove to/from the manager's interest set through synchronized calls to update the interest set. 31 31 However, these changes are only reflected when the manager makes its next call to @select@. 32 Note, it is possible for the manager thread to never unblock if its current interest set never changes, \eg the sockets/pipes/ ttys it is waiting on never get data again.32 Note, it is possible for the manager thread to never unblock if its current interest set never changes, \eg the sockets/pipes/TTYs it is waiting on never get data again. 33 33 Often the I/O manager has a timeout, polls, or is sent a signal on changes to mitigate this problem. 34 34 … … 46 46 However, all three of these I/O systems have limitations. 47 47 The @man@ page for @O_NONBLOCK@ mentions that ``[@O_NONBLOCK@] has no effect for regular files and block devices'', which means none of these three system calls are viable multiplexing strategies for these types of \io operations. 48 Furthermore, @epoll@ has been shown to have problems with pipes and ttys~\cit{Peter's examples in some fashion}. 48 Furthermore, TTYs can also be tricky to use since they can take different forms based on how the command is executed. 49 For example, @epoll@ rejects FDs pointing to regular files or block devices, which includes @stdin@ when using shell redirections~\cite[\S~3.6]{MAN:bash}, but does not reject shell pipelines~\cite[\S~3.2.3]{MAN:bash}, which includes pipelines into @stdin@. 49 50 Finally, none of these are useful solutions for multiplexing \io operations that do not have a corresponding file descriptor and can be awkward for operations using multiple file descriptors. 50 51
Note: See TracChangeset
for help on using the changeset viewer.