首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在操作系统中,系统调用和中断有什么区别?

在操作系统中,系统调用和中断有什么区别?
EN

Stack Overflow用户
提问于 2015-11-11 16:00:09
回答 2查看 28.5K关注 0票数 29

在操作系统中,系统调用和中断有什么区别?所有的系统呼叫都被打断了吗?所有的系统呼叫都中断了吗?

EN

Stack Overflow用户

发布于 2015-11-13 03:55:25

问题的答案取决于底层硬件(有时还包括操作系统实现)。我一会儿再谈这件事。

在操作系统中,系统调用和中断有什么区别?

中断处理程序和系统调用(和故障处理程序)的目的大致相同:将处理器切换到内核模式,同时提供对内核结构的不小心或恶意访问的保护。

中断由异步外部事件触发。系统调用(或故障或陷阱)是通过执行代码同步触发的。

所有的系统呼叫都被打断了吗?所有的系统呼叫都中断了吗?

系统调用不会中断,因为它们不是由硬件异步触发的。进程继续在系统调用中执行其代码流,但不在中断中执行。

话虽如此,英特尔的文档常常将中断、系统调用、陷阱和错误混为一谈,称为“中断”。

一些处理器对系统调用、陷阱、故障和中断的处理方式大致相同。其他(尤其是Intel)提供了不同的实现系统调用的方法。

在以相同方式处理上述所有内容的处理器中,每种类型的中断、陷阱和故障都有唯一的编号。处理器期望操作系统设置指向处理程序的指针的向量(数组)。此外,操作系统还可以使用一个或多个处理程序来实现系统调用。

根据可用处理程序的数量,操作系统可能对每个系统调用都有一个单独的处理程序,或者使用一个寄存器值来确定要执行的特定系统功能。

在这种系统中,可以以调用系统调用的方式同步执行中断处理程序。

例如,在VAX上,CHMK #4指令调用第四个内核模式处理程序。在英特尔的土地上,有一个INT指令,大致相同。

英特尔处理器支持SYSCALL机制,该机制提供了一种实现系统调用的不同方式。

票数 5
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33654579

复制
相关文章

相似问题

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