Changeset a2fd937


Ignore:
Timestamp:
Sep 15, 2022, 11:48:19 AM (19 months ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, ast-experimental, master, pthread-emulation
Children:
2c63fa2
Parents:
95e5018
Message:

Finished last todo

Location:
doc/theses/thierry_delisle_PhD/thesis
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • doc/theses/thierry_delisle_PhD/thesis/local.bib

    r95e5018 ra2fd937  
    842842}
    843843
     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
    844853@misc{MAN:io_uring,
    845854  title   = {Efficient IO with io\_uring},
     
    850859  howpublished = {\href{https://kernel.dk/io_uring.pdf}{https://\-kernel.dk/\-io\_uring.pdf}}
    851860}
     861
    852862
    853863% --------------------------------------------------
  • doc/theses/thierry_delisle_PhD/thesis/text/io.tex

    r95e5018 ra2fd937  
    3030Hence, 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.
    3131However, 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.
     32Note, 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.
    3333Often the I/O manager has a timeout, polls, or is sent a signal on changes to mitigate this problem.
    3434
     
    4646However, all three of these I/O systems have limitations.
    4747The @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}.
     48Furthermore, TTYs can also be tricky to use since they can take different forms based on how the command is executed.
     49For 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@.
    4950Finally, 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.
    5051
Note: See TracChangeset for help on using the changeset viewer.