操作系统总结

第1章 引论

  • OS的目标:方便性、有效性、可扩充性
  • OS的基本特征:并发、共享、虚拟、异步

OS的作用

  • 作为用户与计算机硬件系统之间的接口
  • 作为计算机系统资源的管理者

OS的发展过程 ★

  • 手工操作阶段
  • 单道批处理系统:内存中只有一个程序运行
  • 多道批处理系统:内存中同时有多个程序交替运行
  • 分时系统:多个用户通过终端同时共享一台主机
  • 实时系统:及时响应外部事件的请求

OS的结构

  • 无结构
  • 模块化结构
  • 分层式结构
  • 微内核:将无需再内核态执行的功能移到用户态执行。从而降低了内核设计的复杂性

第2章 进程管理

  • 程序的顺序执行:顺序性、封闭性、可再现性
  • 程序的并发执行:间断性、失去封闭性、不可再现性

进程

  • 进程:进程实体的运行过程,是系统进行资源分配和调度的独立单位
  • 进程实体(进程映像):程序段 + 数据段 + PCB
  • PCB 是进程存在的唯一标识
  • 创建进程的实质就是创建 PCB,撤销进程的实质就是撤销 PCB

线程

  • 线程可以看作是轻量级的进程
  • 线程的实现方式:用户级线程、内核支持线程

进程 vs 线程 ★

  • 调度:进程是拥有资源的基本单位,线程是独立调度的基本单位
  • 拥有资源:线程不拥有系统资源,但可以访问所属进程的系统资源
  • 并发性:线程之间也可以并发执行
  • 系统开销:线程的创建、撤销和切换的开销要更小

进程控制

  • 进程控制是由OS的内核中的原语来实现的,它具有原子性
  • 进程的阻塞是一种主动行为,唤醒是一种被动行为
    在这里插入图片描述
  • 活动就绪:进程在主存,可以被调度
  • 静止就绪:进程在外存,不参与调度
    在这里插入图片描述

进程通信

  • 共享存储
  • 消息传递
  • 管道
  • 信号量
  • socket

进程同步

  • 互斥是指某一资源同时只允许一个进程对其进行访问,但无法控制访问顺序
  • 同步是在互斥的基础上实现对资源的有序访问
  • 进程同步的原则:空闲让进、忙则等待、有限等待、让权等待
  • 整型信号量
wait(Semaphore s) {
	while (s <= 0);
	s--;
}

signal(Semaphore s) {
	s++;
}
  • 记录型信号量
wait(Semaphore* s) {
	s->value--;
	if (s->value < 0) {
		block(s->list);
	}
}

signal(Semaphore* s) {
	s->value++;
	if (s->value <= 0) {
		wakeup(s->list);
	}
}

Producer-Consumer

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Reader-Writer

在这里插入图片描述


第3章 处理机调度和死锁

处理机调度

在这里插入图片描述

  • 高级调度:后备队列→ 就绪队列
  • 低级调度:为就绪队列的进程分配 CPU 时间片
    • 非抢占方式:不准插队,容易造成线程饥饿
    • 抢占方式:允许插队
  • 中级调度
    • 就绪挂起队列→ 就绪队列
    • 就绪队列→ 就绪挂起队列
    • 阻塞队列→ 阻塞挂起队列

进程调度算法 ★

先来先服务算法(FCFS)

在这里插入图片描述
周转时间 = 完成时间 − 提交时间   带权周转时间 = 周转时间 要求服务时间 \small\begin{aligned} &周转时间=完成时间-提交时间\\\,\\ &带权周转时间 = \frac{周转时间}{要求服务时间} \end{aligned} 周转时间=完成时间提交时间带权周转时间=要求服务时间周转时间


短作业优先调度算法(SJF)

在这里插入图片描述

优先级调度算法

高响应比优先调度算法

  • 在每次进行调度,先计算后备队列每个作业的响应比
    响应比 = 等待时间 + 要求服务时间 要求服务时间 \small 响应比=\frac{等待时间+要求服务时间}{要求服务时间} 响应比=要求服务时间等待时间+要求服务时间

时间片轮转调度算法(RR)

多级反馈队列调度算法(MFQ)

  • 第1级队列优先级最高,后续队列逐级降低
  • 优先级越低,时间片越长

死锁 ★

基本概念

  • 死锁的定义:多个进程之间竞争资源造成的一种互相等待的局面,若无外力作用,所有进程将无法继续推进
  • 死锁产生的原因:竞争不可剥夺资源、进程执行顺序不当

死锁的预防-破坏4个必要条件

  • 互斥条件:无法实现
  • 不可剥夺条件:实现复杂
  • 请求保持条件:进程一次申请所需全部资源,实现简单
  • 循环等待条件:为所有资源编号,进程必须按编号递增申请资源

死锁的避免-银行家算法

  • 令 Work 初值为 Available
  • 寻找满足 Need ≤ Work 的进程,然后 Work = Work + Allocation,不断重复此步骤直到找到一个安全序列
    在这里插入图片描述

死锁的检测-资源分配图

  • 死锁定理:若状态S的资源分配图不可完全简化,则该状态为死锁
  • 资源图的简化:找到一个进程满足,申请某资源的数量 ≤ 该资源的空闲数量

