1、在现代操作系统中引入了( ),从而使并发和共享成为可能。 A.单道程序 B. 磁盘 C. 对象 D.多道程序
2、()操作系统允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。
A.网络 B.分布式 C.分时 D.实时 3、从用户的观点看,操作系统是( )。
A. 用户与计算机硬件之间的接口 B.控制和管理计算机资源的软件 C. 合理组织计算机工作流程的软件 D.计算机资源的的管理者 4、当CPU处于管态时,它可以执行的指令是( )。
A. 计算机系 统中的全部指令 B. 仅限于非特权指令 C. 仅限于访管指令 D. 仅限于特权指令
5、用户在程序中试图读取某文件的第100个逻辑块时,使用操作系统提供的( )接口。 A. 系统调用 B.图形用户接口 C.原语 D.键盘命令 6、下列几种关于进程的叙述,( )最不符合操作系统对进程的理解?
A.进程是在多程序并行环境中的完整的程序。 B.进程可以由程序、数据和进程控制块描述。 C.线程是一种特殊的进程。 D.进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。 7、当一个进程处于( )状态时,称其为等待(或阻塞)状态。
A. 它正等待中央处理机 B. 它正等待合作进程的一个消息 C. 它正等待分给它一个时间片 D. 它正等待进入内存
8、一个进程释放一种资源将有可能导致一个或几个进程( )。
A.由就绪变运行 B.由运行变就绪 C.由阻塞变运行 D.由阻塞变就绪 9、下面关于线程的叙述中,正确的是( )。
A.不论是系统支持线程还是用户级线程,其切换都需要内核的支持。 B.线程是资源的分配单位,进程是调度和分配的单位。
C.不管系统中是否有线程,进程都是拥有资源的独立单位。 D.在引入线程的系统中,进程仍是资源分配和调度分派的基本单位。
10、设有3个作业,它们同时到达,运行时间分别为T1、T2和T3,且T1≤T2≤T3,若它们在单处理机系统中按单道运行,采用短作业优先调度算法,则平均周转时间为( )。 A. T1+T2+T3 B. (T1+T2+T3)/3 C. T1+T2/3+2*T3/3 D.T3/3+2*T2/3+T1 11、在下面的I/O控制方式中,需要CPU干预最少的方式是( )。
A.程序I/O方式 B.中断驱动I/O控制方式 C.直接存储器访问DMA控制方式 D.I/O通道控制方式
12、有m个进程共享同一临界资源, 访问,则信号量的变化范围是( )。
A.1至 –(m-1) B.1至m-1 C.1至–m D.1至m
13、对资源编号,要求进程按照序号顺序申请资源,是破坏了死锁必要条件中的哪一条?( )
A. 互斥 B. 请求与保持 C. 不可剥夺 D. 循环等待 14、某系统采用了银行家算法,则下列叙述正确的是( )。
A.系统处于不安全状态时一定会发生死锁 B.系统处于不安全状态时可能会发生死锁
C.系统处于安全状态时可能会发生死锁 D.系统处于安全状态时一定会发生死锁
15、CPU输出数据的速度远远高于打印机的打印速度,为解决这一矛盾,可采用( ) A.并行技术 B.缓冲技术 C.虚拟存储器技术 D.覆盖技术 16、下面最有可能使得高地址空间成为大的空闲区的分配算法是( )。
A.首次适应法 B.最佳适应法 C.最坏适应法 D.循环首次适应法 17、在下面关于虚拟存储器的叙述中,正确的是( )。
A.要求程序运行前必须全部装入内存且在运行过程中一直驻留在内存 B.要求程序运行前不必全部装入内存且在运行过程中不必一直驻留在内存 C.要求程序运行前不必全部装入内存但是在运行过程中必须一直驻留在内存 D.要求程序运行前必须全部装入内存但在运行过程中不必一直驻留在内存
18、采用段式存储管理的系统中,若地址用24位表示,其中8位表示段号,则允许每段的最大长度是( )。
A.224 B.216 C.28 D.232
19、在可变式分区分配方案中,某一作业完成后,系统收回其主存空间,并与相邻空闲区合并,为此需修改空闲区表,造成空闲区数减1的情况是( )。
A.无上邻空闲区,也无下邻空闲区 B.有上邻空闲区,但无下邻空闲区 C.有下邻空闲区,但无上邻空闲区 D.有上邻空闲区,也有下邻空闲区 20、MS-DOS系统中的磁盘文件物理结构属于( )。
A. 连续文件 B. 链接文件 C. 索引文件 D. 散列文件 二、填空题
21、 操作系统是计算机系统中的一个___系统软件_______,它管理和控制计算机系统中的___资源_________。
22、 进程主要由__程序_____、___数据_____和_____PCB_______三部分内容组成,其中____PCB____是进程存在的惟一标识,而_____数据_____部分也可以为其它进程共享。 23、在一个具有2个处理器的操作系统中共有n 个进程,在不考虑进程状态过渡的情况下,阻塞进程队列中最多有__n___ 个进程。某一时刻,处于执行状态的进程为0个,且
当前处理机空闲,处于就绪状态的进程有___n____ 个。
24、当处理器空闲时,调度程序从 __就绪_____ 进程队列中选择一个进程给其分配CPU,处于____阻塞________状态的进程是不会获得CPU的。
25、在响应比最高者优先的作业调度算法中,当各个作业等待时间相同时,运行时间短_____ 的作业将得到优先调度;当各个作业要求运行的时间相同时,___等待时间长___ 的作业得到优先调度。
26、某系统中共有10台磁带机被 m 个进程竞争,每个进程最多要求3台磁带机,那么当m的取值为_不超过4的整数___时,系统不会发生死锁。
27、 设有8页的逻辑空间,每页有1024字节,它们被映射32块的物理存储区中,那么,逻辑地址的有效位是__13________位,物理地址至少是_____15_____位。
28、 在一个分页存储管理系统中,页长为4KB,
某一作业的页表如图1所示,虚拟地址3000对应的物理地址为
12K+3000=15288。
29、虚拟设备是通过__ SPOOLING技术把独占设备变成能为若干用户____ _的设备。
页号 0 1 2 物理块号 3 4 6 图1 作业页表
30、已知某文件采用串联结构,它由10个逻辑记录组成,每个逻辑记录刚好存放于一个磁盘块上,都为1024字节,并依次存放在10、61、32、75、87、98、46、37、33和11号磁盘块上。若要存取文件相对于文件头偏移7654字节处的信息,则要访问的磁盘块块号为____37_____,块内的偏移量是____486________。 31、什么是进程?什么是线程?进程与线程有何区别? 答:
(1)进程是具有独立功能程序在某个数据集合上的一次执行过程。(2分) (2)线程是进程内的一个执行实体或执行单元。(2分)
(3)进程和线程的区别:(a)不同进程的地址空间是独立的,而同一进程内的线程共享同一地址空间。一个进程的线程在另一个进程内是不可见的。(b) 在引入线程的操作系统中,进程是资源分配和调度的单位,线程是处理机调度和分配的单位,资源是分配给进程的,线程只拥有很少资源,因而切换代价比进程切换低。(2分)
说明:论述条理清晰,包含上述要点,本题即可得满分
32、什么是死锁?产生死锁的原因和必要条件是什么? 答:
(1)在多道程序系统中,当一组进程中的每个进程均无限期地等待被改组进程中的另一进程所占有且永远不会释放的资源,此时的系统处于死锁状态,简称死锁。(2分)
(2)死锁产生的原因:(a)系统提供的资源有限;(b)进程推进顺序不当。(2分)
(3)产生死锁的必要条件:互斥条件、不可剥夺条件、请求和保持条件、循环等待条件。(2分)
说明:论述条理清晰,包含上述要点,本题即可得满分
33、说明作业调度,中级调度和进程调度的区别,并分析下述问题应由哪一级调度程序负责。
(1) 在可获得处理机时,应将它分给哪个就绪进程; (2) 在短期繁重负载下,应将哪个进程暂时挂起。 答:
(1) 作业调度用于决定把外存中处于后备队列中的哪些作业调入内存,并为它们创建进程,分配资源,然后将新创建进程插入就绪队列;中级调度负责将内存中暂时不具备运行条件的进程换到外存交换区存放,但内存空闲时,又将外存中具备运行条件的进程重新换入内存;进程调度决定将处理机分配给就绪进程队列的哪个进程。(4分) (2)进程调度、中级调度(2分)
说明:论述条理清晰,包含上述要点,本题即可得满分
四、综合题(本大题共2小题,第1题9分,第2题13分,计22分)
34、(9分)在一个请求分页系统中,假设系统分配给某进程的物理块数为3,开始时内存为空,执行如下访问页号序列:
1,2,3,4,1,2,5,1,2,3,4,5
试说明采用先进先出(FIFO) 、最近最少使用(LRU)和最佳置换算法(OPT)进行页面置换时,缺页次数各是多少? 答:(1)FIFO: 9次 (3分)
(2)LRU:10次 (3分) (3)OPT:7次 (3分)
说明:没有计算过程,本题不得分。如果结果有误,根据步骤酌情给分。
35、(13分)如图2所示,系统中有三个进程GET、PRO和PUT,共用两个缓冲区BUF1和BUF2。假设BUF1中最多可放11个信息,现已放入了两个信息;BUF2最多可放5个信息。GET进程负责不断地将输入信息送入BUF1中,PRO进程负责从BUF1中取出信息进行处理,并将处理结果送到BUF2中,PUT进程负责从BUF2中读取结果并输出。试写出正确实现GET、PRO、PUT的同步与互斥的算法(要求:(1)用类C语言描述,条理清楚,注释恰当;(2)信号量原
语统一使用wait和signal。)
GET PRO PUT BUF1 BUF2 图2 进程合作
答:
semaphore
empty1=9;//空buf1的数目 full1=2; //有数据的buf1的数目 empty2=5; //空buf2的数目 full1=0; //有数据的buf2的数目 mutex1=mutex2=1; //互斥信号量 int main(){
Cobegin //并发开始 GET(); PRO(); PUT();
Coend //并发结束 return 0; } (3分) //GET进程 void GET(){ while(1) { …
wait(empty1); wait(mutex1); 将信息送入buf1; signal(mutex1); signal(full1); … }
} (3分) //PRO进程 void PRO(){ while(1) {
wait(full1); wait(mutex1); 从buf1中取出信息; signal(mutex1);
signal (empty1); wait(empty2); wait(mutex2); 将信息送入buf2; signal(mutex2); signal(full2); } } (4分) //PUT进程 void PUT(){ while(1) {
wait(full2); wait(mutex2); 从buf2中取出信息; signal(mutex2); signal (empty2); } (3分)
因篇幅问题不能全部显示,请点此查看更多更全内容