Extra Credit Project -------------------- One advantage of using shared memory in your chat program is as follows. When you chat, you can simply call "writechat(buffer)" and when you display others chat message, you can call "display(buffer)"! Now, where is the advantage? The advantage is (hopefully) you kept the shared memory implementation and chat program separate. If you did, you can easily handle users dynamically joining and leaving. The reason is that joining and leaving will affect only the number of replicas. The "underlying" write and read on shared memory will keep track of the number of replicas. However, joining and leaving are tough to achieve for Ricart-agarwala since you would need to get replies fom a dynamically changing number of sites. It can result in inconsistency when you do not implement Ricart-Agarwala with correct methods for joining and leaving. Hence, I sussest that you have a "fixed" number of sites for Ricart-agarwala as in your earlier project. But changes the number of processes in chat application. For extra credit, I suggest that you have 1 process join the chat and then after some time, show 1 process leave. For the newly join process it is NOT necessary to get all the earlier messages exchanged before its join. ----------------- I know some students are short only by 5 points and some by more than 20+points.I thought about it (in fact, that is the reason for the delay in sending this to you). However, it will be tough for me to come up with varying extra credit projects and get it evaluated by the TA. So, this extra credit project is same for all students. As usual, get in touch for any clarification.