多语言展示
当前在线:245今日阅读:167今日分享:16

2014年华北电力大学计算机专业考研专业课复习4

将要考试的大部分内容罗列,有需要的可以看看。---操作系统部分
方法/步骤
1

1,程序的装入和链接(如图)                                          绝对装入方式:绝对装入程序按照装入模块中的地址,将程序和数据装入内存。装入模块被装入内存后,由于程序中的逻辑地址和实际内存地址完全相同,故不需要对程序和数据的地址进行修改。可重定位方式(静态重定位):装入模块装入内存后,装入模块中的所有逻辑地址与实际装入内存的物理地址不同。通常把装入时对目标程序中指令和数据的修改过程称为重定位。通常地址变换一次完成,以后不再改变,故称为静态重定位。动态运行时装入方式(动态重定位):动态运行时的装入程序,在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。因此,装入内存后的所有地址都仍是相对地址。静态链接方式(Static Linking)。装入时动态链接(Load time Dynamic Linking) 。用户源程序经编译后所得到的目标模块,是在装入内存时,边装入边链接的。优点:便于软件版本的修改和更新。便于实现目标模块的共享。运行时动态链接(Run-time Dynamic Linking) 。这种链接方式是将对某些模块的链接推迟到执行时才执行,亦即,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存, 把它链接到调用者模块上。

2

2,连续分配存储管理方式单一连续分配(单道程序内存分配方式)内存分为两个区域:系统区,用户区。每次把一个应用程序装入到用户区运行,由它和操作系统来共享内存。当它运行结束后,操作系统再装入一个新的程序把它覆盖;优点:简单、开销小,易于管理;缺点:每次只能运行一个程序;对那些使用空间较少的程序,造成内存浪费;适合于单用户、单任务的OS。分区存储管理内存分为两大区域:系统区,用户区。又把用户区划分为若干分区(partition),分区大小可以相等,也可以不等。一个进程占用一个分区。特点:适合于多道程序系统和分时系统,支持多个程序并发执行;分为两类:固定分区和可变分区。固定分区存储管理各个用户分区的个数、位置和大小一旦确定以后,就固定不变。为了满足不同程序的存储需要,各分区的大小可相等,也可不等。分区大小相等:只适合于多个相同程序的并发执行(处理多个类型相同的对象);分区大小不等:多个小分区、适量的中等分区、少量的大分区;当进程到来时,根据它的大小,把它放置到相应的输入队列当中,等待合适的空闲分区。两种实现方式:多个输入队列和单个输入队列。可变分区存储管理分区不是预先划分好的固定区域,而是动态创建的。系统生成后,操作系统会占用内存的一部分(一般在内存地址低端),其余空间为一个完整的大空闲区。当一个程序要求装入内存运行时,系统从这个空闲区中划分一块分配给它,当程序完成后释放所占用的存储区。

3

3,覆盖与交换如果是程序太大,超过了内存的容量,可以采用覆盖(overlay)技术,只把需要的指令和数据保存在内存当中;如果是程序太多,超过了内存的容量,可以采用交换(swapping)技术,把暂时不能执行的程序送到外存中;内存中某些进程,等待事件发生而被阻塞,占用了大量内存空间。许多作业在外存等待,因无内存无法进入内存运行。所谓对换,就是系统根据需要把主存中暂时不运行的某个(或某些)作业部分或全部移到外存,而把外存中的某个(或某些)作业移到相应的主存区,并使其投入运行。包括“进程对换”,“页面对换”,“分段对换”通常把外存分为文件区和对换区。文件区:存放文件,需要提高文件存储空间利用率,离散分配方式对换区:用于存放从内存换出的进程,需要提高进程换入和换出的速度,连续分配方式对外存空闲盘块管理:空闲分区表,空闲分区链分配算法与分配过程同其他连续分配方式

4

