fserver is the lesser component of a network-cached hard disk implementation that I worked on for a graduate-level operating systems course. It is extremely simple, but demonstrates how to use several components of the Boost C++ standard library extension, especially the threadpool library available at http://threadpool.sourceforge.net/
fserver source (zip, 8K)
Paper describing the project (pdf, 128K)
I took a graduate-level operating systems course in the fall of 2006, at which time I had the pleasure of working with an incredibly talented individual by the name of Dutch Meyer. Our course project (which was almost entirely completed by him) involved caching the read-only contents of a drive on a network server, and routing disk requests for these contents to the network server. Dutch did all the heavy lifting: That is, he wrote the Windows driver filter that intercepted the requests and sent queries over the network. I had the easy job of implementing the cache server.
The server implementation is extremely basic, and the code is quite small. Use of the Boost libraries made it even smaller and simpler than it otherwise would have been. Thus, I have supplied the source here so that people interested in Boost can see a practical usage example that is still quite easy to understand. The use of the unofficial Boost threadpool extension is especially useful, I think, since the documentation for that project is pretty sparse. The threadpool is one of my favorite concurrency patterns (probably since it’s so simple), so I was glad to find a nice implementation of it out there.
Comments (0)