4 ms·
Interestingly, Genode actually also uses two rings for async bulk transfer RPC (packet streams)[0], only the rings are called submit queue and acknowledgement q
by PyroLagus 7y ago
Interestingly, Genode actually also uses two rings for async bulk transfer RPC (packet streams)[0], only the rings are called submit queue and acknowledgement queue rather than submission queue and completion queue. And since Genode applications do I/O by communicating with a service implementing the block session interface[1], which uses the aforementioned packet streams, Genode essentially uses two ring buffers for async I/O just like Linux does (well, I guess it's more the other way around).
I can definitely recommend reading through the first half of Genode Foundations (the second half is just an API reference). It's really interesting and informative, and it's a surprisingly easy read as well. However, I'd wait till the 19.05 edition gets released, since that should be less than a month's wait if they manage to release it on time.
[0] https://genode.org/documentation/genode-foundations-18-05.pdf https://genode.org/documentation/genode-foundations-18-05.pd... (page 92)
[1] (pages 94 & 116)
- salotz 7y agoWas about to say the same thing! +1 for reading the Genode manual. It is the best resource I have ever found for understanding operating systems, security, and architecture. The discussion of multiplexers and report-ROM modules is pertinent here as well (pg 133).