4,分页存储管理方式页式存储管理方案,目的是打破存储分配的连续性,使得一个程序的逻辑地址空间可以分布在若干个离散的内存块上,从而达到充分利用内存,提高内存利用率的目的。把物理内存划分为许多个固定大小的内存块,称为物理页面,或页框(page frame);把逻辑地址空间划分为大小相同的块,称为逻辑页面,或简称页面(page);页面大小为2n,一般在512字节到8K字节之间;(小了会如何,大了会如何?)对某特定机器,其地址结构是一定的。这种划分是由系统自动完成的,对用户是透明的。当一个用户程序装入内存时,以页面为单位进行分配。若要运行一个大小为n个页面的程序,需要有n个空闲的物理页面把它装入,这些页面不必是连续的。为各页加以编号,从0开始,如第0页、第1页等;同样为内存块加以编号,如0#块、1#块等等。由于进程的最后一页经常装不满一块而形成了不可利用的碎片,称之为“页内碎片”。页表:系统为每一个进程都建立了一个页表,页表给出了逻辑页面号和具体内存块号(物理页面号)之间的对应关系。内存的分配与回收算法与物理页面表的具体实现方法有关。这里以位示图为例。内存的分配:计算一个进程所需要的页面数N,并查看位示图,看是否还有N个空闲页面;若有,则申请一个页表,其长度为N,并把页表的起始地址填入PCB;分配N个空闲的物理页面,将其编号填入页表;修改位示图(0→1,空闲页面数-N)内存的回收:当一个进程运行结束,释放它所占用的内存空间后,需要对这些物理页面进行回收。对于每一个物理页面,根据它的编号计算出它在位示图当中的相应位置,并将相应位的值从1改成0;修改位示图中的空闲页面数:加上N。必须采用动态的地址映射方法,在程序运行过程中,将逻辑地址转换为物理地址,以确保数据访问和指令运行的正确性。把逻辑地址划分为两部分:逻辑页面号和页内偏移地址。这种划分是由系统自动完成的,对用户是透明的。由于页面的大小一般为2的整数次幂,因此,地址的高位部分即为页号,低位部分即为页内偏移地址。页面编号从0开始,页内偏移地址也是相对于0编址。页号 = 虚地址 / 页大小位移量 = 虚地址 % 页大小页面大小1KB,虚地址是3BADH1110 1110101101页号0EH,偏移3ADH如果页面大小是2KB呢?111 页号07H,偏移3ADH 为缩短页表的查找时间,可以采用一种特殊的快速查找硬件:TLB (Translation Lookaside Buffer) 或称associative memory,用来存放那些最常用的页表项。 分页存储优点:没有外碎片,内碎片的大小不超过页面的大小;一个程序不必连续存放;便于管理;缺点:程序必须全部装入内存;系统必须为每个进程维护一张页表。

5

5,分段存储管理方式为了体现这些逻辑单元的独立性,便于它们的共享、保护和修改,人们提出了段式存储管理的方法。对于程序当中的每一个逻辑单元,设立一个完全独立的地址空间,称为“段”。在每个段的内部,是一维的线性连续地址,从0一直到某个最大的地址。每个段的大小一般是不相等的,它所包含的内容也是不一样的;对于物理内存来说,采用可变分区(动态分区)的管理方法;当一个程序需要装入内存时,以段为单位进行分配,把每一个段装入到一个内存分区当中,这些内存分区不必是连续的。在段式存储管理当中,为了指明用户空间当中的某个地址,程序必须给出一个二元的地址组:〈段号,段内偏移地址〉段表:系统为每一个进程都建立了一个段表,它给出了进程当中的每一个段与它所对应的内存分区之间的映射关系。段表保存在内存当中设置一个段表基地址寄存器(Segment-table base register,STBR),用来指向内存当中段表的起始地址;设置一个段表长度寄存器(Segment-table length register,STLR),用来指示段表的大小,即程序当中的段的个数;分段存储优点:程序通过分段来划分多个模块,每个模块可以分别编写和编译,可以针对不同类型的段采取不同的保护,可以按段为单位来进行共享;一个程序不必连续存放,没有内碎片;便于改变进程所占用空间的大小。缺点:程序必须全部装入内存、外碎片等。

6

6,虚拟存储器的基本概念局部性原理(principle of locality):指程序在执行过程中的一个较短时期,所执行的指令地址和指令的操作数地址,分别局限于一定区域。这可以表现为:时间局部性:一条指令的一次执行和下次执行,一个数据的一次访问和下次访问都集中在一个较短时期内;空间局部性:当前指令和邻近的几条指令,当前访问的数据和邻近的几个数据都集中在一个较小区域内。根据局部性原理,只需将用户进程的部分实体装入内存,通过局部实体之间的内外存交换,仅将进程当前需要执行的部分实体存于内存,且一进程的内存空间不必连续。虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存进行扩充的一种存储器系统。多次性-多次调入内存对换性-作业在运行中换进、换出虚拟性-逻辑上扩充容量

