当前位置:首页 > 操作系统习题与答案2015
第 25 页 共 25 页
6.在段页式虚拟存储系统中,不同进程之间是如何实现程序共享的?
在系统内设置有系统段表,用户段表指向系统段表,系统段表内有当前共享的用户数。当用户进程调入一个程序段之前,先查找系统段表,如果所需段存在,则将共享用户数加一,在将此段登记在用户进程段表中。当进程退出时,共享计数减一,最后一个用户删除共享代码段。
7.试比较内存管理和外存管理的异同点.
答:主要任务:内存管理的主要任务是为多道程序的运行,提供良好的环境;而外存管理的主要任务则是为文件提供存储空间。
基本功能:内存管理的基本功能包含了内存空间的分配、回收、内存保护、对换、内存扩充等方面;而对外存管理的基本功能则只是对外存空间的分配和回收。
分配方式:它们都可采用连续分配或离散分配方式,且都以离散分配方式为主。
分配算法或机制:对于连续分配方式,内存与外存管理中的分配和回收算法类似,主要有首次适应算法、循环首次适应算法等;在离散分配方式中,两者采用的机制不同,内存管理主要是利用页(段)表;而在外存管理中,则主要利用文件分配表FAT。
8.SPOOLing的含义是什么?试述SPOOLing系统的特点、功能以及控制过程。
答:SPOOLing是Simultaneous Peripheral Operation On-Line (即外部设备联机并行操作)的缩写,它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。
SPOOLing技术是在通道技术和多道程序设计基础上产生的,它由主机和相应的通道共同承担作业的输入输出工作,利用磁盘作为后援存储器,实现外围设备同时联机操作。 SPOOLing系统由专门负责I/O的常驻内存的进程以及输入井、输出井组成;它将独占设备改造为共享设备,实现了虚拟设备功能。
9.在生产者—消费者问题中,能否将生产者进程的wait(empty)和wait(mutex)语句互换,为什么?
不能。(2分)
因为这样可能导致系统死锁。当系统中没有空缓冲时,生产者进程的wait(mutex)操作获取了缓冲队列的控制权,而wait(empty) 导致生产者进程阻塞,这时消费者进程也无法执行。(3分)
10.进程的基本状态有哪些?这些状态之间是如何转换的?
进程的基本状态有:就绪,阻塞,执行三种。(2分) 就绪到执行:进程调度 执行到就绪:时间片完
执行到阻塞:I/O请求或等待事件发生
阻塞到就绪:I/O完成或事件已发生 (3分)
11.什么是快表?它在地址转换中起什么作用?
快表是一个高速、具有并行查询能力的联想存储器,用于存放正运行的进程的当前页号和块号,或者段号和段起始地址。(2分)
加入快表后,在地址转换时,首先在快表中查找,若找到就直接进行地址转换;未找到,则在主存页表继续查找,并把查到的页号和块号放入联想存储器中。快表的命中率很高,有效地提高了地址转换的速度。 (3分)
第 25 页 共 25 页
第 26 页 共 26 页
12.什么是设备独立性,它是如何实现的?
设备独立性即应用程序独立于使用的物理设备,在应用程序中使用逻辑设备名称来请求使用某类设备。系统在执行时,是使用物理设备名称。(3分)
要实现设备独立性必须由设备独立性软件完成,包括执行所有设备的公有操作软件提供统一的接口,其中逻辑设备到物理设备的映射是由逻辑设备表LUT完成的。 (2分)
13.文件的物理结构有哪几类,那种结构能支持大型文件?
文件的物理结构有:顺序文件、链接文件和索引文件。(4分) 其中索引文件能支持大型文件。(1分)
14.试说明和比较几种文件共享的方法
? 绕弯路法: ? 连访法:
? 利用基本文件目录实现文件共享: ? 基于索引节点的共享方法: ? 利用符号链实现文件共享:
15.处理机调度分为哪三级?各自的主要任务是什么?
答:作业调度:从一批后备作业中选择一个或几个作业,给它们分配资源,建立进程,挂入就绪队列。执行完后,回收资源。
进程调度:从就绪进程队列中根据某个策略选取一个进程,使之占用CPU。
交换调度:按照给定的原则和策略,将外存交换区中的进程调入内存,把内存中的非执行进程交换到外存交换区中。
16.什么是高级调度、中级调度和低级调度?
答:作业调度:从一批后备作业中选择一个或几个作业,给它们分配资源,建立进程,挂入就绪队列。执行完后,回收资源。
进程调度:从就绪进程队列中根据某个策略选取一个进程,使之占用CPU。
交换调度:按照给定的原则和策略,将外存交换区中的进程调入内存,把内存中的非执行进程交换到外存交换区中。
19.什么是死锁?产生死锁的四个必要条件是什么?
死锁:当某进程提出资源申请后,使得系统中一些进程处于无休止的阻塞状态,在无外力作用下,永远不能再继续前进。
产生死锁的必要条件:互斥条件:某段时间内某资源只能由一个进程使用。不剥夺条件:资源在未使用完前,不能被剥夺,由使用进程释放。部分分配(请求和保持):进程因请求资源而阻塞时,对已分配给它的资源保持不放。环路条件:发生死锁时,有向图必构成一环路。
20.什么是内存分页存储管理?它有什么特点?
分页存储管理是将各进程的地址空间分成大小相等的页,把内存的存储空间也分成与页大小相同的片,称为物理块。在分配存储空间时,以块为单位来分配。
优点:有效解决存储器的零头问题,能在更高的程度上进行多道程序设计,从而相应提高了存储器和CPU 的利用率。
缺点:采用动态地址变换为增加计算机成本和降低CPU 的速度。表格占内存空间,费时来管理表格。存在页内碎片。作业动态的地址空间受内存容量限制。
第 26 页 共 26 页
第 27 页 共 27 页
21.说明进程的结构、特征和基本状态。
答:结构:PCB (进程控制块)+程序+数据集合。 特征:动态性、并发性、独立性、制约性、结构性。 基本状态:就绪态、执行态、等待态。
25.在原语执行期间,是否可以响应中断?为什么?
答:原语执行期间可以响应中断,只是不能进行进程切换。
26.不同用户的不同任务之间的进程是有临界区?为什么?请举例说明。
答:完全可能有临界区,如打印程序是可以由不同用户的不同进程使用,但是只能有一个进程在某一时刻进入。
27.文件目录有何作用?
答:实现文件目录到物理地址的转换。
28.什么是文件的逻辑结构和物理结构?
文件的逻辑结构(文件的组织):从用户角度看到的文件的全貌,也就是它的记录结构,包括流式文件、顺序文件、索引文件和索引顺序文件。 文件的物理结构(文件的存储结构):文件在外存上的存储组织形式,包括连续文件、串联文件和索引文件。
29.请说明系统利用缓冲池进行输入操作的过程。(7分) 收容输入:数据从设备输入到缓冲池
hin = get-buf (emq); 数据装入hin中; put-buf (inq, hin):;
提取输入:数据从缓冲池输入到内存
sin = get-buf (inq); 数据从sin中提走; put-buf (emq, sin);
30.什么是虚拟存储器,它有什么特点?
答:虚拟存储器是一种存储管理技术,用以完成用小的内存实现在大的虚空间中程序的运行工作。它是由操作系统提供的一个假想的特大存储器。但是虚拟存储器的容量并不是无限的,它由计算机的地址结构长度所确定,另外虚存容量的扩大是以牺牲CPU工作时间以及内、外存交换时间为代价的。
31.比较基于索引节点和基于符号链的文件共享方法。(8分) 答:基于索引节点的文件共享是在文件的目录中填上需要共享文件的索引节点的序号,在索引节点中加上用户计数。基于符号链的文件共享是建立一种特殊的链接文件,内容为需要共享的文件的路径和名字,访问该文件时,根据路径找到共享的文件。基于索引节点的文件共享访问速度快,但可能使索引节点指针悬空;基于符号链的文件共享安全,但访问速度慢,要占用索引节点。
第 27 页 共 27 页
第 28 页 共 28 页
六、综合应用题
1. 在一个采用页式虚拟存储管理的系统中,有一用户作业,它依次要访问的字地址序列
是:115,228,120,88,446,102,321,432,260,167,若该作业的第0页已经装入主存,现分配给该作业的主存共300字,页的大小为100字,请回答下列问题: (1)按FIFO调度算法将产生 次缺页中断,依次淘汰的页号为 , , ,缺页中断率为 。
(2)按LRU调度算法将产生 次缺页中断,依次淘汰的页号为 , , , ,缺页中断率为 。
2. 分页式存储管理器的逻辑地址分成两部分: 和 。其中前者确定了
主存的分块个数,后者确定了各块的大小。假定逻辑地址的前一部分为5位,后一部分为10位,则块的个数为 ,块的大小为 。
10.系统运行有三个进程:输入进程、计算进程和打印进程,它们协同完成工作。输入进程和计算进程之间共用缓冲区buffer1,计算进程和打印进程之间共用缓冲区buffer2。输入进程接收外部数据放入buffer1中;计算进程从buffer1中取出数据进行计算,然后将结果放入buffer2;打印进程从buffer2取出数据打印输出。
用算法描述这三个进程的工作情况,并用wait和signal原语实现其同步操作。(共8分) 解:(共8分)
解答:输入进程、计算进程和打印进程之间的同步问题描述如下:
var:mutex1,mutex2,empty1,empty2,full1,full2:=1,1,1,1,0,0; InP:begin repeat
wait(empty1); wait(mutex1);
input a data from keyboard;
Add to buffer1; signal(mutex1); signal(full1); until false end
CalP:begin repeat
wait(full1); wait(mutex1);
Take a data form buffer1; Add to ch1; signal(mutex1); signal(empty1); calculate ch1; wait (empty2);
第 28 页 共 28 页
共分享92篇相关文档