Linu复习大纲带答案学长版_第1页
Linu复习大纲带答案学长版_第2页
Linu复习大纲带答案学长版_第3页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实用操作系统期末考试题型说明2016年6月16日一、名词解释(共5题,每题3分,计15分)通过23句话说明相关概念的基本定义。二、计算题(共2题,每题15分,计30分)结合相应图表,根据题目要求,计算相应结果(给出详细计算过程,分步给分)三、简答题(共5题,每题6分,计30分)根据提问,对相关知识点进行总结,并作必要对比分析。四、程序分析题(共2题,每题7分,计14分)根据相关代码框架,说明相应技术的实现原理与机制(不需要对代码细节做深入分析)。五、程序设计题(共1题,计11分)根据题目要求,给出相应的设计方案。实用操作系统复习提纲提示:1)请根据以下提纲整理相关知识内容的要点,避免去死记硬背

2、。2)请不要简单地依据往年试题内容复习,否则后果自负。第一讲:系统分析基础1、什么是用户态和内核态及划分的必要性?不区分的缺陷用户直接修改操作系统数据用户直接调用操作系统内部函数用户直接操作外设用户任意读/写物理内存区分意义:保护内核禁止用户程序和底层硬件直接打交道如果用户程序往硬件控制寄存器写入不恰当的值,可能导致硬件无法正常工作禁止用户程序访问任意物理内存,否则可能会破坏其他程序的正常执行如果对核心内核所在的地址空间写入数据,会导致系统崩溃2、单内核、多模块的特点及其与微内核操作系统的主要区别。是单内核、多模块系统内核运行在单独的内核地址空间所有操作系统功能作为一个模块实现在内核中模块均运

3、行在内核态,直接调用函数,无需消息传递模块化设计、抢占式(2.6内核级抢占,2.4用户级抢占)、支持内核线程及动态装载内核模块的能力与主要区别也是单内核系统,但汲取了微内核设计思想(基于模块定制内核)也是单内核系统和是微内核系统只提供基础功能,其他功能通过服务实现微内核被划分为多个独立过程,每个过程称为服务器应用程序标准函数库模块设备驱动系统调用(PO引X标准)接口内核(进程管理、存储管理、文件管理、设备管理、网络管理)Linux单内核结构彖单击计算机硬件3、可加载内核模块的概念,内核模块与C语言应用程序的主要差别。加载内核模块()的概念模块实际上是一种目标对象文件,没有链接,不能独立运行其代

4、码可以在系统运行时链接到系统中,作为内核的一部分运行或从内核中取下,从而可以动态扩充内核的功能(不需要重新编译内核)这种目标代码通常由一组函数和数据结构组成第二讲:进程与线程C语言程序模块运行用户空间内核空间入口()()出口无()编译编制专用,并调用连接运行直接运行调试,等1、2.4及2.6进程系统堆栈结构特点及主要区别两个连续物理页面(8K)结构定义()2048uniontask_unioninit_task_size心的血皿也哄structtask_structtask;/unsignedlongstackINIT_TASK_SIZE/sizeof(long);2.6进程系统堆栈数据结构定

5、义(其定义了一个指向进程描述符的指针)2.6进程系统堆栈结构特点内核堆栈stLiiut1tixec_domain:/*executiondomainT/unsignedlonglags;/*louleve1fl.gs*/unsignedlongstatus;/Tthred-synclironous壬lagm*/,进程描迷符(约IK)处低的内存地histructmstructtaskstruct"tasKTj/rmlntaskstructureT/惊高的内存迎址进程系统堆栈结构特点?8192(213)字节,两个页框?占据连续两个页框,且第一个页框起始地址为213的倍数2.4进程系统堆栈

6、结构特点谱程内核栈栈1s1r1himcttasksirueIMrukZLliircudimhi两个适续物理页面(约8K)内核堆栈cirreriicirreriicirrerii,谜程描述符(约堂字节)厢虹的内存地I1Lk,个拆向进丹崎述帝角情针'*道我的口斌-MlUClfA斡两者区别:?2.4进程描述符由(),(),()进行管理,2.6进程描述符由分配器动态生成;?2.4进程系统堆栈栈底使用结构,2.6进程系统堆栈栈底使用新结构,其定义了指向进程描述符的指针,占用更小的栈空间2、进程(组)相关标识符的含义。-成员名:功能:内核通过标识每个进程与进程描述符之间有严格的一一对应关系,成员名

