一、操作系统引论
操作系统的定义
- 操作系统是用来管理计算机系统的
- 操作系统的任务:在相互竞争的程序之间有序的控制中央处理器、内存存储器以及其他输入输出设备的分配
多道程序设计技术
定义:经多个程序同时放入内存,让他们共享系统中的资源
特点:
- 多道,内存中可以存放多道独立程序
- 宏观并行
- 微观串行
提高了CPU的利用率,使用内存得到了充分的利用
操作系统的特征
1.并发性
并发:两个或两个以上的事物同一时间间隔发生。
操作系统的并发性主要体现在用户程序与用户程序之间的并发执行以及用户程序和操作系统程序的并发执行
2.共享性
共享:计算机的各种资源可以被运行的程序共同享用
两种方式:互斥共享方式和共同访问方式
3.虚拟性
虚拟:通过某种技术手段,将一个物理实体变成多个逻辑上对应物
4.不确定性
操作系统运行在一个不确定的环境中,人们不能对正在运行的程序做出判断
批处理系统
单道批处理系统
作业存放在磁带中,然后通过系统的控制使作业连续自动的执行
特点:
- 自动性,作业自动运行,无需干预
- 顺序性,磁带的各个作业按顺序运行,先调入先完成
- 单道性,内存中只有一道程序运行,可以看成是串行的
多道批处理系统
作业进入外存的“后备队列”,内存中同时存放多道程序
宏观上并行,微观上串行
特征:
- 多道性,内存存放多道程序,并行执行
- 无序性,作业进入内存顺序与完成顺序无关
- 调度性,从作业提交到完成,需要经过两次调度,作业调度和进程调度
优点:
- 提高CPU利用率
- 提高内存和输入输出设备利用率
二、进程和线程
程序并行执行的条件【重点】
进程的概念
**定义:**即一个正在执行的程序,并行执行的程序在一个数据集合上的执行过程。
进程和程序的关系
进程是程序的执行过程
- 活动性,进程会动态变换,是一个从创建到消亡的过程
- 并发性,多道程序中每个进程的并发执行,总是与其他执行过程并发执行
进程的基本状态
1.三种基本状态
- **运行状态: **进程在处理机上运行的状态
- **就绪状态: **已经获得了除处理机以外的所有资源,等待处理机分配的状态
- **阻塞状态: **进程由于输入输出或某个同步事件暂停运行的状态
2.3种基本状态的转换
3.创建状态和退出状态
- 创建状态:进程正在创建过程,还不能运行
- 退出状态:进程正常或者异常结束,操作系统先将作业移出运行状态,让它不可能再运行,再回收其所占有的资源
挂起状态
挂起状态的引入
3个原因:
- 内存对换的需要:为了缓和内存紧张,将阻塞状态的进程换至外存,即使阻塞条件解除也不能马上进入就绪状态
- 用户调试程序的需要:调试时,希望运行的程序暂时静止
- 实时系统种调节负载的需要:实时系统负载较重时,将不太重要或不太紧急的进程挂起,保证系统对紧急事件的处理
进程状态的装换
单挂起状态
在阻塞状态到就绪状态种插入挂起状态作为过渡
多挂起状态
增加阻塞挂起状态和就绪挂起状态
- 阻塞——》阻塞挂起:内存紧张引起
- 就绪——》就绪挂起:内存仍然紧张,选择挂起低优先级就绪的进程
- 运行——》就绪挂起:当高优先级程序被就绪挂起时,仍不满足内存需求,系统选择挂起低优先级就绪的程序
- 就绪挂起——》就绪:激活
- 阻塞挂起——》阻塞:进程释放了足够的内存,高优先级的进程会被激活
进程控制块
定义:描述进程的特性、状态、调度信息、及资源占有情况等的数据结构叫做PCB。
作用:进程控制块记录了操作系统所需的用于描述进程以及控制进程运行的全部信息
操作系统内核
**核心态:**具有较高的权限,能够执行一切指令,能够访问寄存器以及内存的所有区域。操作系统内核就在核心态
**用户态:**较低的权限,只能执行规定的指令,访问指定的寄存器和内存的区域。通常用于救灾用户态
**内核:**计算机硬件上扩充的第一层软件,操作系统对这层软件进行保护,使用原语实现
**原语:**由若干指令构成,具备完成一定功能的过程。由原子操作构成,不可分隔,执行时不可打断。
进程
进程的引入: 使多个程序并发执行,改善资源的利用率,提高系统吞吐率
特点:
- 进程是一个拥有资源的独立单位
- 进程是一个独立调度和分派的基本单位
三、进程同步与通信
进程的互斥
(1)进程互斥:多个进程之间不能同时使用同一资源(资源共享排他性);
(2)进程同步:多个进程发生的时间存在某种时序关系,他们需要按规定时序执行,以共同完成一项任务;
(3)进程通信:多进程之间需要传递一定的消息。
临界资源和临界区
临界资源: 在某段时间内只允许一个进程使用的资源
临界区: 每个进程访问临界资源的那段程序
信号量和PV操作【重点】
四、调度和死锁
调度类型
(1)高级调度(作业调度),控制多道程序的道数,决定程序是否被允许进入系统中处理。
外存——》内存(面向作业,使用频率低),从后备队列中选择一个,调入内存,并创建进程
(2)中级调度(对换程序),能够提高内存的利用率和系统的吞吐量。
外存——》内存(面向进程,使用频率中等),从挂起队列选择进程,将其数据调入内存
(3)低级调度(进程调度),决定就绪队列中那个进程获得处理机,然后由分配程序执行把处理机分配给该进程的操作。
性能准则
响应时间,周转时间,优先权,截止时间,系统吞吐量,处理机利用率,各类资源的平衡利用,公平。
调度算法【重点】
先来先服务FCFS
短作业优先SJF
时间片轮转RR
死锁
定义: 一组竞争系统资源或相互通信的进程相互的“永久阻塞”,若无外力作用,该组进程将永远不能继续执行。
产生原因:
- 资源不足
- 进程的推进次序非法
产生的必要条件:
(1)互斥条件,进程对所分配的资源进行排他性使用。
(2)请求和保持,进程提出新的资源请求,但不释放已占有的资源。
(3)不可剥夺条件,已占有的资源需等该进程使用完毕后自己释放。
(4)环路条件;存在一个进程和资源的环形链。(前三条的结果)
死锁的预防:
(1)互斥,作为资源的固有属性不被禁止。
(2)请求和保持,使用资源预先静态分配法。
(3)不可剥夺,A进程占有资源1,请求占有资源2时被拒绝,系统要求其释放资源1,等再次执行时重新申请资源1,或者,A进程请求B进程的资源,系统要求B进程释放资源给A进程。
(4)环路;采用有序分配的策略,调整资源类型的顺序。
银行家算法【重点】
五、存储管理
重定位
将相对地址(逻辑地址)转换成内存的绝对地址(物理地址)的工作。可分为静态重定位和动态重定位
静态重定位: 在程序执行前重定位
动态重定位: 在程序执行过程中进行地址重定位
可变分区
在进程装入内存时,将内存空间切出一个连续的区域分配给进程,整个内存分区的大小和分区的个数不是固定不变的,而是根据进程的大小动态分配
可变分区分配算法
1.首次适应算法
空闲分区以地址递增的次序排序,从开始次序进行查找满足进程的分区
2.下次适应算法
由首次适应算法演变而来,不是从链表首部开始查找,而是从上次找到的空闲分区的下一个空闲分区开始
3.最佳适应算法
空闲分区按照分区大小递增顺序排序进行查找,缺点是链表头部会留下去多难以利用的小空闲区,称之为碎片
4.最坏适应算法
空闲分区按照大小递减顺序排序,缺点是大的空闲区被分割,当较大的进程需要运行时,不能满足需求
页式存储管理【重点】
段式存储管理【重点】
段页式存储管理【重点】
六、虚拟存储管理
定义: 具有(请求调入)和(置换)功能,能从(逻辑)上对(内存容量)进行扩充的一种(存储器系统);
(1)局部性原理(表现在空间和时间局部性):
a.顺序执行指令和分支过程调用指令在所有程序指令中占小部分;
b.过程调用深度不超过5,其指令的引用在很少的几个进程中;
c.程序在执行循环指令时被限制在小的内存区域中;
d.程序对数据结构的处理集中在小范围内。
(2)虚拟存储器的特征:
a.离散性(进程不连续装入内存不同区域);
b.多次性(一个进程多次装入内存);
c.对换性(在进程运行时对部分数据和程序换进换出);
d.虚拟性(从逻辑上扩充内存容量)
请求页式存储管理的页面置换算法
-
**OPT(最佳置换算法):**往后看,选择置换后面那些不再使用或最长时间内不再使用的页,若多个存储块均符合,则选择置换最近最久未使用的页;
-
FIFO(先进先出置换算法): 总是先淘汰最先进入(即在内存中驻留事件最久)的页予以淘汰;
-
LRU(最近最久未使用置换算法): 往前看,将最近最久未使用的页淘汰。另外淘汰次数指的是置换次数,缺页次数指的是操作过的存储块。
七、设备管理
1、I/O控制方式(170):(仅作了解)
(1)程序直接控制方式:由用户进程直接控制CPU与外设之间的信息传送。
(2)中断控制方式:目的是减少前者CPU的等待时间,提高系统并行工作的程度。要求CPU和设备控制器之间有相应的中断请求线,设备控制器的控制/状态寄存器中有相应的中断允许位。表现上设备输入数据时无需CPU干预,CPU和设备可以并行工作,当输完一个数据时,CPU才花费很短时间来进行中断处理。
(3)DMA(直接存储器访问)控制方式:特点是数据传输基本单位从字节升为数据块,数据在内存和设备之间直接传送。仅当传送开始和结束时需要CPU干预。
(4)通道控制方式:在DMA的基础上,将数据块提升到数据组。
2、磁盘的访问(188):
寻道时间:磁头定位磁道的时间,用Ts表示;
旋转时间:扇区到达磁头的时间,用Tr表示;
排队延迟时间:将设备分配给进程以及共享I/O的等待时间;
传输时间:用Tt表示,Tt=b/rN;(b表示要访问的字节数、r表示旋转速度、N为一个磁道中的字节数);
磁盘访问时间:T=Ts+1/2r+b/rN;(寻道时间+平均旋转时间+传输时间);
Rpm指的是硬盘一分钟旋转的次数。
3、磁盘调度(189):
(1)FCFS先来先服务:根据进程访问磁盘的先后顺序进行调度;
(2)SSTF最短寻道时间优先:尽可能使寻道距离最短;
(3)SCAN扫描算法:电梯调度,从里到外再到里双向移动/ \;
(4)C-SCAN循环扫描算法:从里到外单向移动/ /;
重点
p45
信号量和PV操作
调度算法:
- 先来先服务调度算法
- 短作业优先调度算法
- 时间片轮转调度算法
银行家算法
页式存储管理的地址变换
段式存储管理的地址变换
段页式存储管理的地址变换
磁盘调度
2-进程并发执行的条件,Bernstein条件;p45 ok
3-PV操作;p77 ok
4-进程调度(FCFS/SJF/RR);p103 ok
4-银行家算法;p115 ok
5-页式存储管理;p129 ok
6-页面置换(OPT/FIFO/LRU);ok
7-磁盘调度(FCFS/SSTF/SCAN/C-SCAN);