
第四章部分习题答案.doc
6页习题四3、何谓静态链接?何谓装入时动态链接和运行时的动态链接?答: (1) 静态链接在程序运行之前,先将各目标模块及它们所需的库函数,链 接成一个完整的装配模块, 以后不再拆开 我们把这种事先进行链接的方式称为 静态链接方式2) 装入时动态链接这是指将用户源程序编译后所得到的一组目标模块, 在装入内存时,采用边装入边链接的链接方式3) 运行时动态链接这是指对某些目标模块的链接,是在程序执行中需要 该(目标)模块时,才对它进行的链接6、为什么要引入动态重定位?如何实现? 答:(1)在连续分配方式中, 必须把一个系统或用户程序装入一连续的内存空间 如果在系统中只有若干个小的分区, 即使它们容量的总和大于要装入的程序, 但 由于这些分区不相邻接, 也无法把该程序装入内存 这种不能被利用的小分区称 为“零头”或“碎片 ”为了消除零头所以要引入动态重定位2)在动态运行时装入的方式中,作业装入内存后的所有地址都仍然是相对地 址,将相对地址转换为物理地址的工作,被推迟到程序指令要真正执行时进行 为使地址的转换不会影响到指令的执行速度,必须有硬件地址变换机构的支持, 即须在系统中增设一个重定位寄存器,用它来存放程序 (数据 )在内存中的起始地 址。
程序在执行时, 真正访问的内存地址是相对地址与重定位寄存器中的地址相 加而形成的 地址变换过程是在程序执行期间, 随着对每条指令或数据的访问自 动进行的,故称为动态重定位14、较详细地说明引入分段存储管理是为了满足用户哪几方面的需要答: 1) 方便编程 通常,用户把自己的作业按照逻辑关系划分为若干个段,每个段都是从 0 开始编址,并有自己的名字和长度因此,希望要访问的逻辑地址是由段名 (段号 )和段内偏移量 (段内地址 )决定的2) 信息共享 在实现对程序和数据的共享时, 是以信息的逻辑单位为基础的 比如,共享 某个例程和函数分页系统中的 “页 ”只是存放信息的物理单位 (块),并无完整的 意义,不便于实现共享;然而段却是信息的逻辑单位由此可知,为了实现段的 共享,希望存储管理能与用户程序分段的组织方式相适应3) 信息保护 信息保护同样是对信息的逻辑单位进行保护, 因此,分段管理方式能更有效 和方便地实现信息保护功能4) 动态增长 在实际应用中,往往有些段,特别是数据段,在使用过程中会不断地增长, 而事先又无法确切地知道数据段会增长到多大前述的其它几种存储管理方式, 都难以应付这种动态增长的情况,而分段存储管理方式却能较好地解决这一问 题。
5) 动态链接 动态链接是指在作业运行之前, 并不把几个目标程序段链接起来 要运行时, 先将主程序所对应的目标程序装入内存并启动运行, 当运行过程中又需要调用某 段时,才将该段 (目标程序 )调入内存并进行链接可见,动态链接也要求以段作 为管理的单位17、分页和分段存储管理有何区别?答: (1) 页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零 头,提高内存的利用率 段则是信息的逻辑单位, 它含有一组其意义相对完整的 信息分段的目的是为了能更好地满足用户的需要2) 页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两 部分,是由机器硬件实现的, 因而在系统中只能有一种大小的页面; 而段的长度 却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时, 根据信息的性质来划分3) 分页的作业地址空间是一维的,即单一的线性地址空间,程序员只需利 用一个记忆符, 即可表示一个地址; 而分段的作业地址空间则是二维的, 程序员在标识一个地址时,既需给出段名,又需给出段内地址19、虚拟存储器有哪些特征?其中最本质的特征是什么? 答:多次性,对换性,虚拟性其中最本质的特征是多次性。
21、实现虚拟存储器需要哪几个关键技术? 答:以分页请求为例,请求分段和请求段页式与此类似:1) 硬件支持 主要的硬件支持有:① 请求分页的页表机制, 它是在纯分页的页表机制上增加若干项而形成的, 作为请求分页的数据结构;② 缺页中断机构,即每当用户程序要访问的页面尚未调入内存时,便产生 一缺页中断,以请求 OS 将所缺的页调入内存;③ 地址变换机构,它同样是在纯分页地址变换机构的基础上发展形成的2) 实现请求分页的软件 这里包括有用于实现请求调页的软件和实现页面置换的软件 它们在硬件的 支持下,将程序正在运行时所需的页面 (尚未在内存中的 )调入内存,再将内存中 暂时不用的页面从内存置换到磁盘上第四章补充习题1、某系统采用页式存储管理策略,拥有逻辑空间 32页,每页为2KB,拥有物理空间 1MB(1)写出逻辑地址的格式 (页号占高几位,业内地址占低几位,总共多少位)( 2)若不考虑访问权限等,进程的页表项有多少项?每项至少有多少位?(3)如果物理空间减少一半,页表结构应相应作怎样的改变? 答:(1)该系统拥有逻辑空间 32页,故逻辑地址中页号必须用 5位来描述,而 每页为2KB,因此,页内地址必须用11位来描述。
这样,可得到它的逻辑地址格式为:第 0位到第 10位为页内地址,第 11位到第 15位为页号,总共 16位2)每个进程最多有 32 个页面,因此,进城的页表项最多为 32 项;若不考虑 访问权限等,贝U每个页表项中只需给出页所对应的物理块号 1MB的物理空间可分为 220/211=29个内存块,故每个页表项至少 9 位3)若物理空间减少一半,贝页表中页表项数仍不变,但每项的长度可减少 1位2、已知某分页系统,主存容量为 64KB页面大小为1KB对于一个4页大的作 业,其 0, 1, 2, 3 页分别被分配到主存的 2、 4、 6、 7 块中 1 )将十进制的逻辑地址 1023, 2500, 3500, 4500转换成物理地址 (2)以十进制的逻辑地址 1 023为例画出地址变换过程图答:(1)对于上述逻辑地址,可先计算出它们的页号和页内地址(逻辑地址除以 页面大小得到的商为页号,余数为页内地址) ,然后通过页表转换成对应的物理 地址:逻辑地址10231023/1K,得到页号为0,页内地址为1023,查页表找到对应的 物理块号为 2故物理地址为 2*1K+1023=3071逻辑地址2500。
2500/1K,得到页号为2,页内地址为452,查页表找到对应的 物理块号为 6故物理地址为 6*1K+452=6596逻辑地址35003500/1K,得到页号为3,页内地址为428,查页表找到对应的 物理块号为 7故物理地址为 7*1K+428=7596逻辑地址45004500/1K,得到页号为4,页内地址为404,因页号大于页表长 度,故产生越界中断 # -3、已知某系统页面长4KB,每个页表项为4B,采用多层分页策略映射64位的 用户地址空间若限定最高页表只占1页,则它可采用几层分页策略?答:由题意可知,该系统的用户地址空间为 264B,而页的大小为4KB,故一作业最多可有264/212 (即252)个页,其页表的大小则为252*4 (即254)B因此, 又可将页表分成242个页表页,并为它建立两级页表,两级页表的大小为 244Bo依次类推,可知道它的3、4、5、6级页表的长度分别是234B、224B、2%、2°B, 故必须采取6层分页策略4、在采用局部置换策略的请求分页系统中,分配给某个作业的内存块数为 4,其中存放的四个页面的情况如下表所示 设表中的所有数字均为十进制数,所有 时间都是从进程开始运行时从 0开始计数的时钟数。
请问,如果系统采用下列置 换算法,将选择哪一页进行换出?(1) FIFO算法;(2) LRU算法;(3) 改进的Clock算法物理块虚页号装入时间最后一次访问时访问位修改位间0260157011116016110202615800332016311答:分析:FIFO算法选择最先装入内存的页面进行换出;LRU算法即选择最近最长时间没被使用的页面进行换出;改进的Clock算法优先选择访问位和修改位为0的页面进行换出所以,FIFO算法选择的换出页面是物理块 3中的第3页°LRU算法选择的换 出页是物理块0中的第2页改进Clock算法选择的换出页是物理块2中的 第0页5、某虚拟存储器的用户空间共有32个页面,每页1KB主存16KB假定某时刻 系统为用户的第0、1、2、3页分配的物理块号为5、10、4、7,而该用户作业 的长度为6页,试将十六进制的虚拟地址 0A5C 103C 1A5C转换成物理地址 答:由题目所给出条件可知,该系统的逻辑地址有15位,其中高5位为页号, 低10位为页内地址;物理地址有14位,其中高4位为块号,低10位为块内 地址另外,由于题目中给出的逻辑地址是16进制数, 故可先将其转换成二进制数以直接获得页号和页内地址,再完成地址的转换。
⑴ 逻辑地址(0A5C 16的页号为(00010) 2,即2,故页号合法;从页表中 找到对应的内存块号为4,即(0100) 2;与页内地址(10 0101 1100) 2拼接 形成物理地址(01 0010 0101 1100 ) 2,即(125C) 162) 逻辑地址(103C) 16的页号为4,页号合法,但该页未装入内存,故产生 缺页中断3) 逻辑地址(1A5C 16的页号为6,为非法页号,故产生越界中断。












