《操作系统》综合练习题
一、填空题
1.操作系统的基本功能包括( 1 )管理、( 2 )管理、( 3 )管理、( 4)管理以及提供用户接口。
2.系统调用与一般函数调用的执行方式有着明显的不同,系统调用运行在( 5 )态,一般函数调用
运行在( 6 )态。
3.进程并发执行时有间断性、(7)和(8)的特点。
4.进程的基本特征有( 9 )、( 10 )、独立、异步及结构特征。
5.UNIX系统的文件目录项由两部分构成,即文件名和( 11 );
6.临界资源的概念是(12),而临界区是指(13)。
7.产生死锁的原因可以归结为两点:(14)和(15)。
8.段页式存储管理中,是将作业分( 16 ),( 17 )内分( 18 ),内存分配以( 19 )为单位。
9.分页存储管理方式中,在不考虑使用快表的情况下,每条访问内存的指令需要( 20 )次访问内
存;
10.在操作系统中,不可中断执行的操作称为( 21 )操作;
11.进程访问临界资源的代码段称为( 22 ),为保证进程互斥,应在进程的临界区前设置( 23 ),
在临界区后设置( 24 )。
12.银行家算法中,当一个进程提出的资源请求将导致系统从( 25 )进入( 26 )时,系统就拒绝
它的资源请求。
13.页面调入策略要解决(27)、(28)两个问题。
14.最佳置换算法是选择(29)或(30)的页面做为被淘汰的页面。
15.UNIX系统中,用于创建进程的两个常用系统调用是( 31 )和( 32 )。
16.进程调度负责( 33 )的分配工作。
17.通常操作系统内核提供( 34 )功能和( 35 )功能。
参考答案:
1、(1)存储管理;(2)处理机管理;(3)文件管理;(4)设备管理;
2、(5)系统态(核心态) ;(6)用户态;
3、(7)失去封闭性;(8)不可再现性
4、(9)动态;(10)并发;
5、(11)索引结点;
6、(12)一次仅允许一个进程访问的资源;(13)进程中访问临界资源的那段程序代码;
7、(14)竞争资源;(15)进程推进顺序非法
8、(16)段;(17)段;(18)页;(19)页;
9、(20)2;
10、(21)原子操作;
11、(22)临界区;(23)进入区;(24)退出区;
12、(25)安全状态;(26)不安全状态;
13、(27)何时调入页面;(28)从何处调入页面;
14、(29)永不使用的;(30)最长时间内不再被访问的;
15、(31)fork();(32)exec();
16、(33)作业;
17、(34)资源管理(35)支撑
二、选择题
1、若Wait(s)和Signal(s)操作的信号量S初值为2,当前值为-1,则表示有()等待进程。
A.0个
B.1个
C.2个
D.3个
2、下列的进程状态变化中,()变化是不可能发生的。
A.运行就绪
B.运行等待
C.等待运行
D.等待就绪
3、多道程序环境下,操作系统分配资源以()为基本单位。
A.程序
B.指令
C.进程
D.作业
4、资源的按序分配策略可以破坏___条件。
A.互斥使用资源B.占有且等待资源
C.非抢夺资源D.循环等待资源
5、在___的情况下,系统出现死锁。
A. 计算机发生了大故障
B. 有多个封锁的进程同时存在
C. 若干进程因竞争资源而无休止地相互等待他方释放已占有的资源
D. 资源数大大小于进程数或进程同时申请的资源数大大超过资源总数
6、进程在执行中发生了缺页中断,经操作系统处理后,应让其执行( )指令。
A.被中断的前一条
B.被中断的
C.被中断的后一条
D.启动时的第一条
7、分区管理中采用“最佳适应”分配算法时,宜把空闲区按()次序登记在空闲区表中。
A.长度递增
B.长度递减
C.地址递增
D.地址递减
8、SPOOLING系统提高了()的利用率。
A.独占设备
B.共享设备
C.文件
D.主存储器
9、中断发生后,应保留()。
A.缓冲区指针
B.关键寄存器内容
C.被中断的程序
D.页表
10、实现虚拟存储器的目的是___。
A.实现存储保护B.实现程序浮动
C. 扩充辅存容量D.扩充主存容量
11、如果I/O设备与存储设备进行数据交换不经过CPU来完成,这种数据交换方式是___。
A.程序查询B.中断方式
C.DMA方式 D.无条件存取方式
12、分配到必要的资源并获得处理机时的进程状态是___。
A.就绪状态B.执行状态
C.阻塞状态D.撤消状态
13、页式虚拟存储系统的主要特点是_____
A. 不要求将作业装入到主存的连续区域;
B. 不要求将作业同时全部装入到主存的连续区域;
C. 不要求进行缺页中断处理;
D. 不要求进行页面置换;
14、在分时操作系统中,进程调度经常采用___算法。
A.先来先服务B.最高优先权
C.时间片轮转D.随机
15、操作系统的基本类型主要有_____。
A.批处理系统、分时系统及多任务系统
B.实时操作系统、批处理操作系统及分时操作系统
C.单用户系统、多用户系统及批处理系统
D.实时系统、分时系统和多用户系统
16、产生死锁的四个必要条件是:互斥、___、循环等待和不剥夺。
A.请求与阻塞B.请求与保持
C.请求与释放D.释放与阻塞
17、中断矢量是指___。
A.中断处理程序入口地址
B.中断矢量表起始地址
C.中断处理程序入口地址在中断矢量表中的存放地址
D.中断断点的地址
18、CPU输出数据的速度远远高于打印机的打印速度,为了解决这一矛盾,可采用___。
A.并行技术B.通道技术
C.缓冲技术D.虚存技术
19、文件系统是指___。
A.文件的集合B.文件的目录
C.实现文件管理的一组软件;D.文件、管理文件的软件及数据结构的总体
20、___是直接存取的存储设备。
A.磁盘B.磁带
C.打印机D.键盘显示终端
21、虚拟存储管理系统的基础是程序的()理论。
A.局部性
B.全局性
C.动态性
D.虚拟性
参考答案:
1、B
2、C
3、C
4、D
5、C
6、B
7、A
8、A
9、B 10、D 11、C 12、B 13、B 14、C 15、D 16、B 17、
A 18、C 19、D 20、A 21、A
三、回答下列问题
1、一台计算机有8台磁带机。它们由N个进程竞争使用,每个进程可能需要3台磁带机。请问N为多少时,系统没有死锁危险,并说明原因。
答:N为3时,系统没有死锁危险。因为3个进程争夺8台设备,不管怎样都会满足其中2个进程的需要,8>3*2,第三个进程迟早会得到所需资源。
2、什么是进程?请说明进程与程序的区别与联系
答:定义1:可并发执行的程序在一个数据集合上的运行过程。
或
定义2:进程是由正文段、用户数据段以及系统数据段共同组成的一个执行环境。(正文段存放被执行的机器指令,用户数据段存放进程在执行时直接进行操作的所有数据,包括进程所使用的全部变量,系统
数据段存放程序的运行环境,是进程实体最重要的一部份。)
区别
(1)、程序是静态的概念,进程是动态的概念
程序是一组指令的有序集合,而进程是程序的一次运行活动,或者说它是程序的执行过程,它的着眼点是活动、运行、过程。它的活动性还表现在:它可以由系统“创建”而产生,由“撤消”而消亡,由“调度”而执行。
(2)、程序是永久的,进程是暂时存在的。
程序是指令的集合,以0,1代码的形存在于某种存储介质上,无论执行与否,它都存在着,而进程只有在执行程序时被创建之后才存在,程序执行完毕,进程就被撤消,就不存在了。
(3)、程序与进程的存在实体不同
程序就是代码构成的,进程是由程序代码,数据结构两部分构成。
联系
(1)、进程是程序的一次执行,进程总是对应一个特定的程序,执行程序的代码,一个进程至少要对应一个程序。
(2)、一个程序可以对应多个进程。同一个程序段可以在不同的数据集合上运行,因而构成者干个不同的进程。
3、什么是进程控制块?进程控制块起什么作用?
答:进程控制块是进程实体的一部分,是操作系统中最重要的记录型数据结构,PCB中记录了操作系统所需要的,用于描述进程情况及控制进程运行所需的全部信息。
4、什么是操作系统的内核?操作系统内核一般包括哪些功能?
答:操作系统内核位于计算机硬件之上,负责管理系统中的公共的大小资源,为用户程序提供系统调用接口,提供程序运行的进程机制。提供功能:进程管理,文件管理,设备管理,存储管理,作业管理。
5、操作系统会在什么情况下创建新进程?请说明进程创建的过程。
答:OS在下列情况下回创建进程:
用户登陆、作业调度、提供服务、应用请求。
OS调用创建新进程的原语,来创建进程,一般步骤:
(1)申请,空白PCB。
(2)为新进程分配资源。
(3)初始化进程控制块。
(4)将新进程插入就绪队列
6、设备驱动程序的功能是什么?编写设备驱动程序需要了解哪些硬件结构?
答:设备驱动程序的功能
(1)将接收到的抽象要求转换为具体要求;
(2)检查用户I/O请求的合法性,了解I/O设备的状态,传递有关参数,设置设备的工作方式;
(3)发出I/O命令,启动分配到的I/O设备,完成指定的I/O操作;
(4)及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理;
(5)对于设置有通道的计算机系统,驱动程序还应能够根据用户的I/O请求,自动地构成通道程序。需要了解磁盘正确操作需要的全部参数,包括扇区、磁道、柱面、磁头、磁头臂的移动等。
7、什么是进程调度?请例举三种常用的进程调度算法。引起进程调度的因素有哪些?
答:进程调度是记录系统中所有进程的执行状况,根据一定的调度算法,从就绪队列中选出一个进程来,把CPU分配给它。把CPU分配给进程,即把选中进程的进程控制块内有关的现场信息,如程序状态字、通用寄存器等内容送入处理器相应的寄存器中,从而让它占用。先进先出算法(FIFO)时间片轮转算法(RR)基于优先级的调度算法(HPF)多级队列反馈法
引起进程调度的因素有:
(1)进程正常终止或异常终止;
(2)正在执行的进程因某种原因被阻塞;
(3)在引入时间片的系统中,时间片用完;
(4)在抢占式中,就绪队列中某进程的优先权变得比当前正在执行的进程高,或有优先权更高的进程进入就绪队列。
8、什么是虚拟存储系统?有哪些存储管理技术支持虚拟存储系统的实现?
答:所谓虚拟存储器,是指仅把作业的一部分装入内存便可运行作业的存储器系统。具体地说,虚拟存储系统是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。
请求分页和分段请求的存储管理技术都可以实现虚拟存储管理系统。
9、什么是SPOOLing?SPOOLing系统由哪几部分构成?
答:SPOOLing是指联机情况下的同时外围操作。SPOOLing系统的组成;
(1)输入井和输出井
(2)输入缓冲区和输出缓冲区
(3)输入进程和输出进程
10、文件系统的功能是哪些?
答:文件系统应该具有对文件存储空间的管理,目录管理,文件的读写管理以及文件的共享与保护等功能
11、什么是死锁?造成死锁的原因是什么?
答:所谓死锁,是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进。
产生死锁的原因:(1)竞争资源;(2)进程推进顺序非法
12、画出具有三个基本状态的进程转换图。
13、什么是操作系统?操作系统具有什么作用?
答:操作系统是一组控制和管理计算机硬件和软件资源、合理地对各类作业进行调度,以及方便用户的程序的集合。
作用:用户与计算机硬件系统之间的接口;计算机系统资源的管理者。
14、什么是实时计算?举两个实时系统的例子。
15、画出I/O软件的构成图并说明各部分的主要功能。
16、说明时钟中断产生的过程和时钟中断处理程序的主要功能。
17、在分页存储管理中,若CPU访问的逻辑单元为a,则在进行地址变换时,先由分页地址变换机构将
a分为页号和页内偏移地址两部分,然后由硬件检索机构搜索页表得到a所在的物理块号,请说明由硬件检索机构搜索页表得到a所在的物理块号的原理。
18、操作系统进行进程调度的时机是什么?什么是时间片轮转的调度算法?
19、引起进程调度的因素有哪些?请说明什么是多级队列调度算法。
答:引起进程调度的因素有:
正在运行的时间片用完;进程被阻塞;进程运行结束;有高优先权的进程到来;
多级队列调度是根据作业的性质或类型的不同将就绪进程队列再分为若干个独立子队列,各个作业固定地分属于一个队列,每个队列采用一种算法,不同的队列可采用不同的调度算法。
四、若给定一个逻辑地址空间的地址为A,系统页面大小为L,请写出A所对应的页号P和页内偏移地址W的运算式;说明分页存储管理的地址映射过程。
答:P=INT[A/L];d=[A]MOD L
分页存储的地址映射过程:
(1)由硬件将逻辑地址分为页号和页内位移两部分;
(2)系统根据页表寄存器中的页表长度检查这个页号是否越界,越界产生中断;
(3)根据页号查页表得到相应的物理块号;
(4)由硬件将物理块号和页面偏移相加得到实际地址。
五、(1)为什么管程能实现进程对临界资源的互斥访问?
(2)利用管程实现生产者-消费者问题。
答:(1)管程的思想是将变量和对它们的操作集中在一个模块中,可以单独编译,外部只能通过调用管程的某些函数来间接访问变量。管程有进程等待队列和相应的等待和唤醒操作。当一个进入管程的进程等待时,就释放管程的互斥使用权,当已进入管程的一个进程唤醒另一个进程时,两者必须有一个退出,这样就实现了进程对临界资源的互斥访问。
(2)
管程:
buffer=MODULE
notfull,notempty:condition;
count,in,out: integer;
buf:array[0..k-1]of item_type;
define deposit,fetch;
use monitor.enter,monitor.leave,monitor.wait,monitor.signal;
procedure deposit(item);
{
if(count=k) monitor.wait(notfull);
buf[in]=item;
in:=(in+1)mod k;
count++;
monitor.signal(notempty);
}
procedure fetch(item);
{
if(count=0) monitor.wait(notempty);
item=buf[out];
in:=(in+1)mod k;
count--;
monitor.signal(notfull);
return(item);
}
{
count=0;
in=0;
out=0;
}
进程:
producer,consumer producer(生产者进程); Item_Type item;
{
while(true)
{
produce(&item); buffer.enter( );
buffer.deposit(item); buffer.leave( );
}
}
consumer(消费者进程); Item_Type item;
{
while(true)
{
buffer.enter( );
item=buffer.fetch( ); buffer.leave( ); consume(&item);
}
}
六、在一个页式存储管理系统中,页表内容如下所示:
若页的大小为2K,则地址转换机构将逻辑地址4116转换成的物理地址是什么。(请写明计算过程)。答:
页号p=INT(0/2048)=0…
页内偏移w=mod(0/2048) 0
以页号为索引搜索页表得到0号页面所在的物理块号为2
物理地址=物理块号*块大小+页内偏移=2*(2*1024)+0=4096
七、写出使用记录型信号量的wait(s)和signal(s)操作的实现,说明与使用整型信号量相比,使用记录型信号量有什么优点。
procedure wait(s)
var s:semaphore
begin
s.value:=s.value-1;
if s.value<0 then
block(s.L)
end.
procedure signal(s)
var s:semaphore
begin
s.value:=s.value+1;
if s.value<=0 then
wakeup(s.L)
end.
记录型信号量解决生产者-消费者同步问题的算法:
设置一个互斥信号量,mutex用于实现对公共缓冲池的互斥访问,初值为1。设置两个同步信号量,分别表示可用资源数。
empty:表示空缓冲区数,初值为n
full:表示装有产品的缓冲区数,初值为0,(一个缓冲区中放一个产品)
Producer:
begin
repeat
…
produce an item in nextp;
wait(empty);
wait(mutex);
buffer(in):=nextp;
in:=(in+1)mod n
signal(mutex);
signal(full);
until false(3分)
Consumer:
begin
repeat
…
wait(full);
wait(mutex);
nextc:=buffer(out);
out:=(out+1)mod n;
signal(mutex);
signal(empty);consume item in nextc; until false;