选择45,判断15,简答20,计算题20
第一章 操作系统引论
1、操作系统的发展
计算机系统的层次结构
单道批处理系统:
- 主要优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升。
- 主要缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量的时间是在空闲等待 I / O完成。资源利用率依然很低。
多道批处理系统:
- 主要优点:多道程序并发执行,共享计算杋资源。资源利用率大幅提升,CPU和其他资源保持“忙碌”状态,系统吞吐量增大
- 主要缺点:用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成中间不能控制自己的作业执行)
分时操作系统: (有人机交互)
- 分时操作系统:计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
- 主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
- 主要缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。
2、操作系统特征
操作系统的四个特征 :并发,共享 ,异步,虚拟
第二章 进程的描述与控制
1、进程的特征与定义
- 定义:程序的指令序列
- 特征:动态性,并发性,独立性,异步性
2、 进程的状态 (必考)
3、PCB 的作用与其中的信息
PCB 作用
- 作为独立运行基本单位的标志
- 能实现间断性运行方式
- 提供进程管理所需要的信息
- 提供进程调度所需要的信息
- 能实现与其他进程的同步与通信
PCB 中的信息
- 进程标识符
- 内部标识符
- 处理机状态
- 进程调度信息
- 进程控制信息
处理机的执行状态 : 1、系统态 2、用户态
4、进程的阻塞与唤醒
5、临界资源
-
临界资源 : 把一个时间段内只允许一个进程使用的资源称为临界资源
-
同步机制遵循的四个规则逻辑(重要) : 1、空闲让进 2、忙则等待 3、有限等待 4、让权等待
6、信号量机制
-
用户进程可以通过使用操作系统提供的一对原语来对信号量进行操作,从而很方便的实现了进程互斥、进程同步。
-
信号量其实就是一个变量(可以是一个整数,也可以是更复杂的记录型变量),可以用一个信号量来表示系统中某种资源的数量,比如:系统中只有一台打印机,就可以设置一个初值为1的信号量。
-
原语是一种特殊的程序段,其执行只能一气呵成,不可被中断。原语是由关中断/开中断指令实现的。软件解决方案的主要问题是由“进入区的各种操作无法一气呵成”,因此如果能把进入区、退出区的操作都用“原语”实现,使这些操作能“一气呵成”就能避免问题。
(1)整型信号量
(2)记录型信号量
(3) AND 型信号量
- AND 同步机制 : 将进程在整个运行过程中所需要的所有资源,一次性全部分配给进程,待进程使用完后一起释放。(若干临界资源的分配采用原子属性)
7、PV操作与前驱图
箭头的开始操作是 V操作,箭头的结束操作是 P 操作
口诀:在“前操作” 之后执行 V 操作 , 在后操作之前执行 P 操作
8、管程的定义
管程定义 :管程是一种特殊的软件模块,有这些部分组成:
1、局部于管程的共享数据构说明
2、对该数据结构进行操作的一组过程(函数);
3、对局部于管程的共享数据设置初始值的语句;
4、管程有一个名字。
管程的定义有点类似于类的定义
管程特征
1、局部于管程的数据只能被局部于管程的过程所访问
2、一个进程只有通过调用管程内的过程才能进入管程访问共享数据;
3、每次仅允许一个进程在管程内执行某个内部过程。
管程的组成:
- 管程的名称
- 局部于管程的共享数据结构说明
- 对该数据结构操作的一组过程
- 对局部于管程的共享数据设置初值的语句
9、进程通信
周转时间 = 完成时间 - 到达时间
带权周转时间 = 周转时间 / 服务时间
第三章 处理机调度与死锁
1、处理机调度的层次 (必考)
-
高级调度(作业调度)按一定的原则从外存上处于后备队列的作业中挑选一个(或多个)作业,给他们分配内存等必要资源,并建立相应的进程(建立PCB)、以使它(们)获得竞争处理机的权力。
-
中级调度 引入了虚拟存储技术之后,可将暂时不能运行的进程调至外存等待。等它重新具备了运行条件且内存又稍有空闲时,再重新调入内存。这么做的目的是为了提高内存利用率和系统吞吐量。 暂时调到外存等待的进程状态为挂起状态。值得注意的是,PCB并不会一起调到外存,而是会常驻内存。PCB中会记录进程数据在外存中的存放位置,进程状态等信息,操作系统通过内存中的PCB来保持对各个进程的监控、管理。被挂起的进程PCB会被放到的挂起队列中 。中级调度(内存调度),就是要决定将哪个处于挂起状态的进程重新调入内存。
-
低级调度 低级调度(进程调度),其主要任务是按照某种方法和策略从就绪队列中选取一个进程,将处理机分配给它。
调度频率: 低级 > 中级 > 高级
2、作业调度算法 (必考)(加强)
先来先服务 FCFS
短作业优先 SJF
高相应比优先 HRRN
时间片轮转算法
优先级调度算法
多级反馈队列调度算法
作业调度 后备队列
进程调度 就绪队列
3、死锁 (必考)
第四章 存储器管理
1、程序的装入与链接
2、动态分区分配算法
- 内部碎片,分配给某进程的内存区域中,如果有些部分没有用上
- 外部碎片,是指内存中的某些空闲分区由于太小而难以利用
可以通过紧凑技术解决外部碎片问题
首次适应算法(First Fit)
- 算法思想:每次都从低地址开始査找,找到
第一个能满足大小的空闲分区
。
最佳适应算法(Best Fit)
- 算法思想:由于动态分区分配是一种连续分配方式,为各进程分配的空间必须是连续的一整片区域。因此为了保证当“大进程”到来时能有连续的大片空间,可以尽可能多地留下大片的空闲区,即,
优先使用更小的空闲区
。
最坏适应算法(Worst Fit)
- 算法思想:又称最大适应算法( Largest Fit)为了解决最佳适应算法的问题一一即留下太多难以利用的小碎片,可以在每次分配时优先使用最大的连续空闲区,这样分配后剩余的空闲区就不会太小,更方便使用。
领近适应算法(Next Fit)
- 算法思想:首次适应算法每次都从链头开始査找的。这可能会导致低地址部分出现很多小的空闲分区,而每次分配査找时,都要经过这些分区,因此也增加了査找的开销。如果
每次都从上次查找结束的位置开始检索
,就能解决上述问题。
3、覆盖与交换技术
4、块表与地址变换机构
-
动态重定位:进程在内存中连续存放,操作系统实现从逻辑地址到物理地址的转换
-
思想:模块在内存中的起始地址(重定位寄存器)+目标内存单元相对于起始地址的偏移量
(1)计算方法
人工计算方法:
页号=逻辑地址/页面长度
(取除法的整数部分)页内偏移量≡逻辑地址%页面长度
(取除法的余数部分)- 页面在内存中的起始位置:操作系统需要用某种数据结构记录进程各个页面的起始位置。
Eg:
页号=80/50=1
页内偏移量=80%50=30
1号页在内存中存放的起始位置450
计算机计算方法
- 后面12位表示页内偏移量
知识交叉:
-
cache 块内地址总是2的整数幂
-
全相联映射、组相联映射、直接映射
-
子网划分的掩码
-
重要结论:如果每个页面大小为2KB,用二进制数表示逻辑地址,则末尾K位即为页内偏移量,其余部分就是页号
(2)逻辑地址结构
(3)页表
- 为了能知道进程的每个页面在内存中存放的位置,操作系统要为每个进程建立一张页表
- 为什么每个页表项的长度是相同的,页号是“隐含”的?
(4)方法详解
第五章 虚拟存储器
1、虚拟存储器特征
虚拟存储器特征: 1、多次性 2、对换性 3、虚拟性
2、分页内存分配策略
抖动与工作集(选择)
3、页面置换算法 (重要)
第六章 输入输出系统
1、IO 系统的层次结构和模型
2、IO 系统接口
1、块设备接口 2、流设备接口 3、网络通信接口
3、 IO 设备的控制方式
4、缓冲区管理 (重点)
单缓冲区
双缓冲区