I am reading Directory-Based Cache Coherence Protocols: The Basics of the book Computer architecture A quantitative approach. The following is a picture of the state transition diagram for the directory on the textbook. My question is: why the block in the shared state does not handle the write hit event? In my opinion, if the block is in the shared state and the write hit event occurs, the block should go to the exclusive state. I believe that I read this chapter carefully but did not find any explanation. Is it because the diagram is only for the basic directory-based protocol?
Follow up question: The picture below is the cache state diagram of Snooping protocol. The read-only shared block is able to receive the event called Write miss for this block. Does it imply that writing a read-only block is allowed?