操作系统--中断与系统调用

操作系统--中断与系统调用

1. 中断

1-1. 中断的概念

指处理器停止当前运行的程序,转而处理新的程序。新程序处理结束后,回来继续处理原来被停止的程序。

 

1-2. 中断的作用

  • 提高计算机的运行效率
    因为协调了外部设备速度慢和CPU处理速度快的矛盾
  • 维持系统可靠正常工作
    如果遇到异常情况,CPU可以通过发起中断来维持系统稳定
  • 满足实时处理要求
    可以保证一些处理优先级高的程序优先执行
  • 提供故障现场处理手段
    CPU一旦发现故障或者错误,可以立即中断程序

 

1-3. 中断的分类

intel系列CPU把中断进一步分为异常和中断两类。

 

 

  • 中断
    • 可屏蔽中断:IO设备发出的,CPU可以选择是否响应的中断
    • 非可屏蔽中断:IO设备发出的,CPU必须响应的中断
  • 异常
    • 处理器探测异常:处理器执行指令过程中发现翻唱条件所产生的异常
    • 变成异常:编程者产生的异常

 

1-4. 中断向量与中断描述符表

  • 中断向量:系统为每个中断分配了一个唯一标识号,范围是0~255,其作用是作为中断描述符表的索引号,所以中断描述符表只有256个表项
  • 中断描述符表:CPU会把内存中1KB的空间拿出来存放中断描述符表,每一个表项占用8B空间。空间内存储出现该中断时,系统必须执行的一些指令

 

2. 系统调用

2-1. 概述

  • 概念:提供接口给应用程序来使用,是计算机硬件系统和用户程序之间的一个中间层。
  • 作用:
    • 方便了程序员,把程序员从计算底层原理中解放出来
    • 通过权限控制来提高系统的稳定性
    • 只要接口相同,应程序就可以在不同操作系统上实现移植

 

2-2. 系统调用号、系统调用服务例程和系统调用入口表

  • 系统调用号:在操作系统中,系统调用使用号码进行存储
  • 系统调用入口表:可以使用系统调用号在表里查询到相应的系统调用服务例程
  • 系统调用服务例程:在操作系统内核中的真正实现调用硬件资源的函数

系统调用过程:

  1. 应用程序产生系统调用,并查询内存中的系统调用入口表得到系统调用号并存储在硬件中(linux中为EAX寄存器中)
  2. 应用程序产生异常编程来发出中断请求,迫使CPU切换状态并调用系统调用程序
  3. 系统调用程序通过系统调用号来找到相应的系统调用例程,最终实现功能