(完整版)操作系统复习整理.pdf
一、三大操作系统的工作原理和任务(P7)批处理(单道批处理和多道批处理)、分时、实时系统是三种基本的操作系统类型。多道批处理 :用户所提交的作业都先存放在外存并排成一个队列,该队列被称为“后备队列”;然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU 和系统中的各种资源。优缺点:( 1)资源利用率高;(2)系统吞吐量大;(3)平均周转时间长;(4)无交互能力分时: 多个用户分时使用主机,每一用户分得一个时间片,用完时间片后操作系统将处理机分给另一用户。使处理机能够及时响应用户请求。实时: 系统能及时响应外部事件的请求,在规定时间内完成对该事件的处理,并控制所有实时任务协调一致地的运行。二、操作系统的四个主要特征:并发性(两个或多个事件在同一时间间隔内发生)、共享性、虚拟、异步性三、什么是微内核?微内核的工作原理及工作模式?(27)(1)足够小的内核( 2)基于客户 / 服务器模式( 3)应用机制与策略分离原理(4)采用面向对象技术优点:提高可扩展性、增强可靠性、可移植性强、提供对分布式系统支持、融入面向对象技术四、什么是多道程序技术?(填空)在内存中放多道程序,使它们在管理程序的控制下相互穿插地运行。五、操作系统主要功能:处理机管理功能、存储器、设备、文件一、区别:进程和程序、进程和线程、用户级线程和核心级线程(估计考其中一个)1、进程和程序( 1)进程由程序段和数据段这两个部分组成,因此说进程与程序是紧密相关的。但从结构上看,进程实体中除了程序段和数据段外,还必须包含一个数据结构,即进程控制块PCB (进程存在标志)。(2)进程是程序的一次执行过程,因此是动态的;动态性还表现在进程由创建而产生、由调度而执行、由撤消而消亡,即它具有定的生命周期。而程序则只是一组指令的有序集合,并可永久地存放在某种介质上,其本身不具有运动的含义,因此是静态的。 (3)多个进程实体可同时存放在内存中并发地执行,其实这正是引入进程的目的。而程序( 在没有为它创建进程时 ) 的并发执行具有不可再现性,因此程序不能正确地并发执行。(4)进程是一个能够独立运行、独立分配资源和独立接受调度的基本单位。而因程序 (在没有为它创建进程时)不具有 PCB, 所以它是不可能在多道程序环境下独立运行的。( 5)进程与程序不一对应。3、用户级线程和核心级线程(1) 内核支持线程即核心级线程。它们是依赖于内核的,即无论是用户进程中的线程,还是系统进程中的线程,它们的创建、撤消、切换都由内核实现。(2) 用户级线程,对于这种线程的创建、撤消、和切换,都不用系统调用来实现。内核并不知道用户级线程的存在。进程特征:动态()独立()异步()并发(指多个进程实体同存于内存中,且能在一段时间内同时运行)二、进程的状态转换的条件三状态 :就绪状态、执行状态、阻塞状态五状态: 创建、就绪、阻塞、执行、终止七状态: 创建、终止、执行、活动就绪、静止就绪、活动堵塞、静止堵塞三、什么是信号量机制及作用P操作对信号量进行减 1 操作和检查信号量 V 操作对信号量进行加 1 操作和检查信号量 (1)Wait(P操作) / wait(s)s.value = s.value -1 ;if (s.value 0) block(S.L); 2)Signal (V操作) signal(s)s.value = s.value +1;if (s.value value-;if(-valuelist);signal(semaphore*s)S-value+;if(S-valuelist) 四、什么是原语?列举不少于6 个原语 原语就是由若干条指令组成的,用于完成一定功能的一个过程,他们是原子操作,对于操作中的所有操作要么全做,要么全不做,原语执行过程中不允许中断。原语举例: 阻塞原语block 唤醒原语 wakeup 挂起原语 suspend 激活原语active AND 型信号量集P原语为 Swait AND 型信号量集V 原语为 Ssignal Send 原语Receive 原语临界资源:一次仅允许一个进程访问的共享资源临界区:每个进程中访问临界资源的那段程序称为临界区,每次只准许一个进程进入临界区,进入后不允许其他进程进入。五、进程通讯方式共享存储器系统管道通讯系统消息传递系统 :直接通信方式;间接通信方式。客户机-服务器系统三种调度(填空题)作业调度:后备队列上的作业进入内存,创建进程,分配资源并进入就绪队列。也称为作业调度或长程调度,一般在批处理系统中有作业调度中级调度:为了提高内存利用率和系统吞吐量。涉及进程在内外存间的交换从存储器资源管理的角度来看,把进程的部分或全部换出到外存上,可为当前运行进程的执行提供所需内存空间。进程调度:也称微观调度、进程调度,从处理机资源分配的角度来看,处理机需要经常选择就绪进程或线程进入运行状态。由于低级调度算法的频繁使用,要求在实现时做到高效低级调度分两种方式:抢占、非抢占三、 死锁:一组进程中, 每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法得到该资源,这种现象称为进程死锁。产生死锁四个必要条件:互斥条件:涉及的资源是非共享的。不剥夺条件 :不能强行剥夺进程拥有的资源。请求和保持(部分分配)条件:进程在等待一新资源时继续占有已分配的资源。环路条件 :存在一种进程的循环链,链中的每一个进程已获得的资源同时被链中的下一个进程所请求。处理死锁的四个基本方法:预防死锁:避免死锁:检测死锁:解除死锁:精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 4 页 - - - - - - - - - - 预防死锁的三个条件:破坏请求和保持(部分分配)破坏不可剥夺条件破坏环路条件避免死锁的实现:利用银行家算法安全性算法避免死锁。调度算法 :先来先服务算法(FCFS )有利于长作业,不利于短作业最短作业优先算法(SJFt )提高了系统吞吐量对长作业不利未考虑作业的紧迫程度作业时间的估计时间不准最高响应比优先算法(HRN )有利于短作业等待时间越长,优先级越高对于长作业也不会无限等待每次调度之前,都先做响应比计算,增加系统开销间片轮转程序调度算法(RR) 将就绪队列分为 N 级,每个就绪队列分配给不同的时间片,队列级别越高,时间片越长,级别越小,时间片越短;当进程第一次就绪时,进入第一级队列系统从第一级调度,当第一级为空时,系统转向第二个队列,.当运行进程用完一个时间片,放弃CPU 时,进入下一级队列;等待进程被唤醒时,进入原来的就绪队列;一、连续分配动态分区算法原理:(基于顺序搜索)分区分配算法包括:(1)首次适应算法FF:在内存分配时,要求空闲区按地址递增的次序组织空闲区表(队列)。分配: 当进程申请内存时,系统从空闲区表的第一个表目开始查询,直到首次找到大小能够满足要求的空闲区,然后从该区中划出一块内存空间分配给进程,余下的部分仍作为一个空闲区留在空闲区表中,但要修改其首址和大小。(2)循环首次适应算法:在内存分配时,要求空闲区按地址递增的次序组织空闲区表(队列)。分配 :从上次找到的空闲分区的下一个空闲分区开始查找,直至找到第一个能满足要求的空闲分区,从中划出一块与请求的大小相等的内存空间分配给作业。 (3)最佳适应算法 :要求按空闲区大小从小到大的次序组成空闲区表(队列)。分配: 当进程申请一个存储区时,系统从表头开始查找,当找到第一个满足要求的空闲区时,停止查找,并且这个空闲区是最佳的空闲区。三、什么是碎片?分哪几种?由于空闲区的大小与申请内存的大小相等的情况是很少的,绝大多数情况是从一个空闲区中切去一块,剩下的部分作为一个空闲区仍留在空闲区表中,随着时间的推移,空闲区的发展趋势是越来越小,直至不能满足任何用户要求。这种不能被任何用户使用的极小的空闲区称为碎片。分类 :页内碎片、外部碎片四、在分页式、分段式、段页式访问内存次数?在分页存储管理方式中产生页内碎片,访问两次 。第一次是访问内存的页表,从中取出物理块号。第二次访问内存是将物理块号和页内地址转化成物理地址,去内存取出需要的数据。(一维地址空间)在分段存储管理方式中,访问 两次 内存。第一次是访问内存中的段表,从中取出段表的内存起始地址,将其与段内地址相加,得内存物理地址。第二次访问内存是从内存中取出需要的数据。(二维地址空间)在段页式存储管理方式中,访问内存三次 。第一次访问内存是访问内存中的段表,得页表起始地址。第二次访问是访问内存中的页表,取出物理块号。第三次访问内存是取出需要的数据或者是指令。五、什么是对换,抖动,换入,换出?对换 :把内存中暂不能运行的进程,或暂时不用的程序和数据,换出到外存上,以腾出足够的内存空间,把已具备运行条件的进程,或进程所需要的程序和数据,换入内存。抖动 :在虚存中,页面在内存与外存之间频繁调度,以至于调度页面所需时间比进程实际运行的时间还多,此时系统效率急剧下降,甚至导致系统崩溃。这种现象称为颠簸或抖动。如何消除抖动现象?“L=S 准则”,即调整系统内的进程数,使得产生缺页的平均间隔时间(L)等于系统处理进程缺页的平均时间(S)。理论和实践表明,此时的CPU 利用率最高。原因: 页面淘汰算法不合理分配给进程的物理页面数太少换入 :将对换区中的进程调至内存。换出 :将内存中的某些进程调至对换区。一、什么是虚拟存储器?具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。实现虚拟内存的基本原理将程序正在使用的部分内容放在内存,而暂时不用的部分放在外存,在需要时由系统调入内存,并将不需要(或暂不需要)的部分调出内存。由于程序在执行时,在一段时间内一般仅使用它的程序的一部分(或一小部分),所以程序仅有部分装入内存完全能够正确执行。特点 :多次性,对换性、虚拟性二、页面置换算法(1)最佳 (Optimal) 置换算法 选择永不使用的,或者是在最长时间内不再被访问的页面作为淘汰页面。(2)先进先出( FIFO )页面置换算法淘汰最先调入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。(3)最近最久未使用页面置换算法(LRU )选择最后一次访问时间距离当前时间最长的一页并淘汰之,即淘汰没有使用的时间最长的页。简单 Clock 置换算法改进型 Clock 置换算法一、目录线性查找技术:线性检索法又称为顺序检索法。在单级目录中,利用用户提供的文件名,用顺序查找法直接从文件从目录文件中找到指明文件的目录项。在树形目录中, 用户提供的文件名是由多个文件分量名组成的路径名,此时需要对多级目录进行查找。二、索引节点如何指向目录的内容?以/usr/ast/mbox 为例:首先文件系统找到根目录。在UNIX 中,根目录的索引结点位于磁盘上的固定位置。然后在根目录中查找路径的第一部分,usr,也就获得了文件/usr 的索引结点号。每个索引结点都位于磁盘的固定位置,所以根据索引结点号找到索引结点是很直接的。这样文件系统找到目录/usr,并接着查找下一部分ast。找到ast 目录项后,得到目录/usr/ast 的索引结点。从而找到目录/usr/ast 并在该目录中查找文件mbox。接着,文件mbox 的索引结点被读入内存,并保存在内存中,直至关闭该文件。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 4 页 - - - - - - - - - - 磁盘索引节点 :文件主标识符;文件类型;文件存取权限;文件物理地址;文件长度;文件连接计数;文件存取时间。内存索引节点 :文件打开时,磁盘索引节点进内存以便于使用,增加了几项:索引节点标;,状态(是否上锁或修改);访问计数;文件所属文件系统的逻辑设备号;链接指针三、文件的物理结构由什么组成?顺序结构 一个文件的全部信息存放在外存的一片连续编号的物理块中,这种结构称为连续结构,或称连续文件。索引结构 这是一种非连续的结构,存放文件信息的每一物理块中有一个指针,指向下一个物理块,这个指针的长度由物理设备的容量决定,通常放在该物理块的开头或结尾。链接结构 将盘块中的链接字按盘块号的顺序集中起来,构成盘文件映射表/文件分配表(FAT)。一、对 I/O 设备的控制方式?使用轮询的可编程I/O 方式使用中断的可编程直接存储器访问方式I/O 通道控制方式二、设备分配的数据结构?设备控制表DCT 控制器控制表、通道控制表和系统设备表三、设备分配 在多用户或多进程的环境中,每个用户在完成各自的任务时总是要使用外设,为用户或进程分配设备是设备管理的主要功能之一。设备分配包括 :设备分配策略、分配的方式、分配技术和选择用户的算法。四、 .设备独立性的概念设备独立性(又称设备无关性)的基本含义是:应用程序独立于具体使用的物理设备。设备独立性的实现:(1)引入逻辑设备和物理设备两个概念。在应用程序中使用逻辑设备名称来请求使用某类设备;而系统在实际执行时使用物理设备名称。(2)系统必须具有将逻辑设备名称转换为某物理设备名称的功能。设备独立性后的好处:(1)设备分配灵活(2)易于实现I/O 重定向六、磁盘调度算法1) 先来先服务 )最短寻道时间优先3)扫描算法4)单向扫描调度算法5)循环扫描调度算法七、磁盘访问三个过程:由三个动作组成:寻道:磁头移动定位到指定磁道旋转延迟 :等待指定扇区从磁头下旋转经过数据传输 :数据在磁盘与内存之间的实际传输八、 SPOOLING系统的组成输入井和输出井输入缓冲区和输出缓冲区输入进程和输出进程。九、假脱机 外围操作与CPU 对数据的处理同时进行,这种在联机情况下实现的同时外围操作称为SPOOLing,或称为假脱机操作。 区别脱机 :设备与主机是否连接,目标设备的I/O 过程是否在主机控制下进行。文件物理结构:顺序结构,简单:存储与管理都简单,且容易实现。支持顺序存取和随机存取。顺序存取速度快。所需的磁盘寻道次数和寻道时间最少。缺点需要为每个文件预留若干物理块以满足文件增长的部分需要。不利于文件插入和删除。链式结构优点 提高了磁盘空间利用率,不需要为每个文件预留物理块。有利于文件插入和删除。有利于文件动态扩充。缺点 存取速度慢,不适于随机存取。当物理块间的连接指针出错时,数据丢失。更多的寻道次数和寻道时间。链接指针占用一定的空间,降低了空间利用率。索引结构优点不需要为每个文件预留物理块。既能顺序存取,又能随机存取。满足了文件动态增长、 插入删除的要求。缺点 较多的寻道次数和寻道时间。索引表本身带来了系统开销。如:内外存空间, 存取时间等。成组链接法 分配空闲块的时候,从前往后分配,先从第一组开始分配,第一组空闲的100 块分完了,才进入第二组。释放空闲块的时候正好相反,从后往前分配,先将释放的空闲块放到第一组,第一组满了,在第一组前再开辟一组,之前的第一组变成第二组。操作系统接口:用户接口程序接口常用系统调用类型:进程控制类;文件操纵类;进程通信类什么是系统调用:系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序。用户接口:字符显示式联机;图形化联机;程序接口请求页表缺页中断页号物理块号状态位 p 访问字段 A 修改位 M 外存地址为什么要引入逻辑地址?1) 使用物理地址的程序只有装入程序所规定的内存空间上才能正确执行,如果程序所规定内存空间不空闲或不存在,程序都无法执行;(2) 使用物理地址编程意味着由程序员分配内存空间,程序员无法事先协商每个程序所应占的内存空间的位置,这在多道程序系统中,势必造成程序所占内存空间的相互冲突;(3) 在多道程序系统中,系统无法保证程序执行时,它所需的内存空间都空闲。基于上述原因,必须引入一个统一的、在编程时使用的地址,它能够在程序执行时根据所分配的内存空间将其转换为对应的物理地址,这个地址就是逻辑地址。逻辑地址的引入为内存的共享、保护和扩充提供方便。试比较静态重定位和动态重定位“重定位” 实际上指的是相互联系的两件事情:一是确定一个待执行程序在内存中的位置;二是将程序中的逻辑地址转换成物理地址。后一件事情是由前一件事情决定的。动态重定位特点:实现要依靠硬件地址变换机构,且存储管理软件算法较复杂;程序代码是按原样装入内存的,在重定位的过程中也不发生变化同一代码中的同一逻辑地址,每执行一次都要重定位一次;只要改变基地址,就可以很容易地实现代码在内存中的移动; 动态重定位可以将程序分配到不连续的存储区中;所以,尽管动态重定位需要硬件支持,但支持程序浮动,便于利用零散的内存空间,利于实现信息共享和虚拟存储,所以现代计算机大都采用动态重定位。另外,实现虚拟存储器需要动态重定位技术的支持。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 4 页 - - - - - - - - - - 在实存管理上,管理方法主要分成哪两种类型?1)连续 :用户程序需要占用连续的内存空间,如分区存储管理;(2)离散 :用户程序不需要占用连续的内存空间,如分页、分段、段页等管理,一个用户程序在内存可能是不连续的,如果它有不只一页或一段的话。为什么在分页和分段管理下取一条指令或一个操作数通常需两次访存?如何解决这一问题?因为用于地址变换的页表或段表也是存放在内存的,为了将CPU 给出的逻辑地址变成物理地址,首先就要访问内存的页表和段表,然后,根据形成的物理地址再取指令或数据,这就要两次访存。解决 这一问题的办法是提供一个称之为“快表”的硬件,用以存放当前运行进程的页表或段表的部分内容,“快表”的访问时间很快,因此可以节约访问页表和段表的时间。存储器访问具有时间和空间的“局部性”,因此快表的命中率一般可达70%到 90%;页表和段表是在系统执行过程中,每时每刻都需要访问的,因此,访问时间的微小缩短,其累计节约的时间却可以达到很大。为什么分段管理下的程序共享和保护比分页管理更有意义.因为段是一个有意义的逻辑整体,如主程序、子程序、数据表格、工作空间等,就如书本上的一章或一个自然段。而页只是一个物理尺寸,不一定有完整的意义,如书本上的一页。程序共享当然希望被共享的对象是一个有意义的整体,如一个子程序; 至于程序保护, 指的是每个进程都应按所拥有的存取权访问不同的程序,而存取权(R,W,E 等)当然对一个有完整意义的对象才更有意义。所以就共享和保护而言,分段管理比分页管理更有意义。为什么说分段系统较之分页系统更易于实现信息共享和保护?如何实现(1) 为了实现共享,必须在各共享者的段表或页表中分别有指向共享内存块的表目。(2) 对分段式系统,被共享的程序或数据可作为单独的一段。在物理上它是一段,在不同的进程中,可以对应不同的逻辑段,相对来说比较易于实现。(3)对分页管理,则要困难的多。必须保证被共享的程序或数据占有整数块,以便与非共享部分分开。(4)分段系统的共享是通过两个(或多个)进程的段表之相应表目都指向同一个物理段,并设置共享计数来实现的。覆盖技术的基本思想是什么?若一个大的程序是由多个相对独立的程序模块组成,且有些模块是相互排斥的,即执行甲就不会执行乙,在这种情况下,就没有必要将该程序的所有模块装入内存,可将那些二者(或多者)执行时取其一的模块处理成“覆盖”,让它们共享内存的一个“覆盖区”。这样就可大大节省内存空间,达到用小内存运行大程序的目的。覆盖技术与虚拟存储技术有何本质不同?虚拟存储器对于程序员时透明的,不需要程序员了解程序结构、覆盖的区域、时机,不需要精心的设计程序及其数据结构,所有的操作由操作系统自动完成。覆盖的程序段的最大长度要受到物理内存容量的限制,而虚拟存储器的最大长度不受物理内存容量的限制,只受计算机地址结构的限制。交换技术与虚存中使用的调入调出技术有何相同和不同之处?主要相同点:是都要在内存与外存之间交换信息主要区别 :交换技术换出换进一般是整个进程(proc 结构和共享正文段除外),因此一个进程的大小受物理存储器的限制;而虚存中使用的调入调出技术在内存与外存之间来回传递的是存储页或存储段,而不是整个进程,从而使得进程映射具有了更大的灵活性,且允许进程的大小比可用的物理存储空间大的多。在内存管理中,“内零头”和“外零头”各指的是什么?在固定式分区分配、可变式分区分配、页式虚拟存储系统、段式虚拟存储系统中,各会存在何种零头?为什么?内零头(又称内部碎片):给一个作业分配的存储块长度为n,在其中存储的作业长度为m,则剩下的长度为(n-m)的空间,成为该存储块的内部碎片;若存储块长度为n,在该系统所采用的调度算法下,较长时间内无法选出一道长度不超过该块的作业,则称该块为外零头(外部碎片)。在固定式分区分配中两种零头均会存在,因为空间划分是固定的,无论作业长短,存储单元均不会随之变化,若作业短而存储块长则产生内零头,若作业长而存储块短则产生外零头。在可变式分区分配中只有外零头而无内零头,因为空间划分是依作业长度进行的,是要多少给多少,但剩下的部分太短而无法再分,则称为外零头。页式虚存中会存在内零头而无外零头,因存储空间与作业均分为等长单元,所以不存在无法分配的单元,但作业长度并不刚好为页面大小的整数倍,因此在最后一页会有剩余空间,即为内零头。段式虚存中会存在外零头而无内零头,因段式的空间划分类似于可变分区分配,根据段长分配,要多少给多少,但会剩余小空间无法分配,则为外零头。将手工操作、单道批处理、多道批处理、多用户分时系统按CPU 的有效利用率,由小到大进行排列。手工操作、单道批处理系统、多用户分时系统、多道批处理系统。手工操作没有操作系统,属于单道程序系统,大量的处理机时间被人工操作所浪费,因此CPU 的利用率最低。单道批处理系统在一定程度上克服了手工操作的缺点,但仍属于单道程序系统,大量的CPU 时间浪费在等待I/O 操作的完成上。因此它的CPU 利用率比手工操作的系统要高,但比多道程序系统的要高。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 4 页 - - - - - - - - - -