Both of the models just mentioned are common in operating systems,
and many systems implement both. Message passing is useful for exchanging
smaller amounts of data, because no conflicts need be avoided. Message
passing is also easier to implement in a distributed system than shared memory.
(Although there are systems that provide distributed shared memory,we do not
consider them in this text.) Shared memory can be faster than message passing,
since message-passing systems are typically implemented using system calls