The kernel task has the privilege to copy data from any part of physical memory to any other part. To copy from virtual address A in process 1's address space to a virtual address B in process 2's address space, the kernel task needs to know
- the virtual address A and the process (1)
- the virtual address B and the process (2)
- the number of bytes to copy
The system task could then copy the data as follows
- translate virtual address A to a physical address
- translate virtual address B to a physical address
- copies the specified bytes from physical address to physical address