【操作系统】——期末复习(冲刺篇)

前言:快考试了,做篇期末总结,都是重点与必考点。标☆的重点看!

题型:简答题(每章一道)(40分);程序设计题(P-V操作)(20分)、计算题(作业调度)、综合应用题(页面置换、银行家算法、磁盘调度的磁头路径)

课本:
【操作系统】——期末复习(冲刺篇)_第1张图片


目录

  • 1. 操作系统引论
  • 2. 进程的描述与控制
  • 3. 处理机调度与死锁
  • 4. 进程同步
  • 5. 存储器管理
  • 6. 虚拟存储器
  • 7. I/O系统
  • 8. 文件管理

1. 操作系统引论

☆ 1、在计算机系统上配置OS的目标是什么?作用表现在哪几个方面?

答:在计算机系统上配置OS,主要目标是实现:方便性、有效性、可扩充性和开放性

OS的作用主要表现在以下3个方面:
1)OS作为用户与计算机硬件系统之间的接口;
2)OS作为计算机系统资源的管理者;
3)OS实现对计算机资源的抽象。

2、试说明OS与硬件、其他系统软件以及用户之间的关系。

答:OS是覆盖在硬件上的第一层软件,它管理计算机的硬件和软件资源,并向用户提供良好的界面。OS与硬件密切相关,它直接管理着硬件资源,为用户完成所有与硬件相关的操作,极大地方便了用户对硬件资源的使用并提高了硬件资源的利用率。OS是一种特殊的系统软件,其他系统软件运行在OS的基础之上,可获得OS提供的大量服务,也就是说OS是其他系统软件与硬件之间的接口。而一般用户使用计算机除了需要OS支持以外,还需要用到大量的其他系统软件和应用软件,以使其工作更高效。

【操作系统】——期末复习(冲刺篇)_第2张图片
3、试说明推动OS发展的主要动力是什么。

答:1)计算机系统资源的利用率不断提高;
2)方便用户;
3)器件不断更新换代;
4)计算机体系结构不断发展;
5)新的应用需求不断被提出。

4、在OS中,何谓脱机I/O方式和联机I/O方式?

答:脱机I/O方式是指事先将装有用户程序或数据的纸带或卡片装入纸带输入机或卡片机,在外围机的控制下,把纸带或卡片上的数据或程序输入到磁带上,该方式下的I/O操作由外围机控制完成,并且是在脱离主机的情况下进行的,因此叫作脱机I/O方式。联机I/O方式是指程序和数据的I/O都是在主机的直接控制下进行的。

5、设有3道程序A、B、C,它们按照优先次序(A->B->C)顺序执行,它们的计算时间和I/O操作时间如下表所示,假设3道程序以串行方式使用相同的设备进行I/O操作,试画出单道程序运行和多道程序运行的时间关系图,并计算完成这3道程序所须花费的时间。

【操作系统】——期末复习(冲刺篇)_第3张图片

答:(1)单道程序运行,时间为:(30+40+10)+(60+30+10)+(20+40+20)=260ms
【操作系统】——期末复习(冲刺篇)_第4张图片
(2)多道程序运行,非立即抢占式为180ms;立即抢占式为190ms
【操作系统】——期末复习(冲刺篇)_第5张图片

6、(考研真题)一个多道批处理系统中仅有P1和P2两个作业,P2比P1晚5ms到达,它们的计算和I/O操作顺序如下。
P1:计算 60ms, I/O操作 80ms, 计算 20ms。
P2:计算 120ms, I/O操作 40ms,计算 40ms。
不考虑调度和切换时间,请就算完成两个作业需要的最少时间。

答:显然当CPU不被抢占时,完成这两个作业需要的时间最少。又P2比P1晚5ms到达,所以P1先执行。如图可得结果260ms
【操作系统】——期末复习(冲刺篇)_第6张图片
☆ 7、OS的概念、特征和功能是什么?
答:OS是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度以方便用户使用计算机的集合。OS是配置在计算机硬件上的第一层系统软件,是对硬件系统的首次扩充;是硬件系统和应用软件间的桥梁;是用户与计算机硬件进行交互的接口;是计算机系统资源的管理者。

OS的4个特征,并发性,共享性,虚拟性,异步性。①并发:一段时间内多个进程并发执行,是宏观上的并行,微观上的串行。②共享:系统中的资源可供内存中多个并发执行的进程共同使用。③虚拟:通过某种技术,将物理实体变为若干个逻辑上的对应物。④异步:进程以不可预知的速度向前推进。

