大纲
进程管理、存储管理、文件管理新教材没有,但是仍然是重点。
操作系统概述
- 操作系统的作用:通过资源管理提高计算机系统的效率;改善人机界面向用户提供友好的工作环境。
- 操作系统的特征:并发性、共享性、虚拟性、不确定性。
- 操作系统的功能:进程管理、存储管理、文件管理、设备管理、作业管理。
- 操作系统的分类:批处理操作系统、分时操作系统(轮流使用CPU工作片)、实时操作系统(快速响应)、网络操作系统、分布式操作系统(物理分散的计算机互联系统)、微机操作系统(Windows)、嵌入式操作系统。
计算机启动的基本流程为:BIOS->主引导记录->操作系统。
计算机是如何启动的?
只读内存(read-only memory,缩写为ROM)
基本输入输出系统(Basic Input/Output System),简称为BIOS
硬件自检(Power-On Self-Test),缩写为POST
主引导记录(Master boot record,缩写为MBR)
进程管理
进程的组成和状态
进程是计算机中正在运行的程序的实例。它是操作系统进行资源分配和管理的基本单位,包括代码、数据和执行状态等信息。
进程的组成:进程控制块PCB(唯一标志)、程序(描达进程要做什么)、数据(存放进程执行时所需数据)。
进程基础的状态是下左图中的三态图,这是系统自动控制时只有三种状态,而下右图中的五态,是多了两种状态:静止就绪和静止阻塞,需要人为的操作才会进入对应状态,活跃就绪即就绪,活跃阻塞即等待。
可知,当人为干预后,进程将被挂起,进入静止状态,此时,需要人为激活,才能恢到活跃状态,之后的本质还是三态图。
前趋图和进程资源图
前趋图:用来表示哪些任务可以并行执行,哪些任务之间有顺序关系,具体如下图:
可知,ABC可以并行执行,但是必须ABC都执行完后,才能执行D,这就确定了两点:任务间的井行、任务间的先后顺序。
进程资源图:用来表示进程和资源之间的分配和请求关系,如下图所示:
P代表进程,R代表资源,R方框中有几个圆球就表示有几个这种资源,在图中,R1指向P1,表示R1有一个资源已经分配给了P1,P1指向R2,表示P1还需要P1请求一个R2资源才能执行。
阻塞节点:某进程所请求的资源已经全部分配完毕,无法获取所需资源,该进程被阻塞了无法继续。如上图中P2。
非阻塞节点:某进程所请求的资源还有剩余,可以分配给该进程继续运行。如上图中P1、P3。
当一个进程资源图中所有进程都是阻塞节点时,即陷入死锁状态。
【例题】
在如下所示的进程资源图中,();该进程资源图是()
A. P1、 P2、P3都是阻塞节点
B. P1是阻塞节点、P2、 P3是非阻塞节点
C. P1、P2是阻塞节点、P3是非阻塞节点
D. P1、 P2是非阻塞节点、P3是阻塞节点
A.可以化简的,其化简顺序为P1一P2一P3
B.可以化简的,其化简顺序为P3—P1一P2
C.可以化简的,其化简顺序为P2—P1一P3
D.不可以化简的,因为P1、P2、P3申请的资源都不能得
答案:C B
死锁不可简化,简化优先执行没有死锁的进程
同步与互斥
- 互斥:指多个进程只能互斥地访问某个资源(即临界资源),即只有一个进程可以访问该资源,其他进程必须等待。互斥可以防止多个进程同时访问同一个资源,从而避免数据损坏和程序崩溃。如打印机、公共厕所。
- 临界资源:各进程间需要以互斥方式对其进行访问的资源。
- 互斥信号量:对临界资源采用互斥访问,实现进程的互斥,使用互斥信号量后其他进程无法访问,其值只能为0或1。比如厕所的门锁有两个状态:打开和关闭。当门锁打开时,表示厕所空闲,可以进入。当门锁关闭时,表示厕所有人使用,其他人需要等待。门锁就像是互斥信号量,它表示厕所的使用状态。人就像是进程,他们需要获取门锁才能使用厕所。
- 同步:指多个进程之间互相协调,以确保它们按照—定的顺序执行。同步可以防止进程之间出现竞争和冲突,从而提高程序的正确性和效率;比如多个人一起做某件事情
- 同步信号量:是一种用于实现进程同步的工具。它是一个共享变量,可以用来表示资源的数量。比如餐厅里的餐桌数量有限,当顾客来吃饭时,如果餐桌空闲,则可以直接坐下。如果餐桌都满了,则顾客需要等待,餐桌就像是同步信号量,它表示餐桌的数量。顾客就像是进程,他们需要获取餐桌才能吃饭。
P操作:申请资源,S=S-1,若S>=0,则执行P操作的进程继续执行;若S<0,则置该进程为阻塞状态(因为无可用资源),并将其插入阻塞队列。
V操作:释放资源,S=S+1,若S>0,代表此时资源有空余,没有阻塞的进程,则该进程继续执行;若s<=0,代表此时线程在被阻塞,所以需要从阻塞状态唤醒一个进程,并将其插入就绪队列(此时因为缺少资源被P操作阻塞的进程可以继续执行),然后执行V操作的进程继续。
经典问题:生产者和消费者的问题
死锁
当一个进程在等待永远不可能发生的事件时,就会产生死锁,若系统中有多个进程处于死锁状态,就会造成系统死锁。死锁产生的四个必要条件:
- 资源互斥
- 每个进程占有资源并等待其他资源
- 系统不能剥夺进程资源
- 进程资源图是一个环路
死锁产生后,解决措施是打破四大条件,有下列方法:
- 死锁预防:采用某种策略限制并发进程对于资源的请求,破坏死锁产生的四个条件之一,使系统任何时刻都不满足死锁的条件。
- 死锁避免:一般采用银行家算法来避免,银行家算法,就是提前计算出一条不会死锁的资源分配方法,才分配资源,否则不分配资源,相当于借贷,考虑对方还得起才借钱,提前考虑好以后,就可以避免死锁。
- 死锁检测:允许死锁产生,但系统定时运行一个检测死锁的程序,若检测到系统中发生死锁,则设法加以解除。
- 死锁解除:即死锁发生后的解除方法,如强制剥夺资源,撤销进程等。
死锁计算问题:系统内有n个进程,每个进程都需要R个资源,那么其发生死锁的最大资源数为n*(R-1)。其不发生死锁的最小资源数为n*(R-1)+1。
【例题】
某系统中有3个并发进程竞争资源R,每个进程都需要5个R,那么至少有()
A.12
B.13
C.14
D.15
答案:B
至少有即不死锁:3*(5-1)+1=13
银行家算法真题:假设系统中有三类互斥资源R1、R2和R3,可用资源数分别为10、5和3。在T0时刻系统中有P1、P2、P3、P3和P5五个进程,这些进程对资源的最大需求和己分配资源数如下表所示,此时系统剩余的可用资源数分别为(27)。如果进程按(28)序列执行,那么系统状态是安全的。
A. 1、 1和0
B. 1、 1和1
C. 2、 1和0
D. 2、 0和1
A. P1-P2-P4-P5-P3
B. P5-P2-P4-P3-P1
C. P4-P2-P1-P5-P3
D. P5-P1-P4-P2-P3
答案:D B
第一项每种资源减已分配送分,第二项就是数学题
线程
传统的进程有两个属性:
- 可拥有资源的独立单位
- 可独立调度和分配的基本单位
引入线程后,线程是独立调度的是小单位,进程是拥有资源的是小单位,线程可以共享进程的公共数据、全局变量、代码、文件等资源,但不能共享线程独有的资源,如线程的栈指针等标识数据。
存储管理
在操作系统中存储管理指的是在磁盘中的程序如何运行的过程
页式存储
页式存储是操作系统的一种存储管理方式。
因为我们的程序往往是远远大于内存的,所以程序在执行的时候,是不会一次性把所有内容都装入到内存中,它会把程序分为若干个页,每个页固定大小,一般是4K,然后把这些页离散存入到内存中,而内存是按块来划分的,所以就通过页表来进行映射程序中的页在内存中的块的存储
逻辑地址是程序员在编写程序时使用的地址,它是由 CPU 生成的虚拟地址,逻辑地址并不一定对应物理内存中的实际位置,而是由操作系统进行地址转换后才能访问物理内存。
物理地址是内存单元在物理内存中的实际位置。它是计算机硬件可以直接寻址的地址。
每个页分为页号和页内地址,页号用来和块号对应,代表存储的位置,大小可以代
表页的数量,页内地址代表的是存储的数据内容,大小可以代表数据大小。
【例题】
某计算机系统页面大小为4k,若进程的页面变换表如下所示,逻辑地址为十六进制1D16H,该地址经过变换后,其物理地址应为十六进制(26)。
A.1024H
B.3D16H
C.4DI6H
D.6D16H
解析:页面大小为4k,1024*4=2^12,十六进制存数据就是2^4,(2^12)/(2^4)=3,3位的数据位,最后16是进制标志H,页号1对应块号3,答案:3D16H
页面置换算法
有时候,进程空间分为100个页面,而系统內存只有10个物理块,无法全部满足分配,就需要将马上要执行的页面先分配进去,而后根据算法进行淘汰,使100个页面能够按执行顺序调入物理块中执行完。
缺页表示需要执行的页不在內存物理块中,需要从外部调入内存,会增加执行时间,因此,缺页数越多,系统效率越低。
- 最优算法:OPT,理论上的算法,无法实现,是在进程执行完后进行的最佳效率计算,用来让其他算法比较差距。原理是选择未来最长时间内不被访问的页面置换,这样可以保证未来执行的都是马上要访问的。
- 先进先出算法:FIFO,先调入内存的页先被置换淘汰,会产生科动现象(重复使用),即分配的页数越多,缺页率可能越多(即效率越低)
- 最近最少使用:LRU,在最近的过去,进程执行过程中,过去最少使用的页面被置换淘汰,根据局部性原理,这种方式效率高,且不会产生抖动现象。
【例题】
某进程有4个页面,页号为0~3,页面变换表及状态位、访问位和修改位的含义如下
图所示,若系统给该进程分配了3个存储块,当访问前页面1不在内存时,淘汰表中页号
为()的页面代价最小。
A.0
B.1
C.2
D.3
答案:D
快表
快表(TLB)是一块小容量的相联存储器,由快速存储器组成,按内容访问,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号(可以看成是页表的频繁访问数据的副本)。
快表是将页表存于Cache中
慢表是将页表存于内存中
因此慢表需要访问两次内存才能取出数据,而快表是访问一次Cache和一次内存,因此更快。
段式存储
将进程空间分为一个个段,每段也有段号和段内地址,与页式存储不同的是,每段物理大小不同,分段是根据逻辑整体分段的。
地址表示:(段号,段内偏移):其中段内偏移(该段能存储数据最大长度)不能超过该段号对应的段长,否则越界错误,而此地址对应的真正内存地址应该是:段号对应的基地址+段内偏移。
优点:程序逻辑完整,修改互不影响
缺点:内存利用率低,内存碎片浪费大
【例题】
设某进程的段表如下所示,逻辑地址()可以转换为对应的物理位置。
A.(0, 1597)、(1, 30)和(3, 1390)
B.(0, 128)、(1, 30)和(3, 1390)
C.(0, 1597)、(2,98)和(3, 1390)
D.(0, 128)、(2, 98)和(4, 1066)
答案:B,()内的第二个值为该段能存储数据最大长度,即段长。
段页存储
对进程空间先分段,后分页,具体原理图和优缺点如下:
优点:空间浪费小、存储共享容易、能动态连接。
缺点:由于管理软件的增加,复杂性和开销也增加,执行速度下降
文件管理
文件结构
计算机系统中采用的索引文件结构如下图所示:
系统中有13个索引节点,0-9为直接索引,即每个索引节点存放的是内容,假设每个物理盘大小为4KB,共可存4KB*10=40KB数据;
10号索引节点为一级间接索引节点,大小为4KB,存放的并非直接数据,而是链接到直接物理盘块的地址,假设每个地址占4B,则共有1024个地址,对应1024个物理盘,可存1024*4KB=4098KB数据。
二级索引节点类似,直接盘存放一级地址,一级地址再存放物理盘快地址,而后链接到存放数据的物理盘块,容量又扩大了一个数量级,为102410244KB数据。
【例题】
例:设文件索引节点中有8个地址项,每个地址项大小为4字节,其中5个地址项为直接地址索引,2个地址项是一级间接地址索引,1个地址项是二级间接地址索引,磁盘索引块和磁盘数据块大小均为1KB,若要访问文件的逻辑块号分别为5和518,则系统应分别采用(27),而且可表示的单个文件最大长度是(28) KB。
A.直接地址索引和一级间接地址索引
B.直接地址索引|和二级间接地址索引
C.一级间接地址索引和二级间接地址索引
D.一级间接地址索引/和一级间接地址索引
A. 517
B. 1029
C. 16513
D. 66053
答案:C D
树形文件
相对路径:是从当前路径开始的路径。
绝对路径:是从根目录开始的路径。
全文件名:绝对路径+文件名。
注意,绝对路径和相对路径是不加最后的文件名的,只是单纯的路径序列。
树形结构主要是区分相对路径和绝对路径,如下图所示:
【例题】
若某文件系统的目录结构如下图所示,假设用户要访问文件Fault.swf,且当前工作目录为swshare,则该文件的全文件名为(27),相对路径和绝对路径分别为(28)。
A.fault.swf
B.flash\fault.swf
C.swshare\flash\fault.swf
D.\swshare\flash\fault.swf
A.swshare\flash\和\flash\
B.flash和\swshare\flash\
C.\swshare\flash\和flash\
D.\flash\和\swshare\flash\
答案:D B
空间存储
- 空闲区表法:将所有空闲空间整合成一张表,即空闲文件目录。
- 空闲链表法:将所有空闲空间链接成一个链表,根据需要分配。
- 成组链接法:既分组,每组内又链接成链表,是上述两种方法的综合。
- 位示图法:对每个物理空间用一位标识,为1则使用,为0则空闲,形成一张位示图。
【例题】
某文件管理系统在磁盘上建立了位示图(bitmap),记录磁盘的使用情况。若磁盘上的物理块依次编号为:0、1、2、…,系统中字长为32位,每一位对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用,如下图所示。
假设将4195号物理块分配给某文件,那么该物理块的使用情况在位示图中的第(1)个字中描述:系统应该将(2)
A.129
B.130
C.131
D. 132
A.该字的第3个位置为“0”
B.该字的第3个位置为“1”
C.该字的第4个位置为“0”
D. 该字的第4个位置为“1”
答案:D D
注意这里有“个”和没有“个”的区别,没有“个”就是第3位置为1
微内核操作系统
微肉核,顾名思义,就是尽可能的将内核做的很小,只将最为核心必要的东西放入内核中,其他能独立的东西都放入用户进程中,这样,系统就被分为了用户态和内核态
嵌入式操作系统
嵌入式操作系统特点:微型化、代码质量高、专业化、实时性强、可裁剪可配置。
实时嵌入式操作系统的内核服务:异常和中断、计时器、1/O管理。
常见的嵌入式RTOS(实时操作系统):VXWorks、 RT-Linux、QNX、 pSOS
嵌入式系统初始化过程按照自底向上、从硬件到软件的次序依次为:
芯片级初始化->板卡级初始化->系统级初始化。
芯片级是微处理器的初始化,板卡级是其他硬件设备初始化,系统级初始化就是软件及操作系统初始化。
设备管理
虚设备和SPOOLING技术
一台实际的物理设备,例如打印机,在同一时间只能由一个进程使用,其他进程只能等待,且不知道什么时候打印机空闲,此时,极大的浪费了外设的工作效率。
引入SPOOLING技术,就是在外设上建立两个数据缓冲区,分别称为输入井和输出井,这样,无论多少进程,都可以共用这一台打印机,只需要将打印命令发出,数据就会排队存储在缓冲区中,打印机会自动按顺序打印,实现了物理外设的共享,使得每个进程都感觉在使用一个打印机,这就是物理设备的虚拟化。如下图所示:
专题练习
进程P1、P2、 P3、P4和P5的前趋图如下图所示:
若用PV操作控制进程P1、P2、P3、P3、P4和P5并发执行的过程,则需要设置5个信号S1、S2、 S3、 S4和S5,且信号量S1~S5的初值都等于零。下图中a和b处应分别填(26);c和d处应分别填写(27);e和f处应分别填写(28)。
A.V(S1)P(S2)和V(S3)
B.P(S1)V(S2)和V(S3)
C.V(S1)V(S2)和V(S3)
D.P(S1)P(S2)和V(S3)
A.P(S2)和P(S4)
B. P(S2)和V(S4)
C. V(S2)和P(S4)
D. V(S2)和V(S4)
28、
A.P(S4)和V(S4)V(S5)
B. V(S5)和P(S4)P(S5)
C.V(S3)和V(S4)V(S5)
D. P(S3)和P(S4)V(P5)
答案:C B B 进程的pv操作都是先p后v,那么上图中上面部分都是p操作,下面部分都是v操作,仅根据以上特性就可以做出此题,且第一个进程执行的时候只有v操作没有p操作,最后一个进程执行时只有p没有v,选出26的C选项后可进行演算。
进程P1、P2、P3、P4、P5和P6的前趋图如下所示,若用PV操作控制这6个进程的同步
与互斥的程序如下, 那么程序中的空①和空②处应分别为();空③和空④处应分别为();
空⑤和空⑥处应分别()。
A.V(S1)V(S2)和P(S2)
B.P(S1)P(S2)和V(S2)
C.V(S1)V(S2)和P(S1)
D.P(S1)P(S2)和V(S1)
A.V(S3)和V(S5)V(S6)
B.P(S3)和V(S5)V(S6)
C.V(S3)和P(S5)P(S6)
D.P(S3)和P(S5)P(S6)
A.P(S6)和P(S7)V(S8)
B.V(S6)和V(S7)V(S8)
C.P(S6)和P(S7)P(S8)
D.V(S7)和P(S7)P(S8)
答案:C B D
根据技巧可以确定后面两个的选项,第一个选项可以根据图示推理出来。
假设某系统采用非抢占式优先级调度算法,若该系统有两个优先级相同的进程P1和P2,各进程的程序段如下所示,若信号量S1和S2的初值都为0,进程P1和P2并发执行后a、b和c的结果分别为:a=(),b=(),C=()。
(50)A.6 B.7 C.10 D.13
(51)A.4 B.6 C.9 D.10
(52)A.4 B.6 C.10 D.13
答案:D B C