1. 操作系统的概念(功能和目标)

1.1 操作系统的概念

  • 操作系统负责管理协调硬件,软件等计算机资源的工作
  • 操作系统为上层用户,应用程序提供简单易用的服务
  • 操作系统是一种系统软件

1.2 操作系统的功能和目标

2. 操作系统的四个特征

  • 并发和共享最基本的两个性质
  • 并发和共享互为存在条件
  • 没有并发和共享,就谈不上虚拟和异步

注意(重要考点):

  • 单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行
  • 多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行

3. 操作系统的发展与分类

3.1 常考的三种操作系统对比

批操作系统 定义
批操作系统 脱机使⽤计算机;作业是批处理的;系统内多道程序并发执⾏;交互能⼒差;
分时操作系统 多个⽤户同时使⽤计算机;⼈机交互强;具有每个⽤户独⽴使⽤计算机的独占性;系统响应及时
实时操作系统 能对控制对象做出及时反应;可靠性⾼;响应及时;但资源利⽤率低

3.2 其他操作系统对比

  • Unix系统是多用户,多任务操作系统,属于分时操作系统

4. 操作系统的运行机制

4.1 程序运行的原理

  • 高级语言编写代码,然后转换为机器指令
  • 程序运行的过程就是CPU执行指令的过程

4.2 两种程序

  1. 内核程序
  2. 应用程序

4.3 🐳两种指令

  1. 特权指令 : 指不允许用户直接使用的指令
    • 对I/O设备操作指令
    • 存取特殊寄存器的指令
    • 有关访问程序状态的指令
    • 置中断指令
    • 关中断指令
    • 清内存指令
    • 置时钟指令
  2. 非特权指令:允许用户直接使用的指令 , 不能直接访问系统中的软硬件资源 ,只限于访问用户的地址空间
    • 访管/trap指令

4.4 🦋两种处理器状态

  • 核心态【管态】
    • 只能在核心态运行的指令和程序:
      • 时钟管理相关的指令【置时钟指令】
      • 中断机制相关的指令【时钟中断程序】
      • 原语相关的指令
      • 系统控制的数据结构与处理【进程调度程序】【进程切换】【缺页处理程序】【系统调用命令】
  • 用户态【目态】
    • 在用户态运行的指令和程序/发生的事件:
      • 命令解释程序【属于命令接口,面向用户】
      • 访管/Trap指令,跳转指令,压栈指令
      • 广义指令(系统调用)的调用
      • 外部中断,缺页

4.5 🚀如何变态

  • 内核态 ——> 用户态 : 发⽣在中断返回⽤户程序时,需要⼀条修改PSW(程序状态字)的特权命令
  • 用户态 ——> 内核态 :发生在中断时,通过硬件完成

4.6 为什么要区别核心态和用户态

  • 为了保护系统程序

4.7 操作系统的内核

内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分。 实现操作系统内核功能的那些程序就是内核程序。

4.8 内核的功能

  • 时钟管理:实现计时功能
  • 中断处理:负责实现中断机制
  • 设备管理:完成设备的请求和释放,以及设备启动等功能
  • 文件管理:完成文件的读,写,创建和删除等功能
  • 进程管理:完成进程的创建,撤销,阻塞及唤醒等功能
  • 进程通信:完成进程之间的信息传递或信号传递等功能
  • 内存管理:完成内存的分配,回收以及获取作业占用内存区大小及地址等功能
  • 原语

    • 是一种特殊的程序
    • 处于操作系统最底层,是最接近硬件的部分
    • 该程序运行具有原子性(运行只能一气呵成,不可中断)
    • 运行时间较短,调用频繁

5. 中断和异常

6.1 异常(内中断)

基本概念

  • 由CPU内部产生的意外事件
  • 是CPU执行一条命令时,由CPU在其内部检测到的、与正在执行指令相关的同步事件
  • 故障和自陷为异常
  • 终止异常和外中断属于硬件中断

分类

  • 故障 : 在引起故障的指令启动之后、执行结束前被检测到的异常事件
  • 自陷: 也称陷阱或陷入,是预先安排的一种“异常事件”,就像预先设置好的“陷阱”一样
  • 终止:若在执行指令的过程中发生了使计算机无法继续执行的硬件故障,那么程序将无法继续执行,只能终止

举例

  • 故障

    • 指令译码时,出现“非法操作码”
    • 取数据时,发生“缺段”或“缺页”
    • 除数为零
    • 地址越界
  • 自陷

    • x86机器中,用于程序调试“断点设置”和单步跟踪功能
    • 系统调用指令
    • 条件自陷指令
  • 终止

    • 控制器出错
    • 存储器校验错
    • 调出中断服务程序来重启系统

执行时间

  • CPU在执行指令时会检查是否有异常发生

和外中断不同的是

  • 缺页”或“溢出”等异常事件是由特定指令在执行过程中产生的
  • 异常的检测由CPU自身完成,不必通过外部的某个信号通知CPU

6.2 中断(外中断)

