12级《实用操作系统》A卷及答案.docx
《12级《实用操作系统》A卷及答案.docx》由会员分享,可在线阅读,更多相关《12级《实用操作系统》A卷及答案.docx(9页珍藏版)》请在冰豆网上搜索。
12级《实用操作系统》A卷及答案
北京信息科技大学
信息管理学院
2013-2014
(2)期末考试试卷(A卷)
课程名称:
《实用操作系统》
考试日期:
2014年7月2日考试时间:
考试地点:
考试形式:
(闭卷)
班级:
学号:
姓名:
成绩:
题号
一
二
三
四
五
六
总分
得分
教师签字
一、判断题(本题满分10分,每题1分,共含10道小题。
)
(填答案处,答案不填在此处不给分。
正确,错误)
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
1.创建进程时,需要在内存中建立程序副本。
2.操作系统通过PCB记录文件在磁盘上的存储位置。
3.操作系统的内核通常运行在核心态,用户程序在用户态下运行。
4.现代操作系统,阻塞、挂起、排队,都是针对线程的的,而不是针对整个进程的。
5.在解决互斥问题时,V操作用于请求一个资源,P操作用于释放一个资源。
6.在页式存储管理机制下,操作系统为一个进程分配的内存通常是连续的。
7.在虚拟存储器技术下,操作系统会将一部分程序页面调入内存(称为主存),而在硬盘上开辟一个空间(称为辅存)存放剩余的页面。
8.在虚拟存储管理中,可变分配、局部置换的置换策略是:
当某进程待访问的页面不在主存,如果需要将主存中的某页置换到辅存时,可以在主存中选择任意进程的页换出。
9.操作系统安排文件向磁盘上存储时,连续的文件块可能被存储在磁盘上不连续的磁盘物理块中。
10.信号量初值可以为负值。
二、填空题(本题满分10分,每空1分,共含10道小题)
(填答案处,答案不填在此处不给分)
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
P
V
阻塞态
IP
DMA
装入内存
被执行
10
2
页表
1.为了实现互斥,程序中的临界区需要使用[1]函数和[2]函数在两端进行控制。
2.如果操作系统在运行某个进程时发现该进程申请访问一个已被占用的外设资源时,会阻塞该进程,把该进程的状态由运行态改为[3]。
3.CPU中负责指明下一跳待执行指令的寄存器是[4]。
4.不经过CPU而直接在外部设备与内存之间进行数据传输的模式,被称为[5]访问模式。
5.静态地址重定向是在程序[6]的时候进行的,动态地址重定向是在程序指令[7]的时候进行的。
6.UNIXSystemV系统采用混合分配方式记录文件在磁盘上的位置。
其文件目录表中的索引节点能直接索引[8]个磁盘块。
7.在一级页式存储管理方案中,为了获得一条指令或数据,需要访问内存[9]次。
第一次访问[10],第二次访问指令或数据所在的内存。
三、单项选择题(本题满分10分,每题1分,共含10道小题)
(填答案处,答案不填在此处不给分)
1
2
3
4
5
6
7
8
9
10
C
A
C
D
A
A
C
B
B
D
1.在内存管理中,逻辑页号与物理页号的映射关系存储在。
A.链表中B.内存分配表中
C.页表中D.索引表中
2.原语最为完成一定功能的程序,它与一般程序的区别在于。
A.程序中的所有操作必须一次执行完成B.程序中的所有操作应该可以被回朔
C.原语在执行中可以被中断D.核心态的程序都必须用原语实现
3.在内存管理的方案中,内存块的大小。
A.不能大于程序页的大小B.需要大于程序页的大小
C.需要等于程序页的大小D.不能等于程序页的大小
4.时间片轮转算法(RR),是。
A.一种磁盘寻道算法B.一种内存剩余空间计算方法
C.一种阻塞队列排队算法D.一种进程调度算法
5.在计算机主板中,网络、USB、硬盘等接口控制器通常。
A.设计在南桥芯片中B.设计在北桥芯片中
C.设计为独立电路芯片组中D.设计在中断控制器中
6.在虚拟存储管理中,可变分配、局部置换的置换策略是:
当某进程待访问的页面不在主存,如果需要将主存中的某页置换到辅存时,。
A.需要在该进程占用的主存中选择置换页B.该进程占用的主存大小不可变
C.可以在主存中选择任意进程的页换出D.该进程占用的辅存大小不可变
7.下面哪个函数完成V()函数的功能
A.CreateSemaphore()B.WaitForSingleObject()
C.ReleaseSemaphore()D.CloseHandle()
8.对于记录型信号量,在执行一次V操作时,信号量的值应当
A.不变B.加1
C.减1D.加指定数值
9.将一个程序创建为进程,需要
A.为该进程分配磁盘空间B.在内存中建一个该程序的副本
C.扩大可用的内存容量D.为该进程提供分区表
10.为了对4G内存空间的计算机寻址,需要设计
A.16位的地址总线。
B.20位的地址总线。
C.24位的地址总线。
D.32位的地址总线。
四、计算题(本题满分24分,每题8分,共含3小题)
1.(本题8分)设页式存储管理系统在2GB大小的内存管理中,内存块大小设定为8K。
(1)试写出地址结构格式(页号寻址位数、页内寻址位数)。
(2分)
(2)若某进程大小为40K,该进程应被分为多少页(2分)
(3)若该进程被分配到第3115块开始的连续内存块中,试画出页表(4分)
解:
(1)31=18+13
(2)5
(3)0-3115、1-3116、2-3117、3-4118、4-3119
2.(本题8分)假设操作系统当前对25个并行运行的进程进行调度。
每个进程分配的时间片为20ms,操作系统每次进行进程切换时需要耗费。
(1)试计算操作系统在此场景下为调度CPU完成多进程并行切换所花费的时间占系统整个时间的比例。
(4分)
(2)试根据计算结果描述多进程并行运行的代价是什么。
(4分)
解:
(1)/(20+=%
(2)有%的CPU时间消耗在进程切换调度控制上。
3.(本题8分)在UNIX操作系统采用的索引节点方式记录文件在磁盘的存储位置方法中,每个索引节点有13个地址项。
其中前10个地址项用于直接寻址,后3个为间接寻址的索引块指针。
假如盘块的大小为4K,试计算:
(1)直接索引寻址最大支持的多大的文件(2分)
(2)一级间接索引寻址最大支持的多大的文件(3分)
(3)二级间接索引寻址最大支持的多大的文件(3分)
解:
(1)4KB
(2)4Kx4K+4K=16MB+4K
(3)4Kx4Kx4K+4Kx4K+4K=64Gb+16MB+4K
五、应用题(本题满分46分,共含6小题)
1.(本题6分)进程控制块PCB是操作系统进行进程管理和内存管理中的重要数据结构。
试:
(1)写出进程控制块中记录的主要内容。
(2分)
(2)描述进程控制块在进程管理中的作用。
(2分)
(3)描述进程控制块在内存管理中的作用。
(2分)
解:
(1)进程名等基本信息、状态、页表基址、断点和现场......指针。
(2)感知进程的状态、暂存断点和现场、动态地址重定向、队列等。
(3)记录页表基址,在销毁进程时释放所占用的内存。
2.(本题6分)设有5个进程之间有下图所示的同步关系。
试在这5个进程中用P()、V()函数控制它们之间的同步。
解:
设P1对P2的同步控制信号量为s1、P2对P3的信号量为s2、P2对P4的信号量为s3、P2对P5的信号量为s4、P3对P4的信号量为s5
Semaphores1=s2=s3=s4=s5=0;
P1{…..code…..V(s1);}
P2{P(s1);…..code…..V(s2);V(s3);V(s4)}
P3{P(s2);…..code…..V(s5);}
P4{P(s3);P(s5);…..code…..}
P5{P(s4);…..code…..}
3.(本题8分)在多用户并发访问情况下,服务器为每个用户连接建立一个进程。
为了保证数据库数据的一致性,要求对数据库读写操作的限制条件是:
(1)允许任意多的进程对数据库同时读访问;
(2)一次只允许一个写进程对数据库进行写访问;
(3)如果有一个进程正在进行写数据库操作,禁止任何读进程进行读操作。
试写出数据库读进程和写进程的示意程序代码,通过信号量和P、V函数实现上述读写限制。
解:
参见教材P83读者-写者问题
4.(本题8分)假设操作系统提供Create()、Read()、Write()、Close()等API函数,使用户态下的用户程序通过这些API函数访问外部设备。
(1)请画图并描述操作系统如何进行设备访问控制,避免外部设备访问冲突的(4分)
(2)请画图并描述操作系统如何使用虚拟设备技术(SPOOLing)提高设备访问效率的。
(4分)
解:
(1)
BIOS在创建操作系统进程时将操作系统设置为核心态,使操作系统可以直接访问硬件。
操作系统将各个IO驱动程序设置为核心态。
在创建应用程序进程时,将所有用户进程设置为用户态。
由于CPU拒绝执行用户态进程中访问IO的指令和调用核心态进程的指令,用户进程不能够直接访问外设或调用外设驱动程序,只能通过调用操作系统提供的API函数访问外设。
用户进程访问外设时,需要使用create()API函数向操作系统的设备管理进程申请,获得设备访问句柄后才能继续调用write()或read()API函数来访问外设。
当用户进程申请访问某个外设,而该外设正被其它进程占用时,操作系统的设备管理进程就会阻塞该进程,直到外设被其它进程释放。
因此,避免了进程间外部设备的访问冲突。
(2)
采用虚拟设备技术(SPOOLing)的操作系统,一旦有用户进程申请访问某个外设,操作系统设备管理进程就创建一个SP线程来虚拟要访问的外部设备。
用户进程将把访问外设的任务交给SP线程来完成。
SP线程将执行外设申请、外设访问的操作。
如果外设被其它进程占用,操作系统将阻塞SP线程,而不是用户进程。
这种外设访问的模式可以大大提高外设访问和用户进程的执行效率。
5.(本题8分)某针对4G内存空间的操作系统采用一级页式存储管理方案,设计内存块(页)的大小为8K。
(1)试画出该操作系统划分页面的地址空间(2分)
(2)设一个需要32K内存规模的进程,被连续存放在34821、34822、34823、34824内存块中。
试画出内存分配后操作系统创建的页表。
(2分)
(3)试画出实现动态地址重定向的方案示意图。
(要求在画出各步地址计算、传输的位数,画出CPU中的基址寄存器)。
(2分)
(4)试说明CPU中的基址寄存器在动态地址重定向中的作用。
(2分)
(本题可以考试后再学习。
关于内存管理的复习请参考本章的习题)
6.(本题10分)阅读下列程序,
(1)请对程序中各条语句的功能进行注释。
(6分)
HANDLEhHonk1,hHonk2;//开辟线程1和线程2的句柄变量。
HANDLEhHonkSemaphore;//开辟信号量句柄变量。
DWORDthreadID;//开辟线程编号变量threadID。
voidHonk1Thread()
{
WaitForSingleObject(hHonkSemaphore,INFINITE);//注释:
P函数,如果有其它线程正在播
放音乐,阻塞本进程。
printf("\nThread1isworking\n");
mciSendString("playC:
\\",NULL,0,NULL);//注释:
调用API函数播放一个音乐。
MessageBox(NULL,"Pressanykeytostopmusic","musicwindow",0);
//注释:
弹出提示窗口,等待用户按任意
键继续执行后面的指令。
mciSendString("closeC:
\\",NULL,0,NULL);//注释:
关闭音乐播放
ReleaseSemaphore(hHonkSemaphore,1,NULL);//注释:
V函数,如果有其它线程被阻塞,
唤醒该线程程。
(如果hHonkSemaphore信号量的阻塞队列中有被阻塞的线程或进程,唤醒头一个线程或进程)
}
voidHonk2Thread()
{
WaitForSingleObject(hHonkSemaphore,INFINITE);//注释:
P函数,如果有其它线程正在播
放音乐,阻塞本进程。
printf("\nThread2isworking\n");
mciSendString("playC:
\\",NULL,0,NULL);
MessageBox(NULL,"Pressanykeytostopmusic","musicwindow",0);
mciSendString("closeC:
\\",NULL,0,NULL);
ReleaseSemaphore(hHonkSemaphore,1,NULL);//注释:
V函数,如果有其它线程被阻塞,
唤醒该线程程。
}
voidmain(void)
{
hHonkSemaphore=CreateSemaphore(NULL,1,1,"honkSemaphore");
//注释:
创建信号量honkSemaphore,初
值为1,用于线程1和线程2的互斥。
hHonk1=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)Honk1Thread,0,0,&threadID);//注释:
创建线程1
hHonk2=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)Honk2Thread,0,0,&threadID);//注释:
创建线程2
MessageBox(NULL,"PressEntertostopMainFunction","Mainwindow",0);
CloseHandle(hHonk1);//注释:
关闭线程1
CloseHandle(hHonk2);//注释:
关闭线程2
}
(2)描述下列程序的用途和运行方式。
(4分)
本程序创建两个播放音乐的线程,由这两个线程分别播放音乐。
该程序设置两个线程处于互斥的运行方式。