我们都知道 所有语言 都将转化为 汇编语句才能被 机器所执行,比如
mv ax,bx
我们可以认为这条语句具备 原子性,那这和我们认识的锁又有什么关系呢,
我们都知道 进程间切换都是靠时间片 ,也就是时间中断,当一个时间片 中断过来时,我们 会从我们的进程表 拿出一个 优先级高的(一般这么设计)
执行,并压入堆栈 cs,ip,代码段,指针,在保护模式下,这个cs,ip又有点不同,那我这个保证,这个进程 不访问我的,共享内存地址,以为此时 一个新的
进程启动时,那么他可能 覆盖了内存地址的数据,和刚才那个进程所做事就冲突了,此时,我们可以想到 每一条汇编指令 的原子性
mv ax,1
比如这一条 当 主程序 启动时 我可以 做这么一件事,
当下一个程序启动时,我们可以做这么一种判断
cmp ax,1
je [cs:ip]