Thanks. I found that interesting and informative. BUT, I also found most of it, especially the funny analogy, very misleading.
However you design it (short of somehow knowing in advance what will be the "run away" memory use programs) you can make a legitimate program crash because the buggy program used too much memory. The rest of it is just when and how and how likely, etc.
Most of it comes down to a question of when do you define a program as having allocated memory. The best example, fork, was mentioned in that discussion, but not given enough attention. When a program does a fork() has it just doubled its allocated memory? Or does it allocate that only when one side of the fork writes to the "copy on write" shared pages so they aren't shared any more.
I understand the theoretical beauty of saying the memory is always allocated on whatever system call makes it possible for some later access to really allocate memory. It is a little discomforting to define the allocation as that later event. But very few programs can defend themselves better from a failure in that system call than they can from a failure in that later access. Of those that could defend themselves better, most still don't. So in practical terms the event that matters for memory allocation is the event at which memory is actually taken. Defining it as an earlier event is less efficient with no real benefit.
The better analogy is to the days when airplane tickets were all refundable. When did a seat get committed to a passenger? When he bought the ticket or when he picked up the boarding pass? Of course the airline sold more tickets than they had seats. With all refundable tickets, lots of passengers didn't show up. The airline would lose too much money if they didn't over sell. Of course people would get inconvenienced and annoyed when more passengers showed up than expected. No system is perfect. Over selling tickets was a necessary practical policy. (I'm not ready to discuss the more complicated ethical question of over selling non refundable tickets).