操作系统内核提供的服务:

  1. 提供系统服务
  2. 中断处理
  3. 进程调度与切换

1️⃣操作系统的运行机制

⭐️ 在计算机系统中通常CPU需要执行两个不同的程序:一个是内核程序,一个是用户自编的程序,这两个前者为后者的管理者;内核程序需要执行一些 “权指令” ,而用户应用程序不能执行这些指令,所谓特权指令:“指计算机中不允许被用户直接使用的指令,如I/O指令、置中断指令等指令”

3️⃣操作系统内心的核心功能

⭐️支持功能:

  1. 时钟管理:通过时钟中断的管理,可以实现进程的切换。在计算机系统中,系统时钟是由硬件提供的,它以固定的频率产生时钟信号。时钟管理主要包括时间片轮转调度、定时器和中断处理、时间戳记录和文件时间管理、时间同步和时钟校准。
  2. 中断机制:提高多道程序运行环境中CPU的利用率,而且主要是针对外部设备的。后来逐步发展形成了多种类型,成为操作系统各项操作和基础;它主要包括中断请求、中断处理程序、中断向量表、中断控制器;通过中断机制,操作系统内核可以实现对硬件设备的响应,中断事件的处理和任务的切换。
  3. 原语:关闭中断,让所有动作不可分割地完成后才可以打开中断,
    1. 处于操作系统的最底层,最接近硬件的部分
    2. 这些程序的运行具有原子性,其操作只能一气呵成
    3. 这些程序运行事件都较短,而且调用频繁

⭐️资源管理功能

  1. 系统控制的数据接口及处理:系统中用来登记状态信息的数据结构很多,如作业控制块、进程控制块、设备控制块、各类链表、消息队列、缓冲区、空闲区登记表、内存分配表等;且系统为了实现有效的管理,会进行一些操作,常见的操作由以下三种
    1. 进程管理:进程的状态、调度、创建和撤销进程控制块等
    2. 存储器管理:存储器的空间分配和回收、内存信息保护程序、代码对换程序等

3️⃣ 中断和异常

⭐️ 中断和异常概念

分为外中断和内中断:

  1. 外中断:中断其实也就是外中断,指来自CPU执行指令以外的事件的发生比如:I/O中断,时钟中断,这一类中断通常是与当前指令执行无关的事件,即它们当前处理机运行的程序无关,它们是由外部设备或事件触发的,操作系统需要及时响应和处理这些中断事件,以保证系统的正常运行和数据的完整性。无论当前运行的程序时什么,外中断都会被立即处理,由专门的中断处理程序来处理
  2. 内中断:也被称为异常、列外或者陷入内中断是由CPU内部的异常或错误引起的中断。内中断通常由操作系统内核的异常处理程序来处理,用于处理CPU内部的异常情况如:除零错误、缺页错、非法指令、内存访问错误、保护错误等;这些程序会根据不同的内中断类型,采用适当的措施来处理异常情况,以确保系统的正常运动和数据的完整性

⭐️中断处理过程

image-20240511170435283

  1. 关中断:保护程序的现场状态,在保护现场的过程中CPU不应该执行更高级的中断源的中断请求;否者现场保存不会完整,后续无法正确的恢复并继续执行现行程序,所以需要先关中断
  2. 保持断电:保证中断程序执行完毕后可以回到程序原来执行的地方,就需要保存程序的计数器(PC)
  3. 引出中断服务程序:取出中断服务程序的入口地址送入程序计数器PC
  4. 保存现场和屏蔽字:进入中断服务程序后,首先需要保存现场,现场的信息一遍就是程序状态字寄存器PSWR和某些通用寄存器的内容,也就是保存文件的上下文
  5. 开中断:之前几步操作保存现场保存完毕了,可以让程序来响应更高级的中断请求得到响应了
  6. 执行中断服务程序:这就是中断请求的目的
  7. 关中断:现在开始恢复现场了,为了保证恢复现场不被打断,所以需要关闭中断
  8. 恢复现场和屏蔽字:将现场和屏蔽字恢复到原来的状态
  9. 中断返回:中断服务程序的最后一条指令通常是中断返回指令,使其返回到源程序的断点处,一遍继续执行源程序

总结:其中,1~3 步是在 CPU 进入中断周期后,由硬件自动(中断隐指令)完成的;4~9 步由中断服务程序完成。恢复现场是指在中断返回前,必须将寄存器的内容恢复到中断处理前的状态,这部分工作由中断服务程序完成。中断返回由中断服务程序的最后一条中断返回指令完成。

4️⃣程序调用操作系统的运行环境

⭐️用户通过操作系统运行上层程序,而这个上层程序的运行依赖于操作系统的底层管理程序提供服务支持,当需要管理程序服务时(也就是内核程序),系统则通过硬件中断机制进入核心态。运行管理程序;也可能时程序运行出现异常情况,被动地需要管理程序的服务,这时就通过异常处理来进入核心态 。管理程序运行结束时,用户程序需要继续运行,此时通过相应的保存现场,退出中断处理程序或异常处理程序,返回断电处继续执行

image-20240511170626312

5️⃣ 用户转内核态例子

  1. 用户程序要求操作系统的服务,即系统调用。
  2. 发生一次中断
  3. 用户程序中产生了一个错误状态
  4. 用户程序企图执行一条特权指令
  5. 从核心态向用户态由一条指令实现,这条指令也是特权命令,一遍时中断返回指令

若程序的运行由用户态转到核心态,则会用到访管指令,访管指令时在用户态中使用,所以他不是特权指令

6️⃣ 操作系统的体系结构

  1. 大内核系统:将操作系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为应用提供高性能的系统服务。因为各管理模块,之间共享信息,能有道利用相互之间的有效特性,所以具有无可比拟的性能优势。
  2. 微内核:所以为了解决操作系统的内核代码难以维护的问题,提出了微内核的体系结构。它将内核中最基本的功能(如进程管理等)保留在内核,而将不需要在核心态执行的功能移到用户态执行,从而降低了内核的设计复杂性。微内核分离内核与服务、服务与服务,使得它们之间的接口更加清晰
    1. 微内核的功能与优缺点:
      1. 最小化内核,只包含了最基本的核心功能
      2. 服务架构:其他功能以独立断电服务的形式运行在用户态,并通过消息传递或远程调用与内核进行交互;是的系统的各个组件可以独立开发、测试和部署,调高了可扩张和模块性
      3. 有效的支持多处理机,非常适用于分布式系统环境
      4. 可定制性:微内核的结构允许根据具体需求进行灵活的定制和扩展
      5. 可靠性和安全性:由于内核中只包含了最基本的功能,没有其他功能,减少了内核的攻击面和故障影响范围