Richard Braun, le Tue 27 May 2014 14:12:07 +0200, a écrit : > > But the paging part also comes from client events, doesn't it? E.g. > > on-demand loads of parts of mapped libraries, etc. > > If on-demand here means on page fault, then no. In Mach, client threads > don't process their page faults, the kernel merely sends async requests > to external pagers. There is normally no I/O when the underlying > physical pages are already resident. External pagers are used only when > I/O must be done,
Sure, sure. > in which case a single thread per backing device is > fine since processing incoming requests is normally orders of magnitude > faster than the underlying device latency. But precisely: once the only thread gets a data_request, it'll call pager_read_page, which will typically call store_read, which will wait on the eventual I/O, and no other request will be processed during that time, and thus not pipelining the I/O requests. Samuel