OS的5大功能:处理机管理,存储器管理,设备管理,文件管理,接口管理。①处理机管理:进程控制②存储器管理:内存的分配与回收、地址转换、虚拟内存的实现等。③设备管理:设备的分配与回收、缓冲区管理、磁盘调度、设备虚拟等。④文件管理:文件存储空间的管理文件、目录管理、文件共享与保护等。⑤接口管理:用户接口,程序接口(即系统调用),命令接口和网络接口。

8、(考研真题)某计算问题的执行情况如下图所示
【操作系统】——期末复习(冲刺篇)_第7张图片

(1)叙述该计算问题中处理机、输入机和打印机是如何协同工作的。
(2)计算在上图所示的执行情况下处理机的利用率。
(3)简述处理机利用率不高的原因。
(4)请画出能提高处理机利用率的执行方案。

解析:(1)处理机、输入机和打印机是按照输入→处理→打印的顺序依次执行的,输入机为处理机提供数据,处理机得到数据后进行处理,处理结果通过打印机打印输入。输入机读取一批数据,花费时间为100;处理机对这批数据进行计算,花费时间为20;打印机打印计算结果,花费时间为40。
(2)处理机的利用率 = [20/(100+20+40)] ×100%=12.5%
(3)当一道程序在运行中发出I/O请求后,处理机只能处于等待状态,即必须等I/O完成后才能继续运行,因此处理机会长时间处于空闲状态,这会导致其利用率不高。
(4)
【操作系统】——期末复习(冲刺篇)_第8张图片

知识点随笔:

多道批处理系统的优缺点:

  • 资源利用率高
  • 系统吞吐量大
  • 平均作业周转时间短
  • 无交互能力

内核态(管态、系统态):执行包括特权指令在内的一切指令。
用户态(目态):不能执行特权指令。

系统调用概念:

  • 应用程序请求OS内核完成某功能时的一种过程调用;
  • 用户与内核的接口。

与一般过程调用的区别:

  • 运行在不同的系统状态
  • 状态的转换
  • 返回问题
  • 嵌套调用

资源管理技术

  • 资源复用:解决物理资源数量不足
  • 资源虚拟:解决物理资源数量不足,提高服务的能力和水平
  • 资源抽象:处理系统的复杂性,解决资源的易用性

2. 进程的描述与控制

1、什么是前趋图?试画出下面四条语句的前趋图.
S1 a = x + y a=x+y a=x+y
S2 b = z + 1 b=z+1 b=z+1
S3 c = a − b c=a-b c=ab
S4 w = c + 1 w=c+1 w=c+1
答:前趋图(Precedence Graph)是一个有向无循环图,记为DAG(DirectedAcyclicGraph),用于描述进程之间执行的前后关系。
【操作系统】——期末复习(冲刺篇)_第9张图片

2、什么是进程?OS中为什么要引入进程?它会产生什么样的影响?

答:进程是一段可并发执行的具有独立功能的程序,是关于某个数据集的一次执行过程。也是OS进行资源分配和保护的基本单位。引入进程是为了实现多个程序的并发执行。 影响:好处是多个程序的并发执行,能极大的提高资源利用率和系统吞吐量。 缺点是管理进程PCB所占的内存占用、进程间切换、同步与通信开销较大。

☆ 3、进程最基本的状态有哪些?哪些事件可能会引起不同状态间的转换?

答:运行态、就绪态、阻塞态(等待态)
1.运行→等待:等待使用资源或某事件发生
2.等待→就绪:资源得到满足或某事件已经发生
3.运行→就绪:时间片到,或者有更高优先级进程到达
4.就绪→运行:CPU空闲时间调度选中一个就绪进程需要其运行

【操作系统】——期末复习(冲刺篇)_第10张图片
☆ 4、试从调度、并发、拥有资源和系统开销这4个方面对传统进程和线程进行比较。

调度 并发 拥有资源 系统开销
线程 线程是OS中调度和分派的基本单位,具有唯一的标识符和TCB 同一进程的多个线程在一个或多个处理机上并发执行。 同一进程的所有线程共享但不拥有进程的状态和资源,且驻留在进程的同一个内存地址空间中,可以访问相同的数据,通信和同步的实现也十分方便 作为系统调度和分派的基本单位,线程会被频繁地调度和切换;同一进程中的多线程共享同一地址空间,这能使线程实现快速切换
传统进程 传统进程具有独立的虚地址空间,以传统进程为单位进行任务调度时,系统必须切换地址空间,且切换时间长。 许多“多任务OS”会限制用户拥有的最大进程数目,该数目对于许多并发应用来说是不够的。 传统进程是系统中资源分配和保护的基本单位,也是系统调度的独立单位;每个传统进程都能以各自独立的速度在CPU上运行 对多个传统进程进行管理(如创建、调度、终止等)时,系统开销大,如在为了响应客户请求而须建立新的服务进程的服务器应用过程中,创建开销大

