• 中断、异常、系统调用


    中断机制的诞生

    还是之前计算机只能一个一个的处理作业,CPU资源利用率低下,为了解决这个问题,人们发明了操作系统,引入中断机制,实现了多道程序并发执行。
    本质:发生中断就意味着需要操作系统的介入,开展管理工作。

    中断的概念和作用

    1. 当中断发生时,CPU立即进入核心态
    2. 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理。
    3. 对于不同的中断信号,会进行不同的处理

    发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换,分配IO设备等)需要使用特权指令,因此CPU会由用户态转变成内核态。中断可以使CPU由 用户态转变成内核态。使操作系统获得计算机的控制权。

    用户态、核心态之间的转换是通过什么来实现的?

    用户态->核心态转换:中断实现,并且中断是唯一的方式
    核心态->用户态的转换:通过执行一个特权指令,将程序状态字(PSW)的标志位置为用户态

    中断的分类

    • 根据信号的来源进行分类: 来自于CPU内部与当前执行的指令有关是内中断;
    • 信号来自于CPU外部与当前执行的指令无关是外中断,外中断是狭义的中断。

    内中断

    内中断也称为异常、例外、陷入;
    自愿中断----指令中断:如系统调用时使用的访管指令(又叫做陷入指令、trap指令)
    强迫中断----例如:硬件故障(缺页),软件中断(整数除0)

    外中断

    又称狭义的中断;外设干预,人工干预。
    如 I/O 完成中断,表示设备输入/输出处理已经完成,处理器能够发送下一个输入/ 输出请求。此外还有时钟中断、控制台中断等

    在这里插入图片描述

    外中断的处理过程

    1、CPU一个一个指令的执行,每次执行完一个指令都要检查一下当前是否有外部中断信号传过来。
    2、如果检测到有外部中断信号,则需要保护被中断进程的CPU环境,(程序计数器(PC),程序状态字(PWS),各种通用的寄存器)
    3、根据中断信号类型转入相应的中断处理程序。
    4、恢复原进程的CPU状态并退出,返回原来的进程继续往下执行。

    引入系统调用

    操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成。

    系统调用

    系统调用是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务。

    系统调用的作用

    应用程序通过系统调用请求操作系统的服务。系统中的各种共享资源都由操作系统统一掌管,因此在程序中,凡是与资源有关的操作(如存储分配,IO操作,文件管理等),都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代替他完成,这样可以保证系统的稳定性和安全性,防止用户进行非法操作。在这里插入图片描述

  • 相关阅读:
    蛙蛙推荐:用.net 4.0构建新浪微博开发平台应用
    蛙蛙推荐:Backbone官方文档翻译
    蛙蛙推荐:javascript异步任务流
    蛙蛙推荐:sqlserver三种分页方式性能比较
    蛙蛙推荐:css背景图片固定居中,div阴影,背景半透明,div圆角,DIV渐变
    如何高效的利用新浪微博获取信息
    蛙蛙推荐:gevent并发发送UDP包演示
    蛙蛙推荐:神马ORM都是浮云,看看史上最简单最好用的OleDbHelper
    蛙蛙推荐:写了一个简单的延迟队列
    PostgreSQL中with和without time zone两者有什么区别 规格严格
  • 原文地址:https://www.cnblogs.com/itjiangpo/p/14181409.html
Copyright © 2020-2023  润新知