处理器自动遵循LOCK语义的操作如下:
•执行引用存储器的XCHG指令时。
•设置TSS描述符的B(忙)标志时 - 处理器切换到任务时,在TSS描述符的类型字段中测试并设置忙标志。为了确保两个处理器不能同时切换到相同的任务,处理器在测试和设置该标志的同时遵循LOCK语义。
•更新段描述符时 - 加载段描述符时,如果标志清除,处理器将在段描述符中设置访问标志。在此操作期间,处理器遵循LOCK语义,以便描述符在更新时不会被另一个处理器修改。
要使此操作有效,更新描述符的操作系统过程应使用以下步骤:
- 使用锁定的操作来修改访问权限字节,以指示段描述符不存在,并为类型字段指定一个值,指示描述符正在更新。
- 更新段描述符的字段。 (此操作可能需要多次内存访问;因此,不能使用锁定操作。)
- 使用锁定操作来修改访问权限字节,以指示段描述符是有效的并且存在。
•Intel386处理器总是更新段描述符中的访问标志,无论是否清除。
如果Pentium 4,Intel Xeon,P6系列,Pentium和Intel486处理器尚未设置,则只更新此标志。
•更新页目录和页表项时 - 更新页目录和页表项时,处理器使用锁定的周期在页目录和页表项中设置访问和脏标志。
•确认中断 - 中断请求后,中断控制器可以使用数据总线将中断向量发送给处理器。在此期间,处理器遵循LOCK语义,以确保在传输向量时,数据总线上不会出现其他数据。