操作系统原理期末考试试题B卷参考答案2.docx
- 文档编号:6650022
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:29
- 大小:31.41KB
操作系统原理期末考试试题B卷参考答案2.docx
《操作系统原理期末考试试题B卷参考答案2.docx》由会员分享,可在线阅读,更多相关《操作系统原理期末考试试题B卷参考答案2.docx(29页珍藏版)》请在冰豆网上搜索。
操作系统原理期末考试试题B卷参考答案2
南开大学信息技术科学学院本科生2009-2010年度第一学期操作系统原理课程期末试卷(B卷)
专业▁▁▁▁▁年级▁▁▁▁▁姓名▁▁▁▁▁▁学号▁▁▁▁▁▁成绩▁▁▁▁▁
得分
一、简答题(本题共30分,每题6分,必做)草稿区
1.
请阐述“操作系统”和“进程”的定义。
答案:
操作系统是控制和管理计算机系统内各种硬件和软件资源、合理有效地组织计算机系统的工作,
为用户提供一个使用方便可扩展的工作环境,从而起到连接计算机和用户的接口作用的最基本的系统软件。
(3分,重点在于管理和人机接口)
进程是运行中的程序,它包括输入,输出,程序映像和运行过程中各种状态信息的统称。
(3分)
2.请简要描述设计IPC问题解决方法时需要遵循的四个基本原则。
答案:
(每个1.5分)
1)任何两个进程都不能同时处于其临界区;
2)不应对CPU的速度和数量做任何假设;
3)临界区外运行的进程不得阻塞其他进程;
4)不得使进程无限期的等待进入临界区;
草稿区
3.请列出并说明至少具有“虚拟内存管理”特点的内存管理方法体系。
答案:
程序、数据和堆栈的总大小可能超过可用的物理内存的大小。
由操作系统把程序当前使用的那些部分保存在主存中,
而把其他部分保存在磁盘上,并在需要时在内存和磁盘间交换程序的片段。
4.请简述DMA的三种不同工作模式(提示:
对每一种方式进行简要说明)。
答案:
(每个2分,其中名词1分,说明1分)
1)周期窃取模式(单一传输模式):
每次只传输以单位的数据,之后让出总线控制权并申请下一次传输;
2)块传输模式:
持续获得总线控制权,连续传输一定量的数据;
3)飞越模式:
DMA控制发送设备直接向内存传输数据
5.请描述“文件”的定义,并说明文件的三种物理结构。
答案:
“文件”是一个抽象的机制,它提供在磁盘上保存和读取信息的方式。
(3分)
空间分配模式有连续分配,链表式分配以及i节点方式。
(3分)
得分
二、编程计算题(本题共5小题,共计45分,选做4题,多做不得分)草稿区
✧请在下面的表格中指定答题顺序,在对应的分值下列明题号。
每格只许列出一个题号,否则做无效处理。
✧下表中必须写明所有题目的题号,如果填写不完全,视为不指定答题顺序。
✧如填写内容无效或者不填写表格,则按照默认的题面分值评分
第一题(15分)
第二题(12分)
第三题(10分)
第四题(8分)
6.CPU利用率计算:
有5个批处理作业A到E,他们几乎同时到达一个计算中心,估计他们的运行时间分别为10,5,
3,4,8分钟,其优先级(由外部设定)分别为4、3、5、2、1,其中5为最高优先级。
对于下列每种调度算法,计
算其平均进程周转时间,可忽略进程切换的时间开销。
1)时间片轮转法(假设每个作业均公平共享CPU时间);
2)优先级调度法;
3)先来先服务(作业到达顺序为A、B、C、D、E);(本题默认分值:
8分,列出计算公式与计算结果即可)
评分标准:
执行顺序正确,1分;计算过程正确1到2分,结果1分。
1)时间片轮转法:
(4分)
假设时间片为t,并且t为一个充分小的数值,以保证其能够被任何宏观时间整除。
进程C运行完各个进程消耗的总时间=5*5*t*(3/t)
进程D运行完各个进程消耗的总时间=5*5*t*(3/t)+4*4*t*(4/t-3/t)
进程B运行完各个进程消耗的总时间=5*5*t*(3/t)+4*4*t*(4/t-3/t)+3*3*t*(5/t-4/t)
进程E运行完各个进程消耗的总时间=5*5*t*(3/t)+4*4*t*(4/t-3/t)+3*3*t*(5/t-4/t)+2*2*t*(8/t-5/t)
进程A运行完各个进程消耗的总时间
=5*5*t*(3/t)+4*4*t*(4/t-3/t)+3*3*t*(5/t-4/t)+2*2*t*(8/t-5/t)+1*t*(10/t-8/t)
平均周转时间=进程A运行完各个进程消耗的总时间/5=114/5=22.8
2)优先级调度法:
(3分)
执行顺序为:
CABDE
作业
C
A
B
D
E
等待时间
0
3
13
18
22
运行时间
3
10
5
4
8
周转时间
3
13
18
22
30
平均周转时间=(3+13+18+22+30)/5=17.2
3)先来先服务:
(3分)
执行顺序为:
ABCDE
作业
A
B
C
D
E
等待时间
0
10
15
18
22
运行时间
10
5
3
4
8
周转时间
10
15
18
22
30
平均周转时间=(10+15+18+22+30)/5=19
草稿区
7.进程同步互斥问题解决:
消息机制是解决IPC问题的一种重要方法,它大大简化了使用信号量机制的代码复杂性和设
计上的风险。
请用消息机制来描述生产者-消费者问题的解决方法,并回答以下问题
1)简要描述消息机制中Send和Receive原语的内部处理流程(根据你的想法来设定)
2)请基于消息机制,用伪代码来描述生产者-消费者问题的解决方案。
(本题默认分值:
15分)
答案:
假设所有的消息都有同样的大小,建立一个类似于一块共享内存缓冲区的N个槽。
消费者首先将N条空消息发送给生产者,
当生产者向消费者传递一个数据项时,它取走一条空消息并送回一个填充了内容的消息;这样系统中总的消息数保持不变,
所以消息都可以存放在事先确定数量的内存中。
Send(dst,content)
{
关中断//保证Send函数为原子操作;
将content放入dst进程的消息缓冲区中;
开中断//恢复被关闭的中断情况;
Scheduler()//调用进程调度函数,恢复用户进程运行;
}
Receive(src,content)
{
If(没有从src进程发送来的消息)
等待src消息,睡眠;
Scheduler()//调用进程调度函数,恢复用户进程运行;
}
#defineN100//缓冲区中的槽数目
Producer流程:
{
While(TRUE)
{
Item=produce_item()//产生放入缓冲区中的产品
Receive(consumer,&m)//等待消费者发送空缓冲区
Bulid_message(&m,item)//建立一个待发送的消息
Send(consumer,&m)//发送数据项给消费者
}
}
Consumer流程:
{
For(I=0;I send(producer,&m)//发送N个空缓冲区 While(TRUE) { Receive(producer,&m)//接收包含数据项的消息 Item=extract_item(&m)//将数据项从消息中提取出来 Send(producer,&m)//将空的缓冲区发送回生产者 Consume_item(item)//处理(消费)数据 } } 草稿区 8.进程同步互斥问题解决: 信号量是解决IPC问题的重要方法,请尝试使用信号量机制解决经典的哲学家就餐问题。 1)简要描述你需要定义几个进程,需要定义几个信号量,其各自的内涵是什么? 2)以伪代码形式描述哲学家就餐问题的信号量机制解法。 (本题默认分值: 15分) 答案: 需要为每个哲学家定义一个进程,设定哲学家数目为N,则需要N+1个信号量。 #defineN//哲学家的数目 #defineLEFT(i+N-1)%N//i的左邻居编号 #defineRIGHT(i+1)%N//i的右邻居编号 #defineTHINKING0//哲学家在思考状态 #defineHUNGRY1//哲学家试图拿起叉子 #defineEATING2//哲学家进餐状态 Typedefintsemaphore//定义信号量 Intstate[N]//数组用来跟踪记录每位哲学家的状态 Semaphoremutex=1//临界区互斥 Semaphores[N]//每个哲学家一个信号量 Philosopher(inti) { While(TRUE) { Think()//哲学家在思考 Take_forks(i)//哲学家i要求得到两把叉子或者被阻塞 Eat()//进餐 Put_forks(i)//哲学家i将两把叉子放回桌子 } } Take_forks(inti) { Down(&mutex)//进入临界区 State[i]=HUNGRY//记录哲学家i处于饥饿状态 Test(i)//尝试获得两把叉子 Up(&mutex)//离开临界区 Down(&s[i])//如果得不到需要的叉子则阻塞 } Put_forks() { Down(&mutex)//进入临界区 State[i]=THINKING//哲学家已经就餐完毕 Test(LEFT)//检查左边的邻居可否进餐 Test(RIGHT)//检查邮编的邻居可否进餐 Up(&mutex)//离开临界区 } Test() { If(state[i]==HUNGRY&&state[LEFT]! =EATING&&state[RIGHT]! =EATING) { State[i]=EATING//开始进餐 Up(&s[i])//解除阻塞在等待叉子上的哲学家i } } 草稿区 9.死锁问题解决: 死锁是对分时操作系统最为知名的一种问题,有很多种方法用来解决死锁问题,其中银行家算法是一 种方便有效的死锁避免方法,尝试用银行家算法来回答以下问题: 一个系统中有4个进程和5种可分配资源,当前分 配资源和最大需求如下表所示: 已分配资源 最大需求量 可用资源量 进程A 10211 11212 00X11 进程B 20110 22210 进程C 11010 21310 进程D 11110 11221 在上表中,第三种资源的可用资源量未知,用X表示,请问,为保持当前状态为安全状态,X的最小值是多少? (本题默认分值: 10分,请说明分析计算的思路,列出关键计算过程) 答案: 1)安全状态: 即在当前的进程需求、资源总量和资源分配情况下, 存在至少一个可使所有进程运行结束的序列的状态。 (2分) 2)检查当前的进程和资源量,发现: a)当前的4个进程中,只有D存在运行结束的可能性; b)进程A、B和C不可能立即运行完毕,必须等待; c)因此,第一个能够运行的进程为D,且: X>=1; 3)D运行结束后,可用资源量为(1,1,1+X,2,1)且X>=1。 (2分) 4)再次检查A、B和C进程,发现: a)只有A可以运行; b)进程B和C需要等待第一类或第二类资源; c)此时,在X>=1的条件下,A已经可以运行了。 5)A运行完成后,可用资源量为(2,1,3+X,3,2)且X>=1。 (2分) 6)再次检查B和C进程,发现: a)只有C可以运行; b)进程B需要等待第二类资源; c)此时,在X>=1的条件下,C已经可以运行了。 (2分) 7)C运行完成后,可用资源量为(3,2,3+X,4,2),此时,B可以运行了,且不对X提出新的要求。 8)因此,X的最小值为1。 (2分) 评分标准: 初步分析: 2分 执行顺序: 2分 每个进程运行时对X的要求的分析: 4分,每个进程1分 最终结果: 2分 各部分的逻辑性和分析如果正确,可酌情给分,满分10分。 草稿区 10.虚拟存储管理问题: 页面失效次数和页面置换算法是评估分页存储管理系统的重要因素,假设一个进程有4个页帧和 8个页面,页面编号为0~7,该进程的页面访问序列为0172327103,请回答以下问题: 1)若使用LRU页面置换算法,请问会发生多少次页面失效? 列出每次页面置换的结果; 2)若使用工作集页面置换算法,请问比较合理的工作集大小是多少? 列出对应的页面失效次数和置换结果; (本题默认分值: 12分) 答案: LRU方式: 共7次。 (5分,页面失效位置2分,物理页状态2分,结果1分) 0 1 7 2 3 2 7 1 0 3 物理页1 0 0 0 0 3 3 3 3 0 0 物理页2 NULL 1 1 1 1 1 1 1 1 1 物理页3 NULL NULL 7 7 7 7 7 7 7 7 物理页4 NULL NULL NULL 2 2 2 2 2 2 3 页面失效 是 是 是 是 是 否 否 否 是 是 工作集方式: 由于物理页帧有4页,因此,选择最近使用的4个页面组成工作集。 使用局部性原理,进行预读取。 共6次。 0 1 7 2 3 2 7 1 0 3 物理页1 0 0 0 0 3 3 3 3 0 0 物理页2 1 1 1 1 1 1 1 1 1 1 物理页3 2 2 7 7 7 7 7 7 7 7 物理页4 3 3 3 2 2 2 2 2 2 3 页面失效 是 否 是 是 是 否 否 否 是 是 草稿区 得分 三、系统分析题(本题共3小题,共计25分,选做2题,多做题目不得分) ✧ ✧请在下面的表格中指定答题顺序,在对应的分值下列明题号。 每格只许列出一个题号,否则做无效处理。 ✧下表中必须写明所有题目的题号,如果填写不完全,视为不指定答题顺序。 ✧如填写内容无效或者不填写表格,则按照默认的题面分值评分 第一题(15分) 第二题(10分) 11.在人机交互的过程中,通过一系列中断和进程间通信,大量的后台进程被调度执行,最终完成用户期望的操作。 假设 你在登陆南开大学校园BBS网站,从登陆界面中输入用户名和密码,到屏幕显示你登陆成功,这个过程中涉及到大量 操作系统的后台操作,请简要分析并阐述这个过程中可能涉及到的操作系统后台操作。 (本题默认分值: 15分,请列出你所能想到的涉及中断处理、进程调度、内存管理、I/O管理的关键步骤) 答案 1.HCI: 键盘中断响应;中断处理 2.浏览器程序调用内核功能进行回显输出,载入显卡驱动程序,设置显示内容;I/O管理 3.HCI: 鼠标中断响应;中断处理 4.浏览器进程使用系统调用,进行网络连接,与远端服务器进行数据交换I/O管理 5.获得远端服务器的信息,存入内存,准备显示;内存管理 6.载入显卡驱动程序,设置显示内容;将显示内存从字符串转换为点阵,开始输出;I/O管理 每个2分,其中内容1分,所涉及中断、调度、内存和I/O正确得1分,满分10分。 草稿区 12.I/O设备管理系统设计: I/O设备管理在计算机系统中占据着非常重要的地位,任何一种新型I/O设备能够被计算机识 别并正常使用,都需要进行一系列I/O软件系统的研发。 假设你是一家I/O设备厂商的高级工程师,你所在的企业研发 出一种新的摄像头,该设备通过USB接口与计算机连接。 你的任务是为这个I/O设备研发完整的软件系统,请回答以 下问题: 1)简要阐述I/O软件系统的层次划分,以及各个层次之间的关系 2)简要设计你在每个I/O软件系统层次的研发内容,说明功能目标。 (本题默认分值: 15分) 答案: 1)I/O软件系统层次划分: (共2分,每个0.5分) a)用户级I/O软件: 产生I/O请求,对I/O进行格式化; b)与设备无关的操作系统软件: 执行对所有设备公共的I/O功能,并向用户软件提供统一接口; c)设备驱动程序: 接收来自其上方与设备无关软件发出的抽象读写请求,并监督执行过程; d)中断处理程序: 直接操控硬件,阻塞上层设备驱动程序直至I/O完成; 2)每个I/O软件系统层次的研发内容: (8分,每个两分,主要体现系统思想和接口设计即可得分) a)中断处理程序: 设置中断向量,快速的完成中断所要求的功能,当I/O完成时唤醒驱动程序,清除外部中断处理请求; b)设备驱动程序: 设置设备寄存器,直接与外部设备以电信号进行交互;检查外部设备状态; c)设备无关的操作系统组件: 命名外部设备,保护多进程共享,统一的I/O接口组件,对高速、低速设备间进行缓冲,分配资源; d)用户级I/O软件: 产生I/O请求,对I/O进行格式化,假脱机; 草稿区 13.文件系统设计: 目录体系的复杂程度与灵活性是文件系统设计的关键所在,在简单的操作系统中往往只有一级目录, 而在复杂的操作系统中,目录体系被设计成复杂的层次化结构。 假设提供给你一台32位的计算机,请你设计一个简 单的目录体系,该目录体系只有一级目录结构,但是却能允许该目录下有任意多个文件,每个文件可以有任意长度的 文件名。 在这样的限定条件下,你能模拟实现层次化的文件系统吗? 请简要阐述你的设计方案。 (本题默认分值: 10分) 草稿区 答案: 物理层次(3分) 考虑目录下可以有任意多个文件,故需要建立一个可变大小的索引区域: 在各个存储块中存储下一存储块的磁盘块号,通过链表形式建立起索引区域。 在索引区域中存储文件名称以及文件数据块首块号,当索引区域满之后,为索引区域分配新磁盘块并 加入索引区域链表中,这样就可以实现目录下有任意多个文件以及文件拥有任意长度的文件名称的特性。 同样也通过链表形式链接文件数据块,在每个数据块中设置固定区域存储其下一存储块的磁盘块号。 (2分) 该层次需要实现的接口功能: (1分) 为索引区域分配新块、释放索引区域指定块、为数据区域分配新块、释放数据区域指定块、将指定数据写入指定块; 逻辑层次(5分) 使用“\”作为各级目录的固定分隔符,并规定用户文件名中不许包含该字符。 (1分) 将文件划分为两种类型: 目录文件和数据文件。 (1分) 对于目录文件: (1分) ●其文件名为该目录所在绝对路径+“\”+该目录名称; ●其存储内容为: 一个目录文件标识;该目录下所有目录文件以及数据文件的文件名列表; 对于数据文件: (1分) ●其文件名为该文件所在绝对路径+“\”+该文件名称; ●其存储内容为该文件的实际数据; 该层次需要实现的接口功能: (1分) 添加/删除文件、打开/关闭文件、读/写文件; 用户接口层次(2分) 该层次需要实现的接口功能: 目录文件的添加/删除/查看、数据文件的添加/删除/查看、目录切换
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 原理 期末考试 试题 参考答案
![提示](https://static.bdocx.com/images/bang_tan.gif)