5、(考研真题)现代OS一般都提供多进程(或称多任务)运行环境,回答以下问题。
(1)为支持多进程的并发执行,系统必须建立哪些关于进程的数据结构?
(2)为支持进程状态的变迁,系统至少应提供哪些进程控制原语?
(3)在执行每一个进程控制原语时,进程状态会发生什么变化?相应的数据结构会发生什么变化?

解析:(1)PCB(进程控制块)、队列结构(如就绪队列、等待队列、运行指针等)。
(2)创建原语,阻塞原语,唤醒原语,撤销原语。
(3)有4种变化:
①创建原语:创建PCB并初始化→进程变为就绪状态,加入到就绪队列;
②阻塞原语:运行变为阻塞状态→阻塞进程的PCB插入相应的阻塞队列;
③唤醒原语:阻塞变为就绪状态→阻塞队列中删除该进程,插入到就绪队列中;
④撒销原语:运行变为消亡状态→系统撤销该进程的PCB

知识点随笔:

程序并发执行的特征:

  • 间断性
    • 并发程序之间相互制约。
    • 执行——暂停执行——执行。
  • 失去封闭性
    • 多个程序共享全机资源。
    • 执行状态受外界因素影响。
  • 不可再现性
    • 程序经过多次执行后,虽然其执行时的环境和初始条件
      都相同,但得到的结果却各不相同。

进程和程序的区别

  • 进程是程序的一个实例,是程序的一次执行。
  • 程序是进程的代码部分。
  • 进程是活动的,程序是静态的。
  • 进程以二进制方式在内存中,程序以文件方式在外存中。

3. 处理机调度与死锁

周转时间 = 完成时间 - 到达时间
带权周转时间 = 周转时间 / 运行时间
等待时间 = 周转时间 - 运行时间

1、高级调度与低级调度的主要任务是什么?为什么要引入中级调度?

答:①高级调度的主要任务是将外存的作业调入内存,又称作业调度;低级调度的主要任务是为内存中处于就绪态的作业分配处理机。
②为了提高内存的利用率与系统吞吐量。

2、何谓作业和JCB(job control block,作业控制块)?
①.作业是一组程序与数据和作业说明书,是高级调度的基本单位;
②.JCB是作业控制块,是作业存在的表示,包含管理,调度所需的全部信息。

3、(考研真题)有5个进程需要调度执行,若采用非抢占式优先级(短进程优先)调度算法,问这5个进程的平均周转时间是多少?

进程 到达时间 执行时间
P1 0.0 9
P2 0.4 4
P3 1.0 1
P4 5.5 4
P5 7 2

解析:绘制甘特图如下
在这里插入图片描述
平均周转时间=(P1+P3+P5+P2+P4)÷ 5 = [(9-0.0)+(10-1.0)+(12-7)+(16-0.4)+(20-5.5)] ÷ 5 =10.62

☆ 4、(考研真题)假定要在一台处理机上执行下表所示的作业,且假定这些作业在时刻0以1,2,3,4,5的顺序到达。请说明分别采用FCFS、RR(时间片为1)、SJF及非抢占式优先级调度算法时,这些作业的执行情况(优先级的高低顺序依次为1到5)。针对上述每种调度算法,给出平均周转时间和平均带权周转时间。

作业 执行时间 优先级
1 10 3
2 1 1
3 2 3
4 1 4
5 5 2

解析:绘制甘特图如下
【操作系统】——期末复习(冲刺篇)_第11张图片
【操作系统】——期末复习(冲刺篇)_第12张图片

(1)FCFS(先来先服务调度算法)
平均周转时间 =(10+11+13+14+19)÷ 5 = 13.4
平均带权周转时间 = (10/10 + 11/1 +13/2 + 14/1 + 19/5)÷ 5 = 7.26
(2)RR(时间片轮转调度算法)
平均周转时间 = (19+2+7+4+14)÷ 5 = 9.2
平均带权周转时间 = (19/10 + 2/1 + 7/2 + 4/1 + 14/5)÷ 5 = 2.84
(3)SJF(短作业优先调度算法)
平均周转时间 = (19+1+4+2+9)÷ 5 = 7
平均带权周转时间 = (19/10 + 1/1 + 4/2 + 2/1 + 9/5)÷ 5 = 1.74
(4)非抢占式优先级调度算法
平均周转时间 = (16+1+18+19+6)÷ 5 = 12
平均带权周转时间 = (16/10 + 1/1 + 18/2 + 19/1 + 6/5)÷ 5 = 6.36

