On page 25.1, under the section headed "Complex services" which is describing one of the ways in which complex service processes communicate with each other, the paragraph ends with "The processes may communicate by reading and writing shared files in the file system. By". I am unsure whether theres some text missing or whether the 'By' was an accidental addition, but it left me with a question relating to this section of the reading. For complex services, such as the example about banking transactions, if we know that information will be shared between many different tasks, the book says "It is often convenient to implement the service as a collection of processes", which makes sense considering everything we've learned about the abstraction of processes and file systems, but why can't we use the threads abstraction and TLS system to manage complex services that need to share information, and forgo dealing with process synchronization for these types of tasks since we know they will certainly need to share information? Could this question be addressed in the textbook under the "Complex Services" section because I think it would be helpful context for recalling the exact differences between when we'd use threads and when we'd use processes.
On page 25.1, under the section headed "Complex services" which is describing one of the ways in which complex service processes communicate with each other, the paragraph ends with "The processes may communicate by reading and writing shared files in the file system. By". I am unsure whether theres some text missing or whether the 'By' was an accidental addition, but it left me with a question relating to this section of the reading. For complex services, such as the example about banking transactions, if we know that information will be shared between many different tasks, the book says "It is often convenient to implement the service as a collection of processes", which makes sense considering everything we've learned about the abstraction of processes and file systems, but why can't we use the threads abstraction and TLS system to manage complex services that need to share information, and forgo dealing with process synchronization for these types of tasks since we know they will certainly need to share information? Could this question be addressed in the textbook under the "Complex Services" section because I think it would be helpful context for recalling the exact differences between when we'd use threads and when we'd use processes.