作用
管理系统的硬件、软件、数据资源;控制程序运行;人机之间的接口;应用软件与硬件之间的接口
特征:并发性 共享性 虚拟性 不确定性
功能:
计算机系统层次结构:计算机硬件=>操作系统=>系统软件=>应用软件=>最终用户
分类
分类 | 特点 |
---|---|
批处理操作系统 | 单批道:一次一个作业入内存,作业由程序、数据、作业说明书组成;多批道:一次多个作业入内存,特点是多道、宏观上并行、 ·微观上串行。 |
分时操作系统 | 采用时间片轮转的方式为多个用户提供服务,每个用户感觉独占系统,特点:多路性、独立性、交互性、及时性。 |
实时操作系统 | 实时控制系统和实时信息系统。交互能力要求不高,可靠性要求高(规定时间内响应并处理) |
网络操作系统 | 方便有效共享网络资源,提供服务软件和有关协议的集合。主要有Unix、Linux和Windows Server系统 |
分布式操作系统 | 任意两台计算可以通过通信交换信息,是网络操作系统的更高级形式,特点是透明性、可靠性、高性能 |
微机操作系统 | Windows:微软开发的图形用户界面,多任务、多线程操作系统;Linux:开源的类Unix操作系统,多用户、多任务、多线程和多CPU的操作系统。 |
嵌入式操作系统 | 运行在智能芯片环境中。特点是微型化、可定制(针对硬件变化配置)、实时性、可靠性、易移植性(HAL和BSP底层设计技术支持) |
进程是程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位,由程序块、进程控制块(PCB)和数据块组成。
进程控制块PCB,进程存在的唯一标志,内容包含进程标识符、状态、位置信息、控制信息(参数、信号量、消息等)、队列指针(链接同一状态的进程)、优先级(进程调度的依据)、现场保护区等。
进程与程序:进程是程序的一次执行过程,是动态过程,可以创建销毁,程序是静态概念,没有程序就没有进程。
进程与线程:进程可拥有独立的资源,可独立地调度和分配资源;进程包含多个线程,线程可以共享该进程中的部分资源,如内存地址空间、代码、数据、文件等,但程序计数器、寄存器、栈的使用是独立的。
进程的状态
运行:当一个进程在CPU上运行时即处于运行状态,单处理机处于运行状态的进程只有一个。
就绪:一个进程获得了除CPU外的一切所需资源,一旦得到处理机即可运行。
阻塞:也称等待或睡眠,一个进程正在等待某一事件发生(如请求I/O等待I/O完成等)而暂时停止运行,此时即使把CPU分配给进程也无法运行。
具有挂起状态的五态模型
运行状态挂起只能进入静止就绪状态,被激活后进入活跃就绪状态,等待再次被调度。
例题:
在单处理机系统中有4个进程P1、P2、P3、P4
假设进程按此顺序到达,其中P1为运行状态,P2为就绪状态,P3、P4为等待状态。
若P1(时间片到),则P1、P2、P3、P4状态分别为(就绪、运行、等待、等待)
临界资源:各进程之间需要通过互斥进行共享的资源。
临界区:进程中访问临界资源的那段代码。
进程的同步与互斥
进程同步:系统中因为需要相互合作、协同工作而相互制约的进程。间接制约关系
进程互斥:系统中因为争用临界资源需要互斥执行的多个进程。直接制约关系
PV操作
作用:实现进程的同步与互斥。
信号量S:是一种特殊变量,S>=0时表示可用的资源数量,S<0时表示阻塞队列中等待该资源的进程数。
P操作:
V操作:
PV操作实现互斥模型
多个进程共享一台打印机问题:
P(S);
使用打印机
V(S);
后续代码
S为互斥信号量,初值为1。
PV操作实现同步模型
单缓冲区生产者、消费者问题:
生产者: 消费者:
生产一个产品 P(S2)
P(S1) 从缓冲区取出产品
送产品到缓冲区 V(S1)
V(S2) 消费产品
S1、S2为同步信号量,S1初值为1,S2初值为0。
PV操作实现互斥与同步模型
单缓冲区生产者、消费者问题(控制缓冲区):
生产者: 消费者:
生产一个产品 P(S2)
P(S1) P(S)
P(S) 从缓冲区取出产品
送产品到缓冲区 V(S)
V(S) V(S1)
V(S2) 消费产品
S为互斥信号量,初值为1。
S1、S2为同步信号量,S1初值为1,S2初值为0。
当缓冲区空间资源为n时,S1初值为n。
前趋图:用来表示哪些任务可以并行执行,哪些任务之间有顺序关系。结点P代表各程序段的操作,箭头代表两个程序段操作之间的前趋关系。输出箭头代表通知后继操作执行,即V(S);输入箭头代表检查前趋活动是否完成,即P(S)。信号量S初始值为1。
例题答案:CBD
死锁:两个以上的进程都互相要求对方已经占有的资源导致无法继续运行下去。若系统中有多个进程进入死锁状态,就会造成系统死锁。
死锁产生的四个必要条件:1.资源互斥;2.保持占有资源和等待;3.不可剥夺;4.环路等待。
死锁处理:
1.死锁预防:资源有序分配法(环路条件)、预先静态资源分配法(不可剥夺条件),打破死锁四大条件之一。
2.死锁避免:银行家算法,提前计算出一条不会死锁的资源分配方法再分配资源,否则不分配。
3.死锁检测:允许死锁产生,通过定时运行死锁检测程序,发现死锁并设法解除。
4.死锁解除:资源剥夺法、撤销进程法。
5.鸵鸟策略:不予理睬。
死锁计算:系统内有n个进程,每个进程都需要R个资源,则发生死锁的最大资源数为n*(R-1)
,不发生死锁的最小资源数为n*(R-1)+1
。
例题答案:DB
资源进程图:表示进程和资源之间的分配和请求的关系。
P代表进程,R代表资源,R中的圆圈代表资源数
R1->P1代表R1已经分配了一个资源给进程P1
P1->R2代表进程P1申请1个资源R2,等待分配
阻塞节点:某进程所请求的资源已经全部分配完毕,无法获取所需资源,该进程无法继续。
非阻塞节点:某进程所请求的资源还有剩余,可以分配给该进程继续运行。
当一个进程资源图中所有进程都是阻塞节点时,即陷入死锁状态。
例题答案:图a中P1P2都是阻塞节点,不可化简,死锁;图b中P2是阻塞节点,P1P3费阻塞节点,可化简。
分页原理:将一个进程的地址空间划分为同样大小的若干区域,称为页(逻辑页)。相应地,将主存空间划分为与页相同大小的若干区域,称为块(物理块)。进程运行时,将需要运行的页分别装入多个不相邻的块中,运行完再装入其他需要运行的页,无需将进程全部逻辑空间装入物理内存中。
优点:利用率高,碎片小(只在最后一页中有),分配及管理简单
缺点:增加了系统开销,可能产生抖动现象。
地址表示:
逻辑地址:页号+页内地址
物理地址:块号(页帧号)+页内地址
页表:记录页在内存中对应的物理块号,存储逻辑页号与物理块号对应关系。
例题:逻辑地址和物理地址的转换:
1.根据页面大小,计算页内地址长度:4K=2^2*2^10=2^12,页内地址在二进制情况下为12位,在十六进制情况下为3位,所以逻辑地址1D16H中,1为页号,D16为页内地址。
2.根据页表,查询页号为1时,物理块号为3,所以物理地址为3D16H。
页面置换算法
1.最优置换算法OPT:选择未来最长时间内不被访问的页面置换,理想化算法难以实现,用于评价其他算法。
2.先进先出算法FIFO:先调入内存的页先被置换淘汰,会产生抖动,即分配的页数越多,缺页率可能越多,效率越低。
3.最近最少使用算法LRU:最近最少使用的页面先被置换淘汰,局部性原理,效率高,不会产生抖动。
例题答案:D,淘汰顺序:状态为为1、访问位为0,修改位为0。
快表
快表是一块小容量的相联存储器,由快速存储器组成,按内容访问,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号。
快表是将页表存储在Cache中,访问一次Cache和一次内存即可取出页,慢表是将页表存储在内存中,需要访问两次内存,所以快表速度更快。
原理:按照程序逻辑整体将进程空间进行分段,一组完成的逻辑信息划分为一段,然后调入内存。每段的大小不同。
优点:程序逻辑完整,各段程序修改互不影响
缺点:内存利用率低,内存碎片浪费大
地址表示:段号+段内偏移量,段内偏移量不能超过对应的段长,否则越界错误。
段表:存储段号、段长、基址
例题答案:B,段号对应的段长小于段表中段长的合法可以转换,否则不可以转换。
原理:对进程空间先分段后分页。
优点:空间浪费小、存储共享容易、能动态连接。
缺点:由于管理软件的增加,复杂性和开销也增加,执行速度下降。
概念:设备负责计算机与外部的输入/输出工作,又称外设。计算机中负责管理设备和输入/输出的机构为I/O系统,I/O系统由设备、控制器、通道、总线和I/O软件组成。
设备分类
按数据组织分类:块设备、字符设备
按设备功能分类:输入设备、输出设备、存储设备等
按资源分配角度分类:独占设备、共享设备和虚拟设备
按数据传输率分类:低速设备、中速设备、高速设备
磁盘结构
一个磁盘由多个盘片组成,每个盘片有多个同心圆,每个同心圆是一个个磁道,每个磁道又被划分为一个个扇区。
磁盘数据读取时间:
磁盘调度算法
例1:某磁盘有100个磁道,磁头从一个磁道移至另一个磁道需要6ms。文件在磁盘上非连续存放,逻辑上相邻数据块的平均距离为10个磁道,每块的旋转延迟时间及传输时间分别为100ms和20ms,则读取一个100块的文件需要( )ms。
解析:100*(6*10+100+20)=18000ms
例2:假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间为16us, 由缓冲区送至用户区的时间是5us,在用户区内系统对每块数据的处理时间为1us.若用户需要将大小为10个磁盘块的Doc1文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么采用单缓冲区需要花费的时间为(49)us: 采用双缓冲区需要花费的时间为,(50)us.
解析:转换成流水线计算:
单缓冲区:两部分操作 占用缓冲区时间16+5=21,处理1,花费时间=(21+1)+(10-1)*21=211
双缓冲区:三部分操作 读入缓冲区16,读入用户区5,处理1,花费时间=(16+5+1)+(10-1)*16=166
例3:如下图。
答案B,优先响应距离较近磁道的申请。
例4:如下图。
解析:磁盘读取每个物理块的时间为33/11=3ms。
对于顺序处理:系统读出R0用时3s,进行处理用时3s,总共用时6s,而此时磁盘已经旋转到第三个物理块,所以为了读出R1,磁盘必须再转一圈,需要33ms(30ms到R1起始位置,3ms读完R1,刚好转一圈)的时间。这样,处理11个记录的总时间应为=6+(33+3)*10=366ms。
对于信息进行分布优化后:当读出记录R0并处理结束后,磁头刚好转至R1记录的开始处,立即就可以读出R1并处理,因此处理11个记录的总时间为:11×(3+3)=66ms。
文件:具有符号名、在逻辑上具有完整意义的一组相关信息项的集合。
文件目录:
文件控制块FCB
目录结构
空闲区表法:将外存空间上的一个连续的未分配区域称为空闲区
空闲块链法:每个空闲物理块中有指向下一个空闲物理块的指针,构成链表
成组链接法:将空闲块分总若干组,每组的第一个空闲块记录下一个空闲块的物理盘块号和空闲块总数
位示图法:在外存上建立一张位示图,记录文件存储器的使用情况。每个物理块用一位表示,0为空闲1为占用。
例题解析:2057号物理块即第2058个物理块,2058/16=128...10,所以该物理块在位示图中的第129个字,在第10个位置的值为1,即9号位置为1。
计算机系统中采用的索引文件结构如下图。
默认情况下,会有13个索引结点。
0-9为直接索引,直接对应物理盘块,每一个物理盘块存放的是文件的内容。假设每个物理盘块大小为4KB,则直接索引可以存放10*4KB=40KB
的数据。
10为一级间接索引,里面存储的是链接到文件所在物理盘块的地址,假设结点为4KB,每个地址占4B,则可以存放1024个地址,对应1024个物理盘块,可以存放1024*4KB=4098KB
的数据。
11为二级间接索引,存储的是一级地址,一级地址中再存放物理盘块地址,容量扩大为1024*1024*4KB
。
12为三级间接索引,容量扩大为1024*1024*1024*4KB
。
例:假设文件索引节点中有8个地址项,每个地址项大小为4字节,其中5个地址项为直接地址索引,2个地址项是一级间接地址索引,1个地址项是二级间接地址索引,磁盘索引块和磁盘数据块大小均为1KB。若要访问文件的逻辑块号分别为5和518,则系统应分别采用________;而且可表示的单个文件最大长度是_______KB。
1KB/4B=256,即每个节点可以存放256个地址。
解析:
0-4号直接索引存放逻辑块号:0-4,共5KB
5号一级间接索引存放逻辑块号:5-230,共256KB
6号一级间接索引存放逻辑块号:231-486,共256KB
7号二级间接索引存放逻辑块号:487-,共256*256KB
所以,要访问文件的逻辑块号分别为5和518,则系统应分别采用一级间接索引、二级间接索引
可表示的单个文件最大长度5+256+256+256*256=66053KB。
作业是系统为完成一个用户的计算任务(或一次事务处理)所做的工作总和。
一个作业从交给计算机系统到执行结束退出系统,一般都要经历提交、后备、执行和完成4个状态。
(1)提交状态。作业由输入设备进入外存储器(也称输入井)的过程称为提交状态。处于提交状态的作业,其信息正在进入系统。
(2)后备状态。当作业的全部信息进入外存后,系统就为该作业建立一个作业控制块(JCB)。系统通过JCB感知作业的存在。JCB主要内容包括作业名、作业状态、资源要求、作业控制方式、作业类型及作业优先权等。
(3)执行状态。一个后备作业被作业调度程序选中而分配了必要的资源并进入了内存,作业调度程序同时为其建立了相应的进程后,该作业就由后备状态变成了执行状态。
(4)完成状态。当作业正常运行结束,它所占用的资源尚未全部被系统回收时的状态为完成状态。
先来先服务法:按作业到达的先后顺序进行调度,只考虑每个作业的等待时间。
时间片轮转法:根据先来先服务的原则,将需要执行的所有进程按照到达时间的大小排成一个升序的序列,每次都给一个进程同样大小的时间片,在这个时间片内如果进程执行结束了,那么把进程从进程队列中删去,如果进程没有结束,那么把该进程停止然后改为等待状态,放到进程队列的尾部,直到所有的进程都已执行完毕。
短作业优先法:按作业预计运行时间的长短进行调度,其目标是减少平均周转时间,只考虑作业的运行时间,可能产生饥饿现象。注意,第一到达的作业一定先运行,在后续比较作业长短的时候,要看作业是否到达,没有到达的作业是不能比较的。
最高响应比优先法:同时考虑每个作业的等待时间的和估需要的运行时间,从中选出相应比最高的作业投入执行。优先权=等待时间/(等待时间+运行时间),每执行一次计算一次。