3 ms·
One of the more important jobs a system's OS does is manage I/O devices. Modern kernels don't wait for a read request and then go and read from the disk drive.
by todd8 10y ago
One of the more important jobs a system's OS does is manage I/O devices. Modern kernels don't wait for a read request and then go and read from the disk drive. They both read ahead, anticipating future read requests from the pattern of requests already made, and cache as much read data as they can to avoid touching the disk when a file is revisited. (I was a kernel architect on IBM's AIX.)
While coding, your overall system is really just idling and it wouldn't be unusual for many of your projects header files and source files to be cached in memory because of your last compile. This effect is more pronounced on machines with a lot of memory of course. The cost savings from careful disk management is very important overall, but will it speed up the ag application? I'm surprised that ag only gets a 15% speed up with threads, but naturally it will depend on many factors.
- TomHubelbauer 10y agoVery cool insight, do you know if the Windows kernel does the same? I'd like to learn more about it in context of Windows first, then Linux.
- todd8 10y agoYes Windows does disk caching. This looks like a nice explanation: https://msdn.microsoft.com/en-us/library/windows/desktop/aa364218(v=vs.85).aspx https://msdn.microsoft.com/en-us/library/windows/desktop/aa3...