第一部分
1.操作系统的目标
1.1 方便性:用户无需知道底层硬件
1.2有效性:OS合理地组织计算机的工作流程,提高系统的吞吐量
1.3可扩充性:扩充应用软件,适应硬件和体系结构发展
1.4开放性:网络环境遵循开放互联标准
2.OS的作用
2.1作为用户与计算机硬件系统之间的接口
2.2作为计算机系统资源管理者
2.3实现对计算机资源的抽象
3.OS的发展
3.1 人工操作
3.2脱机输入/输出
3.3单道批处理系统
3.4多道批处理系统
3.5分时系统
为满足用户对人机交互的需求
共享是指在一台主机上连接多个显示器,键盘,输入后系统及时接受处理
交互指处理后的结果返回给用户
3.6实时系统
4.OS基本特征
4.1并发
4.1.1并发性:两个或多个事件在同一时间段发生
4.1.2并行性:两个或多个事件在同一时刻发生
4.2共享
系统中资源可供内存中多个并发执行的进程共同使用
4.3虚拟
通过技术吧一个物理实体变为若干个逻辑对应物
4.4异步
进程的执行顺序和执行时间的不确定性
第二章
5.进程管理
描述程序的顺序和并发执行情况,引入前趋图
5.1顺序执行的特征
顺序性,封闭性,可再现性
5.2并发执行的特征
间断性,失去封闭性,不可再现性
5.3进程=程序段+数据段+PCB进程控制块
5.4进程是具有独立功能的程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位
5.5特征:动态性,并发性,独立性,异步性
5.6基本状态:就绪:获取除CPU之外的所必需的资源
运行:正在执行
阻塞:正在执行的进程由于发生某事件而暂时无法执行
挂起后程序进入静止状态
6.PCB
6.1.PCB是存放进程管理和控制信息的数据结构称为进程的控制块,是进程存在的唯一标志
6.2.组成方式:线性方式,链接方式,索引方式
7.同步机制遵循的原则:空闲让进,忙则等待,有线等待,让权等待
8.信号量机制
8.1.只能被原语改变
8.2整型信号量
wait(s){
while(s<=0);
s–;
}
signal(s)
{
s++;
}
8.3.记录型信号量
typedef struct{
int value;
struct process_control_block*list;
}semaphore;
wait(semaphore s){
S.value–;
if(s.value<0)block(s.list);
}
signal(semaphore s){
s.value++;
if(s.value<=0)wakeup(S.list);
}
第三部分
1.处理机调度:多道程序环境下,动态的把处理机分配给就绪队列中的一个进程使之执行。
2作业进入系统驻留在外存的后备队列上,再至调入内存运行完毕,可能要经历下述三级调度。
高级调度、中级调度、低级调度
3.批处理系统:作业进入系统后先驻留外存,故需要有作业调度。
分时系统:为及时响应,作业由终端直接送入内存,故不需作业调度。
实时系统中,通常也不需作业调度。
4.作业进入系统驻留在外存的后备队列上,再至调入内存运行完毕,可能要经历下述三级调度。
①高级调度
又称作业调度或长程调度,接纳调度,主要在早期批处理阶段,处理在外存上的作业。
1)决定外存后备队列中的哪些作业调入内存;
2)为它们创建进程、分配必要的资源;
3)将新创建的进程排在就绪队列上,准备执行。
②中级调度
又称交换调度或中程调度
引入目的:提高内存利用率和系统吞吐量。根据条件将一些进程调出或再调入内存。
③低级调度
也称为进程调度、微观调度或短程调度
决定内存就绪队列中的哪个进程获得处理机,进行分配工作。是最基本的一种调度,在三种基本OS中都有。
5.
6.常用的调度算法
①先来先服务调度算法:不利于短作业
②短作业优先调度算法:能有效的降低作业的平均等待时间,提高系统吞吐量。
对短作业有利,但同时造成了对长作业的不利。
由于作业(进程)的长短含主观因素,不一定能真正做到短作业优先。
未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)的及时处理。
③高优先权优先调度算法
④基于时间片的轮转调度算法
7.死锁:指多个进程在运行过程中,因争夺资源而造成的一种僵局。当进程处于这种状态时,若无外力作用,它们都将无法再向前推进。
8.死锁的原因:竞争资源。系统中供多个进程共享的资源如打印机、公用队列等的数目不满足需要时,会引起资源竞争而产生死锁。
进程间推进顺序非法。进程在运行过程中,请求和释放资源的顺序不当,同样会导致死锁。
9.产生死锁的必要条件:
互斥条件:进程对所分配到的资源进行排他性使用
请求和保持条件:进程已经保持了至少一个资源,又提出新的资源请求,而新请求资源被其他进程占有只能造成自身进程阻塞,但对自己已获得的其他资源保持不放,必然影响其他进程。
不剥夺条件:进程已获得的资源未使用完之前不能被剥夺,只能在使用完时由自己释放。
环路等待条件
10.处理死锁的基本方法:
预防死锁
设置限制条件,破坏四个必要条件的一个或几个,预防发生死锁。
较易实现。限制条件的严格也会导致系统资源利用率和系统吞吐量降低。
避免死锁
不须事先限制,破坏四个必要条件,而是在资源的动态分配过程中,用某种方法去防止系统进入不安全状态,从而避免发生死锁。
这种事先加以较弱限制的方法,实现上有一定难度,但可获较高的资源利用率及系统吞吐量,目前在较完善的系统中,常用此方法来避免发生死锁。
检测死锁。
允许系统运行过程中发生死锁,但通过系统检测机构可及时的检测出,能精确确定与死锁有关的进程和资源;然后采取适当的措施,从系统中将已发生的死锁清除掉。
解除死锁。
与死锁检测配套的一种措施。
常用的实施方法:撤销或挂起一些进程,以便回收一些资源并将他们分配给已阻塞进程,使之转为就绪以继续运行。
死锁的检测与解除措施,有可能使系统获得较好的资源利用率和吞吐量(死锁几率不一定很高),但在实现上难度也最大。
第四部分
1.连续分配存储管理方式
①单一连续分配
②固定分区分配:内碎片(一个分区内的剩余空间)造成浪费
分区总数固定,限制并发执行的程序数目。
③动态分区分配:
首次适应算法FF
循环首次适应算法
最佳适应算法
最差适应算法
快速适应算法
④动态重定位分区分配
⑤其他
2.物理划分块的大小 = 逻辑划分的页的大小
页面大小要适中。
太大,(最后一页)内碎片增大,类似连续分配的问题。
太小的话,页面碎片总空间虽然小,提高了利用率,但每个进程的页面数量较多,页表过长,反而又增加了空间使用。
3.
4.设访问一次内存时间为t,则基本分页机制下EAT=2t
访问内存中的页表(以计算指令所在的实际物理地址)
访问指令内存地址
5.快表的引入
减少第1步访问内存的时间。增设一个具有“并行查询”能力的高速缓冲寄存器,称为“快表”,也称“联想寄存器”
存放正在执行进程的页表的数据项。
设一次查找访问快表时间为t’ ,则
EAT= at’ + (1-a)(t’+t) + t
= 2t +t’ -ta
6.两级页表
将页表分页,并离散地将页表的各个页面分别存放在不同的物理块中
为离散分配的页表再建立一张页表,称为“外层页表”,其每个表项记录了页表页面所在的物理块号。
7.
8.
9.虚拟存储管理
所谓“虚拟存储器”,是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
为了用小的内存实现在大的虚空间中程序的运行目的
基于局部性原理
虚拟存储器管理——由操作系统提供一个比实际内存大的,假想的特大存储器。
10.虚拟存储的特征
多次性,对换性,虚拟性
11.请求分页存储管理方式
缺页中断机构:
“保护CPU环境”
“分析中断原因”
“转入缺页中断处理程序”
“恢复CPU环境”等。
地址变换机构:
12.页面置换算法:
缺页率=页面调入次数(缺页次数)/总的页面使用次数
最佳Optimal置换算法
先进先出FIFO置换算法
最近最久未使用(LRU)置换算法
CLOCK置换算法
其他
算法性能比较:
缺页率:FIFO>CLOCK>LRU>OPT
第五部分
1.I/O系统的组成
需要用于输入、输出和存储信息的设备;
需要相应的设备控制器;
控制器与CPU连接的高速总线;
有的大中型计算机系统,配置I/O通道
按传输速率分类:
低速、中速、高速(键盘、打印机、磁盘)
使用:存储设备、输入输出设备
按信息交换的单位分类:
块设备:有结构、速率高、可寻址、DMA方式控制
字符设备:无结构、速率低、不可寻址、中断方式控制
3.I/O设备的引入
CPU只需向通道发送一条I/O指令即可不再干预后续操作。
通道形成通道程序,执行I/O操作,完成后向CPU发中断信号。
根据其控制的外围设备的不同类型,信息交换方式也可分为以下三种类型:
字节多路通道
数组选择通道
数组多路通道
4.中断:CPU对I/O设备发来的中断信号的一种响应,中断是由外部设备引起的,又称外中断。
陷入:由CPU内部事件所引起的中断,通常把这类中断称为内中断或陷入(trap)。
中断和陷入的主要区别:是信号的来源。
5.I/O的控制方式
程序I/O方式
中断驱动I/O方式
直接存储器访问DMA(字节—块)
I/O通道控制方式(组织传送的独立)
宗旨:减少主机对I/O控制的干预,将CPU从繁杂的I/O控制事物中解脱出来。
6.一进程中“CPU计算速度”和“设备I/O速度”仍存在不匹配的矛盾。
解决:CPU进行当前计算时,设备进行后续数据的输入(——缓冲区)。
I/O控制方式减少CPU对I/O的干预提高利用率;
缓冲则通过缓和CPU和I/O设备速度不匹配矛盾,增加CPU和I/O设备的并行性,提高利用率。
现代OS中,几乎所有的I/O设备与处理机交换数据时,都用了缓冲区。
7.引入缓冲区的主要原因:
缓和CPU与I/O设备间速度不匹配的矛盾。
缓冲区数据成批传入内存,也可进一步减少对CPU的中断频率
最终目的:提高CPU和I/O设备的并行性。
使用缓冲区的方式:
1)单缓冲、多缓冲
2)循环缓冲
3)缓冲池
8.磁盘的调度方法
FCFS
最短寻道时间优先SSTF
扫描算法SCAN(磁盘电梯调度算法)
循环扫描算法CSCAN
N-Step-SCAN算法
FSCAN算法
第六部分
1.文件和文件系统
文件管理:把所管理的程序和数据组织成一系列的文件,并能进行合理的存储、使用等操作。
2.基本概念
数据项:描述对象某种属性的字符集;是数据组织中可以命名的最小逻辑数据单位。
记录:一组相关数据项集合,描述对象某方面的属性;
关键字:一个记录中的一个或几个数据项的集合,用于唯一的标识一个记录。
文件:由创建者定义的、具有文件名的一组相关元素的集合。
无结构:字符流的形式有结构:由相关记录组成
属性:类型、长度、物理位置、创建时间
2.文件类型
不同的系统对文件的管理方式不同
大多用扩展名标志文件类型,按如下几种方式分类文件
按用途:系统、用户、库文件
按数据形式:源文件、目标文件、可执行文件
按存取控制属性:只执行、只读、读写
按组织和处理方式:普通文件、目录文件、特殊(设备)文件
3.文件系统模型
4.文件逻辑结构的类型
有结构文件:定长记录,边长记录
无结构文件:字节为单位,利用读写指针依次访问。
系统对该类文件不需格式处理。
5.顺序文件
两种记录排列方式
串结构:按记录形成的时间顺序串行排序。记录顺序与关键字无关;
顺序结构:按关键字排序。
检索方法:
从头检索,顺序查找要找的记录,定长的计算相对快。
顺序结构,可用折半查找、插值查找、跳步查找等算法提高效率
第i条记录地址(定长) :
读写指针 + 记录长度: ptr + i*L
第i条记录地址(变长) :
扫描或读取前面0~i-1条记录
第i条记录地址(变长)
变长记录数据前用1字节保存每条记录长度,顺序扫描,但不用把记录全扫描完
7.索引文件
索引表内容:
索引号、长度、记录地址指针
检索效率
索引表本身即是个按记录键排序的定长顺序文件,所以能利用算法提高索引表检索速度
8.索引顺序文件
索引表内容:
索引号、长度、记录地址指针
检索效率
索引表本身即是个按记录键排序的定长顺序文件,所以能利用算法提高索引表检索速度
9.直接文件
给定键值(如学号)不需顺序检索直接得到记录的物理地址
10.外存分配方式
目标:有效利用外存空间,提高文件访问速度
常用三种方式:
连续分配
链接分配(不连续)
索引分配
通常一个系统中仅采用一种方式
采用的磁盘分配方式决定了文件的“物理结构”
顺序结构;链接式结构;索引式结构。
注意与逻辑结构名类似但不是一回事。
11.FAT表
MS-DOS文件分配结构为例:
一个1.2M的磁盘,盘块512B大小;若文件系统采用FAT格式,则FAT表大小如何?
表项个数 = 盘块个数
= 容量 / 盘块大小 = 1.2 *220 / 29 = 1.2 *211 个
表项大小,决定于盘块数量编号需要的位数=12 位;
FAT表大小 = 表项个数 * 表项大小
= 1.2 *211 * 12 bit
= 1.2 *211 * 1.5B = 3.6KB
以半字节(0.5B=4b)为基本单位,表项需12位(1.5B)
由上述公式,若容量为200M的磁盘,盘块仍为512B
12.存储空间的管理
为实现存储空间分配,系统需要:
记住空闲存储空间使用情况;为空间设置相应的数据结构;
提供对存储空间分配、回收的操作手段。
典型的管理方法:
1)空闲表和空闲链表法
2)位示图法
3)成组链接法
13.目录管理
对文件实施有效的管理,必须对它们加以妥善组织,主要是两大操作:
基本信息记录(FCB,目录项)
方便检索、管理(目录操作)
目录管理的要求如下:
实现“按名存取”;(最基本功能)
提高对目录的检索速度;
文件共享;
允许文件重名。
14.文件控制块FCB
为了能对一个文件进行正确的存取,必须为文件设置用于描述和控制文件的数据结构,称之为“文件控制块”(FCB)
文件与文件控制块一一对应
记录文件名及其存放地址、文件的说明和控制信息。(是谁?在哪里?什么权?)
文件管理程序借助于文件控制块中的信息对文件施以各种操作。
把文件控制块的有序集合称为文件目录,即一个文件控制块就是一个目录项。通常一个文件目录也被看作是一个文件,称为目录文件。
15.文件的共享和保护
①文件共享
多个用户共享一份文件,只保留文件的一份副本,节约存储空间
共享范围:单机系统/多主机系统/网络范围
20世纪六七十年代,出现了若干文件早期共享方法,绕弯路法、连访法等,逐渐发展为现代一些共享方式
索引结点
符号链
②文件保护
影响文件安全的因素:
人为因素:过失或有益破坏;----〉采用存取控制机制
系统因素:故障等; -----〉容错技术
自然因素:磁盘的有效期。------〉后备系统
本节讨论存储控制机制。
保护域:他指出了进程所能访问的对象,进程仅在保护域内执行。
须知原则:不不允许他访问所有的对象,只允许进程访问那些它必须去访问的对象。