much of the performance problem normally associated with microkernel systems are due to the context switches as messages are passed back and forth between applications. in the example above running on a v system, there would have to be a total of eight context switches; two for each request as the client switched to and from the kernel. in vanguard using a chain would reduce this to only three switches; one out of the client into the kernel, another from the kernel to the file server, and finally from the server back to the client. in some cases the overhead of a context switch is greater than the time it takes to actually run the request, so vanguard's chaining mechanism could result in real-world performance improvements.