【软考 高级 系统分析师】第二章 操作系统基础

【软考 高级 系统分析师】第二章 操作系统基础

一、概述

1.1、操作系统:处理机处理、存储器管理、设备管理、文件管理、用户接口
1.2、处理机处理:进程的状态、前驱图、PV操作
1.3、存储器管理:逻辑地址、物理地址、存储方案
1.4、设备管理:输入输出控制方式
1.5、文件管理:文件的索引

二、进程

2.1、三状态态模型:运行、就绪、阻塞
2.2、进程通常由程序、数据集合、进程控制块PCB组成。PCB是一种数据结构,是进程存在的唯一标识。

(1)线性方式:把所有PCB组织在一张线性表中,每次查找是需要扫描全表。
(2)链接方式:把具有同一状态的PCB,用其中的链接字链成一个队列,PCB存储在一个连续的区域。
(3)索引方式:同一状态的进程归入一个索引表,多个状态对应多个不同的索引表。

2.3、真题
2.3.1、某计算机系统中的进程管理采用三态模型,那么下图所示的PCB(进程控制块)的组织方式采用(1),图中(2)。
在这里插入图片描述

(1)A. 顺序方式 	B. 链接方式 	C. 索引方式 	D. Hash
(2)A. 有1个运行进程,2个就绪进程,4个阻塞进程 
	B. 有2个运行进程,3个就绪进程,3个阻塞进程 
	C. 有2个运行进程,3个就绪进程,4个阻塞进程 
	D. 有3个运行进程,2个就绪进程,4个阻塞进程

2.4、前驱图是一个有向无循环图,由节点和有向边组成,节点代表各程序段的操作,而节点间的有向边表示两个程序段操作之间存在的前趋关系。 用于这种图可以描述多个程序或进程之间的执行顺序关系。
在这里插入图片描述
2.5、真题
2.5.1、前驱图是一个有向无环图,记为→={pi,pj,pi完成时间先千pj开始时间}。假设系统中进P={p1,p2,p3,p4,p5,p6,p7,p8},且进程的前驱图如下。 那么该前驱图可记为 (1)图中 (2)。
在这里插入图片描述

(1)A. →={(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P2),(P3,P4),(P3,P6),(P4,P7),(P5,P8)} 
	B. →={(P1,P2),(P1,P4),(P2,P3),(P2,P5),(P3,P4),(P3,P6),(P4,P7),(P5,P6),(P7,P6),(P6,P8)} 
	C. →={(P1,P2),(P1,P4),(P2,P5),(P3,P2),(P3,P4),(P3,P6),(P4,P6),(P4,P7),(P6,P8),(P7,P8)} 
	D. →={(P1,P2),(P1,P3),(P2,P4),(P2,P5),(P3,P2),(P3,P4),(P3,P5),(P4,P7),(P6,P8),(P7,P8)} 
	
(2)A. 存在着十个前驱关系。P1为初始节点。P2P4为终止节点。
	B. 存在着两个前驱关系。P6为初始节点,P2P4为终止节点。 
	C. 存在着九个前驱关系。P6为初始节点,P8为终止节点。 
	D. 存在着十个前驱关系。P1为初始节点,P8为终止节点。

三、PV操作

3.1、互斥问题:

(1)进入临界区之前先执行P操作;(可能阻塞当前进程)
(2)离开临界区之后执行V操作;(可能唤醒某个进程)

3.2、P操作:(加锁)

(1)将信号量S的值减1,即S=S-1;(信号量S的初始值可以理解为资源数,如1台打印机,S=1)
(2)如果S>=0,则该进程继续执行;否则该进程置为等待状态。

V操作:(解锁)

(1)将信号量S的值加1,即S=S+1;
(2)如果S>0该进程继续执行;否则说明有等待队列中有等待进程,需要唤醒等待进程。

3.3、真题
3.3.1、假设系统中有n个进程共享3台打印机,任一进程在任一时刻最多只能使用1台打印机。若用PV操作控制n个进程使用打印机,则相应信号量s的取值范围为 (1) ;若信号量S的值为3 , 则系统中有 (2) 个进程等待使用打印机。

(1)A. 0, -1, ···, -(n-1) 		B. 3, 2, 1, 0, -1, ···, -(n-3) 
	C. 1, 0, -1, ···, -(n-1) 	D. 2, 1, 0, -1, ···, -(n-2)

(2)A. 0 	B. 1 	C. 2 	D. 3

3.4、同步问题:

(1)运行条件不满足时,能让进程暂停(在关键操作之前执行P操作)
(2)运行条件满足时,能让进程继续(在关键操作之后执行V操作)

规则:

(1)不能向满缓冲区存数据;
(2)不能向空缓冲区取数据;
(3)每个时刻仅允许1个生产者或消费者存或取1个数据。
/*
 * 伪代码
 */