7、:功能:标识进程是否属于同组,组是第一个组内线程(父进程)的线程组中的所有线程共享相同的3、进程。系统引导进程()在引导结束后成为0上的进程,每个上都有一个进程,进程不进入就绪队列,仅当就绪队列为空时进程才会被调度。4、通用内核链表的设计特点及与双向链表的主要区别。特点:?链表结构作为一个成员嵌入到宿主数据结构内?链表结构可放在宿主结构内的任何位置?一个宿主结构可有多个内核链表结构?避免为每个数据项类型定义自己的链表通用内核链表不用为每个数据项定义链表。传统双向链表的指针记录节点的首地址,通用内核链表的指针记录链表的地址。6、“”的特点与作用。特点:-以结尾的宏-通过延退写操作来提高同步性能作

8、用:-常用来保护读操作占多数的链表与数组7、常用进程创建函数的主要差别及使用方法。进程创建函数-();-();-(*)(*),*关系差别,三者最终都会调用函数。()与()功能相同,但是创建轻量级线程的。它是号处使用:(个人觉得略坑)(,*,*,参数说明:子进程创建相关标志:子进程用户态堆栈的地址,将用户态堆栈指针赋给子进程的:从用户态切换至内核态时保存用户堆栈到内核态的堆栈:未使用(总设为0):父进程用户态下的地址,若需父进程与新轻量级进程有相同,则需设置:新建子进程用户态下的,若需让新进程具有同类进程的,需设置*);()但不拷贝父进程的页表项。子进程只执行()时,()为首选。而对于()()的

9、推广形式,它允许新进程共享父进程的存储空间、文件描述符和信*);asmlinkageintsys_vfork(stnictpt_regsregsjleturndo_fork(CLONEVFORK|CLONE_VM|S1GCHLD,regs.esp,&reqs,0);说明()创建的子进程与父进程共享地址空间子进程作为父进程的一个单独线程在其地址空间运行子进程从父进程继承控制终端、信号标志位、可访问的主存区、环境变量和其他资源分配子进程对虚拟空间任何数据的修改都可为父进程所见父进程将被阻塞,直到子进程调用()或()(*)(*),*,*);参数说明:待执行的程序:进程所使用的堆栈:由用户指定

10、,可以是多个标志的组合:执行所需的参数功能创建轻量级进程()的系统调用通过控制进程、用户线程、内核线程的主要区别。进程:被操作系统调度,一个系统进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,资源的的集合。用户线程:存在于用户空间中,通过线程库来实现线程创建和调度都在用户空间进行,以进程为单位调度内核线程:在内核空间内执行线程的创建、调度和管理内核线程的创建和管理慢于用户线程的创建和管理9、为何系统调用能返回两个不同的返回值。第三讲:进程调度2.4及2.6进程调度体系、调度框架的特点及差别。2.4的调度体系基于共享全局队列,其算法属于O(n),开销是线性增长的。2.6每个处理器都

11、有独立的就绪进程队列,各个处理器可以并行运行调度程序来挑选进程运行,不同处理器上的进程可以完全并行地休眠、唤醒和上下文切换。1. 主动调度与被动调度的特点。2.4:主动调度:直接调用()被动调度:置位当前进程的,和主动调度相比,被打调度有一定的调度延时2.6:包含了2.4的调度时机,增加内核可抢占。3.2.4及2.6进程调度中优先级算法的设计优先级定义静态优先级:(070)表示分配给进程的时间片指明在被迫和其他进程竞争之前,进程允许的最大时间片只能由用户进行修改,不随时间而改变,一般通过设定,动态优先级:进程拥有时随时间不断减小指明在这个时间片中所剩余的时间量当小于0时,标记进程重新调度实时优

12、先级:(199)确定实时进程的调度顺序,较高权值进程优先于较低权值进程非实时进程的优先级为0,因此实时进程总优先于非实时进程2.4:普通进程基本思想:动态优先级调度-通过更新值,周期性修改进程优先级(避免饥饿)基本过程变为。时,用对重新赋值-所有可运行状态进程的时间片都用完后才对重新赋值进程运行过程中,的减小为其它进程提供运行机会,该机制相当于优先级在动态变化,所以称之为动态优先调度实时进程基本思想:静态优先级策略-只用来表示该进程的剩余时间片-不作为衡量其是否值得运行的标准(与普通进程的区别)调度设计的基本原则:动态调整优先级及时间片长度2.6:基于每个分配时间片,取消全局同步和重算循环每个

13、处理器有两个数组:活动就绪进程队列和不活跃就绪进程队列进程消耗完其“时间片”后,进入不活跃就绪进程数组中相应队列的队尾当所有进程都“耗尽”其“时间片”后,交换活跃与不活跃就绪进程队列数组,不需要任何其他的开销每个数组中有140个就绪进程队列(),每个队列对应于140个优先级的一个通过位图标记队列状态调度时,通过()找到第一个非空的队列,并取队首进程不管队列中有多少就绪进程,挑选就绪程的速度恒定,因此称为0(1)算法4.2.4及2.6负载均衡机制的实现思路。2.4的负载平衡基本策略:进程p被切换下来之后,如果还有空闲,或者该上运行的进程优先级比自己低,那么p就会被调度到那个上运行,内核使用该办法

