【操作系统】运行机制,内核和中断机制

操作系统的运行机制和体系结构

运行机制

  • 两种指令

    • 特权指令

      • 内存清零指令
    • 非特权指令

      • 运算指令
    • cpu在设计和生产的时候就划分了特权指令和非特权指令,在执行一条指令之前就能判断出类型

  • 两种处理机状态

    • 内核态(核心态,管态)

      • 正在运行的是内核程序,可以执行特权指令,也可以执行非特权指令
    • 用户态(目态)

      • 正在运行的是应用程序,只能执行非特权指令
    • 如何变态?

      • 内核态->用户态

        • 执行一条特权指令,修改PSW的标志位为用户态
      • 用户态->内核态

        • 由中断引发,硬件自动完成变态过程
    • PSW中有一个二进制位会标记这两个状态

  • 两种程序

    • 内核程序
    • 应用程序

操作系统内核

  • 内核

    • 计算机上配置的底层软件,是操作系统最基本,最核心的部分
  • 组成

    • 时钟管理

    • 中断处理

    • 原语

      • 一种特殊的程序,执行具有原子性
    • 对系统资源进行管理

      • 进程管理
      • 存储器管理
      • 设备管理

操作系统体系结构

  • 大内核

    • 优点:高性能
    • 缺点:内核代码庞大,结构混乱,难以维护
  • 微内核

    • 优点:内核功能少,结构清晰,方便维护
    • 缺点:需要频繁地核心态和用户态之间切换,性能低(变态是有成本的)
  • image-20220821162826654

中断和异常

中断的作用

  • 让操作系统强行夺回CPU的控制权
  • 使CPU从用户态变为核心态
  • 没有中断机制,就不可能实现操作系统,不可能实现程序并发

中断的分类

  • 内中断/异常/例外

    • 陷阱,陷入trap,访管指令

      • 应用程序故意引发的,用户主动把CPU还给内核,例如:系统调用
    • 故障fault

      • 如缺页故障,有错误条件引起,可能被修复
    • 终止 abort

      • 由致命错误引起,无法修复
    • 中断源来源于cpu内部

  • 外中断/中断

    • 时钟中断(为了并发)
    • io中断请求

中断机制的基本实现原理

  • 检查中断信号

    • 内中断:cpu在执行指令的时候会检查是否有异常发生
    • 外中断:每个指令周期末尾,cpu会检查是否有中断需要处理
  • 找到相应的中断处理程序

    • 通过中断向量表实现

系统调用

什么是系统调用?

  • 操作系统对程序员提供的接口
  • 应用程序通过系统调用请求内核服务

操作系统与库函数的区别

  • 有的库函数是对系统调用的进一步封装
  • 有的库函数不涉及系统调用,有的涉及
  • 库函数是编程语言提供给程序员的接口
  • 系统调用是操作系统提供给程序员的接口

什么功能需要用系统调用实现?

  • 设备管理
  • 文件管理
  • 进程管理
  • 内存管理

系统调用的过程

  • image-20220821162720549

    • 传参
    • 陷入指令/trap/访管指令
    • 由操作系统的内核程序处理系统调用请求
    • 返回应用程序
  • 广义指令=系统调用指令,在用户态下调用,在核心态下执行

  • 陷入指令=trap指令=访管指令,在用户态下调用,在核心态下执行

  • 用户态发出系统调用请求,核心态处理请求

全部评论
学习了,感谢分享
点赞 回复 分享
发布于 2022-08-24 09:02 江苏

相关推荐

粗心的雪碧不放弃:纯学历问题,我这几个月也是一直优化自己的简历,后来发现优化到我自己都觉得牛逼的时候,发现面试数量也没有提升,真就纯学历问题
点赞 评论 收藏
分享
10-15 16:27
门头沟学院 C++
LeoMoon:建议问一下是不是你给他付钱😅😅
点赞 评论 收藏
分享
1 3 评论
分享
牛客网
牛客企业服务