int empty = 5; // 信号量:缓冲区中空位的个数,初值5
int full = 1; // 信号量:缓冲区中数据的个数,初值0
int mutex = 1; // 信号量:缓冲区互斥使用,初值1, 可用

// 生产者
procducer_i() {
	while(true) {
		// 生产一个数据
		P(empty);
		P(mutex);
		// 存一个数据倒缓冲区
		V(mutex);
		V(full);
	}
}

// 消费者
consumer_j() {
	while(true) {
		P(full);
		P(mutex);
		// 从缓冲区取一个数据
		V(mutex);
		V(empty);
		// 消费数据
	}
}

3.5、真题
3.5.1、进程 P1、P2、P3和P4的前驱图如下所示:
在这里插入图片描述
若用PV操作控制进程P1、P2、P3、P4井发执行的过程,则需要设置5个信号量S1、S2、S3、S4和S5,且信号量S1~S5的初值都等于0。下图中a、b和c处应分别填写(1);d、e和f处应分别填写(2)。(注:分配信号量规则:从左到右,从小到大。)
在这里插入图片描述

(1)A. V(S1)V(S2)、P(S1)V(S3)和V(S4) 
	B. P(S1)V(S2)、P(S1)P(S2)和V(S1)
	C. V(S1)V(S2)、P(S1)P(S3)和V(S4)
	D. P(S1)P(S2)、V(S1)P(S3)和V(S2)

(2)A. P(S2)、V(S3)V(S5)和P(S4)P(S5)
	B. V(S2)、P(S3)V(S5)和V(S4)P(S5)
	C. P(S2)、V(S3)P(S5)和P(S4)V(S5)
	D. V(S2)、V(S3)P(S5)和P(S4)V(S5)

四、存储管理

4.1、各个存储的关系:在这里插入图片描述

(1)当内存太小不够用时,用辅存来支援内存。
(2)暂时不运行的模块换出到辅存上,必要时再换入内存。

4.2、地址重定位是指将程序中的地址虚拟地址(逻辑地址)变换成内存的真实地址(物理地址)的过程。

(1)逻辑地址:相对地址。CPU所生成的地址。逻辑地址是内部和编程使用的、并不唯一。
(2)物理地址:绝对地址。加载倒内存地址寄存器中的地址,内存单元的真正地址。

4.2.1、重定位方式:

(1)静态重定位:绝对地址=相对地址+程序存放的内存起始地址
(2)动态重定位:绝对地址=重定位寄存器的值(BR)+逻辑地址寄存器的值(VR)

4.2.2、静态重定位:

(1)程序运行前就确定映射关系;
(2)程序装入后不能移动;
(3)程序占用连续的内存空间。

4.2.3、动态重定位:

(1)程序占用的内存空间可动态变化;
(2)程序不要求连续的内存空间;
(3)便于多个进程共享代码。

4.3、存储管理的主要目的是解决多个用户使用主存的问题。存储管理类型:

(1)分区存储管理
(2)分页存储管理
(3)分段存储管理
(4)段页式存储管理
(5)虚拟存储管理

4.4、分区管理:把主存的用户区划分成若干个区域,每个区域分配给—个用户作业使用,并限定它们只能在自己的区域中运行。

(1)固定分区
(2)可变分区:首次适应算法、最佳适应算法、最差适应算法
(3)可重定位分区

4.5、分页存储管理:将一 个进程的地址空间划分成若干个大小相等的区域,称为页。相应地,将主存空间划分成与页相同大小的若干个物理块,称为块或页框。

(1)逻辑地址(32位):页号(20位:12~31)+ 页内地址(12位:0~11)
(2)物理地址(32位):块号(20位:12~31)+ 块内地址(12位:0~11)
(3)页表:页号 + 物理块号

在这里插入图片描述

例:求逻辑地址为2100的单元放到AX寄存器,求其物理地址?
解析:假设页和物理块的大小均为1024B,
	页号 = 2100 / 1024 = 2(商大于2,页号从0开始,属第3页)
	页内地址 = 2100 % 1024 = 52
	物理地址 = 8 * 1024 + 52 = 8244

4.6、真题
4.6.1、某计算机系统页面大小为4K,若进程的页面变换表如下所示,逻辑地址为十六进制1D16H。该地址经过变换后,其物理地址应为十六进制( )。
在这里插入图片描述

A. 1024H 	B. 3D16H 	C. 4D16H 	D.6D16H

4.6.2、某操作系统采用分页存储管理方式,下图给出了进程A和进程B的页表结构。如果物理页的大小为512字节,那么进程A逻辑地址为1111(十进制)的变量存放在(1)号物理内存页中。假设进程A的逻辑页4与进程B的逻辑页5要共享物理页8,那么应该在进程A页表的逻辑页4和进程B页表的逻辑页5对应的物理页处分别填(2)。
在这里插入图片描述

(1)A. 9 	B. 2 	C. 4 	D. 6
(2)B. 4、5 	B. 5、4 	C. 5、8 	D. 8、8

