Paging, cache, nocache I/O

Generally all the assumptions are valid. You already know that drivers can initiate paging IO without the Memory Manager involvement.

You can add to the list an IO by memory mapping a file which involves only the Memory Manager and excludes the Cache Manager. In that case paging IO is not preceded by non-paging IO( “cached” in your parlance ).

Nevertheless, there is something to add

  • A file system driver calls the Cache Manager. Applications do not interact with the Cache Manager.
  • Applications interact directly with the Memory Manager for memory mapped file IO.
  • A file system driver can use cache for non-cached IO ( in addition should be non-paging). Non-cached IO is an advice to a file system driver. The driver can ignore it.