OS Locking Pages in Memory
It doesn't mean that input/output is absent if a computer has virtual memory.
Input/Output and virtual memory interact in a subtle ways.
Here the process is suspended and another process allowed to run, while waiting for input/output to complete. Now this other process gets a page fault.
In case, if paging algorithm is global, then there is too little chance that the page contains the input/output buffer will be chosen to be removed from the memory.
Now if an input/output device is currently in the process of doing a DMA transfer to that page, then removing it will cause data part to be written in the buffer where they belong, and data part to be written over the newly loaded page.
To lock the pages engaged in input/output in the memory so that they will not be removed is a solution to the above problem.
And to do all input/output to kernel buffers and then copy data to the user pages later in another solution to the above problem.
« Previous Tutorial Next Tutorial »