首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用中断是否会自动禁用CPU调度?

禁用中断是否会自动禁用CPU调度?
EN

Stack Overflow用户
提问于 2011-04-21 16:54:10
回答 1查看 5K关注 0票数 2

嘿,伙计们,如果中断被禁用,所有的进程/线程调度都将被禁用,这是真的吗?我所知道的是中断包括时钟中断和其他中断。CPU调度(例如,轮询)基于时钟中断。如果禁用,那么调度也会被禁用,当前线程会继续执行,直到占用CPU为止。如果我说错了,请纠正我。

如果它是纯粹基于优先级的调度,而不是RR (考虑到实时系统),并且一个低优先级线程禁用了中断,那么一个高优先级线程到达,低优先级线程会被抢占吗?

这让我开始思考操作系统的保护问题。如果某些用户故意编写病毒来禁用中断怎么办?也许他不能在用户模式下做到这一点,如果他写了一个运行在内核模式下的程序,并且做了那么糟糕的事情怎么办?他能做到吗?

我并不期望所有平台都有通用的规则。所以请让我知道平台上的情况,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-22 07:07:04

实际上,您的问题的答案取决于架构。让我们假设我们谈论的是i386或x86_64,因为它们是当今最流行的处理器架构。

用户模式程序无法清除中断标志,因为它需要CPL (当前特权级别) 0。用户模式程序永远不会有CPL 0。例如,在Linux中,用户模式程序使用CPL 2运行,而只有内核使用CPL 0运行。因此,您不能编写禁用中断从而禁用调度的病毒。在Windows中,如果我没记错的话,程序是用CPL1运行的。

另一方面,在内核中运行代码(在任何操作系统中)都需要管理权限,这允许您做任何想做的事情,所以在内核模式下禁用中断没有任何意义。

希望这能回答你的问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5741760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档