This architectural pattern is quite common. I have worked on it personally when doing work in the windows kernel. Both the file system stack and network stack use this pattern, as any driver can plug in a filter in different spots without needing to know who is directly above or below. This is helpful as it gives a standard API for developers to work with and be interoperable with both the OS and third party filters in the system.
In this case, the filters are passive, waiting on input coming from a device or for data to be written to the device. This is beneficial in reducing the number of threads and time spent in the kernel. Because all filters are in the kernel, to context switching is needed either, reducing the time needed for marshaling data as would be required in other cases.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment