操作系统运行环境与运行机制(1)

1.处理器状态(模式)

2.中断与异常机制

3.中断/异常机制工作原理

4.实例

1.处理器状态
  • 基本概念

    • 处理器:由运算器、控制器、一系列寄存器以及高速缓存构成
    • 寄存器分类:用户可见寄存器,控制和状态寄存器
    • 控制和状态寄存器:
      • 用于控制处理器的操作
      • 分类:程序计数器(PC),指令寄存器(IR),程序状态字(PSW)

      PC:记录将要取出的指令地址
      IR:记录最近取出的指令
      PSW:记录处理器的运行状态(如条件码,模式,控制位)

  • 操作系统的需求

    • 基本需求:保护(由此产生运行机制)
    • 基本运行机制
      • 处理器具有特权级别,在不同的特权级别运行不同的指令集合
      • 硬件机制可将OS与用户程序隔离

      保护是指:1.用户与用户之间互不干扰
      2.用户不干扰OS

  • 指令

    • CPU状态:内核态;用户态

    • 指令分类:

      • 特权指令:操作系统使用,用户程序不能使用
      • 非特权指令:用户程序可以使用

      常见特权指令:启动I/O,内存清零,修改程序状态,设置时钟,停机,允许/禁止中断

    • CPU状态的转换

      • 用户态到内核态:中断/异常/陷入机制
      • 内核态到用户态:设置程序状态字PSW
2.中断与异常机制
  • 背景

    • 重要性:操作系统可以说是由“中断驱动”
    • 概念:CPU暂停正在执行的程序,保留现场后自动专区执行相应事件的处理程序,完成后返回断点,继续执行被打断的程序

    随机发生,自动处理,可恢复

    • 中断的引入:支持CPU和设备之间的并行

    CPU启动设备进行I/O后,设备独立工作,CPU处理其他事情,设备完成后向CPU发送中断报告,由CPU决定后续处理

    • 异常的引入:表示CPU执行指令时本身出现的问题
  • 举例

    • 中断(外中断):I/O中断,时钟中断(时间片),硬件故障(电池电量提醒)
    • 异常(内中断):系统调用,页故障,保护性异常(地址越界、操作与权限冲突),断点指令
  • 小结

类别原因异步/同步返回行为
中断来自I/O设备,其他硬件异步返回到下一条指令
陷入有意识安排的同步返回到下一条指令
故障可恢复的错误同步返回到当前指令
终止不可恢复同步不会返回
3.工作机制
  • 原理

    • 响应(硬件):捕获请求,以一定的方式响应,将处理器控制权交给特定的处理程序
    • 处理(软件):识别中断/异常类型,完成相应的处理
  • 中断

    • 响应

      • 概念:发现中断,接受中断的过程,由中断硬件部件完成
      • 中断向量表:存放中断处理程序入口地址和程序运行所需的处理机状态字
      • 过程:1.设备发出中断信号 2.硬件保存现场 3.根据中断码查表(向量表) 4.把中断处理程序入口地址等推送到响应寄存器 5.执行中断处理操作

      软件提前设计好
      硬件部件来执行

    • 处理程序

      • 设计OS时,为每一类中断/异常编好处理程序和向量表
      • 处理程序:保存相关寄存器信息;分析中断具体原因;执行对应的处理功能;恢复现场,返回被打断的程序
  • 小结(以I/O为例)

    • 打印机给CPU发送中断信号
    • CPU检测到中断,判断来源并发送确认信号(硬件)
    • CPU为软件处理中断做准备(硬件)
      • 处理器切换到内核态
      • 在系统栈保存被中断程序的上下文环境(PC,PSW)
    • CPU根据中断码查向量表,获取入口地址并将PC设置成该地址,新指令周期开始时CPU控制转移到中断处理程序(硬件)
    • 中断处理程序开始工作(软件)
      • 在系统栈保存现场
      • 检查I/O设备的状态信息,操纵设备传送数据
    • 处理结束,CPU从系统栈中恢复上下文环境,PSW和PC恢复成中断前的值,开始新的指令周期
4.实例(x86)
  • 基本概念
    • 中断:硬件信号引发的,分为可屏蔽和不可屏蔽中断
    • 异常:指令执行引发的
    • 系统调用:异常的一种,用户态到内核态的唯一入口
  • x86对中断的支持
    • 中断控制器(PIC或APIC):将硬件的中断信号转换为中断向量,引发CPU中断
    • 实模式:中断向量表
    • 保护模式:中断描述符表IDT(采用门描述数据结构表示中断向量)
      • 任务门
      • 中断门:给出段选择符,偏移量,通过中断门后系统或自动禁止中断
      • 陷阱门:与中断门类似,但是系统不会自动禁止中断
      • 调用门
  • 处理过程
    • 确定与中断/异常关联的向量i
    • 通过IDTR寄存器找到IDT表,获取中断描述符(表中第i项),中段描述符中获取段选择符
    • 从GDTR寄存器获得GDT(全局描述符表)的地址,在GDT表获取段描述符 ,从段描述符获取段基址
    • 处理程序入口地址=段基址+偏移(在中断描述符)

(重点概念:CPU状态,内核态/用户态,特权/非特权指令,中断,异常,中断响应,中断向量,中断处理程序)

(后续会补充流程图~)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值