中断、异常、系统调用

一)从宏观上把握关键部分

  在宏观上主要是包括三个部分的内容:

    第一个是操作系统内核,是整个内容的核心;

    第二个是外部设备,包括了输入输出设备,存储设备等。

    第三个是应用程序,主要是由用户运用的程序。

(二)处理过程:主要是讨论双方之间的关系

  1、操作系统与外部设备之间:主要通过中断机制来实现。

    例如,在键盘在输出的时候,首先会把数据写到一个特定的缓冲区,这个缓冲区是有大小限制,如果数据超过其限制大小,先前数入的内容就会被冲掉,所以外部设备会通过中断机制,向内核发出指令,然后内核通过调用设备驱动程序,及时把缓冲区的内容读写到内核中。这样就达成了一个操作系统内核与外部设备进行数据交互的过程。

  2、操作系统与上层应用程序:主要通过异常与系统调用两个机制来实现。

  这里面可以分为两种情况来讨论,一种是应用程序异常运行程序的情况,另一种是应用程序正常运行的情况。

  (1)异常的处理机制:例如在应用程序有一个程序片段,是一个除以零的代码,这显然是不合法的。在内核处理过程中,就会通过“异常服务例程"进行处理,捕获到异常的代码,然后抛出异常来即时处理,并返回异常处理结果。

  (2)程序正常处理机制:这种情况是出现最多。当程序运行时,调用相关的函数库来获取系统调用接口,通过相关接口向存储设备或输入输出设备请求数据,然后在内核中处理应用程序,最后并把结果输出给用户或保存回存储设备。这个过程主要是依靠系统调用机制来实现。举个例子,银行储存着用户的钱,但是在用户取钱的时候,又不允许用户直接拿钥匙去开保险柜,所以需要对外提供一个服务的窗口。当用户需要拿钱的时候,就需要到柜台办理取钱业务,然后由柜台人员把钱取出来交给用户,此时的柜台人员就相当于系统调用接口,充当两者交流中心或处理中心的的中介作用。

原文地址:https://www.cnblogs.com/cjsword/p/12149474.html