第4章 存储器管理

程序的链接

  • 静态链接
  • 装入时动态链接
  • 运行时动态链接

程序的装入

  • 绝对装入
  • 静态重定位
  • 动态重定位

连续分配管理方式 ★

单一连续分配

  • 用户区内存只有一道用户程序
  • 有内部碎片,利用率非常低

固定分区分配

  • 用户区划分成若干固定大小的区域,每个分区只装有一道用户程序
  • 有内部碎片,利用率非常低

动态分区分配

  • 程序装入时动态划分区域,运行结束时撤销分区
  • 动态分区策略
    • 首次适应(FF):空闲分区按地址递增,最简单,性能也最好
    • 最佳适应(BF):空闲分区按容量递增,性能最差,会产生很多外部碎片
    • 最坏适应(WF):空闲分区按容量递减
    • 循环首次适应(NF)

非连续分配管理方式 ★

分页管理方式

  • 分页的原理:将用户程序的地址空间分为若干个大小相同的页,将内存空间分为大小相同的块,页和块大小相等
  • 页表的作用:将页号映射为物理块号
  • 快表的作用:相当于缓存,可以加快地址变换的过程
  • 两级页表:用于建立索引,以便不浪费主存空间去存储无用的页表项,也不用顺序式查找页表项

分段管理方式

  • 分段的原理:将用户程序的地址分为若干个大小不同的段
  • 段表的作用:将段号映射为段基址
分页分段
基本单位页的大小固定段的长度不固定
地址空间一维二维
目的为了满足系统管理的需要为了满足用户的需要

段页式管理方式

  • 每个进程一张段表,每个段一张页表

虚拟存储器 ★

局部性原理

  • 时间局部性:某条指令被执行后,可能会再次执行;某个数据被访问后,可能会被再次访问。原因是程序中存在大量循环操作
  • 空间局部性:某个存储单元被访问后,附近的存储单元也将被访问

虚拟存储

  • 虚拟存储器:利用局部性原理,程序装入时值将程序的部分装入内存,其余部分留在外存,后续执行时再进行请求调入和置换,让用户感觉好像存在一个比实际物理内存大得多的存储器
  • 虚拟存储器是一种以时间换空间的技术
  • 虚拟存储器的最大容量取决于:CPU 地址
  • 虚拟存储器的实际容量取决于:CPU 地址、内外存之和

缺页中断 vs 普通中断

  • 缺页中断在指令执行期间处理中断请求,普通中断是在指令执行完之后
  • 一条指令在执行期间可能出现多次缺页中断

抖动

  • 同时运行的进程太多,分配给每个进程的物理块太少,导致每个进程运行时频繁出现缺页中断,从而使处理机的利用率急剧下降

页面置换算法

  • 最佳置换算法(OPT):无法实现
  • 先进先出算法(FIFO):每次缺页替换出最早的那一页
  • 最近最久未用算法(LRU):利用栈实现
  • 时钟算法(CLOCK)
    在这里插入图片描述

第5章 设备管理

  • I/O控制方式:程序查询方式、程序中断方式、DMA 方式、通道方式

设备分配

  • 设备独立性:用户程序独立于具体使用的物理设备
  • 设备独立性实现:设置一张逻辑设备表(LUT),将逻辑设备映射为物理设备

SPOOLing技术

原理

  • 为了缓解高速CPU 和低速 I/O 设备之间的矛盾,引入了假脱机技术
  • 用专门的外围控制机,将低速 I/O 设备的数据传送到高速磁盘上,或者相反
  • 本质是一种以空间换时间的技术

组成

  • 输入井、输出井
  • 输入缓冲区、输出缓冲区
  • 输入进程、输出进程

主要特点

  • 提高了I/O操作的速度
  • 将独占设备改造为共享设备
  • 实现了虚拟设备功能

磁盘管理

磁盘访问时间

  • 设磁盘每秒的转数为 r r r , 每条磁道的字节数为 N N N
  • 寻道时间 T s T_s Ts,旋转延迟时间 T d T_d Td,传输时间 T t T_t Tt
  • 数据传输率:
    D = r N D = rN D=rN
  • 平均存取时间:
    t = T s + T d + T t = T s + 1 2 r + b r N t = T_s + T_d+T_t = T_s+\frac1{2r}+\frac{b}{rN} t=Ts+Td+Tt=Ts+2r1+rNb

磁盘调度算法 ★

  • 先来先服务算法(FCFS)
  • 最短寻道时间优先算法(SSTF):容易造成饥饿
  • 扫描算法(SCAN):电梯算法
  • 循环扫描算法(C-SCAN)

第6章 文件管理

文件的逻辑结构

  • 顺序文件
  • 索引文件
  • 索引顺序文件
  • 直接(Hash)文件

文件的物理结构

  • 连续分配
  • 链接分配
    • 隐式链接:不能随机存取,安全性容错性差
    • 显式链接:使用 FAT(File Allocation Table),支持随机存取,安全性容错性好
  • 索引分配

文件存储空间的管理

  • 空闲表法
  • 空闲链表法
  • 位示图法
  • 成组链接法

文件共享

  • 基于索引结点
  • 基于符号链
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值