Let's say I buy 100 shares of XYZ at 7 dollars per share. Then I sell a call for a 6 dollar strike price. Can the person who bought my call exercise it right then and there, or do they have to wait until the price actually hits 6? If the price falls below 6 and then comes up above 6, and the contract is not executed,, did my buyer miss an opportunity? It makes sense that the person who bought my call would wait until the price went way up so he/she could buy my shares for 6 and immediately sell them for 7, 8, 9, or whatever quick profit can be got. Then again are there limits, rules, protection of some sort?

Same with puts. XYZ sells for 7, I sell a put for 6. The contract is not executed until the price drops to 4. Is this part of the risk, or is there some kind of limit?