5、(考研真题)假设系统中有下述3种解决死锁的方法:
(1)银行家算法;
(2)检测死锁,终止处于死锁状态的进程,释放该进程所占有的资源;
(3)资源预分配。
简述上述哪种方法允许最大的并发性?请按“并发性”从大到小对上述3种方法进行排序。

答:①题中给出的3种方法中,检测死锁能允许更多的进程无须等待地向前推进,并发性最大。因为该方法允许进程最大限度地申请并分配资源,直至出现死锁,再由系统解决死锁。②银行家算法允许进程自由申请资源,只是在某个进程申请资源时会检查系统是否处于安全状态,若是,则可立即分配;若不是,则拒绝。其并发性的大小次于检测死锁这一方法。③最后是资源预分配,因为此方法要求进程在运行之前申请所需的全部资源,这会使许多进程因申请不到全部资源而无法开始,得到部分资源的进程也会因未得到全部资源而不释放已占用的资源,所以此方法会导致资源浪费。因此,上述3种方法按并发性从大到小排序为:检测死锁、银行家算法、资源预分配。

☆ 6、假定系统中有五个进程{P0,P1,P2,P3,P4}和三类资源{A,B,C} ,各种资源的数量分别为10、5、7,剩余可用资源分别为3、3、2,在T0时刻的资源分配情况如下表所示。
(1)T0时刻的安全性
(2)P1请求资源:P1发出请求向量Request (1,0,2) ,系统按银行家算法进行检查

进程 最大需求 已分配 最多还需要
P0 (7,5,3) (0,1,0) (7,4,3)
P1 (3,2,2) (2,0,0) (1,2,2)
P2 (9,0,2) (3,0,2) (6,0,0)
P3 (2,2,2) (2,1,1) (0,1,1)
P4 (4,3,3) (0,0,2) (4,3,1)

解析:(1)
①依次检查剩余可用资源(3,3,2)是否能满足各进程的需求
可满足P1需求,将P1加入安全序列,并更新剩余可用资源值为(5,3,2)
②依次检查剩余可用资源(5,3,2)是否能满足剩余进程(不包括已加入安全序列的进程)的需求可满足P3需求,将P3加入安全序列,并更新剩余可用资源值为(7,4,3)
③依次检查剩余可用资源(7,4,3)是否能满足剩余进程(不包括已加入安全序列的进程)的需求…….…

进程 Work Need Allocation Work+Allocation Finish
P1 (3,3,2) (1,2,2) (2,0,0) (5,3,2) T
P3 (5,3,2) (0,1,1) (2,1,1) (7,4,3) T
P0 (7,4,3) (7,4,3) (0,1,0) (7,5,3) T
P2 (7,5,3) (6,0,0) (3,0,2) (10,5,5) T
P4 (10,5,5) (4,3,1) (0,0,2) (10,5,7) T

以此类推,共五次循环检查即可将5个进程都加入安全序列中,最终可得一个安全序列:{P1、P3、P0、P2、P4}, 状态安全(答案不唯一)。
(2)第一步,判断请求的资源是否小于Need和Available
(1,0,2) < (1,2,2) && (1,0,2) < (3,3,2) ,可以请求,但安全状态待判断。
第二步,表格修改一下,此时Available为(2,3,0)

进程 最大需求 已分配 最多还需要
P0 (7,5,3) (0,1,0) (7,4,3)
P1 (3,2,2) (3,0,2) (0,2,0)
P2 (9,0,2) (3,0,2) (6,0,0)
P3 (2,2,2) (2,1,1) (0,1,1)
P4 (4,3,3) (0,0,2) (4,3,1)

检查安全状态过程同上,答案略。

知识点随笔:

  • 高级调度(长程调度/作业调度)
  • 低级调度(短程调度/进程调度)
  • 中级调度(中程调度/内存调度)

死锁的处理方法:

  • 预防死锁
  • 避免死锁
  • 检测死锁
  • 解除死锁

4. 进程同步

1、什么是临界资源?什么是临界区?

答:临界资源:以互斥形式访问的资源;临界区:访问临界资源的代码。

2、同步机制应遵循的准则有哪些?
答:空闲让进;忙则等待;有限等待;让权等待。

