中科院操作系统高级教程思考题2016
2022年中国科学院大学计算机科学与技术专业《操作系统》科目期末试卷A(有答案)

2022年中国科学院大学计算机科学与技术专业《操作系统》科目期末试卷A(有答案)一、选择题1、下列关于打开文件open()操作和关闭文件close()操作的叙述,只有()是错误的。
A.close()操作告诉系统,不再需要指定的文件了,可以丢弃它B.open()操作告诉系统,开始使用指定的文件C.文件必须先打开,后使用D.目录求必须先打开,后使用2、在磁盘上容易导致存储碎片发生的物理文件结构是()A.链接B.连续C.索引D.索引和链接3、使用TSL(TestandSetLock)指令实现进程互斥的伪代码如下所示。
do{while(TSL(&lock));criticalsection;lock=FALSE;}while(TRUE);下列与该实现机制相关的叙述中,正确的是()A.退出临界区的进程负责唤醒阻塞态进程B.等待进入临界区的进程不会主动放弃CPUC.上述伪代码满足“让权等待”的同步准则D.while(TSL(&lock))语句应在关中断状态下执行4、有3个作业J1,J2,J3,其运行时间分别为2h,5h,3h,假定同时到达,并在同…台处理器上以单道方式运行,则平均周转时间最短的执行序列是()。
A.J1,J2,J3B.J3,J2,J1C.J2,J1,J3D.J1,J3,J25、下列选项中,满足短任务优先且不会发生“饥饿”现象的调度算法是()。
A.先来先服务B.高响应比优先C.时间片轮转D.非抢占式短任务优先6、某基于动态分区存储管理的计算机,其主存容量为55MB(初始为空),采用最佳适配(Best Fit)算法,分配和释放的顺序为:分配15MB,分配30MB,释放15MB.分配8MB.分配6MB,此时主存中最大空闲分区的大小是()。
A.7MBB.9MBC.10MBD.15MB7、下列存储管理方式中,会产生内部碎片的是()。
I.请求分段存储管理II.请求分页存储管理III.段页式分区管理IV.[固定式分区管理A.I、II、IIIB.III,IVC.只有IID.II、III、IV8、下面说法错误的有()。
思考及练习题参考答案

第1章操作系统概述思考与练习题参考答案1. 选择题(1) C (2) D (3) C (4) C (5) B (6) C (7) B (8) C (9) B (10)B(11) A2. 填空题(1) 硬件软件(2) 存储管理设备管理(3)软硬件资源(4) 批处理操作系统分时操作系统实时操作系统(5) 20ms 时间片轮转调度算法3. 判断题(1) × (2) × (3) √ (4)× (5) × (6).√ (7) √ (8)√4. 问答题(1) 简述操作系统的概念答:操作系统是一组能控制和管理计算机系统的硬件和软件资源,合理地组织计算机工作流程并为用户使用计算机提供方便的程序和数据的集合。
(2) 什么是批处理系统?为什么要引入批处理系统?答:批处理系统指用户的作业成批的处理,作业建立、过渡、完自动由系统成批完成。
因为1958~1964年,晶体管时代,计算机速度、容量、外设品种和数量等方面和第一代计算机相比都有了很大开展,计算机速度有几十倍、上百倍的提高,故使手工操作的慢速度和计算机运算的高速度之间形成一对矛盾。
只有设法去掉人工干预,实现作业自动过渡,这样就出现了成批处理。
(3) 什么叫多道程序?试述多道程序涉及技术的根本思想及特征,为什么对作业进展多道批处理可以提高系统效率?答:多道程序设计技术是在计算机存中同时存放几道相互独立的程序,使它们在管理程序控制下,相互穿插交替运行。
当*道程序因*种原因不能继续运行下去时,管理程序就将另一道程序投入运行,这样使几道程序在系统并行工作,可使中央处理机及外设尽量处于忙碌状态,从而大大提高计算机使用效率。
在批处理系统中采用多道程序设计技术形成多道批处理系统,多个作业成批送入计算机,由作业调度程序自动选择作业运行,这样提高了系统效率。
(4) 何为分时系统?简述其特点。
答:分时系统采用时间片轮转法,使一台计算机同时为多个终端效劳。
操作系统习题及习题参考答案

起混乱. F ➢ 9. 顾客程序有时也可以在关键态下运行. F ➢10. 虚拟存储系统可以在每一台计算机上实现.
F
➢11. 进程在运行中, 可以自行修改自己旳进程控 制块. F
➢12. 进程申请CPU得不到满足时, 其状态变为等 待态. F
现措施不一样F. ➢35. 清内存指令只能在管态下执行. T
➢36. 在大型多道程序设计系统中, 为充足运用外 部设备, 应使运行旳若干程序都是I/O型旳. T
➢37. 在页式虚拟存储系统中, 页面长度是根据程 序长度动态地分派旳. F
➢38. 假如信号量S旳目前值为-5, 则表达系统中 共有5个进程. F
➢ 7. 在可变分区存储管理中, 为实现地址映射, 一般由 硬件提供两个寄存器, 一种是基址寄存器, 另一种是 ___限_.长寄存器或长度寄存器
➢ 8. 联想寄存器(相联存储器)旳最重要、最独到旳特点 是__按__内. 容并行查找
➢ 9. 在虚拟段式存储管理中, 若逻辑地址旳段内地址不 小于段表中该段旳段长, 则发生地_址_越界 __中断.
成若干相等旳页. F ➢29. 引入目前目录是为了减少启动磁盘旳次数.T ➢30. 文献目录必须常驻内存. F
➢31. 固定头磁盘存储器旳存取时间包括搜查定 位时间和旋转延迟时间. F
➢32. 在文献系统中, 打开文献是指创立一种文献 控制块. F
➢33. 存储保护旳目旳是限制内存旳分派. F ➢34. 原语和系统调用旳重要区别在于两者旳实
➢17. 大多数虚拟系统采用OPT(优化)淘汰算法是 由于它确实可以得到最小旳缺页率. F
➢18. 实时系统中旳作业周转时间有严格旳限制.F ➢19. 文献旳索引表所有寄存在文献控制块中. F ➢20. 打印机是一类经典旳块设备. F
操作系统思考题答案

【思考题】1.如果系统中有N个进程,运行的进程最多几个,最少几个;就绪进程最多几个最少几个;等待进程最多几个,最少几个?解:我们考虑在微机的操作系统中:系统的调度管理进程至少是在运行状态。
当有N个用户进程启动后,那么我们可以说用户的进程最多有一个在运行状态,最少有0个?有了这个条件,我们不难推出就绪进程和等待进程可能的数量。
如果我们讨论的多CPU平台的使用的操作系统,就是另外一种情况了。
所以我想题目应该给出一个系统的运行环境。
2. 有没有这样的状态转换,为什么?等待—运行;就绪—等待解:进程状态转换:在进程运行过程中,由于进程自身进展情况及外界环境的变化,这三种基本状态可以依据一定的条件相互转换就绪—运行调度程序选择一个新的进程运行运行—就绪运行进程用完了时间片,运行进程被中断,因一高优先级进程处于就绪状态运行—等待当一进程必须等待时•OS尚未完成服务•对一资源的访问尚不能进行•初始化I/O 且必须等待结果•等待某一进程提供输入(IPC)等待—就绪当所等待的事件发生时观察下面答案就明确了――>3. 一个状态转换的发生,是否一定导致另一个转换发生,列出所有的可能解:一般情况下,当一个状态发生转换,系统调度会将当前进程置入相应状态队列,再从相应的队列中唤醒相关进程…4. 举3个日常生活中类似进程的例子医院看病的过程:等待医院开门――挂号――看病――划价――付钱――医院关门5.要不要对缓冲区(临界资源)进行互斥操作?解:对于是“只读”的临界资源,我们可以认为不需要互斥操作。
但,一定有一个对“只读”临界资源进行维护的“写”操作,那么必须要考虑缓冲区的互斥操作。
6 . 用P.V操作解决下图之同步问题:get复制一个记录:Cobeginget;copy;put;Coendf s t g初始状态3,4,...,m 2 2 (1,2) g,c,p 4,5,...,m 3 3 (1,2,3)设信息长度为mf[1..m] of arraySmutex,Sempty,Sfull:=1,1,0; //(f,s,t,g均为单缓冲区,不需要互斥量Smutex,Tmutex) Tmutex,Tempty,Tfull:=1,1,0Int x,y =1,1;//设有m个记录长度,一次get一个记录Process get{。
高级操作系统题目及答案

1.在实现RPC时,调用者如何得知被调用者实际运行在哪个站点上,是一个必须要解决的问题。
⑴当系统生成与调用者对应的stub时,可把该远程站点的地址也一同并入其中,不过这种做法不太灵活。
⑵在进行调用之前,与调用者对应的stub向系统中的其它场点进行广播,请求有关的场点通报其地址,这必然引起一系列的消息转移。
特别,当这种广播是在若干网络之间进行时,其转移速度是很慢的。
⑶由系统管理一个表,其表项的内容为① 站点地址;②该场点上将运行的远程过程的名字。
“愿意”产生一个可供其它场点引用的过程的那些场点就造一个表项到这个表中,该表项给出了这些场点的地址和此远程过程的名字。
希望引用远程过程的用户可通过查询此表获取有关信息。
开发过程大致是这样的:1)调用者调用本地stub中的一个过程(开始远程过程调用请求).2) 这个stub过程把有关的参数组装成一个消息包或一组消息包, 形成一条消息. 运行此执行过程的远程场点的IP地址和执行该过程的进程ID号也包含在这条消息中.3) 将这条消息发送给对应的RPC runtime(RPC运行库)子程序, 由这个子程序将消息发送到远程场点.4) 在接收到这条消息时, server端的RPC runtime子程序引用与被调用者对应的stub中的一个子程序, 并让它来处理消息.5) 与被调用者对应的stub中的这个子程序撤卸消息, 解析出相关参数, 并用本地调用方式执行所指定的过程.6) 返回调用结果, 调用者对应的stub子程序执行return语句返回到用户, 整个RPC过程结束.2. 此3问针对集中分布式死锁检测方法a.何时或在什么情况下构造局部PWG才能反映系统资源的实际分配情况?(修改)1. 每当从局部等待图中去掉一条边或向局部等待图插入一条新边时2. 周期性的,当等待图中已经发生了若干改变时3. 每当协调者需要引用环路检测算法时以下为死锁检测的基本假设(1)进程在整个系统内统一命名(2)每个结点有一个局部等待图:Gk=(Vk, Ek),(p, q)∈Ek等价于p申请q占有结点k的资源;显然,如果局部等待图中有环,则有死锁;所有的局部等待图的并有环是系统死锁的充要条件。
操作系统教程第三版应用题参考答案

