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

本文深入解析操作系统内核如何与外部设备及应用程序交互,通过中断机制处理设备数据,利用异常与系统调用机制保障应用程序的正常运行,揭示操作系统的核心运作原理。

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

本节操作的系统主要讲系统内核如何与外部设备和应用程序打交道的,这也是操作系统的主要功能:基于硬件设备之运行,为上层的应用程序提供系统服务。

通过本节的例子就可以很清楚地理解操作系统是如何在这两者之中运行。下面我就围绕这个图来讲解本部分的知识。

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

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

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

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

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

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

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

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

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

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

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

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

 

原文:https://www.cnblogs.com/wenchunlong/p/4483681.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值