3、若信号量的初值为2,当前值为-1,则表示有多少个等待进程?请分析。

答:1个等待进程;当前值为-1时,表示有一个进程正在临界区运行,而另一个进程因等待而阻塞在信号量队列中,需要被当前已在临界区运行的进程在退出时唤醒。

注:信号量的应用:
设mutex为互斥信号量,其初值为1,取值为(-1,0,1)。当mutex=1时,表示两个进程皆未进入需要互斥访问的临界区;当mutex=0时,表示有一个进程进入临界区运行,另一个必须等待,挂入阻塞队列;当mutex=-1时,表示有一个进程正在临界区运行,而另一个进程因等待而阻塞在信号量队列中,需要被当前已在临界区运行的进程在退出时唤醒。

4、有m个进程共享同一临界资源,若使用信号量机制实现对某个临界资源的互斥访问,请求出信号量的变化范围。

答:范围: 1 ∼ − ( m − 1 ) 1\sim -(m-1) 1(m1) 1 ∼ 1 − m 1\sim1-m 11m

分析:为实现互斥访问,初始值需要设置为1。如果某时刻信号量为-x,则证明等待队列中有x个进程在等待。此题中,有m个进程,那么最多就有m-1个进程等待。对应信号量的值就是-(m-1)=1-m。

☆☆☆ 5、3个进程P1、P2、P3互斥地使用一个包含N(N>0)个单元的缓冲区。P1每次用produce()生成一个正整数,并用put()将其送入缓冲区的某一空单元中;P2每次用getodd()从缓冲区中取出一个奇数,并用countodd()统计奇数的个数;P3每次用geteven()从该缓冲区中取出一个偶数,并用counteven()统计偶数的个数。请用信号量机制实现这3个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述。

// 定义四个信号量:empty表示缓冲区的空单元数,初始值为N;
// even和odd分别表示缓冲区中偶数和奇数的个数,初始值为0;
// mutex是互斥信号量,用于保证缓冲区的互斥访问,初始值为1。
semaphore empty = N, even = 0, odd = 0,mutex = 1; 

P1: // 生产者进程
while(1) 
{
	x = produce(); 	// 生成一个正整数
	P(empty); 		// 等待缓冲区有空单元
	P(mutex); 		// 请求互斥访问缓冲区
	put(x); 		// 将生成的正整数放入缓冲区的某一空单元中
	V(mutex); 		// 释放互斥访问缓冲区
	if(x%2 == 0) 	// 如果生成的正整数是偶数
		V(even); 	// 偶数个数加1
	else // 		如果生成的正整数是奇数
		V(odd);		// 奇数个数加1
}

P2: // 消费奇数的消费者进程
while(1)
{
	P(odd); 		// 等待缓冲区有奇数
	P(mutex); 		// 请求互斥访问缓冲区
	getodd(); 		// 从缓冲区中取出一个奇数
	countodd(); 	// 统计奇数的个数
	V(mutex); 		// 释放互斥访问缓冲区
	V(empty); 		// 空单元数加1
}

P3: // 消费偶数的消费者进程
while(1) 
{
	P(even); 		// 等待缓冲区有偶数
	P(mutex); 		// 请求互斥访问缓冲区
	geteven(); 		// 从缓冲区中取出一个偶数
	counteven(); 	// 统计偶数的个数
	V(mutex); 		// 释放互斥访问缓冲区
	V(empty); 		// 空单元数加1
}

AI评价:这段代码的设计思路清晰,结构紧凑,很好地实现了生产者-消费者问题的解决方案。它使用了信号量机制来同步和互斥三个进程的活动,确保了在任何时刻只有一个进程能够访问缓冲区,从而避免了并发控制中的竞态条件。此外,通过对偶数和奇数的单独处理,使得两个消费者进程能够并行地进行,提高了系统的并发性能。

知识点随笔:

进程间的制约关系

  • 间接相互制约关系(互斥关系)
    • 进程互斥使用临界资源
  • 直接相互制约关系(同步关系)
    • 进程间相互合作

信号量S-整型变量
提供两个不可分割的[原子操作]访问信号量

wait(S)while s<=0 ;   /*do no-op  空操作,也称为自旋操作*/
	s--;
signal(S):
	s++; 

wait(s)又称为P(S)
signal(s)又称为V(S)

缺点:进程忙等

记录型信号量:去除忙等的信号量

