Skip to content

操作系统

· 7 min

概述#

操作系统自上而下可分为 4 部分:硬件、操作系统、应用程序、用户。

操作系统的特征#

并发和共享是操作系统的两个最基本的特征

发展历程#

手工操作阶段

缺点

  1. 用户独占主机,虽然不会出现因资源已被其他用户占用而等待的现象,但资源利用率低
  2. CPU 等待手工操作,CPU 的利用不充分

批处理阶段

单道批处理系统

多道批处理系统

分时操作系统

实时操作系统

运行环境#

处理器运行模式#

包含

中断和异常#

系统调用#

操作系统结构#

分层法#

模块化#

宏内核#

系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为用户程序提供高性能的系统服务。

微内核#

内核只保存最基本的功能,其他移到用户态,从而降低内核的设计复杂度。

基本功能

  1. 进程(线程)管理
  2. 低级存储器管理
  3. 中断和陷入处理

特点

  1. 扩展性和灵活性
  2. 可靠性和安全性
  3. 可移植性
  4. 分布式计算

外核#

操作系统引导#

  1. 激活 CPU
  2. 硬件自检
  3. 加载带有操作系统的硬盘
  4. 加载主引导记录 MBR
  5. 扫描硬盘分区表
  6. 加载分区引导记录 PBR
  7. 加载启动管理器
  8. 加载操作系统

进程与线程#

进程#

程序段、相关数据段和 PCB(进程控制块 Process Control Block) 三部分构成了进程实体(又称进程映像)

进程的状态与转换#

graph LR;
A((新建)) --创建--> B((就绪))
B --调度--> B1((运行))
B1 --时间到--> B
B1 --事件等待--> B2((阻塞))
B2 --事件发生--> B
B2 --退出--> C((终止))

组织#

PCB 包含的内容

进程描述信息进程控制和管理信息资源分配清单处理机相关信息
进程标识符(PID)进程当前状态代码段指针通用寄存器值
用户标识符(UID)进程优先级数据段指针地址寄存器值
代码运行入口地址堆栈段指针控制寄存器值
程序的外存地址文件描述符标志寄存器值
进入内存时间键盘状态字
处理机占用时间鼠标
信号量使用
  1. 进程描述信息
    • 进程标识符:标志各个进程,每个进程都有一个唯一标识号。
    • 用户标识符:进程归属的用户,用户标识符主要为共享和保护服务。
  2. 进程控制和管理信息
  3. 资源分配清单
  4. 处理机相关信息

进程的通信#

  1. 共享存储
    • 低级方式:基于数据结构的共享
    • 高级方式:基于存储区的共享
  2. 消息传递
    • 直接通信方式
    • 间接通信方式
  3. 管道通信

线程#

TCB 线程控制块

处理机的调度#

调度的目标

  1. CPU 利用率
  2. 系统吞吐量
  3. 周转时间
    • 周转时间 = 作业完成时间 - 作业提交时间
    • 平均周转时间 = (1周转时间 + 2周转时间 + … + n周转时间) / n
    • 带权周转时间 = 作业周转时间 / 作业实际运行时间
  4. 等待时间
  5. 响应时间

同步与互斥#

死锁#

调度的实现#

调度程序

  1. 排队器
  2. 分派器
  3. 上下文切换器

进程调度方式

  1. 非抢占调度方式(非剥夺方式),当一个进程正在处理机执行时,即使有更紧迫的进程,也要等待该进程进入阻塞态。
  2. 抢占调度方式(剥夺方式)

内存管理#

大端序和小端序#

大端序(Big Endian):高位字节存入低地址,低位字节存入高地址。例:0x1234 [0x12, 0x34]

小端序(Little Endian):低位字节存入低地址,高位字节存入高地址。例:0x1234 [0x34, 0x12]

网络协议也都是采用 Big Endian 方式传输数据的,所以有时也把 Big Endian 方式称为网络字节序