操作系统学习笔记(20)--开中断、关中断及原子操作

本文探讨了操作系统如何在执行原子操作时控制中断,包括检查中断状态、关闭中断、恢复中断状态等关键步骤。通过伪码和汇编代码展示了开始和结束原子操作的过程,并介绍了`sti`和`cli`指令用于开关中断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

操作系统在很多情况下,需要进行原子操作,此时是不可以进行中断响应的。

根据需要此时需要关闭中断,在原子操作完了之后再进行开中断。

 

中断相关的操作有:

1 知道EFFLAG的中断位

2 中断开、关的指令

3 如果进行C语言设置时的参数传递

 

下面给出部分伪码:

 

 原子操作() {

  开始原子操作();

  操作;

  结束原子操作();

}

 

开始原子操作() {

 1 检查中断是否允许

    {

         获取EFLAGS寄存器值查看中断位值判断是否允许 为1是开中断 0为关中断;

    }

 2 允许的话关闭中断 

    {

        cli;

    }

}

 

汇编代码如下: GLOB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值