每个信号量S除一个整数值S.value外,还有一个进程等待队列S.list,存放阻塞在该信号量的各个进程PCB

  • 信号量只能通过初始化两个标准的原语PV来访问--作为OS核心代码执行,不受进程调度的打断
  • 初始化指定一个非负整数值,表示空闲资源总数(又称为"资源信号量");若为非负值表示当前的空闲资源数,若为负值其绝对值表示当前等待临界区的进程数
typedef struct {
	int value;
	stuct process_control_block *list;
}semaphore; 

相应的,其P-V操作可描述为:

wait(semaphores *S) {   			//请求一个单位的资源
		  S->value --; 				//资源减少一个
		  if (S->value<0) block(S->list) 	//进程自我阻塞
}

signal(semaphores *S) 			//释放一个单位资源
{
	  S->value++; 				//资源增加一个
	  if (S->value<=0) wakeup(S->list); 	//唤醒等待队列中的一个进程
}		

生产者-消费者问题是相互合作进程关系的一种抽象

利用记录型信号量实现:

  • 假定,在生产者和消费者之间的公用缓冲池中,具有N个缓冲区,可利用互斥信号量mutex使诸进程实现对缓冲池的互斥使用;
  • 利用资源信号量empty和full分别表示缓冲池中空缓冲区和满缓冲区的数量。
  • 又假定这些生产者和消费者相互等效,只要缓冲池未满,生产者便可将消息送入缓冲池;只要缓冲池未空,消费者便可从缓冲池中取走一个消息

临界资源

生产者

  • 把产品放入指定缓冲区
  • in:所有的生产者对in指针需要互斥
  • counter:所有生产者消费者进程对counter互斥
buffer[in] = nextp;
in = (in + 1) % N;
counter++;

消费者

  • 从指定缓冲区取出产品
  • out:所有的消费者对out指针需要互斥
  • counter:所有生产者消费者进程对counter互斥
nextc = buffer[out];
out = (out + 1) % N;
counter--;

5. 存储器管理

知识点随笔:

物理地址(绝对地址)

  • 物理内存的地址,通常内存以字节为单位编址
  • 物理地址空间:所有物理地址的集合

逻辑地址(虚拟地址、相对地址)

  • 程序编译后使用的相对于0字节的地址
  • 逻辑地址空间:由程序所生成的所有逻辑地址的集合

内存分配流程:
【操作系统】——期末复习(冲刺篇)_第13张图片

内存回收四种情况相邻空闲块合并:
【操作系统】——期末复习(冲刺篇)_第14张图片

内存回收流程:
【操作系统】——期末复习(冲刺篇)_第15张图片
具有快表的地址变换机构:
【操作系统】——期末复习(冲刺篇)_第16张图片
在可变分区管理中,有三种主要的内存分配算法:

  • 最先分配算法(First Fit):遍历内存块列表,寻找第一个足够大的空闲块来满足进程的内存请求。
  • 最优分配算法(Best Fit):遍历内存块列表,寻找能够满足进程请求且大小最接近请求大小的空闲块。
  • 最坏分配算法(Worst Fit):遍历内存块列表,寻找最大的空闲块来满足进程的内存请求。

6. 虚拟存储器

1、常规存储器管理方式具有哪两大特征?它们对系统性能有何影响?

答:一次性:将全部作业装入内存才运行。会导致内存装不下或者装的太少影响系统性能。
驻留性:调入内存后直到运行结束都不会调出内存。容易浪费内存。

2、什么是虚拟存储器?如何实现页式虚拟存储器?

答:虚拟存储器是具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储系统;在分页储存管理的基础上,增加了请求调页和页面置换功能,进程运行之初只调用很少的页面,后续将需要的页面调入内存,且将不需要的页面调出内存。

3、(考研真题)某虚拟存储器的用户空间共有32个页面,每页1KB,主存16KB。假定某时刻系统为用户的第0、1、2、3页分配的物理块号为5、10、4、7,而该用户作业的长度为6页,试将十六进制的虚拟地址0A5C、103C、1A5C转换成物理地址。

解析:由32=25个页面,每页1KB=210B可知,该系统的逻辑地址有15位,其中高5位为页号,低10位为页内地址;由16KB=24 × 210B可知,物理地址有14位,其中高4位为块号,低10位为块内地址。另外,由于题目中给出的逻辑地址是十六进制数,故可先将其转换成二进制数以直接获得页号和页内地址,再完成地址的转换。

(1)如下图,逻辑地址(0A5C)的页号为(00010),即2,故页号合法;从页表中找到对应的内存块号为4,即(0100);与页内地址(10 0101 1100)拼接形成物理地址(010010 0101 1100),即(125C)。
【操作系统】——期末复习(冲刺篇)_第17张图片

