We have implemented our mechanism in UX42 , a BSD UNIX server running on Mach 3.0 . UX42 resides in user space and is organized as a collection of C threads . Most threads handle BSD system calls. Among the others are NFS  async daemons, which handle asynchronous NFS block I/O requests. Since we expect that network file accesses would be the performance bottleneck in a client-server architecture, we prefetch only NFS files opened for read.