I guess, you’re already shaking your head, asking yourself what the heck I would copy on write – but be sure, I know what I am talking about. We are talking about memory management on modern IT systems.
Let’s assume, we are a computer system, running several processes which want access on a file. Simultaneously, of course, to make things complicated. Usually we would need to copy the file into memory – one time per process, which would be quite a mass on copy processes, depending on the number of processes, of course.
Keep in mind, that accessing a file does not neccessary include writing a file. A process might just want to read some data from our ressource. In other words, we point all our processes to the original dataset in memory until one of them wants to modify stuff. If that happens, the process gets its own copy to do his job with. That saves us a ton memory, doesn’t it?