操作系统——中断

2023-05-16

操作系统是中断驱动的。计算机开机之后,导引程序会把操作系统装入内存,在完成一系列初始化之后,操作系统就处于待命状态,等待中断系统调用(特殊的中断),所以操作系统的主体部分就是在等中断,处理中断。

一、无嵌套中断

中断系统的组成:①中断装置(硬件)②中断处理程序(软件)

1.中断装置

中断源: 引起中断的事件

中断寄存器:保存与中断事件相关信息的寄存器

中断字:中断寄存器的内容(有的中断源没有中断字,如时钟中断

2.处理基本过程

程序正在运行时操作系统的系统栈为空,目态寄存器中(PSW,PC)是当前运行程序的运行环境。管态中,PC' 指向中断处理程序的入口地址,PSW' 是中断处理程序运行环境。

①发生时钟中断,硬件装置响应中断,②把(PSW,PC)放入系统栈,③再把(PSW' ,PC')取来放入目态寄存器里,进而④转入PC' 处理中断。处理完成之后,⑤从系统栈弹出(PSW,PC)回目态寄存器,⑥最后继续执行未完的程序。

3.中断类型与中断向量

中断向量:中断处理程序的运行环境PSW 与 入口地址PC。

中断向量的内容在OS系统初始化时就已经设置好的,放在内存系统空间的中断向量表中。

二、中断嵌套与处理过程

中断优先级:硬件依据紧迫程度处理时间规定了中断响应次序

中断屏蔽:暂时不响应某些中断,目的在于高优先级中断事件处理不受低优先级中断打扰调整中断响应次序。

中断嵌套:中断处理过程中响应并处理新的中断。一般新响应的优先级别更高,立即屏蔽不高于当前中断优先级的中断源。

 r1 和 r0 寄存器是中断处理过程中使用的,也需要压入系统栈(保存现场环境)。

当不会出现中断时,处理中断完成后一层一层返回。

不知道对不对......

  • 内存的系统区设置一个中断现场保存栈,中断现场信息就保存在自己的核心栈中
  • 进程会将“现场”信息保存在自己的栈空间
  • PCB属于系统空间,用于系统对进程管理,用户无法感知到。
  • 用户级别现场保存在用户空间堆栈

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

操作系统——中断 的相关文章

  • texlive支持中文的简单方法

    1 确保tex文件的编码方式是UTF 8 2 在文档开始处添加一行命令即可 即 usepackage UTF8 ctex 如下所示 documentclass article usepackage UTF8 ctex begin artic
  • MySQL基础(非常全)

    MySQL基础 一 MySQL概述 1 什么是数据库 答 数据的仓库 如 在ATM的示例中我们创建了一个 db 目录 称其为数据库 2 什么是 MySQL Oracle SQLite Access MS SQL Server等 答 他们均是
  • System.getProperty用法

    转自 http blog darkmi com 2011 03 16 1666 html System getProperty 用于获取当前的系统属性 比如java版本 操作系统名称 区域 用户名等 这些属性一般由jvm自动获取 不能手工设
  • 线程和进程的区别(面试必备)

    参考文章 https www jianshu com p 2dc01727be45 线程与进程的区别通俗的解释 https www jianshu com p 8ad441510860 附加可参考文章 https baijiahao bai
  • Linux网络安全-Zabbix入门(一)

    一 基本概念 1 监控目的 运行情况 提前发现问题 2 监控资源类别 公开 tcp udp 端口 私有 cpu 磁盘 监控一切需要监控的东西 只要能够想到 能够用命令实现的都能用来监控 如果想远程管理服务器就有远程管理卡 比如Dell id
  • Client-Server问题

    1 实验内容与要求 需要创建客户Client和服务器Server两个进程 它们通过管道进行通信 Client进程派生3个生产者线程 一个管道线程 共享一个20个slots的缓冲区 每个生产者线程随机产生一个数据 打印出来自己的id 进程 线
  • JSON.stringify()

    JSON stringify 将一个JavaScript值 对象或者数组 转换为一个 JSON字符串 如果指定了replacer是一个函数 则可以选择性的替换值 或者如果指定了replacer是一个数组 可选择性的仅包含数组指定的属性 语法
  • Windows 添加永久静态路由

    route add p 10 10 0 0 mask 255 255 0 0 10 10 6 1 p 参数 p 即 persistent 的意思 p 表示将路由表项永久加入系统注册表
  • nslookup命令详解

    nslookup命令用于查询DNS的记录 查看域名解析是否正常 在网络故障的时候用来诊断网络问题 nslookup的用法相对来说还是蛮简单的 主要是下面的几个用法 1 直接查询 这个可能大家用到最多 查询一个域名的A记录 nslookup
  • 红帽7.9部署telnet服务

    升级ssh 为预防万一提前配置telnet服务 安装软件包 yum install telnet server yum install xinetd xinetd加入开机自启 systemctl enable xinetd service
  • 操作系统笔记六(文件管理)

    1 文件逻辑结构 1 1逻辑结构的文件类型 分类 有结构文件 例如 PNG文件 无结构文件 1 2顺序文件 1 3索引文件 2 辅存的存储空间分配 2 1分配方式 连续分配 直接分配连续的存储空间 链接分配 隐式链接 在盘块内指定下一个盘块
  • 深入ftrace kprobe原理解析

    Linux krpobe调试技术是内核开发者专门为了编译跟踪内核函数执行状态所涉及的一种轻量级内核调试技术 利用kprobe技术 内核开发人员可以在内核的绝大多数指定函数中动态插入探测点来收集所需的调试状态信息而基本不影响内核原有的执行流程
  • Linux系统如何看目录属于哪个磁盘分区

    Linux是先有目录 再有磁盘分区 df h 目录 例如 没有挂载磁盘的目录 显示在系统盘 root iZ2ze57v3n0zma46zqiq8nZ sh 1 5 5 df h alidata Filesystem Size Used Av
  • Visual studio 2005 hangs on startup AppHangXProcB1 svchost devenv.exe svchost.exe:{2a811bb2-303b-48b...

    This problem has been torturing me for the whole afternoon and after searching on the web for a long time I finally get
  • Ubuntu9.04太多乱码(中文不能正常显示)

    最近在使用Ubuntu9 04的过程中 发现有好多地方都出现乱码 其实是中文不能正常显示 现在把我所遇到的所有乱码问题集中一下 方便以后查阅参考 一 Flash乱码 在终端输入 sudo gedit etc fonts conf d 49
  • linux 使用systemctl 启动服务报错: Error: No space left on device

    By default Linux only allocates 8192 watches for inotify which is ridiculously low And when it runs out the error is als
  • gdb attach 进程调试

    gdb调试正在运行的进程 GDB可以对正在执行的程序进行调度 它允许开发人员中断程序 并查看其状态 之后还能让这个程序正常地继续执行 gdb attach xxxxx xxxxx为利用ps命令获得的子进程process
  • 使用ShellJS提升你的开发效率(一)

    Shelljs Unix shell commands for Node js Shelljs是Node js下的脚本语言解析器 具有丰富且强大的底层操作 Windows Linux OS X 权限 Shelljs本质就是基于node的一层
  • Linux(13):例行性工作排程

    例行性工程 听谓的排程是将工作安排执行的流程之意 Linux 排程就是透过 crontab 与 at 这两个东西 两种工作排程的方式 一种是例行性的 就是每隔一定的周期要来办的事项 一种是突发性的 就是这次做完以后就没有的那一种 at at
  • 【操作系统xv6】学习记录4-一级页表与二级页表

    占位

随机推荐

  • 8 AI系统伦理道德风险之可信任度验证

    可信度主要是评估用户或者其他干系人对AI系统的信任程度 ISO IEC TR 24028 2020 人工智能中的可信度概述 中给出了可信任度的明确定义 能够以一种可以验证的方式满足系统干系人的期望能力 这是一个广泛的定义 从能力描述上重点强
  • 禁用Nouveau,安装Linux Nvidia 显卡驱动

    https blog csdn net misiter article details 7652731 干掉Nouveau安装Linux Nvidia显卡驱动 首先说明下什么是Nouveau xff0c 为什么有些系统安装N卡驱动的时候会提
  • PX4代码中LIDAR-Lite v3激光测距仪I2C驱动

    调试LIDAR Lite v3激光测距仪 xff0c 通读了PX4代码中驱动相关的部分 在这里做一下记录 飞控硬件是pixhawk1 xff0c PX4软件版本为1 7 3 按照官方教程进行接线和配置 xff0c 链接为 https doc
  • PX4代码中LIDAR-Lite v3激光测距仪PWM驱动

    调试了LIDAR Lite v3激光测距仪PWM驱动 xff0c 在这里做一下记录 飞控硬件是pixhawk1 xff0c PX4软件版本为1 7 3 按照官方教程进行接线和配置 xff0c 链接为 https docs px4 io en
  • MAVROS 源码分析

    一 安装 MAVROS 利用机载计算机对 PX4 飞控进行 OFFBOARD 控制 xff0c 需要在机载计算机上安装 ROS 的 MAVROS 包 安装方式可以参考 PX4 开发者网站 xff0c 有二进制文件安装和源码安装两种方式 xf
  • 从 MAVROS 到 PX4 飞控的数据流向

    上一篇分析了 MAVROS 中数据收发的实现方法 当用户发送一个 ros 话题的消息后 xff0c 对应的 plugin 中的回调函数被处罚 xff0c ros 消息被包装成 mavlink 消息 xff0c 从链路中发送出去 下面以 34
  • Cortex-M0中断控制和系统控制

    目录 1 NVIC和系统控制块特性2 中断使能和清除使能3 中断挂起和清除挂起4 中断优先级5 中断控制的通用汇编代码使能和禁止中断设置和清除中断挂起状态设置中断优先级 6 异常屏蔽寄存器 xff08 PRIMASK xff09 7 中断输
  • 【折腾电脑】win笔记本雷电3外接显卡过程记录(使用内屏)、雷电三驱动怎么更新

    准备材料 xff1a 雷电3硬盘盒 xff08 400 xff09 NVME转PCIE X16转接板 xff08 75 xff0c 直接用这个关键词搜 xff0c 对应价格就是 xff09 显卡 主机电源 xff08 100 43 xff0
  • CMakeLists 文件操作命令FILE之GLOB:相对路径

    file GLOB variable RELATIVE path globbingexpressions 使用该文件操作命令时 xff0c 相对路径的书写最前面不要加任何修饰 xff0c 如 xff1a FILE GLOB EXTENDED
  • 在 JavaScript 中将数组转换为 Set

    本教程展示了将数组转换为 a 的过程 xff0c set并了解如何使用 JavaScript 将对象数组转换为多个集合 我们可以通过不同的路径将数组set转换为 JavaScript 中的转换 下面列出了其中一些 xff0c 我们将在本教程
  • 在 JavaScript 中将集合转换为数组

    在本文中 xff0c 我们将研究如何在 JavaScript 中将 Set 转换为数组 1 在本文中 xff0c 我们将研究如何在 JavaScript 中将 Set 转换为数组 Array from 允许您从以下来源构建数组 xff1a
  • Ubuntu下安装ROS以及使用ROS读取T265、D435i数据

    安装ROS xff1a ROS Melodic安装 智学无人小车平台 czxy com 创建ROS工作空间 xff1a 14条消息 ROS学习 第3篇 xff1a ROS基础 创建工作空间 北理工 王大东的博客 CSDN博客 ros创建工作
  • 9 AI系统伦理道德风险之权力谋取验证

    权力谋取主要评估AI是否在为了达到目的而不择手段 xff0c 这也是伦理道德性的重要指标 xff0c 需要通过有效的监督和制约机制来防止或减轻 权利谋取就是AI系统为自己谋取利益 xff0c 这里的利益是站在AI系统角度一些利益 测试权力谋
  • Python中的下划线到底什么意思?

    1 概述 在Python经常能见到含下划线 xff08 underscore xff09 修饰的的变量和方法 xff08 如 name xff0c var等 xff09 xff0c 这些下划线的作用称之为名字修饰 xff08 name de
  • Ubuntu远程,解决rviz无法在远程桌面下使用

    Ubuntu下远程桌面无法使用rviz 解决原理解释 将启动文件加入bash xff0c 避免每次export 具体操作 xff1a 1 检查主机与移动端机器的IP 主机IP 192 168 31 193 主机名 ada 也可使用ada l
  • 一个例子"入坑"布谷鸟算法(附完整py代码)

    布谷鸟是比较新的启发式最优化算法 但其与传统的遗传算法 退火算法等相比 被证明收敛速度更快 计算效率更高 文章目录 本文诞生的缘由布谷鸟算法思想简介更新位置的方式莱维飞行局部随机行走 抛出个栗子一些参数的建议完整的python实现运行结果参
  • python 实现批量post json数据测试

    服务器之前经常出现发消息就会宕机 xff0c 今天修改了部分之后 xff0c 就用python实现了一个批量post数据测试 直接上代码 url 是测试版 xff0c 你看到这份代码的时候 xff0c 应该已经不能用了 xff0c 童鞋需要
  • Linux —— 信号量

    目录 一 POSIX信号量 1 什么是信号量 2 信号量的基本原理 二 与信号量相关的操作 1 初始化信号量 2 销毁信号量 3 等待信号量 4 发布信号量 三 基于环形队列的生产者消费者模型 1 空间资源和数据资源 2 生产者和消费者申请
  • 记录学习crazepony飞控

    记录学习crazepony 开始之前 xff0c 弱弱的问一句 xff1a 大佬们你们是怎么学习飞控的呢 xff1f 如何抓住核心 xff1f 函数来回调 xff0c 变量在你不知道的地方悄悄改变着 如何才能清晰的知道如何理顺思路 xff0
  • 操作系统——中断

    操作系统是中断驱动的 计算机开机之后 xff0c 导引程序会把操作系统装入内存 xff0c 在完成一系列初始化之后 xff0c 操作系统就处于待命状态 xff0c 等待中断和系统调用 xff08 特殊的中断 xff09 xff0c 所以操作