2-2操作系统的中断、异常和系统调用

文章详细阐述了中断和异常的处理过程,包括硬件中断标记、中断服务例程的查找和执行,以及执行现场的保存与恢复。同时,对比了异常处理的不同,特别是异常可能导致程序退出或继续执行的情况。系统调用的讨论集中在应用程序如何通过API间接控制操作系统,以及用户态到内核态的转换和其带来的安全与性能开销。

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

中断是外设的事件

异常是内部CPU的事件

中断和异常迫使CPU访问一些被中断和异常服务访问的功能

硬件

设置中断标记(CPU初始化)

  • 将内部、外部事件设置中断标记
  • 中断事件的ID 中断事件的ID指程序访问的中断向量地址。

中断和异常的处理过程:

他们都有一个硬件的处理过程和软件的处理过程。这两者结合在一起才能正确完成一个中断或者异常的操作系统的具体的一个服务。

首先产生一个中断或者异常之后呢,需要知道这个具体中断或者异常是由哪个特定的服务例程来服务,这一点需要去判断的。为此需要建立一个表。

它的key是中断号或者是异常号,因为每一个中断和异常把它编号之后,很容易区分出来到底产生的是硬盘的中断还是键盘的中断还是鼠标的中断,这很容易区分出来,不同的外设产生的中断,它都有一个特定的编号,有了这个编号之后呢,对于特定的编号,我们就有一个对应的地址,这个地址实际上就是针对这个特定中断的服务例程的地址。有了这个地址之后,假定操作系统收到了这个中断,收到中断之后可以直接根据这个表,查找这个表(中断表),可以查到它对应的那个中断服务例程那个起始地址,直接转跳到那里执行,这实际上是一个简单的描述。

如果需要系统正常的完成工作,还需要完成更多的事情,因为产生中断后,是打断了当前的正常执行,来处理一个更加紧急的外设的一个中断事件,那你打断一个程序的正常执行的话,我们需要在硬件和软件方面做出一定的保护,或者称之为保存与恢复机制。有了这个保存和恢复之后呢,我们才能让我们整个系统在完成完中断处理后,能够正常继续运行,这也是我们说中断处理过程中需要主要的实现细节。

这里面分两部分完成,

第一部分硬件:

硬件(外设是一个硬件),当它需要操作系统产生相应的支持之后呢,需要产生一个标记,会让我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值