OS_run_vir

OS运行环境

补充:指令
CPU能识别执行的最基本命令
eg.加法指令就是让CPU进行加法运算
有的指令有很高的权限。
如内存清零,若用户程序可以执行,那么可以清除其他用户数据,很危险
两种指令:
- 特权指令: 不允许用户程序使用
- 如内存清零指令
- 非特权指令
两种处理状态: 用程序状态寄存器(PSW)中的某个标志位来标识当前处理器处于什么状态。如0为用户态,1为核心态
- 用户态(目态) 此时CPU只能执行非特权指令
- 核心态(管态) 特权指令、非特权指令都可以执行
两种程序:
- 内核程序: 操作系统的内核程序是系统管理者,运行在核心态,既可执行特权,又可执行非特权指令。
- 应用程序:为了保证系统能够安全运行,普通应用程序只能执行非特权指令,运行在用户态

问题:OS的那些功能应该由内核程序实现?

内核是计算机上配置的底层软件,是OS最核心,最基本的部分。
实现OS内核功能的那些程序就是内核程序
在这里插入图片描述
OS内核

  • 时钟管理: 实现计时功能
  • 中断处理: 负责实现中断机制
  • 原语:
    • 特殊的程序
    • 处于OS最底层,是最接近硬件的部分
    • 这种程序的运行具有原子性 — 其运行只能一气呵成,不可中断
    • 运行时间较短,调用频繁
      以上是与硬件关联比较紧密的模块
      有的OS不把下面这部分归为“内核功能”,不同OS,对内核功能划分可能不同
  • 对系统资源进行管理的功能:
    • 进程管理
    • 存储器管理
    • 设备管理
      在这里插入图片描述
      OS的体系结构:
  • 大内核:
    • 将OS的主要功能模块都作为系统内核,运行在核心态
    • 优点: 高性能
    • 缺点: 内核代码庞大,结构混乱,难以维护
  • 微内核:
    • 只把最基本的功能保留在内核
    • 优点: 内核功能少,结构清晰,易维护
    • 缺: 需要频繁地在核心态和用户态进行切换,性能低

类比:OS的体系结构问题和企业的管理问题很相似
内核是企业的管理层,负责重要工作,执行特权指令,普通员工执行非特权指令。用户态与核心态之间的切换类似于工作交接
大内核:企业初创时体量不大,管理层的人会负责大部分事情。优点是效率高;缺点是组织结构混乱,难以维护。
微内核:随着企业体量变大,管理层只负责最核心的工作。优点是结构清晰,方便维护;缺点是效率低。

中断和异常

  • 中断机制的诞生

    • 原始计算机单道顺序执行,效率低
    • 发明OS(作为计算机的管理者),引入中断机制,实现多道程序并发执行
      本质:发生中断意味着需要OS介入,开展管理工作,需要从用户态进入核心态
  • 中断的概念和作用

    • 当中断发生时,CPU立即进入核心态
    • 当中断发生后,当前运行的进程暂停运行,并由OS内核对中断进行处理
    • 对不同中断信号,会进行不同处理
      由于OS管理工作需要使用特权指令,因此CPU要从用户态转入核心态。中断可以使CPU从用户态切换为核心态,使OS过得计算机控制权
      问题: 用户态和核心态切换是如何实现的?
      用户态 --> 核心态是通过中断实现的。并且中断唯一途径。
      核心态 --> 用户态,是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为用户态
  • 中断的分类:

    • 根据信号来源:
      CPU内部与当前指令有关
      • 内中断(也叫异常、例外、陷入
        • 自愿中断 — 指令中断(系统调用时使用访管指令(又叫陷入指令、trap指令)
        • 强迫中断
          • 硬件故障 (缺页
          • 软件中断 (整数除0
            来自CPU外部
      • 外中断
        • 外设请求 (I/O操作完成发出的中断信号
        • 人工干预 (用户强行终止一个进程
    • 另一种分类:
      • 内中断:
        • 陷入(trap) 有意而为之的异常,如系统调用
        • 故障(fault) 由错误条件引起的,可能被故障处理程序修复,如缺页
        • 终止(abort) 不可恢复的致命错误造成的结果,终止处理程序不再将控制返回给引发终止的应用程序,如整数除0
      • 外中断:
        • I/O中断请求
        • 人工干预
  • 外中断的处理过程

    • 执行完每一个指令后,CPU都有检查当前是否有外部中断信号
    • 若检测到外部中断信号,则需要保护被中断进程的CPU环境(如程序状态字PSW、程序计数器PC、各种通用寄存器)
    • 根据中断信号类型转入相应的中断处理程序(核心态)
    • 恢复原进程的CPU环境并退出中断,返回原进程继续往下执行
      在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值