系列文章目录
第一章 计算机组成原理期末复习
第二章 操作系统期末复习
目录
前言
大致看看就行
一、分析题 (5个,共25分)
1. 进程的并发与互斥
题目:
分析QQ软件可能处于的状态;后台处理程序可能处于的状态。
答案:
Windows10操作系统开启了多个并发执行的进程。
① QQ进程CPU利用率为1.0%,则其处于运行状态;
② 而当其CPU利用率为0%时,QQ进程可能处于就绪状态;
③ 后台处理程序可能处于阻塞状态。
2. 文件索引
题目:
请运用操作系统原理提出一种能够有效提高文件管理模块效率的解决方案。
答案:
① 索引节点的方法进行提高速度。
② 索引节点技术是采用把文件名与文件描述信息分开的办法,使文件描述信息单独形成一个称为索引节点的数据结构。
③ 作用:目录中的文件名与文件描述信息分开,用索引节点记录文件描述信息。优点:使用索引节点可以减少访问磁盘次数,提高检索速度。
3. spooling技术
题目:
某单位办公室内有 3 位工作人员,且每人配有一台个人电脑并可以上网,此外该办公室 仅有一台打印机,打印系统结构如下图所示。由于打印机是独占设备,请运用所学的操 作系统原理,提出一种能够实现 3 人同时对系统提出打印请求时,系统都能够响应并满 足她们的打印需求的方式?
答案:
①该单位办公室计算机系统可以使用SPOOLing技术。
② SPOOLing技术技术是指当系统中引入了多道程序技术后,完全可以利用其中的一道程序,来模拟脱机输入时的外围控制机功能。
③ 在该办公室中计算机系统中,当用户进程请求打印输出时,SPOOLing系统同意为它打印输出,但并不真正立即把打印机分配给该用户进程,而只为它做两件事:a.由输出进程在输出井中为之申请一个空闲磁盘块区,并将要打印的数据送入其中;b.输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂到请求打印队列上。这样就能够实现同时对系统提出打印请求时,系统都能够响应并满足她们的打印需求。
4. 处理机调度和死锁
题目:
如图所示,系统中只有进程P1和P2,以及资源R1和R2。进程P1申请R1并获得了成功,进程P2申请R2并获得成功。当进程P1申请R2和进程P2申请R1,但都未获得成功。这时,使得两个进程都不能继续运行。
则分析此时该系统可能的情况并运用所学操作系统原理说明原因。
答案:
①此时系统将会发生死锁。
②死锁是指:计算机系统中多道程序并发执行时,两个或两个以上的进程由于竞争资源而造成的一种互相等待的现象(僵局),如无外力作用,这些进程将永远不能再向前推进。
③由题意可知,进程P1和P2分别获得临界资源R1和R2,当P1继续申请R2,则P1阻塞,P2继续申请R1则P2阻塞。此时,若无外力的作用下,进程P1和P2将会发生死锁。
5. 虚拟存储器
题目:
Gribble公司正在开发一款64位的计算机系统,由于内存是计算机系统的重要组成部分,请利用操作系统中的原理分析,如何能够在保证计算机系统价格不变的情况下,提高计算机内存空间从而满足用户的需求。
答案:
①可以运用操作系统的虚拟存储器的原理。
②虚拟存储器是由操作系统提供的一个假想的特大存储器,是操作系统采用内外存的交换技术在逻辑上提供对物理内存的扩充。采用虚拟存储技术时,操作系统根据程序执行的情况,对每个程序进行换入、换出,用户却没有察觉,从而得到了一个比真实内存空间大得多的地址空间。
③因此,运用虚拟存储技术可以允许比实际内存大的应用程序或应用软件
6. 分时系统
题目:
在某医院挂号系统中允许多个医院工作人员同时在各自的终端上为不同的患者提供挂号服务。虽然每个终端都连接到装有Linux操作系统服务器,但是每位工作人员都能够独立的处理自己的挂号业务且彼此互不影响。请利用所学操作系统原理分析这一现象?
答案:
①该医院计算机服务系统使用了操作系统中的分时系统原理。
②分时系统是指在一台主机上连接了多个配有显示器和键盘的终端并由此所组成的系统,该系统允许多个用户同时通过自己的终端以交互方式使用计算机,共享主机中的资源。
③该医院计算服务系统运用分时系统原理,让每个用户通过自己的终端分时共享一台主机,查询各自的信息而互不干扰。
二、论述题 (1个,共10分)
1. SPOOLing技术
题目:
以某办公室共享一台打印机为例,论述其是怎样将独占资源打印机虚拟为共享打印机。(从所采用的技术原理、方法及实现过程三个方面进行论述)
答案:
① 原理:可以使用SPOOLing技术解决打印机的同时共享问题。
② 方法:SPOOLing技术技术是指当系统中引入了多道程序技术后,利用其中的一道程序,来模拟脱机输入时的外围控制机功能,把低速I/O设备上的数据传送到高速磁盘上;再用另一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。
③ 过程:在该打印服务系统中,当某顾客请求打印输出时, SPOOLing系统同意为它打印输出, 但并不真正立即把打印机分配给该用户进程, 而只为它做两件事:
1)由输出进程在输出井中为之申请一个空闲磁盘块区, 并将要打印的数据送入其中;
2)输出进程再为顾客申请一张空白的用户请求打印表,并将顾客的打印要求填入其中,再将该表挂到请求打印队列上。
2. 虚拟存储器
题目:
虚拟存储器是为了解决什么问题,基于什么原理,如何实现(硬件软件方面)?请尝试从以下几个方面进行论述。
(1)问题提出
(2)基础理论
(3)关键技术
(4)科学意义和价值
答案:
3. C语言
题目:
以一个C语言程序运行为例,分析程序进入内存如何存储、如何被执行以及如何进行输入输出。
答案:
三、计算题 (5个,共50分)
1. 作业调度算法
题目:
有3个作业Job1(到达时刻为8:50,服务时间为1.5h)、Job2(到达时刻为9:00,服务时间为0.4h)、Job3(到达时刻为9:30,服务时间为1.0h)。当作业全部到达后,单道批处理系统按照响应比高者优先算法进行调度,则作业被选中的次序是什么?
知识点:
① 先来先服务调度算法
② 短作业优先调度算法
③ 优先级调度算法
④ 高响应比优先调度算法
答案:
作业运行情况如下表所示:
作业
到达时刻
服务时间
开始时刻
结束时刻
Job1
8:50
1.5
9:54
11:24
Job2
9:00
0.4
9:30
9:54
Job3
9:30
1.0
11:24
12:24
当作业全部达到后,也就是9:30,系统开始调度。此刻各作业的等待时间是:Job1为40分钟(0.67h)、Job2为0.5h,Job3为0.0h.其响应比为:
Job1: 1+0.67/1.5=1.4;Job2: 1+0.5/0.4=2.25;Job3:1+0/1=1
因此,系统首先选择Job2运行24分钟,至9:54结束。各作业的等待时间分别为:Job1为1.07h;Job3为0.4h。其响应比分别修改为:
Job1: 1+1.07/1.5=1.7;Job3: 1+0.4/1=1.4
系统再选Job1运行,至11:24结束。最后选择Job3运行至12:24结束。因此,作业被选中的次序是Job2、Job1、Job3。
2. 银行家算法
题目:
某系统T0时刻的资源分配情况如下所示:
资源进程
Allocation
R1 R2 R3
Need
R1 R2 R3
Available
R1 R2 R3
A
3 1 1
1 0 0
1 2 0
B
0 0 0
0 1 2
C
1 1 0
3 0 0
D
1 0 1
0 1 0
E
0 0 0
2 1 0
试问:
(1)该状态是否安全?如果是安全的至少写出一个安全序列;如果不安全请说明原因。
(2)若进程B提出请求RequestB (0,1,0),系统能否将资源分配给它?
答案:
若进程B提出请求RequestB(0,1,0),系统能否将资源分配给它?
3. 动态分区分配算法(基于顺序搜索)
题目:
某系统的硬件内存部分采用了分页存储管理系统,其逻辑地址长度为十六位,页面大小为4K字节。某进程访问的逻辑地址为CF6AH,且第10、11、12页依次存放在物理块6,5,14中。请计算该逻辑地址对应的物理地址并画出地址变换过程示意图。
答案:
(1)由题目所给条件可知,分页存储管理系统的逻辑地址结构如下图所示。
页号(12~15)
页内位移(0~11)
逻辑地址CF6AH的二进制表示为:1100 111101101010,由此可知,逻辑地址CF6AH的页号为12,小于页表的长度3,没有越界。该页存放在第14个物理块中,所以,其逻辑地址对应的物理地址为EF6AH。
(2)地址变换示意图如下。
4. 页面置换算法
题目:
在一个请求分页式存储管理系统中,有一个进程为20个页面,假如系统为该进程分配
了3个物理块,并且此进程的页面走向为:7,0,1,2,0,3,0,4,2,3,0,3,2,
1,2,0,1,7,0,1。用FIFO算法分别计算出程序访问过程中的页面淘汰次序,并计
算缺页率。(缺页次数=物理块数+置换次数,缺页率=缺页次数/页数)
答案:
FIFO算法时置换图如下:
从图可以看出,程序访问过程中页面淘汰次序:7,0,1,2,3,0,4,2,3,7,1,2,置换次数为12次。
缺页率=(置换次数+开始调入内存的次数)/页数
=(12+3)/20
5. 磁盘调度算法
题目:
假设磁盘有200个磁道,磁盘请求队列中是一些随机请求,它们按照到达的次序分别处于190、10、160、80、90、125、30、20、140、25号磁道上,当前磁头在100号磁道上,并正在朝着磁道号增加的方向移动。
(1)根据所学知识列举常用的磁盘调度方法。
(2)请利用至少两种以上的磁盘调度方法满足进程磁盘请求的次序,计算出其平均寻道长度?
(3)根据上述计算结果,请对所选磁盘调度方法的优劣进行评价?
答案:
(1)可选择调度算法为FCFS调度算法、SSTF调度算法、SCAN调度算法、CSCAN调度算法。
(2)各算法的访问序列和平均寻道长度分别为:
1)FCFS调度算法:访问的序列:190,10,160,80,90,125,30,20,140,25
平均寻道长度为:(90+180+150+80+10+35+95+10+120+115)=885/10=88.5
2)SSTF调度算法:
访问的序列:90,80,125,140,160,190,30,25,20,10
平均寻道长度为:(10+10+45+15+20+30+160+5+5+10)=310/10=31
3)SCAN调度算法:
访问的序列:125,140,160,190,90,80,30,25,20,10
平均寻道长度为:(25+15+20+30+100+10+50+5+5+10)=270/10=27
4)CSCAN调度算法:
访问的序列:125,140,160,190,10,20,25,30,80,90
平均寻道长度为:(25+15+20+30+180+10+5+5+50+10)=350/10=35
(3)各算法的优劣:
1)FCFS调度算法:此算法的优点是公平、简单,且每个进程的请求都能依次地得到处理,不会出现某一进程的请求长期得不到满足的情况,但此算法由于未对寻道进行优化,致使平均寻道时间可能较长。
2)SSTF调度算法:要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,但这种算法不能保证平均寻道时间最短。
3)SCAN算法:该算法不仅考虑到欲访问的磁道与当前磁道间的距离,更优先考虑的是磁头当前的移动方向,从而避免了出现“饥饿”现象。
4)CSCAN调度算法:该算法规定磁头单向移动,当磁头自里向外移到最外的磁道并访问后,磁头立即返回到最里的欲访问磁道,进行循环扫描。经过比较SCAN算法既能获得较好的寻道性能,又能防止“饥饿”现象,故被广泛用于大、中、小型机器和网络中的磁盘调度。
四、编程应用题 (1个,共15分)
1. PV操作-1
题目:
1.用P、V操作解决下图之同步问题。
答案:
设置四个信号量Sin=1,Sout=0,Tin=1,Tout=0;
put:
while(1)
{
P(Sin);
将数放入S;
V(Sout);
}
copy:
while(1)
{
P(Sout);
P(Tin);
将数从S取出放入T;
V(Tout);
V(Sin);
}
get:
while(1)
{
P(Tout);
将数从T取走;
V(Tin);
}
2. PV操作-2
题目:
桌上有一空盘,最多允许存放一只水果。爸爸可向盘中放一个苹果或放一个桔子,儿子专等吃盘中的桔子,女儿专等吃苹果。
–试用P、V操作实现爸爸、儿子、女儿三个并发进程的同步。
– 提示:设置一个信号量表示可否向盘中放水果,一个信号量表示可否取桔子,一个信号量表示可否取苹果
答案:
•S=1;So=0;Sa=0;(已经蕴含了儿子和女儿间的互斥关系)
Father()
{ while(1)
{ p(S);
将水果放入盘中;
if(是桔子)v(So);
else v(Sa);
}
}
Son()
{ while(1)
{ p(So)
取桔子
v(S);
吃桔子;
}
}
Daughter()
{ while(1)
{
p(Sa)
取苹果
v(S);
吃苹果;
}
}
3. PV操作-3
题目:
某车站售票厅,任何时间最多可容纳 100 名购票者进入,当售票厅少于 100 名购票者 时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程, 请回答以下问题:
(1)P、V 操作管理这些并发进程时,应怎样定义信号量?写出信号量的初值以及信号量 各种取值的含义。
(2)根据所定义的信号量,插入应执行的 P、V 操作以保证进程能够正确地并发执行。
答案:
(1)应定义一个信号量S,S的初值为100,当0<S<100时,允许厅外的购票者进入;当S=0时,厅内已有100人,欲购票者暂不能进入;当S<0时,|S|表示等待进入者的人数。
(2)用P、V操作保证进程正确执行的程序如下:
Semaphore S=100;
main( )
{
Cobegin
{ ProcessPi(i=1,2,3…,n)
{
P(s);
进入售票厅;
购票;
退出;
V(S);
}
}
Coend
}
4. PV操作-4
题目:
桌子上有一个盘子,可以放一个水果。爸爸总是放苹果到盘子中,而妈妈总是放香蕉到盘子 中,一个儿子专等吃盘子中的香蕉,而一个女儿专等吃盘子中的苹果。请用 P、V 操作来实现 爸爸、妈妈、儿子、女儿之间的同步与互斥关系?
答案:
设置如下信号量:
empty:记录允许向盘子中放入水果的个数,初值为2。
apple:盘子中已放入的苹果的个数,初值为0。
orange:盘子中已放入桔子的个数,初值为0。
mutex:向盘子中取、放水果操作是互斥操作,其初值为1。
本题4个进程的同步与互斥活动的描述如下:
Semaphore mutex=1;
Semaphore empty=2;
Semaphore apple=0;
Semaphore orange=0;
总结
不准确,不是100%把握。