1 操作系统地位
计算机系统由硬件和软件组成,未配置软件的称为裸机,但这会导致效率低下。
操作系统是为弥补用户与硬件之间的鸿沟的一种系统软件,汇编、编译、解释、数据库管理系统等系统软件和其他应用软件都在此基础。
2 进程管理
又称处理机管理。
进程是资源分配和独立运行的基本单位。
进程管理负责管理进程间并发性、资源竞争和合作。
(1)程序与进程
程序顺序执行的特征
前趋图是一个有向无环图,表示程序执行的顺序,结点为程序段操作,有向边表示前后关系,如1->2,表示先程序1执行结束后再执行程序2,1为前趋2为后继。
顺序执行特征包括顺序性(顺序执行)、封闭性(每次执行的程序独占资源)、可再现性(相同输入得到的输出相同)。
PV操作:操作系统中一经典操作,可实现同步、互斥、前趋关系。
PV使用:每两个进程之间会有一个信号量,初始为0,前趋执行结束后会对该信号量做V操作(信号量+1),当后继发现信号量为1,会执行P操作(信号量-1),依次类推。
程序并发执行的特征
采用多道程序设计技术,可使主存中的多道程序处于并发状态。
没有前趋关系的程序段可以并发执行。
并发执行特征为:失去封闭性和可再现性(引入同步和互斥问题);程序和机器执行程序的活动顺序不再一一对应;并发间的程序员有相互制约性。
(2)进程状态及状态间的切换
三态模型:运行、就绪、阻塞
运行
运行时就是运行态,单处理机只有一个运行态的进程。
就绪
除了CPU,其他资源均已被进程获得,万事俱备只欠CPU。
阻塞
又称等待或睡眠,进程正在等待某一事件发生(如等待IO完成),此时给CPU也没用。
五态模型
3 进程间的通信
由于并发的存在,进程间存在资源共享和互相合作的关系,进程通信就是指进程间的信息交换过程。
同步:合作的进程之间直接制约问题。
互斥:申请临界资源(同时只能供一个进程使用的资源,如打印机)的进程间的间接制约问题。
(1)临界区
临界区:进程中对临界资源进行操作的那段程序。
临界区四大原则
有空即进
无空则等
有限等待
等待的程序要保证能在有限时间内访问临界资源,不能让人家一直等好久,进入“饥饿”状态。
让权等待
当进程不能进入临界区,应立即释放CPU,不能占着茅坑不拉屎,进入“忙等”状态。
(2)信号量机制
有效控制进程间同步与互斥的工具,主要有整型信号量、记录型信号量,信号量集机制。
整型信号量与PV操作
此信号量是一个整型变量,有以下两种:
公共型信号量:实现互斥操作,初值为1或资源数量。
私有型信号量:实现同步操作,初值为0或某正整数。
信号量用S表示,S>=0表示可用资源数,S<0其绝对值表示阻塞队列中等待该资源的进程数。
PV操作
P申请一个资源,V释放一个资源,如:
PV操作实现互斥
PV操作实现同步
下图为单缓冲区的例子:
下图为多缓冲区的例子:
4 死锁
由同类资源分配不当引起,当系统中有m个资源被n个进程共享,每个进程需要k个资源,当,即资源小于进程所需数,就可能会发生死锁。
判断是否会发生死锁(最小个数):,满足就不会死锁。
进程资源图
先分配,再申请,箭头从进程指入为分配,指出为申请。
化简(是否可以都执行且不会死锁),上图化简为p1->p2->p3
死锁的处理
死锁避免策略
银行家算法:每次分配资源前先预演分配后是否会出现死锁,安全才分配。提高资源利用率,但增加了系统开销。安全指按照一定顺序轮流为进程分配资源,直至达到最大需求(每个进程最终都能运行),此时这个分配序列称为安全序列。若找不出这个序列,则为不安全。
5 线程
为了节省开销,进程在一个系统中不宜过多,因此引入线程将进程的两大特性(分配资源的基本单位,独立调度和分配的基本单位)中的后者分配给线程。一个线程受阻,其他线程可继续运行。
线程是进程的一部分,是系统调度和分配的基本单位,仅拥有一点必须的资源(程序计数器,一组寄存器和栈),他和所属进程下的其他所有线程共享进程的所有资源,但这些线程之间是不可见的。
6 分页/段页存储管理
分页:页号+页内地址
段页:段号+段内页号+页内地址
7 缓冲区
单缓冲区
缓冲区非空不输入,非满不传送。
并行传输n条作业时间:
双缓冲区
用时
8 磁盘调度算法
先来先服务(FCFS)
谁来谁先,不考虑访问的位置。
最短寻道时间有限(SSTF)
先服务距离当前磁道最近的,不考虑请求服务顺序。
扫描算法(SCAN)或电梯调度算法
先沿距离当前磁道最近的请求方向服务,直到该方向没有请求,再反向。
旋转调度算法
读取必须和处理同步,读取完后才开始处理,会因为处理后当前磁头所在的读取位置与本次该读取的位置不同出现时间差,导致等待时间很长。
优化的方案:修改记录所在的扇区位置,使得读取完上一记录后,磁头恰好停留在下一条要处理的记录。
阶段补充
移动臂就是磁头,上述说的距离是指柱面号。
9 文件目录
为实现按名存取,系统为每个文件设置了描述文件的数据结构——文件控制块(FCB),其中最少包含了文件的物理地址和文件名。文件控制块的有序集合称为文件目录,专门用于文件检索,此目录若被修改对系统有较大影响。
文件控制块包含三类信息
基本信息类
文件名、物理地址、文件长度、文件块数。
存取控制信息类
存取权限RWX。
使用信息类
创建时间、上次修改时间、访问时间...
目录结构
影响文件的存取速度、共享性和安全性。
一级目录结构
链式结构,所有文件一根链,速度慢。
二级目录结构
分为主目录和用户目录, 为每个用户分配了一个用户目录存储在主目录中,一个用户一根链,速度较快但共享时不方便。
多级目录结构(树形目录结构)
节点是目录,叶子节点是文件,有全文件名路径(从根节点开始)、绝对路径(从根节点开始)和相对路径(当前目录/.../)。
10 位示图
用二进制的一位来表示一个物理块的状态,下图为字长为32位的计算机中的位示图。
位示图的大小由磁盘空间中物理块总数决定,几个物理块位示图就有几位。
阶段补充
简单时间片时间片方法,用户数为n,时间片为q,每个用户响应时间为。
磁盘调度中,不同柱面需要先移臂调度到目标柱面,再旋转调度到目标磁道。