4.7、分段管理:分段式存储管理系统中,为每个段分配一个连续的分区,而进程中的各个段可以离散地分配到主存的不同分区中。在系统中为每个进程建立一张段映射表,简称为“段表”。每个段在表中占有一个表项,在其中记录了该段在主存中的起始地址(又称为“基址”)和段的长度。进程在执行时,通过查段表来找到每个段所对应的主存区。
在这里插入图片描述
4.8、真题
4.8.1、假设系统采用段式存储管理方法,进程P的段表如下所示。逻辑地址(1)不能转换为对应的物理地址;不能转换为对应的物理地址的原因是进行(2)。
在这里插入图片描述

(1)A. (0, 790)和(2, 88) 	B. (1, 30)和(3, 290) 
	C. (2, 88)和(4, 98) 	D. (0, 810)和(4, 120)

(2)A. 除法运算时除数为零 
	B. 算术运算时有溢出 
	C. 逻辑地址到物理地址转换时地址越界 
	D. 物理地址到逻辑地址转换时地址越界

4.9、段页式管理:段页式系统的基本原理是先将整个主存划分成大小相等的存储块(页框),将用户程序按程序的逻辑关系分为若干个段,再将每个段划分成若干页,以页框为单位离散分配。在段页式系统中,其地址结构由段号、段内页号和页内地址三部分组成。
在这里插入图片描述
4.10、虚拟存储:在前面介绍的存储管理方案中,必须为每个作业分配足够的空间,以便装入全部信息。当主存空间不能满足作业要求时,作业无法装入主存执行。如果一个作业只部分装入主存便可开始启动运行,其余部分暂时留在磁盘上,在需要时再装入主存,这样可以有效地利用主存空间。从用户角度看,该系统所具有的主存容量将比实际主存容量大得多,人们把这样的存储器称为虚拟存储器。

五、设备管理

5.1、工作方式:

(1)程序控制
(2)中断
(3)DMA(直接内存存取)

5.2、程序控制:

(1)无条件传送:I/O端口总是准备好,CPU在需要时,随时直接利用访问相应的I/O端口。
(2)程序查询:CPU必须不停地测试I/O设备的状态端口。CPU与I/O设备是串行工作的。

在这里插入图片描述
5.3、中断:某个进程要启动某个设备时,CPU就向相应的设备控制器发出一条设备I/O启动指令,然后CPU又返回做原来的工作。CPU与I/O设备可以并行工作。
在这里插入图片描述
5.4、DMA(直接内存存取):通过DMA控制器直接进行批量数据交换,除了在数据传输开始和结束时,整个过程无须CPU的干预。
在这里插入图片描述
5.5、真题
5.5.1、DMA(直接存储器访问)工作方式是在()之间建立起直接的数据通路。

A. CPU与外设 	B. CPU与主存 	C. 主存与外设 	D. 外设与外设

六、文件存储管理

6.1、索引法

(1)直接索引
(2)间接索引:一级间接索引、二级间接索引、三级间接索引

在这里插入图片描述
6.2、真题
6.2.1、某文件系统文件存储采用文件索引节点法。假设文件索引节点中有8个地址项iaddr[0] ~ iaddr[7],每个地址项大小为4字节,其中地址项iaddr[0] ~ iaddr[5]为直接地址索引,iaddr[6]是一级间接地址索引,iaddr[7]是二级间接地址索引,磁盘索引块和磁盘数据块大小均为4KB。该文件系统可表示的单个文件最大长度是(1)KB。若要访问iclsClient.dll文件的逻辑块号分别为6、520和1030,则系统应分别采用(2)。

(1)A. 1030 	B. 65796 	C. 1049606 	D. 4198424
(2)A. 直接地址索引、一级间接地址索引和二级间接地址索引
	B. 直接地址索引、二级间接地址索引和二级间接地址索引
	C. —级间接地址索引、—级间接地址索引和二级间接地址索引 
	D. —级间接地址索引、二级间接地址索引和二级间接地址索引

6.3、位示图法。该方法是在外存上建立一张位示图(Bitmap),记录文件存储器的使用情况。每一位仅对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用。(参考电影院座位图)

6.4、真题
6.4.1、某文件管理系统在磁盘上建立了位示图(bitmap),记录磁盘的使用情况。若磁盘上物理块的编号依次为0、1、2、…·。系统中的字长为64位,字的编号依次为0、1、2、…。字中的一位对应文件存储器上的一个物理块。取值0和1分别表示空闲和占用。如下图所示。假设操作系统将256号物理块分配给某文件,那么该物理块的使用情况在位示图中编号为(1)的字中描述,系统应该将(2)。
在这里插入图片描述

(1)A. 3 	B. 4 	C. 5 	D. 6
(2)A. 该字的0号位置“1” 	B. 该字的63号位置“1” 
	C. 该字的0号位置“0” 	D. 该字的63号位置“0”
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值