操作系统答案目录目录习题一...................................................................... ................................................................. 1 习题二...................................................................... ................................................................. 3 习题三...................................................................... ................................................................. 7 习题四...................................................................... ............................................................... 16 习题五...................................................................... ............................................................... 23 习题六...................................................................... (27)I习题一习题一一(思考题3. 什么是操作系统,计算机系统中配置操作系统的主要目标是什么, (p1):操作系统是管理系统资源、控制程序执行、改善人机界面、提供各种服务,合答理组织计算机工作流程和为用户有效使用计算机提供良好运行环境的一种系统软件。
高级操作系统 答案

一、名词解释:分布式系统: 一个分布式系统是若干个具有自治功能的独立计算机的集合,但是对该系统的用户来说,感觉该系统就像一台计算机一样。
硬件方面:每台计算机都是独立、自主的计算机;软件方面:用户感觉在独占系统。
分布式系统物理上是分布的,逻辑上是一个整体。
分布透明性:分布透明性是一种现象,通过这种现象,系统中分布式的各个方面在用户与应用之间隐藏了起来,即分布式系统在用户和应用程序面前呈现为单个计算机系统。
包括:访问透明、位置透明、移植透明、重定位透明、复制透明、并发透明、故障透明和持久性透明。
多线程文件服务器:多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。
文件服务器是一种器件,它的功能就是向服务器提供文件。
标识符:是用户编程时使用的名字。
我们用标识符这个名词来表示各资源项的名称。
标识符可以用于多种目的,如访问,定位,调度,分配,故障控制,同步以及对象或资源的共享。
在系统结构的各层次上,标识符以不同的方式出现。
中间件:答案1:指一个软件层,放在应用程序和网络操作系统之间,它提供了一个编程抽象以及对底层网络、硬件、操作系统和编程语言异构性的屏蔽。
答案2:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。
中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。
是连接两个独立应用程序或独立系统的软件。
相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。
执行中间件的一个关键途径是信息传递。
通过中间件,应用程序可以工作于多平台或 OS环境。
RPC:答:RPC是remote procedure call(远程过程调用)的简称。
RPC思想是使远程的过程调用就像在本地的过程一样,调用者不应该意识到此调用的过程是在其他机器上实行的。
RPC的执行步骤:(1) 客户过程以普通方式调用相应的客户存根; (2) 客户存根建立消息,打包并激活内核陷阱; (3) 内核将消息发送到远程内核; (4) 远程内核将消息发送到服务器存根; (5) 服务器存根将消息解包,取出其中参数后调用服务器过程; (6) 服务器完成工作或将结果返回服务器存根; (7) 服务器存根将它打包并激活内核陷阱; (8) 远程内核将消息发送至客户内核; (9) 客户内核将消息交给客户存根; (10) 客户存根将消息解包,从中取出结果返回给客户;远程对象调用:远程对象调用是通过调用远程对象的方法实现的。
操作系统学习指导与习题(含答案)

操作系统第一章概论1. 1 学习指导操作系统是运行在计算机硬件系统上的最基本的系统软件。
它操作和管理着所有的系统硬件,也控制和管理着所有的系统软件,操作系统对计算机使用者提供了一种良好的操作环境,也为其他各种应用系统提供了最基本的支撑环境。
现代操作系统是一个复杂的系统软件,它与计算机硬件系统有千丝万缕的联系,也与用户有着密不可分的关系,它在计算机系统中位于计算机裸机和计算机用户之间。
紧挨着硬件的就是操作系统,它通过系统核心程序对计算机系统中的几类资源进行管理,如处理机、存储器、输入/输出设备、数据与文档资源、用户作业等,并向用户提供若干服务,通过这些服务将所有对硬件的复杂操作隐藏起来,为用户提供一个透明的操作环境。
在操作系统的外层是其它系统软件。
操作系统是最基本的系统软件。
用户可以直接通过系统软件层与计算机打交道,也可以建立各类应用软件和应用系统,通过它们来解决用户的问题。
由此可见,操作系统是介于计算机硬件和用户之间的一个接口。
根据操作系统的功能特征,可将操作系统分为批处理系统、分时系统和实时系统三种基本类型。
不同类型的操作系统有不同的作业用户,适用于不同的应用领域。
本章的重点内容是:对一些术语及概念的了解及认识,如批处理、吞吐量、作业的周转时间、分时(简单分时、具有“前台”和“后台”的分时系统、基于多道程序设计的分时系统)、实时、多道程序设计、时间片及操作系统的特征(并发、共享、虚拟、不确定性)。
1. 2 学习自评一、选择题1.组成计算机系统软件的基本部分是__________。
A. 应用软件B. 语言处理程序C. 例行服务程序D. 操作系统2.把处理机的时间分成很短的时间片(如几百毫秒),并把这些时间片轮流地分配给各联机作业使用的技术称为__________。
A. 分时技术B. 实时技术C. 批处理技术D. 多道程序设计技术3.所谓__________是指一个以上的作业放入主存,并且同时处于运行状态。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.为什么计算机启动最开始的时候执行的是BIOS代码而不是操作系统自身的代码?
2.为什么BIOS只加载了一个扇区,后续扇区却是由bootsect代码加载?为什么BIOS没有把所有需要加载的扇区都加载?
3.为什么BIOS把bootsect加载到0x07c00,而不是0x00000?加载后又马上挪到0x90000处,是何道理?为什么不一次加载到位?
4.bootsect、setup、head程序之间是怎么衔接的?给出代码证据。
5.setup程序里的cli是为了什么?
6.setup程序的最后是jmpi 0,8 为什么这个8不能简单的当作阿拉伯数字8看待?
7.打开A20和打开pe究竟是什么关系,保护模式不就是32位的吗?为什么还要打开A20?有必要吗?
8.Linux是用C语言写的,为什么没有从main函数开始,而是先运行3个汇编程序,道理何在?
9.为什么不用call,而是用ret“调用”main函数?画出调用路线图,给出代码证据。
10.保护模式的“保护”体现在哪里?
11.特权级的目的和意义是什么?
12.在setup程序里曾经设置过一次gdt,为什么在head程序中将其废弃,又重新设置了一个?为什么折腾两次,而不是一次搞好?
13.用户进程自己设计一套LDT表,并与GDT挂接,是否可行,为什么?(同28)
14.进程0的task_struct、内核栈、用户栈在哪?给出代码证据。
15.进程0创建进程1时,为进程1建立了自己的task_struct、内核栈,第一个页表,分别位于物理内存16MB的顶端倒数第一页、第二页。
请问,这个了页究竟占用的是谁的线性地址空间,内核、进程0、进程1、还是没有占用任何线性地址空间(直接从物理地址分配)?说明理由并给出代码证据。
16.假设:经过一段时间的运行,操作系统中已经有5个进程在运行,且内核分别为进程4、进程5分别创建了第一个页表,这两个页表在谁的线性地址空间?用图表示这两个页表在线性地址空间和物理地址空间的映射关系。
17.进程0开始创建进程1,调用了fork(),跟踪代码时我们发现,fork代码执行了两次,第一次,跳过init()直接执行了for(;;) pause(),第二次执行fork代码后,执行了init()。
奇怪的是,我们在代码中并没有看见向后的goto 语句,也没有看到循环语句,是什么原因导致反复执行?请说明理由,并给出代码证据。
18.copy_process函数的参数最后五项是:long
eip,longcs,longeflags,longesp,longss。
查看栈结构确实有这五个参数,奇怪的是其他参数的压栈代码都能找得到,确找不到这五个参数的压栈代码,反汇编代码中也查不到,请解释原因。
19.为什么static inline _syscall0(type,name)中需要加上关键字inline?
20.根据代码详细说明copy_process函数的所有参数是如何形成的?
21.根据代码详细分析,进程0如何根据调度第一次切换到进程1的。
22.内核的线性地址空间是如何分页的?画出从0x000000开始的7个页(包括页目录表、页表所在页)的挂接关系图,就是页目录表的前四个页目录项、第一个个页表的前7个页表项指向什么位置?给出代码证据。
23.用文字和图说明中断描述符表是如何初始化的,可以举例说明(比如:
set_trap_gate(0,÷_error)),并给出代码证据。
24.进程0 fork进程1之前,为什么先要调用move_to_user_mode()?用的是什么方法?解释其中的道理。
25.进程0创建进程1时调用copy_process函数,在其中直接、间接调用了两次get_free_page函数,在物理内存中获得了两个页,分别用作什么?是怎么设置的?给出代码证据。
26.在IA-32中,有大约20多个指令是只能在0特权级下使用,其他的指令,比如cli,并没有这个约定。
奇怪的是,在Linux0.11中,在3特权级的进程代码并不能使用cli指令,会报特权级错误,这是为什么?请解释并给出代码证据。
27.根据代码详细分析操作系统是如何获得一个空闲页的。
28、用户进程自己设计一套LDT表,并与GDT挂接,是否可行,为什么?
29、保护模式、分页下,线性地址到物理地址的转化过程是什么?
30、详细分析进程调度的全过程。
考虑所有可能(signal、alarm除外)
31、内核和普通用户进程并不在一个线性地址空间内,为什么仍然能够访问普通用户进程的页面?
32、wait_on_buffer函数中为什么不用if()而是用while()?
33、copy_mem()和copy_page_tables()在第一次调用时是如何运行的?
34、缺页中断是如何产生的,页写保护中断是如何产生的,操作系统是如何处理的?
35、为什么要设计缓冲区,有什么好处?
36、操作系统如何利用buffer_head中的 b_data,b_blocknr,b_dev,b_uptodate,b_dirt,b_count,b_lock,b_wait管理缓冲块的?
37、操作系统如何利用b_uptodate保证缓冲块数据的正确性?new_block (int dev)函数新申请一个缓冲块后,并没有读盘,b_uptodate却被置1,是否会引起数据混乱?详细分析理由。