7

7,请求分页存储管理方式当一个用户程序要调入内存运行时,不是将该程序的所有页面都装入内存,而是只装入部分的页面,就可启动程序运行。在运行的过程中,如果发现要运行的程序或要访问数据不在内存,则向系统发出缺页中断请求,系统在处理这个中断时,将外存中相应的页面调入内存,使得该程序能够继续运行。每当用户程序所要访问的页面不在内存时,产生一缺页中断,请求OS将所缺之页调入内存。与一般中断的区别(1)指令执行期间产生和处理(2) 一条指令可能产生多次缺页中断 内存分配策略和分配算法平均分配算法:这是将系统中所有可供分配的物理块,平均分配给各个进程。例如,当系统中有100个物理块,有5个进程在运行时,每个进程可分得20个物理块。按比例分配算法:如果系统中共有n个进程,每个进程的页面数为Si,则系统中各进程页面数的总和为:                                        (如图)又假定系统中可用的物理块总数为m,则每个进程所能分到的物理块数为bi,将有:                                        (如图) B应该取整,它必须大于最小物理块数。考虑优先权的分配算法:在实际应用中,为了照顾到重要的、紧迫的作业能尽快地完成, 应为它分配较多的内存空间。通常采取的方法是把内存中可供分配的所有物理块分成两部分:一部分按比例地分配给各进程;另一部分则根据各进程的优先权,适当地增加其相应份额后,分配给各进程。在有的系统中,如重要的实时控制系统,则可能是完全按优先权来为各进程分配其物理块的。(如图)

8

8,页面置换算法最优置换算法(无法实现):最佳置换算法是由Belady于1966年提出的一种理论上的算法。 其所选择的被淘汰页面,将是以后永不使用的, 或许是在最长(未来)时间内不再被访问的页面。采用最佳置换算法,通常可保证获得最低的缺页率。先进先出置换算法(FIFO):选择在内存中驻留时间最长的页面并淘汰之。具体来说,系统维护着一个链表,记录了所有位于内存当中的逻辑页面。从链表的排列顺序来看,链首页面的驻留时间最长,链尾页面的驻留时间最短。当发生一个缺页中断时,把链首页面淘汰出局,并把新的页面添加到链表的末尾。性能较差,调出的页面有可能是经常要访问的页面,并且有Belady异常现象。最近最久未使用置换算法(LRU):当一个缺页中断发生时,选择最久未使用的那个页面,并淘汰之。它是对最优页面置换算法的一个近似,其依据是程序的局部性原理,即在最近一小段时间(最近几条指令)内,如果某些页面被频繁地访问,那么在将来的一小段时间内,它们还可能会再一次被频繁地访问。反过来说,如果在过去某些页面长时间未被访问,那么在将来它们还可能会长时间地得不到访问。Clock置换算法:为每页设置一位访问位,再将内存中的所有页面都通过链接指针链成一个循环队列。置换算法在选择一页淘汰时,只须检查其访问位,如果是0,就选择该页换出;若为1,则重新将它复0,暂不换出给该页第二次驻留内存的机会。为每页设置一位访问位,再将内存中的所有页面都通过链接指针链成一个循环队列。置换算法在选择一页淘汰时,只须检查其访问位,如果是0,就选择该页换出;若为1,则重新将它复0,暂不换出给该页第二次驻留内存的机会。当检查到队列中最后一个页面时,若访问位仍为1,再返回队首检查第一个页面。Clock置换算法改进版:主要的不同在于增加了一修改位M(访问位A)页面可分为4种类型:A=0,M=0:最近未访问,未修改,最佳淘汰页A=0,M=1:最近未访问,已修改,不是很好的淘汰页A=1,M=0:最近已访问,未修改,可能再次被访问A=1,M=1:最近已访问,已修改,可能再次被访问

9

9,请求分段存储管理方式段表:段名段长段的基址存取方式访问字段A修改位M存在位P增补位外存始址 (如图)请求分段系统中的中断处理过程 (如图) 请求分段系统的地址变换过程

推荐信息