(2)由于该用户作业的长度为6页,即第0,1,2,3,4,5页的页号合法。逻辑地址(103C)的页号为4,页号合法,但该页未装入内存,故产生缺页中断。

(3)逻辑地址(1A5C)的页号为6,为非法页号,故产生越界中断。

4、某请求调页系统,其页表保存在寄存器中;若有一个可用的空页或被替换的页未被修改,则它处理一个缺页中断需要8ms;若被替换页已被修改,则它处理一个缺页中断需要20ms;内存存储时间为1μs,访问页表的时间可忽略不计;假定70%被替换页被修改过,为保证有效存取时间不超过2μs,可接受的最大缺页率是多少?

1ms = 10-3s,1μs = 10-6s

解析:设最大缺页率为 p p p,则:
( 1 − p ) × 1 μ s + p × ( 0.3 ∗ 8 m s + 0.7 ∗ 20 m s + 1 μ s ) ≤ 2 μ s 1-p) × 1μs + p ×(0.3*8ms+0.7*20ms+ 1μs)≤ 2μs 1p)×1μs+p×0.38ms+0.720ms+1μs2μs
2400 p + 14000 p + 1 − p < = 2 2400p+14000p+1-p<=2 2400p+14000p+1p<=2
16400 p < = 1 16400p<=1 16400p<=1
p < = 0.00006 p<=0.00006 p<=0.00006

5、(考研真题)有一个请求分页式虚拟存储器系统,分配给某进程3个物理块,开始时内存中预装入第1、2、3个页面,该进程的页面访问序列为:1、2、4、2、6、2、1、5、6、1
(1)若采用OPT(optimal,最佳)页面置换算法,则访问过程发生的缺页率为多少?
(2)若采用LRU(最近最少使用)页面置换算法,则访问过程中的缺页率为多少?

解析:
(1)缺页率 f = 3 10 × 100 % = 30 % f=\frac{3}{10} \times 100\% = 30\% f=103×100%=30%
【操作系统】——期末复习(冲刺篇)_第18张图片

(2)缺页率 f = 5 10 × 100 % = 50 % f=\frac{5}{10} \times 100\% = 50\% f=105×100%=50%
【操作系统】——期末复习(冲刺篇)_第19张图片

注:此题目前有争议,(开始时内存中预装入第1、2、3个页面 这句话理解不一),对于第1小问,答案有3次、5次、2次的说法,暂不确定。

☆ 6、在一个请求分页系统中,有一个长度为5页的进程,假如系统为它分配3个物理块,并且此进程的页面走向为2,3,2,1,5,2,4,5,3,2,5,2。分别用FIFO,LRU,OPT 算法分别计算出程序访问过程中所发生的缺页次数。
【操作系统】——期末复习(冲刺篇)_第20张图片

知识点随笔:

页面置换算法:

  • OPT(最优置换算法):这种算法在理论上可以达到最低的缺页率,它总是选择在未来最长时间内不再被访问的页面进行置换。然而,由于无法预知未来的页面访问顺序,因此在实际中无法实现。
  • FIFO(先进先出置换算法):这是最简单的页面置换算法,它总是选择最早进入内存的页面进行置换。然而,这种算法可能会导致频繁访问的页面被替换出去,从而导致性能下降。
  • LRU(最近最久未使用置换算法):这种算法选择最近最久未使用的页面进行置换,它试图模拟最优置换算法的行为。然而,实现这种算法需要记录每个页面最后一次被访问的时间,这可能会导致实现复杂和开销大。
  • LFU(最少使用置换算法):这种算法选择最少被访问的页面进行置换。然而,如果一个页面在过去被频繁访问,但在未来不再被访问,这种算法可能会导致该页面长时间保留在内存中。
  • Clock(时钟置换算法):这种算法是一种对FIFO和LRU的折衷,它维护一个循环的队列,并使用一个指针指向最老的页面。当需要置换一个页面时,它会检查当前指针指向的页面,如果该页面最近被访问过,则将其标记为未访问并将指针向前移动;否则,就将该页面置换出去。

Clock置换算法例子

例:假设系统为某进程分配了五个内存块,并考虑到有以下页面号引用串:1,3,4,2,5,6,3,4,7

  • 每个页都与一个访问位相关联,初始值位0
  • 当页被访问时置访问位为1
  • 置换时选择访问位为0的页 ;若为1,重新置为0

【操作系统】——期末复习(冲刺篇)_第21张图片

7. I/O系统