14、来实现负载平衡。2.6的基本策略:采用相对集中的负载平衡方案,分为“推”和“拉”两类操作“拉”操作:当某个负载过轻、而另一负载较重时,系统会从重载上“拉”进程过来。有两种调用方式:“忙平衡”:当前不空闲;“空闲平衡”:当前空闲。“推”操作:在系统启动时自动加载(每个一个),并将自己设为的实时进程,定期检查中是否有请求等待处理,若没有,就在中休眠,直至被唤醒后再次检查。5. 2.6如何体现交互式进程优先的。内核有四处对交互式进程的优先考虑交互式进程因为休眠次数多、时间长,也会相对更大一些记录进程的交互程度判断进程是否是交互式进程()宏就绪等待时间的奖励对交互式进程的优先级奖励系统通过()累积方式

15、完成奖励当进程从切换下来时,如果是交互式进程,则它参与优先级计算的运行时间会比实际运行时间小,以此获得较高的优先级交互式进程处于状态下的休眠时间也会叠加到上,从而获得优先级奖励内核抢占、用户抢占的实现机制及差异;何种情形下不允许内核抢占。当进程位于内核空间时,有一个更高优先级的任务出现时,如果当前内核允许抢占,则可以将当前任务挂起,执行优先级更高的进程。第四讲:进程通信常用进程通信方式在设计目标、使用场景的主要区别及相关函数的使用方法。1. 信号():进程或内核使用信号机制通知其他进程发生某一事件管道()及有名管道():用于具有亲缘关系的进程间通信相关代码略(太多。)相关函数看,看完估计想死的

16、心也有了。°信号安装函数:(),()信号发送函数:(),(),(),(),(),()信号集操作函数:(),(),(),(),()00000000可靠信号及非可靠信号的特点、主要区别,信号处理机制的内核实现机制。不可靠信号-信号值小于进程每次处理信号后,将信号响应函数设置为默认动作,需调用()重新安装信号非实时信号都是不可靠信号,不支持排队,信号可能丢失可靠信号-信号值介于和之间新信号安装函数()和信号发送函数()-实时信号都是可靠信号,支持排队资源、键、标示符的定义。资源表示单独的消息队列、共享内存或信号量集合。键对象的外部表示,可由程序员选择。如果键是公用的,则系统中所有进程通过权

17、限检查后,均可找到和访问相应对象如果键是私有的,则键值为0。(每个进程都可建立一个键值为的私有对象。)标识符-由内核分配给对象,在系统内部唯一对象标识符的获取:()将键传递给以打头的内核函数,并为用户分配一个与对象相对应的数据结构。 返回一个32位标识符,进程使用此标识符对该资源进行访问4资源内核结构设计的特点。(真没理解,不知道对不对)设计了:消息队列:()16个。共享内存:()4096个。信号量():128个不同进程通信机制在内核结构设计上的异同点。5. 可撤销信号量的定义及其内核实现机制。第五讲:系统调用与中断处理系统调用与中断处理在内核实现机制上的异同点。系统调用:-位于用户空间进程和

18、硬件设备之间的一个中间层-为用户态进程与硬件设备交互提供一组接口中断:异步的,来自处理器之外的中断信号,在程序执行的任何时候可能出现区别:a.中断允许嵌套发生,但异常多数情况为一重.b为用户空间提供一种硬件的抽象接口. 是除异常和陷入外,用户空间访问内核的唯一入口保证系统的稳定与安全.1. 封装例程的定义及作用。定义:系统调用可由用户态进程或内核线程使用,但内核线程不能使用库函数,为简化处理,定义了七个内核封装宏。作用:-屏蔽底层复杂性将系统调用封装成应用程序可直接调用的函数(库函数)系统调用的编写方法。用户程序调用系统调用总控程序系统调用总控程序入口地址挂在中断0x80上用户程序执行$0x8

19、0实现“从用户程序到系统调用总控程序”的切换-处理过程在进程的内核态堆栈中保存大多数寄存器的内容调用对应系统调用服务例程处理系统调用通过()从系统调用返回服务程序通过"*()(,4)调用服务程序调用形式*()(,4)说明保存相应系统调用编号此编号对应系统调用服务例程在系统调用向量表中的编号由于系统调用向量表每项占4个字节,所以由乘上4形成偏移地址为基址,基址加上偏移所指向的内容就是相应系统调用服务程序的入口地址-记录已注册的系统调用列表每个有效的系统调用指定一个唯一的系统调用号-定义在中的段()系统调用只返回,专门针对无效的系统调用而设置定义形式()(;2. 处理边界错误,0号系统调

