操作系统的类型:批处理,分时,实时, 络操作系统和分布式操作系统。
操作系统具有的五大功能:处理器管理,存储管理,设备管理,文件管理和作业管理。不管任何类型的操作系统都有这样的分配。
现代的操作系统大多拥有两种工作状态:核心态和用户态。我们一般的应用程序工作在用户态,而内核模块和最基本的操作系统核心工作在核心态。
操作系统的结构可以分为无序结构,层次结构,面向对象结构,对称多处理结构和微内核结构。
进程
进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。它由程序块、进程控制块(PCB)和数据块三部分组成。
PCB,PCB是进程存在的唯一标志,是进程的一个组成部分,是一种记录型数据结构。内容包含进程标识符、状态、位置信息、控制信息、队列指针(链接同一状态的进程)、优先级、现场保护区等。
进程与程序
进程与程序的区别:进程是程序的一次执行过程,没有程序就没有进程。
程序是一个静态的概念,而进程是一个动态的概念,它由创建而产生,完成任务后因撤销而消亡;进程是系统进行资源分配和调度的独立单位,而程序不是。
进程与线程
进程的2个基本属性:可拥有资源的独立单位,可独立调度和分配资源的基本单位。
一般情况下,一个进程会包含多个线程。
例题1:
进程 – PCB
PCB的组织形态 | 描述 |
---|---|
线性表形式 | 把所有的PCB组织在一张线性表中,每次查找需要扫描全表 这种方式适用于系统中进程数目不多的情况 |
索引表形式 | 是线性表形式的改变,将同一状态的进程归入一个索引表 多个状态对应多个不同的索引表 |
链接表形式 | 把具有同一状态的PCB用其中的链接字链接成一个队列 PCB存储在一个连续的区域 |
进程管理 – 进程状态
例题2解析与答案:
? 答案:C C
? 解析:典型索引表形式,进程状态也如图描述
进程管理 – 同步与互斥
如何区分同步与互斥p>
互斥,千军万马过独木桥,同类资源的竞争关系
同步,速度有差异,在一定情况停下等待,进程之间的协作关系
互斥,主要讲的是同类资源的竞争关系
一个进程在执行过程中,可能要停下来等等其他的进程,这就是同步(会有类似选择题)
多个进程共享一台打印机,典型互斥
消费者消费商品后生产者生产商品才可以投入市场,属于同步关系
典型例题:
注:P是荷兰语的Passeren,V是荷兰语的Verhoogo。
PV操作是实现进程同步与互斥的常用方法。
P操作表示申请一个资源,负责获得资源并阻塞,V操作表示释放一个资源。
P操作和V操作是低级通信原语,在执行期间不可分割。
PV操作由P操作原语和V操作原语组成(原语是不可中断的过程)。
PV操作的意义:我们用信 量及PV操作来实现进程的同步和互斥。
信 量:是一种特殊的变量(全局的),习惯用大写S表示。
大部分情况下(没有事先说明),信 量S的初始值会被认为是1,1代表初始情况下有资源进行分配调用。
对信 量进行操作,具体定义如下:
P操作(请求分配一个资源):
- 将信 量S的值减1,即 S = S – 1
- 如果S >= 0,则该进程继续执行,否则该进程进入等待状态
V操作(释放一个资源):
- 将信 量S的值加1,即S = S + 1
- 如果S > 0,该进程继续执行,否则表示在等待队列中有某些进程正在等待该资源,需要唤醒等待
典型例题:
例题3解析与答案:
? 答案:D A C
? 解析:S1 = 0,S2 = 0,P1和P2并发执行开始
? 并发执行,代表可以从任何一个程序段开始,结果是一样的。
? 所以假设P1先执行
? P1执行到V(S1),a = 2,此时S1 = S1 + 1 >>> S1 = 1,V操作后S1 > 0继续执行
? P1执行到P(S2),c = 7,此时S2 = S2 – 1 >>> S2 = -1,P操作后S2
? P2开始执行
? P2执行到P(S1),b = 3,此时S1 = S1 – 1 >>> S1 = 0,P操作后S1 >= 0继续执行
? P2执行到V(S2),b = 5,此时S2 = S2 + 1 >>> S2 = 0,V操作后S2
? 由于是非抢占式调度,所以P2会继续执行
? P2继续执行,c = 12,P2执行结束,P1等待中继续再执行,a = 14
? 最终结果:a = 14,b = 5,c = 12
? 知识点:阻塞的进程会被先唤醒进入等待执行状态,并不只是直接就绪运行
? 如有兴趣,可以从P2先执行,结果也是一样,请自行验证
例题4:
例题5:
例题6:
例题7解析与答案:
? 答案:C A
? 解析:
例题8解析与答案:
? 答案:B
? 解析:n个进程,每个进程最大需要W个资源,那么需要满足 m > n * (w – 1) 即可,所以B选项不满足
进程管理 – 银行家算法
银行家算法分配资源的原则:
- 当一个进程对资源的最大需求量不超过系统中的资源数时,可以接纳该进程
- 进程可以分期请求资源,但请求的总数不能超过最大需求量
- 当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源
典型例题:假设系统中有三类互斥资源R1、R2、R3,可用资源分别是9、8、5。在T0时刻系统中有P1、P2、P3、P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如下所示,如果进程按___序列执行,那么系统状态是安全的。
? 从上面中获得,由于R1剩余2,R2剩余1,R3剩余0,只能满足P2和P4的再需求资源数
? 所以排除掉选项A,验证B选项:P2→P4→P5→P1→P3。
? (R1剩 2R2剩1 R3剩0)分配给P2还需(0 1 0) >>> (R1剩2 R2剩0 R3余0),P2进程结束返还(R1剩4 R2剩2 R3余1)
? (R1剩4 R2剩2 R3余1)分配给P4还需(0 0 1) >>> (R1剩4 R2剩2 R3余0),P4进程结束返还(R1剩5 R2剩4 R3余1)
? (R1剩5 R2剩4 R3余1)分配给P5还需(2 3 1) >>> (R1剩3 R2剩1 R3余0),P5进程结束返还(R1剩6 R2剩5 R3余4)
? (R1剩6 R2剩5 R3余4)分配给P1还需(5 3 1) >>> (R1剩1 R2剩2 R3余3),P1进程结束返还(R1剩7 R2剩7 R3余5)
? (R1剩7 R2剩7 R3余5)分配给P3还需(6 0 1) >>> (R1剩1 R2剩7 R3余4),P1进程结束返还(R1剩9 R2剩8 R3余5)
? 根据以上步骤,确定B选项没有问题,每次分配剩余资源数都满足需求,其他选项也可以同样方式验证。
? 比如,我们验证C选项:P2→P1→P4→P5→P3,同上步骤:
? (R1剩 2R2剩1 R3剩0)分配给P2还需(0 1 0) >>> (R1剩2 R2剩0 R3余0),P2进程结束返还(R1剩4 R2剩2 R3余1)
? (R1剩4 R2剩2 R3余1)分配给P1还需(5 3 1) >>> R1资源和R2资源不够分配,故C选项为不安全序列
例题9:
逻辑地址 = 页 + 页内地址,物理地址 = 页帧 + 页内地址
页式存储(细节问题):将程序与内存均划分为同样大小的块,以页为单位将程序调入内存 | |
计算步骤 | 1 逻辑地址拆分为:页 + 页内地址 2 页 = 逻辑地址/页大小 页内地址 = 逻辑地址%页大小 3 使用页表进行页 和物理块 对应映射 4 物理地址 = 物理块 *页大小 + 页内地址 页大小/块大小的基本单位是B字节,注意题目单位转换 二进制、十进制和十六进制的区别,注意简便算法 |
页式存储主要考察,逻辑地址转换物理地址,注意各个进制的简便算法
典型例题:逻辑地址2100B(字节),页大小 = 块大小 = 1024B p>
解:页面 = 2100/1024 = 2,从逻辑页 列表中对应寻找2页 对应的物理块 (比如对应物理块 是8)
? 页内地址 = 2100 % 1024 = 52,则物理地址 = 8 * 1024 + 52 = 8244
例题10:
例题11解析与答案:
? 答案:C D
? 解析:此题为十进制的逻辑地址,页大小为512字节
? 用A的逻辑地址1111,1111 / 512 = 2,结果“2”即是页
? 通过“进程A页表”中对应“2”的页 对应物理块 “4”,所以选C
? 第2空,A页的逻辑页4和B页的逻辑页5共享物理页8,对应的地方分别填8、8,选D
? 注,简便算法
? 可以将1111转换成二进制数“10001010111”,又因为页大小为512字节
? 512是2的9次方,根据(逻辑地址 = 页 + 页内地址)
? 那么“10001010111”后9位为页内地址,前面的2位“10”为页
? 二进制页 “10”,转换十进制为“2”,根据“进程A页表”页 “2”对应物理块 “4”
典型例题:如下图
例题12解析与答案:
? 答案:A B
? 解析:页面大小是4K,也就是2的12次方,代表页内地址为12位
? 十六进制数5148H,十六进制数每位数上对应的是一个2的3次方,后三位“148”代表是页内地址
? 所以前1位“5”为逻辑页 ,从图表中获得,页 “5”对应页帧 (物理块 )为“3”
? 根据(物理地址 = 页帧 + 页内地址),得到物理地址为十六进制数“3148H”,选项A
? 第2问,页面6不在内存,同理页面0、3、4也不在内存中,需要淘汰的有页面1、2、5、7
? 页面1、2、5、7,观察“访问位”只有页面2访问位为0(未被访问),可以淘汰,选项B
存储管理 – 段式存储/分段存储(非连续空间)
段式存储 == 分段存储
分段式存储管理系统中,为每个段分配一个连续的分区,而进程中的各个段可以离散地分配到主存的不同分区中。
在系统中为每个进程建立一张段映射表,简称为“段表”。每个段在表中占有一个表项,在其中记录了该段在主存中的起始地址(又称为“基址”)和段的长度。进程在执行时,通过査段表来找到每个段所对应的主存区。
段式存储:按用户作业中的自然段来划分逻辑空间,然后调入内存,段的长度可以不一样。
优点:多道程序共享内存,各段程序修改互不影响。
缺点:内存利用率低,内存碎片浪费大。
例题13解析与答案:
? 答案:D C
? 解析:依据“偏移量不能超过段长”的判断标准,将4个选项带入图表中进行验证即可
? 所以,选项D(0,810),810超过段 0的段长800
? 第2问,不能转换的原因,逻辑地址向物理地址转换时地址越界
存储管理 – 段页式存储管理(非连续空间)
段页式系统的基本原理是先将整个主存划分成大小相等的存储块(页框),将用户程序按程序的逻辑关系分为若干个段,并为每个段赋予一个段名,再将每个段划分成若干页,以页框为单位离散分配。在段页式系统中,其地址结构由段 、段内页 和页内地址三部分组成。
段页式存储:段式与页式的综合体。先分段,再分页。1个程序有若干个段,每个段中可以有若干页,每个页的大小相同,但每个段的大小不同。
优点:空间浪费小、存储共享容易、存储保护容易、能动态连接。
缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降。
文件在逻辑上一定是连续的,在物理上可以是分散的。
文件的逻辑结构,方便用户使用;文件的物理结构,在物理设备的存放方式。
此部分经常考察逻辑 与物理 的计算转换,采取的具体什么类型索引,计算文件长度等等
直接索引范围:索引块数量 * 索引块大小
一级间接索引范围:(磁盘数据块(物理盘块)大小 / 地址项大小)* 索引块大小
二级间接索引范围:(磁盘数据块(物理盘块)大小 / 地址项大小)的2次方 * 索引块大小
三级间接索引范围:(磁盘数据块(物理盘块)大小 / 地址项大小)的3次方 * 索引块大小
典型例题:某文件系统文件存储采用文件索引节点法。假设文件索引节点中有8个地址项iaddr[0]~iaddr[7],每个地址项大小为4字节,其中地址项iaddr[0]~iaddr[5]为直接地址索引,iaddr[6]是一级间接地址索引,iaddr[7]是二级间接地址索引,磁盘索引块和磁盘数据块大小均为4KB。该文件系统可表示的单个文件最大长度是( )KB,若要访问iclsClient.dll文件的逻辑块 分别为6、520和1030,则系统应分别采用( )。
解:直接索引范围:6 * 4KB = 24KB
? 直接索引范围的逻辑块 :24KB / 4 == 6 >>> 0 ~ 5,对应存有5个物理块
? 一级索引范围:(4KB / 4字节) * 4KB = 4096KB
? 一级索引范围的逻辑块 :4096KB / 4 == 1024 >>> 6 ~ 1029,对应存有1024个物理块
? 二级索引范围:(4KB / 4字节) 2 * 4KB = 4194304KB,逻辑块 :1030以上,包括1030
? 文件长度:24KB + 4096KB + 4194304KB = 4198424KB
例题14:
例题15解析与答案:
? 答案:A D
? 解析:直接索引范围:6 * 1KB = 6KB
? 直接索引范围的逻辑块 :6KB / 1 == 6 >>> 0 ~ 5,对应存有5个物理块
? 一级索引范围:(1KB / 4字节) * 1KB = 256KB(对应逻辑块 :(256KB / 1 == 256) >>> 6 ~ 261)
? 一级索引范围的逻辑块 :256KB / 1 == 256 >>> 6 ~ 261,对应存有256个物理块
? 二级索引范围:(1KB / 4字节)2 * 1KB = 65536KB,逻辑块 :262以上
? 所以,逻辑块 0在直接地址索引,260在一级地址索引,518在二级地址索引
? 文件最大长度 = 6KB + 256KB + 65536KB = 65798KB
文件管理 – 位示图
位示图法。该方法是在外存上建立一张位示图(Bitmap),记录文件存储器的使用情况。每一位仅对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用。
例题16解析与答案:
? 答案:C B
? 解析:注意,这种题目如果没有给定基础条件,默认的认为字要从1开始算,位要从0开始算
? 2053 物理块,因为是0开始排序,那么2053“ ”物理块它应该在第2054“个”物理块
? 用2054除以字长32等于64余6,也就是代表需要64个字放不下,取天花板数应该是65“个”字
? 第65“个”字,因为是从0开始编 排序,所以第65“个”字应该是第64“ ”上,故先C
? 第2问,余数是6,又因为是0开始编 排序,所以位 5位置应该是“1”表示,故选B
例题17:
例题18解析与答案:
? 答案:B C
? 解析:考察“程序中断方式”。
例题19:
例题20解析与答案:
? 答案:D
? 解析:考察DMA的特点
设备管理 – I/O管理软件
例题21解析与答案:
? 答案:D
? 解析:略
SPOOLing技术
SPOOLing是Simultaneous Peripheral Operation On-Line (即外部设备联机并行操作)的缩写,它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为”假脱机技术”。
SPOOLing技术(虚拟输入输出设备常用到的技术)先放入到磁盘缓冲区,再放入到设备区,它是在磁盘上开辟响应的区域,所以缓冲区是外存。
SPOOLing技术将一台独享打印机改造为可供多个用户共享的打印机。
SPOOLing技术特点:
- 输入井和输出井,在磁盘上开辟出来的两个存储区域,用于存放I/O设备输入的数据和用户程序向设备输出的数据
- 输入缓存区和输出缓冲区,在内存中开辟的两个缓冲区。输入缓冲区用户暂存输入设备送来的数据,再送入输入井;输出缓冲区暂存从输出井送来的数据,再传送到输出设备
- 输入进程和输出京城,负责传输输入输出的数据
- 提高了I/O速度,通过对输入井和输出井的操作,缓和了主机和外设速度不匹配的矛盾
- 设备没有直接和用户进程关联
- 实现虚拟设备,多个进程同时使用一个逻辑设备,每个进程都认为自己独占了设备
微内核
- 微内核就是对操作系统进行瘦身,只保留最为基本的功能。普通的操作系统内核包括了进程,存储,设备,文件,任务管理五个部分,而在微内核操作系统中,已对其进行了裁剪,文件系统,通信,外设管理都放到操作系统之外去处理了。
- 现代操作系统大多拥有两种工作状态,分别是核心态和用户态。一般应用程序工作在用户态,而内核模块和最基本的操作系统核心工作在核心态。因为在微内核中,核心态功能少了,很多原本属于操作系统的操作放到了用户态去实施了。
- 微内核系统的安全性,可靠性得到了提升。微内核操作系统在分布式中有着广泛的应用,它也成为了微内核操作系统的最大优势。
- 当然微内核操作系统中,一个任务需要不断的在用户态和核心态直接切换来完成,频繁地切换效率自然不会很高。
将传统的操作系统代码放置到更高层,从操作系统中去掉尽可能多的东西,而只留下最小的核心,称之为微内核(C/S结构)。
例题22解析与答案:
? 答案:A
? 解析:略
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!