- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统试题集
试题一
1、判断题(10小题,每小题1分,共10分)
选择题(10小题,每小题2分,共20分)
填空题(10空,每空2分,共20分)
简答题(4小题,每小题5分,共20分)
1.进程调度中可抢占和非抢占两种方式,哪一种系统的开销更大?为什么?
(1)可抢占式会引起系统的开销更大。(2)可抢占式调度是严格保证任何时刻,让具有最高优先数(权)的进程占有处理机运行,因此增加了处理机调度的时机,引起为退出处理机的进程保留现场,为占有处理机的进程恢复现场等时间开销增大。
2.一个含五个逻辑记录的文件,系统把它以链接结构的形式组织在磁盘上,每个记录占用一个磁盘块,现要求在第一记录和第二记录之间插入一个新记录,简述它的操作过程。
从文件目录中找到该文件,按址读出第一个记录取出第一个记录块中指针,存放到新记录的指针位置;把新记录占用的物理块号填入第一个记录的指针位置启动磁盘把第一个记录和新记录写到指字的磁盘块上.在spool系统中设计了一张缓输出表,请问哪些程序执行时要访问缓输出表,简单说明之。
井管理写程序把作业执行结果文件登记在缓输出表中;
缓输出程序从缓输出表中查找结果文件并打印输出。.试比较进程调度与作业调度的不同点
(1)作业调度是宏观调度,它决定了哪一个作业能进入主存。进程调度是微观调度,它决定各作业中的哪一个进程占有中央处理机(或)作业调度是高级调度,它位于操作系统的作业管理层次。进程调度是低级调度,它位于操作系统分层结构的最内层。
(2)作业调度是选符合条件的收容态作业装入内存。进程调度是从就绪态进程中选一个占用处理机。
优化后记录顺序为: A,C,B,D (3分)
优化后处理总时间=(20/4+5)*4+5=45ms (3分)
难度系数:B 知识点:磁盘管理
2)有5个任务A,B,C,D,E,它们几乎同时到达,预计它们的运行时间为10,6,2,4,8mn。其优先级分别为3,5,2,1和4,这里5为最高优先级。对于下列每一种调度算法,计算其平均进程周转时间(进程切换开销可不考虑)。
(1)先来先服务(按A,B,c,D,E)算法。
(2)优先级调度算法。
(3)时间片轮转算法。
答:(1)采用FCFS的调度算法时,各任务在系统中的执行情况如下表所示:
执行次序 运行时间 优先数 等待时间 周转时间 A 10 3 0 10 B 6 5 10 16 C 2 2 16 18 D 4 1 18 22 E 8 4 22 30 所以,进程的平均周转时间为:
T=(10+16+18+22+3O)/5=19.2 min (3分)
(2)采用优先级调度算法时,各任务在系统中的执行情况如下表所示:
执行次序 运行时间 优先数 等待时间 周转时间 B 6 5 0 6 E 8 4 6 14 A 10 3 14 24 C 2 2 24 26 D 1 1 26 27 所以,进程的平均周转时间为:
T=(6+14+24+26+27)/5=19.4 min (3分)
(3)采用时间片轮转算法时,假定时间片为2min,各任务的执行情况是:(A,B,C,D,E),(A,B,D,E),(A,B,E),(A,E),(A)。设A~E五个进程的周转时间依次为T1~T5,显然,
T1=3Omin, T2=22min, T3=6min,T4=16min,T5=28min
所以,进程的平均周转时间为:
T=(30+22+6+16+28)/5=20.4min (4分)
设计题(1小题,共10分)
有一个理发师,一把理发椅和n把供等候理发的顾客坐的椅子。如果没有顾客,则理发师便在理发椅子上睡觉:当一个顾客到来时,必须唤醒理发师,进行理发;如果理发师正在理发时,又有顾客来到,则如果有空椅子可坐,他就坐下来等,如果没有空椅子,他就离开。为理发师和顾客各编一段程序描述他们的行为,要求不能带有竞争条件。
#define CHAIRS n/ * n为等候的顾客准备的椅子数*/
semphore customers=0;
semphore barbers=O;
semaphore S=1; /*用于互斥*/
int waiting=0; (3分)
void barber()
{ while (T)
{
P(customers);
P(S);
waiting =waiting -1;
V(bMbers);
V(S);
理发...
}
}(4分)
void customerO
{
P(S);
if (waitCHAIRS)
{
waiting=waiting+1;
V(customers);
V(S);
P(barbers);
坐下等待:
}
else { V(
文档评论(0)