20、用就是用此特殊的服务程序用于替换旧的、已淘汰的系统调用用于将要扩展的系统调用中断处理、异常及信号在实现机制、处理流程上的异同点系统中如何实现共享的。结构作用-包含内核接收到特定之后应采取的操作用来实现共享,维护共享的特定设备和特定中断(所有共享同一的中断服务例程链接在一个表)stiuctirqaotion<void(fltHandlr)(intrvoid/structpt_regs*);iinsignedIongflags;urisigneellongmask:contchar*name:;voidev_id:structirqaetion*next;J;参数说明:描述和设备之间的关系:

21、快速中断处理程序(在本地处理器上禁止所有中断的情况下执行):中断是源于物理随机性的:此与其它共享:中断屏蔽字(未使用):产生中断的设备名:标识设备的一个唯一的-支持的所有硬件设备的每一种类型,都有一个由制造厂商定义的在此成员中记录的设备:指向下一个如果被共享,则指向队列中下一个保护模式与实模式的定义。从80386开始,的工作模式。在实模式下只能访问1M以下的内存,而在保护模式下可寻址超过4G字节的物理地址空间。3. 下半部分处理的定义。执行与中断处理密切相关但中断处理程序本身不执行的工作执行期间可以响应中断下半部分处理的实现方式及不同实现方式之间的异同点、关联关系;具体代码看) 机制-最早的“

22、下半部”实现机制一一(提供了一种静态创建、由32个组成的链表。处理函数必须在编译时就定义好。上半部分通过一个32位整数中的一位来标识可执行的。每个都在全局范围内同步,不允许任何两个同时执行(即使在不同上)。) 软中断-一组静态定义的下半部接口(有32个,必须在编译阶段静态注册可以在所有处理器上同时执行(即使两个类型相同的软中断)一个软中断不会抢占另一个软中断软中断处理过程中允许响应中断,但自己不能休眠在一个处理程序运行的时候,当前处理器上的软中断被禁止)-基于软中断实现、灵活性强、动态创建(类型相同的不能同时执行。两种不同类型的可以在不同处理器上同时执行。由及两类软中断代表组成,前者的优先级高

23、于后者。)与软中断的权衡通常应该使用软中断适用于执行频率很高且连续性要求很高的情况 工作队列-将工作推后,交由一个内核线程去执行下半部分在进程上下文执行,通过工作队列执行的代码可以占尽进程上下文的所有优势a支持使用大容量内存b支持获取信号量c支持执行阻塞式操作工作队列可以用内核线程替换,但一般不建议单独建立对应的内核线程小结比较工作队列.软中断 工作队列支持睡眠,软中断不支持 若需要使用一个可以重新调度的实体来执行下半部分处理,则应该使用工作队列软中断的调度特点。有32个,必须在编译阶段静态注册-可以在所有处理器上同时执行(即使两个类型相同的软中断)-一个软中断不会抢占另一个软中断软中断处理过

24、程中允许响应中断,但自己不能休眠第六讲:内存寻址与管理1.逻辑地址、线性地址、物理地址的定义及转换过程及计算方法。逻辑地址:每个逻辑地址由一个段()和偏移量()组成线性地址:32位无符号整数,可表示4G地址空间物理地址:用于芯片级内存单元寻址,与从的地址引脚发送到内存总线上的电信号相对应转换过程:内存控制单元()通过分段单元()将逻辑地址转换成线性地址,分页单元()将线性地址转换成一个物理地址计算例题:某基于1386体系构的建辑地址的陌标Xi?(叩段择C为OMKIIF,耳段内侨移为OxOttMJOOO*CR3的地址信息'为0x00102()00:A)试根据卜述GDT及LLH信息,H算山

25、城性地虬试结合下图中的页B录及页娜息,计算出该线性地址对隔的页口录项地址,页衣项地址及物W地址一cm衣项地址及物W地址一cmcmcmINDEX基地址0NULL10x3202150020x320215013Ox.1202150240x3202150350x3202150460x32021505GDI中,段描.土*的V地LfM;INDEX基位址0NULL10102144)120x5102142340x5KJ2144)4P50x51(12144)560x51021406LDT中-芥是垛还祥他址*4页国录琐地扯贝H城0x43031000线性地址LK510214(16页目录地址10x00102510Gl表地址:0x43031(M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论