I am wondering what is the purpose of Chrome using multiple processes for each tabs? I asked this to C++ chat room and one responded it is a product of laziness. I personally believe this is an example of "Distributed processing" like in Erlang programming language. What exactly is it?
It's simply to completely separate failure of each different tab and plugin.
When one fail, whatever the way it fails, only this one will crash. The monitoring process will just report that it failed and will be able to reload it.
C++ have shared memory by default and an exception system which makes easy to crash the whole application if one part isn't working correctly. It completely solves this problem.
It also allows easier sandboxing of plugins as they have their own process so they benefit from the same advantage: if they fail, Chrome don't.
It might also have some advantages on memory management as it's easier for the OS to allocate only for one process use of memory instead of several modules working with the same memory which basically means fragmentation and slow-down when the memory allocated gets bigger.
It's about isolating each application resources management.
Basically Chrome is designed more like a decent OS for web applications (whatever that mean).