1、(考研真题)某磁盘的转速为10 000r/min,平均寻道时间是6ms,磁盘传输速率是20MB/s,磁盘控制器延迟为0.2ms,读取一个4KB的扇区所需的平均时间约为多少?

解析:根据公式:平均磁盘访问时间 = 平均寻道时间 + 平均旋转延时 + 传输时间 + 控制器延时。磁盘转速是10 000r/min,平均转1转的时间是6ms,因此平均查询扇区的时间是3ms(即等于旋转一周时间的一半),平均寻道时间是6ms,读取4KB扇区信息的时间为 4 K B 20 M B / s = 2 × 1 0 − 4 s = 0.2 m s \frac{4KB}{20MB/s} = 2 \times 10^{-4} s = 0.2ms 20MB/s4KB=2×104s=0.2ms,控制器延迟的时间为0.2ms,总时间为3+6+0.2+0.2=9.4ms。故读取一个4KB的扇区所需时间为:6ms+3ms+0.2ms+0.2ms = 9.4ms

☆ 2、(考研真题)磁盘请求服务队列中要访问的磁道分别为38、6、37、100、14、124、65、67,磁头上次访问了20磁道,当前处于30磁道上,试采用FCFS、SSTF(shortest seek time first,最短寻道时间优先)和SCAN(电梯)调度算法,分别计算磁头移动的磁道数(即寻道长度)。

解析:
(1)FCFS调度算法:磁头移动顺序为30、38、6、37、100、14、124、65、67;移动磁道数为8+32+31+63+86+10+59+2=391
(2)SSTF调度算法:磁头移动顺序为30、37、38、14、6、65、67、100、124;移动磁道数为7+1+24+8+59+2+33+24=158
(3)SCAN调度算法:磁头移动顺序为30、37、38、65、67、100、124、14、6;移动磁道数为7+1+27+2+33+24+110+8=212

知识点随笔:

I/O软件的层次结构:
【操作系统】——期末复习(冲刺篇)_第22张图片
设备控制器

  • 主要功能:控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换
  • 设备控制器是CPU与I/O设备之间的接口,接收从CPU发来的命令,并去控制I/O设备工作

I/O通道

  • 目的:使一些原来由CPU处理的I/O任务转由通道来承担,从而把CPU从繁杂的I/O任务中解脱出来
  • 通道与普通处理机
    • 通道是特殊处理机
    • 不同点:
      • 指令类型单一
      • 没有自己的内存(与CPU共享内存)

I/O设备的控制方式:轮询、中断、DMA、通道

磁盘调度算法:

  • FCFS(先来先服务):这是最简单的磁盘调度算法,它按照请求的先后顺序进行处理。虽然这种算法比较公平,但是它通常并不提供最快的服务。如果有大量进程竞争使用磁盘,请求访问磁道很分散,则FCFS在性能上很差,寻道时间长。
  • SSTF(最短寻道时间优先):这种算法选择处理距离当前磁头位置的最短寻道时间的请求。换句话说,SSTF选择最接近磁头位置的待处理请求。这种算法大大提高了性能。然而,SSTF调度本质上是一种最短作业优先(SJF)调度;与SJF调度一样,它可能会导致一些请求的饥饿。
  • SCAN(扫描算法,也称为电梯算法):对于扫描算法,磁臂从磁盘的一端开始,向另一端移动;在移过每个柱面时,处理请求。当到达磁盘的另一端时,磁头移动方向反转,并继续处理。磁头连续来回扫描磁盘。
  • CSCAN(循环扫描):CSCAN调度算法基本上将这些柱面作为一个环链,将最后柱面连到首个柱面。优点:比起SCAN算法,对于各位置磁道的响应频率很平均。缺点:只有到边上才能改变磁头移动方向,比起SCAN算法来,平均寻道时间更长。

8. 文件管理

知识点随笔:

文件的逻辑结构:从用户观点所观察的文件组织形式

  • 顺序文件
  • 索引文件
  • 索引顺序文件

文件目录

  • 目录是一种数据结构,用于标识文件及其物理地址
  • 目录实现了对文件的有效管理
  • 对目录管理的要求
    • 实现“按名存取”
    • 提高对目录的检索速度
    • 文件共享
    • 允许文件重名

目录操作

  • 创建目录
  • 删除目录:删除/不删除非空目录
  • 改变目录
  • 移动目录
  • 链接操作
  • 查找操作

❗ 转载请注明出处
作者:HinsCoder
博客链接: 作者博客主页

你可能感兴趣的:(学习,笔记)