我是靠谱客的博主 外向万宝路,最近开发中收集的这篇文章主要介绍操作系统中断技术(学习笔记三),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

背景
60年代出现了中断技术,它解决了多道批处理系统想要并发运行程序时,程序之间如何来回切换的大问题,可以说中断技术是硬件方面的一个重大发展。从多道批处理系统中对CPU的占用情况来看:
在这里插入图片描述
分析:程序A要通过操作系统的调度进行磁盘操作,B则进行磁带操作。当程序A执行I/O请求(I/O属于外中断,中断的一种)时,A放弃了CPU,操作系统接着调度B,B开始占用CPU(红宽线),此时程序A的磁盘操作也在同时进行。

进一步:中断意味着需要操作系统的介入,开展管理工作。由于操作系统的管理工作(比如分配打印机设备等)需要使用特权指令,所以CPU状态要从用户态切换到核心态,使操作系统获得计算机的控制权。有了中断机制,计算机才能实现多道程序的并发运行。

定义
CPU对突发的外部事件的反应过程或机制;CPU收到外部信号(中断信号)后,停止当前工作,转去处理该外部事件,处理完毕后回到原来的中断处(断点)继续原来的工作。

目的

  • 实现并发活动 (从多道批处理系统对CPU的占用情况可看出)
    • cpu和外设并发工作:当外设工作完毕,产生信号通知CPU,让CPU处理外部事件;
    • 两个进程并发运行:通过时钟的切换,进程并发使用CPU,时钟产生一个中断信号通知CPU将使用权切换到另一进程
  • 实现实时处理(实时系统中处理机随时响应并进行处理各种监测和控制装置随机向处理机发出的中断请求)
  • 故障自动处理(处理机中设有各种故障检测和错误诊断的部件,一旦发现故障或错误,立即发出中断请求,进行故障现场记录和隔离,为进一步处理提供必要的依据)

中断分类
在这里插入图片描述
tips:

  • 磁盘中断,时钟中断属于外中断
  • 运算出错(除数为零、运算 溢出、单步中断等)属于内中断

中断的一些概念

  • 中断源:引起系统中断的事件
  • 断点:程序中断的地方,将要执行的下一指令的地址
  • 现场:程序正确运行所依赖的信息集合
    相关寄存器
  • 现场的两个处理过程
    现场的保护:进入中断服务程序之前,栈
    现场的恢复:进入中断服务程序之后,栈

中断响应过程

  • 识别中断源
  • 保护断点好现场
    把断点处的有关寄存器的内容和标志位的状态全部推入堆栈保护起来,即在中断服务程序中把这些寄存器的内容推入堆栈。则当中断处理完成后返回主程序时,CPU能够恢复主程序的中断前状态,保证主程序的正确动作。
  • 装入中断服务程序的入口地址(CS:IP)
  • 进入中断服务程序
  • 恢复现场和断点
    把所保存的各个内部寄存器的内容和标志位的状态,从堆栈弹出,送回CPU中原来的位置
  • 中断返回:IRET

tips

  • 进入到中断服务程序后,CS:IP发生了变化,由主程序的地址变到中断服务程序的地址;
  • 交换CPU的态:中断响应程序在核态完成,主程序在用户态完成。

中断响应的实质

  • 交换指令执行地址
  • 交换CPU的态

中断响应的重要工作

  • 现场保护与恢复
  • 参数传递(通信)

本文主要参考了华中科技大学软件学院苏曙光老师的操作系统原理课程。

最后

以上就是外向万宝路为你收集整理的操作系统中断技术(学习笔记三)的全部内容,希望文章能够帮你解决操作系统中断技术(学习笔记三)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部