中国科大操作系统复习题解.docx
- 文档编号:11542600
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:73
- 大小:751KB
中国科大操作系统复习题解.docx
《中国科大操作系统复习题解.docx》由会员分享,可在线阅读,更多相关《中国科大操作系统复习题解.docx(73页珍藏版)》请在冰点文库上搜索。
中国科大操作系统复习题解
第1章操作系统引论
1.什么是冯∙诺依曼计算机工作模型?
冯∙诺依曼计算机工作模型或存储程序工作模型:
1)存储器用来容纳程序和数据;
2)程序由指令组成,并和数据一起存储在计算机内存中;
3)指令按顺序、转跳和循环三种基本方式组织;
4)机器一起动,就能按照程序指定的逻辑顺序把指令从存储器中读出来逐条解释执行,自动完成程序所描述的处理工作;
5)指令指针(CS:
IP)指示当前执行指令,执行完成指针会自动调整到下一条指令;
6)当前指令指针指向的内存中程序,被认为拥有机器控制权;
7)任何计算机都拥有自己的一套基本指令系统,高级语言程序最终需经专门的编译程序,翻译为基本机器指令;
2.简述OS的定义、作用和主要功能。
1)定义:
是计算机系统的一个系统软件;
a)是一些具有如下功能的程序模块的集合;
b)能有效地组织和管理计算机硬件和软件资源
c)能合理组织计算机的工作流程,控制程序的执行;
d)能透明地向用户提供各种服务功能,使用户能够灵活、方便地使用计算机,使整个计算机系统能高效地运行。
2)操作系统的作用
a)作为计算机系统资源的管理者;
b)作为用户与计算机硬件系统之间的接口;
c)用作扩充计算机硬件系统;
3)操作系统的功能:
处理机管理(进程与线程管理):
主要任务是对内存进行分配、保护和扩充;
具体是:
a)进程控制:
负责进行的创建、撤销和状态转换
b)进程同步:
对并发执行的多进程进行协调
c)进程通信:
负责完成进程间的信息交换
d)进程调度:
按一定的算法进行CPU分配
存储管理:
主要任务是对内存进行分配、保护和扩充;
具体为:
a)内存分配:
按一定的策略为每道程序分配内存
b)内存保护:
保证各程序在自己的内存区域内运行不受其它并发执行程序影响。
c)内存扩充:
为允许大型作业或多作业并发运行,必须借助虚拟存储技术来获得更大“虚拟”内存
设备管理:
是OS中最庞杂、最琐碎部分;
具体为:
a)设备分配:
按一定原则对设备进行分配。
为使设备能与主机并行工作,需大量采用缓冲技术和虚拟技术
b)设备传输控制:
实现物理设备的I/O操作,包括启动、中断处理和结束处理等操作。
文件管理:
OS中负责信息管理部分称为文件系统;
a)文件的存储空间管理(分配、回收)
b)目录管理:
目录是为方便文件管理而采用的基本数据结构,它能提供“按名存取”功能。
c)文件操作管理:
实现文件的基本操作,包括打开、关闭、读、写等。
d)文件保护:
提供文件安全保护的有关功能和设施。
3.比较:
单道批处理OS、多道批处理OS、分时OS和实时OS的基本特征。
单道批处理OS:
单道批处理系统
●监督程序
●驻留内存;
●自动加载外部作业,实现系统的自动、不间断连续运行
●但当当前执行程序有I/O服务请求时,CPU仍要空闲
特征:
自动性、顺序性和单道性
多道批处理OS:
多道批处理系统
多道程序设计技术
●用户提交作业先在外存排队,然后由作业调度程序按一定的算法从队列中选择若干作业载入内存,并允许它们并发(交替)执行;
●引入多道程序设计技术后,可带来如下的好处;
●提高系统(CPU、内存和I/O设备)的利用率;
●充分发挥CPU与外设并行工作的能力;
●提高系统的吞吐率;
●特征:
多道性、无序性和调度性
●优缺点及需要解决的问题
分时OS:
分时操作系统形成和发展的动力:
●实现人机交互;共享或充分利用主机;便于用户上机
分时OS实现要解决的关键问题:
●及时接受
●多路卡;每个终端配备可暂存用户命令的缓冲区
●及时处理
●所有用户作业要直接进入内存;
●每个用户(作业)应在较短的时间内得到响应处理的“时间片”;
分时系统的实现方法
●单道分时处理系统
●具有“前台”和“后台”的分时系统
●支持多道程序设计的分时系统
特征:
●多路性、独立性和交互性;
实时OS:
实时OS的引入目的(主要应用领域)
1)实时控制
●实时信息处理――要求对信息进行及时处理
2)实时任务的类型
●按是否有周期性划分;
●按截止时间要求严格与否划分(硬、软任务);
3)实时系统的基本特征
●具有多路性、独立性、交互性、及时性和可靠性等特征.
补充题:
试从交互性、及时性和可靠性方面,将分时系统与实时系统进行比较。
分时系统和实时系统在交互性、及时性和可靠性方面存在较大差别:
(1)从交互性方面来看,分时系统的目的是满足多用户交互的血药,因此,交互性是分时系统的一个关键问题,用户可以通过终端与系统进行人机对话。
而实时系统中的交互性仅限于访问系统中的某些专用服务程序,其交互性受到了限制。
(2)从及时性方面来看,在分时系统中它指的是系统的响应时间是以人能够接受的等待时间为标准的,一般为2-3秒;而在实时系统中则是以控制过程或信息处理中能够接受的延迟为准,往往是秒级、百毫秒级甚至毫秒级或更低,是实时系统的关键因素之一。
(3)从可靠性方面来看,在实时系统中的人任何差错都可能带来巨大的损失,为此,往往需要采取多级容错措施来保证系统和数据的安全可靠。
分时系统也有可靠性要求但相对较低。
4.简述目前研究/学习OS的两种主要观点(虚拟观点和资源管理观点)。
1)虚拟观点:
●是对OS一种由顶向下的俯视。
●装有OS的计算机极大地扩展了原有计算机的功能。
把包含由各种硬件、复杂底层操作细节隐藏起来,使得用户的操作和使用,由复杂变得简单,由低级操作变为高级操作,把基本功能扩展为多种功能。
●在裸机上装上OS后,对用户来说好像是得到了一个扩展的,使用更方便的计算机。
2)资源观点:
●是目前对OS描述的主要观点,是一种对OS功能位置由底向上的观察的观点。
●把资源分为软、硬件资源,硬件资源又包括CPU,主存、输入输出设备。
相应的OS就有处理机管理、内存管理、设备管理,和针对软信息资源—文件的磁盘管理/文件管理
5.为什么说OS极大扩展了计算机的功能?
装有OS的计算机极大地扩展了原有计算机的功能,原因如下:
OS把包含由各种硬件、复杂底层操作细节隐藏起来,使得用户的操作和使用,由复杂变得简单,由低级操作变为高级操作,把基本功能扩展为多种功能。
在裸机上装上OS后,对用户来说好像是得到了一个扩展的,使用更方便的计算机。
第2章进程的描述与控制
1.针对:
1)单任务OS环境下程序顺序执行,2)多任务OS环境下的多道程序并发执行,试分析它们分别具有哪些特征?
为什么?
1)单任务OS环境下程序顺序执行:
单任务环境下的“可执行”程序
⏹未执行前的程序是可执行格式的二进制程序文件,通常被持久存储在外存(磁盘)中;
⏹程序被加载到主存并获得CPU控制权后,将按其中指令所规定的逻辑顺序被依次执行;
逻辑顺序结构:
顺序、选择、重复(循环)
⏹通常可采用或引入前驱图[节点+有向边],来描述程序中不同单元或程序段之间的关系;
⏹以实模式执行,具有最大的权限,可存取控制所有计算机软硬资源;
程序执行具有以下基本特点:
⏹顺序性
⏹封闭性
⏹(结果)可再现性。
2)多任务OS环境下的多道程序并发执行:
多道程序并发执行情况示例
本例中,程序片段S1与S2可并发执行
并发可有效提高系统的吞吐量
多道程序并发执行的特征:
⏹间断性(切换执行)
⏹失去封闭性(共享系统的资源)
⏹结果不可再现性
为有效管理和调度多道并发执行程序
须引入可完整描述每道执行中程序的数据结构,该思想逐步进化完善→进程(process)概念。
2.深入理解进程的概念,试说明进程的基本特征及现代OS中引入进程的意义。
提示:
进程是现代OS最重要的概念之一,是为了能有效管理(正在被并发执行的)每道程序而必须引入的特别概念,或特别数据结构。
进程的基本特征:
用户空间是进程的一个最主要特征!
⏹独立性:
每个进程具有自己相对独立的地址空间,除非通过进程通信手段,否则不能相互影响
⏹结构性
进程空间是结构化的、分段组织的;
⏹动态性
是或包含可在其地址空间中活动的执行体对象
⏹并发性,也称异步性
在同一个计算机系统中允许同时存在多个进程,微观上它们可能是交替执行;但宏观上看,则似乎在同时独立运行。
操作系统引入进程的意义:
⏹进程是现代OS最重要的概念之一
⏹进程的管理、切换及调度,与保护模式密切相关,需要有保护模式知识,才能清晰理解进程的实现机制和实现过程。
⏹执行进程切换的相关代码,被统称为OS的进程调度模块
1)通常被运行在比“进程”更高的层级上;
2)现代OS的调度代码,通常不是一个集中的模块,而是由分散在内核多个位置的若干代码片段构成;
3.在引入进程的OS中,进程与(二进制可执行)程序这两个概念的区别与联系。
进程与程序的区别:
●程序是静态的,是有序代码的集合,是进程的定义和说明对应着一个持久外存文件,具有外存文件的性质(创建/复制/删除..)。
●进程是动态的、暂时的,是程序的一次执行,通常不能在计算机之间迁移。
●进程与程序的组成不同:
进程组成包括代码段、数据段和控制块。
●多进程实体可以同时存放在内存中并发执行,而程序不能正确并发执行。
●进程是一个能够独立运行、独立分配资源的和独立接受调度的基本单位。
而程序不能在多道程序环境下独立运行。
●进程与程序不是意义对应的关系。
进程与程序密切关联:
●通过多次加载执行,一个程序可对应多个进程;通过调用关系,一个进程可涉及多个程序。
4.理解PCB数据结构中的主要属性域及作用。
一个已被挂起的进程,它的PCB是否会被交换到外存?
PCB被保存在系统空间可交换区、系统空间不可交换区,还是进程用户空间?
1)PCB数据结构的主要属性域及作用:
PCB是操作系统内核中一种数据结构,主要表示进程状态,是在系统空间不可交换区中。
PCB主要内容:
●进程描述信息:
PID,NAME,USERID,PROCESSGROUP;
●处理器现场保护信息:
CPU内部各寄存器;
●进程控制信息:
当前状态、优先级、代码执行入口地址、程序外存地址、运行统计信息(执行时间、调度次数、页面调度);
●资源占用信息列表,打开资源对象句柄表;
●用于进程间同步与通信的相关信息字段;
●指向进程虚空间使用分配描述表指针(PCB->AddressSpace);
(注意,因页目录/页表占空间较大,虽位于系统空间但不能安排在核心,即∉PCB,页挂起进程页表可能会被SWAP到外存!
)
PCB的主要作用:
●与进程有关的信息被集中存储在这个数据结构中,它将程序变成了可并发执行的进程。
2)一个已经被挂起的进程,它的PCB会被SWAP交换到外存。
5.什么是进程的运行、就绪、阻塞和挂起状态?
试描述进程的五状态、七状态转移变化图。
1)进程的状态:
运行状态:
一个进程已得到CPU,其程序正在CPU上执行;
就绪状态:
进程已获得除CPU以外的所有必要资源,只要得到CPU便可立即执行;
阻塞状态:
正在执行的进程因为某种事件(如I/O请求)的发生二暂时无法继续执行,只有等相应的事件完成后才能去竞争CPU;
挂起状态:
其实质是使进程不能继续执行,及时挂起后的进程处于就绪状态,它也不能参与CPU的竞争。
2)进程的五状态转移变化图:
3)进程的七状态转移变化图:
单挂起:
双挂起:
6.请描述实现进程创建和进程结束的内部基本处理流程。
进程创建的基本过程:
Ø申请空白PCB(创建内核进程对象)
Ø为新进程分配资源
Ø创建进程地址空间框架;
Ø创建进程打开对象句柄表;
Ø加载并映射新进程映像到进程用户空间,包括分配部分物理内存页;
Ø在进程用户空间中分配进程运行环境控制块(PEB);
Ø初始化进程PCB和PEB
Ø将新进程状态置为“就绪”,并插入就绪队列。
进程的终止/退出(EXIT())
✓根据被终止进程标识,从PCB队列中检索出该进程PCB,从中读出进程状态;
✓若被终止进程处于执行状态,应立即中止该进程的执行
✓修改该进程的状态到终止状态,并立即申请再调度;
✓若还有子孙进程,还应将它们终止或过继;
✓释放进程拥有的所有资源;
✓释放PCB
7.请说明进程与线程的区别与联系。
线程拥有独立的用户空间吗?
线程可以参与资源分配吗?
1)进程与线程的区别与联系:
a)地址空间:
不同进程的地址空间相互独立,而同一进程的各线程共享同一地址空间,一个进程中的线程在另一进程中是不可见的。
b)通信关系:
进程间通信必须通过OS提供的进程间通信机制,而同一进程的线程间通信可以通过直接读写进程数据段如全局变量进行(仍需要同步互斥机制保证数据访问的一致性)。
c)调度切换:
同一进程中的线程上下文切换比进程上下文切换快得多。
d)线程与进程相比的主要优点:
⏹创建、终止、切换快,系统开销少;
⏹通信方便
⏹由于同进程内线程间共享内存和文件资源,故可直接进行不通过内核的通信;
⏹系统允许的最大线程数限制弱得多;
e)采用多线程的程序设计技术,可以更好提高系统的运行性能(如吞吐量、计算速度和响应时间等)。
2)线程没有独立的用户空间,同一进程的多个线程位于同一用户空间:
线程在用户空间的相关数据结构
⏹有自己专有堆栈;
⏹有自己的运行上下文;
⏹有自己的线程环境块TEB以及内核数据结构TCB
PEB在用户空间的位置是固定的,PEB下方就是TEB,进程中有几个线程就有几个TEB,每个TEB占一个4KB的页面。
3)线程不可以参与资源分配:
⏹一个进程内可容纳多个线程。
进程仍作为参与资源分配的最基本单位,但把线程作为调度的最基本单位,从而达到以小的开销来提高进程内的并发和共享程度的目的。
8.请说明windows系统中与线程描述有关的数据结构,以及线程创建的基本过程。
线程的相关数据结构:
⏹线程的内核数据结构(代表对象):
是ETHREAD,是一种调度对象,它的第一个成份是数据结构KTHREAD,也称为TCB;
⏹线程在用户空间的相关数据结构:
●有自己专有堆栈;
●有自己的运行上下文;
●有自己的线程环境块TEB;
(PEB在用户空间的位置是固定的,PEB下方就是TEB,进程中有几个线程就有几个TEB,每个TEB占一个4KB的页面。
)
线程的创建:
一般首个线程在进程创建的结束阶段被自动创建(由父进程代为创建);其它线程由进程自己调用系统API函数创建。
线程创建的基本过程:
⏹创建/初始化ETHREAD数据结构,并处理好与EPROCESS的关系。
⏹为新线程分配堆栈、创建并初始化执行上下文。
⏹在所属进程的用户空间中,创建并设置新线程TEB。
⏹进一步设置目标线程的KTHREAD数据结构,包括:
⏹设定新线程在用户空间执行入口始址。
ETHREAD数据结构中有相关成份,用来存放相关地址。
⏹将其上下文中的断点(返回点)设置成指向内核中的一段程序KiThreadStartup,使得该线程一旦被调度运行时就从这里开始执行。
⏹将线程对象标插入就绪队列
第3章存储管理
1.说明存储管理的主要功能和目标。
①内存分配与回收:
为每个进程创建执行空间,分配初始所需基本内存,并允许进程在执行中动态申请/释放内存;
②实现有效的存储保护与共享;
③主存扩充(扩充主存的大小)
引入虚拟存储技术,用外存扩充主存数量,弥补物理内存数量的不足;
④提高主存的利用率
采用合理得当的算法、策略和数据结构;
☆提高计算机资源利用率的根本途径是采用多道程序设计技术,实现并发共享。
2.若采用首次适应策略和FBC进行空闲分区管理的动态分区分配描述算法。
若将首次适应策略改为最坏适应策略、最佳适应策略或循环首次适应策略,该如何修改算法?
一种典型的动态分区分配算法
//采用首次适应算法和FBC结构
longget_block(intx,byte*p){//请求大小为X
inti;longy;
i=1;
while(FBC[i].size!
=0&&FBC[i].size if(FBC[i].size==0){p=null;return0;} p=FBC[i].addr; y=FBC[i].size-x; if(y>=delt){ FBC[i].size=y; FBC[i].addr=FBC[i].addr+x; } returnx; } 最坏适应策略: 此处有错,循环结束条件欠妥,最后应该给FBC赋值 longget_block(intx,byte*p){//请求大小为X inti,j,max;longy; i=1;j=1; while(FBC[i].size! =0&&FBC[i].size>=x) { avail[j++]=FBC[i]; i++; } min=avail[1]; for(i=1;i if(avail[i]>=max) max=avail[j]; if(aval[i].size==0){p=null;return0;} p=avail[i].addr; y=avail[i].size-x; if(y>=delt){ avail[i].size=y; avail[i].addr=avail[i].addr+x; } returnx; } 最佳适应策略: 此处有错,循环结束条件欠妥,最后应该给FBC赋值(懒得改了) longget_block(intx,byte*p){//请求大小为X inti,j,min;longy; i=1;j=1; while(FBC[i].size! =0&&FBC[i].size>=x) { avail[j++]=FBC[i]; i++; } min=avail[1]; for(i=1;i if(avail[i]<=min) min=avail[j]; if(aval[i].size==0){p=null;return0;} p=avail[i].addr; y=avail[i].size-x; if(y>=delt){ avail[i].size=y; avail[i].addr=avail[i].addr+x; } returnx; } 循环首次适应策略: inti,flag=0;//全局变量 longget_block(intx,byte*p){//请求大小为X longy; if(flag==0) {i=1;flag=1;} while(FBC[i].size! =0&&FBC[i].size if(FBC[i].size==0){p=null;return0;} p=FBC[i].addr; y=FBC[i].size-x; if(y>=delt){ FBC[i].size=y; FBC[i].addr=FBC[i].addr+x; } returnx; } 3.归纳总结页式存储分配与管理的基本特点。 页式分配管理的基本思想: ⏹进程使用线性逻辑地址LA(32位、一维、连续) ⏹OS透明地将线性地址分页, ⏹即将32位地址划分为两段: p=[LA/页大小];d=LA-P*页大小 ⏹OS透明地将物理内存也按页大小(4k)划分一系列的页框(frame),并进行依次编号 ⏹OS通过页映射表(页表),将进程地址空间的所有逻辑页,分别映射加载到不同的、不必连续的物理页框中。 ⏹页式分配的特点: ●优点: 内存分配适应性更强;没有外碎片; 每个进程浪费空间不超过1个页。 ●缺点: 仍要求程序一次性地全部装入内存。 4.试描述带有快表的页式地址变换机制。 由于页表是存放在内存中的,CPU每存取一条指令或一个数据,都要两次访问内存,第一次访问内存中的页表,以得到指令或数据所在页对应的内存块号;第二次才可以根据物理地址存取指令或数据,这使得计算机的处理速度降低了近1/2。 为了提高存取速度,可在地址变换机构中增设一个具有并行查找能力的高速缓冲寄存器,又称为“联想寄存器”或“快表”,用以存放当前被频繁访问的页面的也好和对应的页表项。 在进行地址转换时,地址变换机构自动将逻辑地址中的页号并行地与快表中的所有也好进行比较,若其中有与此相匹配的页号,便可以直接从快表中读出该页对应的物理块号,并送到物理地址寄存器中。 如果在快表中未找到对应的页号,则仍需访问内存中的页表来进行地址转换,同时还必须将得到的页表项与页号一起装入到快表中,若快表已满,则还需根据置换算法淘汰某个快表项,已装入新内容。 由于成本的关系,快表通常做得较小。 5.试描述引入目录页的、具有两级页表的页式地址变换机制。 针对难以找到大的连续内存空间以存放页表的问题,可利用将页表进行分页的办法,使每个页面的大小与内存物理块的大小相同,离散地存放在不同的物理块中,并为之建立一张页表(外层页表OuterPageTable)。 以32位逻辑地址空间为例,家丁页面大小为4kB,若采用1级页表结构,须具有20位页号占1M;在采用两级页表结构时,再对页表进行分页,使每个页表中包含210个页表项,此时逻辑地址结构如下: 6.说明段式分配管理的基本数据结构,以及段式系统的地址变换机制。 段式分配与管理的基本思想(地址变换机制): ●按程序中的自然分段特性来划分逻辑空间,形成二维地址空间。 例如,序中主程序、子程序、静态变量、堆栈等,都是基于段的。 ●逻辑地址形式: (段号s,段内位移d); 低级语言程序中用户可直接给出该形式地址,高级语言程序在编译后也可得到这种形式地址。 ●程序加载时,OS为所有的段分配所需内存,每个段被分配在一个连续分区;但进程中的各个段可离散分配到主存的不同分区; ●在为每个段分配物理内存时,采用动态分区管理方法。 段式分配管理的相关数据结构 ●进程用户空间段描述表 段长|属性|起始逻辑地址|段表项索引号 ●进程段表(SegmentTable,ST) 每个进程一张(套),被放置在系统空间 ●段长|段属性(保护码)|段基址 ☆进程局部描述符表(LocalDescriptorTable,LDT) 描述可变分区的空闲段表(FBT或FBC) 7.什么是局部性原理? 试说明虚拟存储管理实现的基本思想、技术优势和特征。 1)局部性原理: ●程序在执行过程中的一个较短时期,所执行的指令地址和操作数地址,将局限于一定区域内。 ●程序执行活动具有: 时间局部性和空间局部性。 2)虚拟存储管理实现的基本思想: ⏹程序装入时,不必将其全部读入内存,只需将当前执行需要的部分页(或段)装入内存,就可让程序开始执行。 ⏹在程序执行过程中,如需访问尚未在内存的逻辑地址单元(缺页或缺段),则OS通过相应机制将所缺
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中国 操作系统 复习 题解