基本概念

  • 由来自CPU外部的设备发出的中断请求(常用于输入输出)
  • 典型的由外部设备触发的、与当前正在执行的指令无关的异步事件
  • 外部I/O设备通过特定的中断请求信号线向CPU提出中断请求
  • CPU每执行完一条指令就检查中断请求信号线,若检测到中断请求,则进入中断响应期
  • 外部中断都是在一条指令执行完成后(中断周期)才被检测并处理的

分类

  • 可屏蔽中断

    • 通过可屏蔽中断请求线INTR向CPU发出的中断请求
    • CPU可以通过在中断控制器中设置相应的屏蔽字来屏蔽或不屏蔽它,被屏蔽的中断信号将不被送到CPU
  • 不可屏蔽中断

    • 通过不可屏蔽中断请求线NMI向CPU发出的中断请求
    • 通常是非常紧急的硬件故障,如电源掉电等

举例

  • Cache缺失
  • I/O中断:键盘输入,打印机缺纸
  • 时钟中断
  • I/O中断请求

执行时间

  • 每个指令周期末尾,CPU都会检查是否有外中断信号需要处理

和内中断不同的是

  • 中断不与任何指令相关联,也不阻止任何指令的完成

7. 系统调用

7.1 系统调用【又叫做广义指令】

定义

  • 操作系统对应用程序和程序员提供的接口
  • 系统调用需要触发Trap【也叫陷入/访管指令】
  • os通过提供系统调用避免用户程序直接访问外设【应用程序通过系统调用使用OS的设备管理服务】

目的

  • 请求系统服务

与库函数的区别

  • 库函数

    • 是语言或应用程序的一部分 ,可以运行在用户空间中
    • 许多库函数都会使用系统调用来实现功能
    • 有的库函数没有使用系统调用
  • 系统调用

    • 是操作系统的一部分,是内核为用户提供的程序接口,运行在内核空间
    • 未使用系统调用的库函数,执行效率通常比系统调用的高 , 【因为系统调用要完成上下文的切换和状态的转换】

按功能分类

  • 设备管理:完成设备的请求或释放+设备启动
  • 文件管理:完成文件的读+写+创建+删除
  • 进程控制:完成进程的创建+撤销+阻塞+唤醒
  • 进程通信:完成进程之间的信息传递或信号传递
  • 内存管理:完成内存的分配+回收+获取作业占用内存区大小及始址

系统调用的过程

image

  • step1:传参
  • step2:陷入指令/Trap/访管【执行系统调用】,发生在用户态
  • step3:由操作系统内核程序处理系统调用请求,发生在内核态
  • step4:返回应用程序

7.2 系统调用和一般过程调用的差别

  1. 运行状态不同

    • 一般过程调用的调用过程和被调用过程运行在同一系统状态【用户态或内核态】
    • 系统调用的调用过程是运行在用户态,被调用过程是运行在内核态
  2. 软中断进入机制

    • 一般的过程调用可直接由调用过程转向被调用过程
    • 系统调用不允许由调用过程直接转向被调用过程,一般通过软中断机制,先进入操作系统内核,经内核分析后才转向相应命令处理程序
  3. 返回及重新调度

    • 一般过程调用被调用结束后,返回调用点继续执行
    • 系统调用被调用完后,要对系统中所有运行进程重新调度
    • 只有当调用进程仍具有最高优先权才返回调用过程继续执行

7.3 系统调用的过程

image

8. 操作系统的体系结构

image

image

image

  • 微内核OS知识点补充

    • 优点:【内核足够小】【基于C/S模式】【应用机制与策略分离原理】【采用面向对象技术】
    • 缺点:【性能问题】【开销偏大】

9. 操作系统引导 【Boot】

9.1 操作系统的引导 即开机过程

开机过程

image

A、启动过程

  1. CPU加电,CS:IP指向FFFF0H
  2. 执行JMP指令跳转到BIOS
  3. 登记BIOS中断例程入口地址
  4. 硬件自检
  5. 进行操作系统引导

B、引导过程

  • step1:CPU从一个特定主存地址开始,取指令,执行ROM中的引导装入程序【即前面的启动过程】
  • step2:将磁盘的第一块——主引导记录读入内存,执行磁盘引导程序,扫描分区表
  • step3:从活动分区【又称主分区,即安装了操作系统的分区】读入分区引导记录,执行其中的程序
  • step4:从根目录下找到完整的操作系统初始化程序【即启动管理器】并执行,完成开机的一系列操作

C、计算机加电启动过程中执行程序的过程

自检程序——>引导装入程序/自举装入程序———>引导程序———>操作系统

D、注意点

引导装入程序/自举装入程序 是位于ROM中的自举程序(BIOS的组成部分) 用于启动具体的设备
引导程序/启动管理器 是位于装有操作系统硬盘的活动分区的引导扇区的程序 用于引导操作系统
1、操作系统被装入RAM中 2、自举程序BIOS装在ROM中 3、引导程序装在硬盘中

10. 虚拟机

定义: 使用虚拟化技术,将一台物理机器虚化为多台虚拟机器VM,每个虚拟机器都可用独立运行一个操作系统

分类:

image