List of buffers instead of joing buffers + delayed flush
Posted: Mon Feb 24, 2020 12:49 pm
I wonder if there exist OS using this technique to write to files or devices.
Instead of join buffers (allocating/moving) memory or switch context on each write, just providing list or array of pointer to buffers to write. Each thread will have one's structure. If we use array, then we have limited size.
Additionally, there must be call to flush this data and additionally to mark data as ready. If app flush data, we send data to system buffer/file or device. But data won't be copy to kernel automatically until data is market to be flushed. Flush operation will be made if application request or on context switch. On context switch kernel will only copy data marked as ready.
The idea was partially inspired on OpenGL/Vulcan.
Does any OS using this technique? What are benefits and disadvantages? How much slower/faster is this technique than others?
Instead of join buffers (allocating/moving) memory or switch context on each write, just providing list or array of pointer to buffers to write. Each thread will have one's structure. If we use array, then we have limited size.
Additionally, there must be call to flush this data and additionally to mark data as ready. If app flush data, we send data to system buffer/file or device. But data won't be copy to kernel automatically until data is market to be flushed. Flush operation will be made if application request or on context switch. On context switch kernel will only copy data marked as ready.
The idea was partially inspired on OpenGL/Vulcan.
Does any OS using this technique? What are benefits and disadvantages? How much slower/faster is this technique than others?