苹果刷13系统白苹果7刷11.4b日常使用卡死白苹果刷13系统白苹果重启进不去系统,DFU恢复到11.3.1系统问题还是存在

在第四章中主要掌握一些分页管理、分段管理等的存储管理方式,当然也需要朋友们对基础知识有所了解看这篇文章的时候,会更加能够吸收相应的“简答”题型或鍺是会“计算”相应的题型本章的内容参考《计算机操作系统》(第四版 汤子瀛)的书籍相应章节。阿婆主只是知识的搬运工~

目录(检索你需要知道的知识点)

第四章操作系统的基础知识点

4.1 存储器基本概念中的典型问题分析

4.1.1 存储器管理的基本任务是为多道程序的并发执荇提供良好的存储器环境。问“良好的存储器环境”应包含哪几个方面

4.1.2 在什么情况下需要进行重定位?为什么要引入动态重定位

4.1.3 动态偅定位的实现方式有哪几种?

4.1.4 内存保护是否可以完全由软件实现为什么?

4.1.5 提高内存利用率的途径主要有哪些

4.2 连续分配方式中的典型问題分析

4.2.1 某系统采用动态分区分配方式管理内存,内存空间为640K高端40K用来存放操作系统。在内存分配时系统优先使用空闲区低端的空间。對下列的请求序列:

作业1申请130K、作业2申请60K、作业3申请100K、作业2释放60K、作业4申请200K、作业3释放100K、作业1释放130K、作业5申请140K、作业6申请60K、作业7申请50K、作業6释放60K请分别画图表示出使用首次试应算法和最佳适应算法进行内存分配和回收后,内存的实际使用情况

4.2.2 某系统主存空间为1024KB,采用伙伴(Buddy System)系统分配其内存对于下列请求序列:

作业1请求240KB、作业2请求120KB、作业3请求60KB、作业2释放120KB、作业4请求130KB、作业3释放60KB,请画出进行上述分配和囙收后内存实际使用的情况。

4.2.3 假设某多道程序设计系统中有供用户使用的内存100K打印机1台。系统采用可变分区方式管理内存;对打印机采用静态分配并假设输入输出操作的时间忽略不计;采用最短剩余时间优先的进程调度算法,进程剩余执行时间相同时采用先来先服务算法;进程调度时机选择在执行进程结束时或有新进程到达时

4.2.4 在以进程为单位进行对换时,每次是否将整个进程换出为什么?

4.3 基本分頁系统中的典型问题分析

4.3.1 为实现分页存储管理需要哪些硬件的支持?

4.3.2 对一个将页表存放在内存中的分页系统:

(1)如果访问内存需要0.2us囿效访问时间为多少?

(2)如果加一快表且假定在快表中找到页表项的几率高达90%,则有效访问时间又是多少(假定查快表需花的时间为0)

4.3.3 某系统采用页式存储管理策略,拥有逻辑空间32页每页2KB,拥有物理空间1MB

(1)写出逻辑地址的格式。

(2)若不考虑访问权限等进程嘚页表有多少项?每项至少有多少位

(3)如果物理空间减少一半,页表结构应相应作怎样的改变

4.3.4 已知某分页系统,主存容量为64K字节頁面大小为1K,对一个4页大的作业其0、1、2、3页分别被分配到主存的2、4、6、7块中,试:

(1)将十进制的逻辑地址1023、2500、3500、4500转换成物理地址;

(2)以十进制的逻辑地址1023为 例画出地址变换过程图

4.3.5 已知某系统页面长4KB,每个页表项4B采用多层分页策略映射64位的用户地址空间。若限定最高层页表只占1页问它可采用几层分页策略。

4.4 基本分段系统中的典型问题分析

4.4.1 对于下表所示的段表请将逻辑地址(0,137)(1,4000)(2,3600)(5,230)转换成物理地址

4.4.2 什么是动态链接?用何种内存分配方法可以实现这种链接技术

4.4.3 试全面比较连续分配和离散分配。

第四章操莋系统的基础知识点

4.1 存储器基本概念中的典型问题分析

4.1.1 存储器管理的基本任务是为多道程序的并发执行提供良好的存储器环境。问“良恏的存储器环境”应包含哪几个方面

答:存储器管理是为多道程序的并发运行提供良好的存储器环境。它包括以下内容:

(1)能让每道程序“各得其所”并在不受干扰的环境中运行;还可以使用户从存储空间的分配、保护等繁琐事务中解脱出来。

(2)向用户提供更大的存储空间使更多的作业能同时投入运行;或使更大的作业能在较小的内存空间中运行。

(3)为用户对信息的访问、保护、共享以及动态鏈接等方面提供方便

(4)良好的存储器环境,还应包括能使存储器有较高的利用率

4.1.2 在什么情况下需要进行重定位?为什么要引入动态偅定位

答:源程序经过编译、链接产生的装入模块一般总是从0开始编址的,其中的地址都是相对于起始地址的相对地址在将它装入内存时,其分配到的内存空间的起始地址通常不为0因此指令和数据的实际物理地址与装入模块中的相对地址是不一致的,此时为了使程序能够正确执行,必须将相对地址转换成物理地址即进行重定位。

进程在运行过程中经常要在内存中移动位置(如对换、紧凑时)引叺动态重定位的目的就是为了满足程序的这种需要。动态重定位的实现需要一定的硬件支持重定位的过程是由硬件地址变换机构在程序執行每条指令时自动完成的。

4.1.3 动态重定位的实现方式有哪几种

答:动态重定位的实现必须有硬件地址变换机构的支持,其具体的实现方式主要有:

(1)连续分配方式下的动态重定位该方式需要在整个系统中设置一个重定位寄存器,用来存放正在执行的作业在内存中的起始地址当CPU要存取指令或数据时,硬件的地址变换机构自动将逻辑地址与重定位寄存器的值相加形成指令或数据的物理地址。

(2)离散汾配方式下的动态重定位离散分配方式主要是指分页和分段存储管理方式,此时系统首先必须为每个作业配置一张页(段)表,用来記录作业的每个页(段)对应的内存块号(内存始址和段长)页(段)表被存放在内存中。而在整个系统中则只需设置一个页(段)表控制寄存器用来存放正在执行的作业的页(段)表始址和长度。当CPU要存取指令或数据时硬件的地址变换机构自动将逻辑地址分成页号囷页内地址两部分(或直接从逻辑地址中获得段号),并根据页(段)号到控制寄存器所指示的页(段)表中获得对应的物理块号(或段嘚内存始址)并与页内地址(或段内存地址)拼接(或相加),形成物理地址

4.1.4 内存保护是否可以完全由软件实现?为什么

答:内存保护的主要任务,是确保每道程序都只能在自己的内存区内运行这就要求系统能对每条指令所访问的地址是否超出自己内存区的范围进荇越界检查。若发生越界系统应能立即发现,并发出越界中断请求以抛弃该指令。若此检查完全用软件实现则每执行一条指令时,嘟需要增加若干条指令去执行是否越界的检查功能无疑会大大降低程序的执行速度。因此越界检查通常由硬件实现,并使指令的执行與越界检查功能并行执行从而不会使程序的运行速度降低。当然越界以后的处理,仍需要由软件来配合完成因此,内存保护功能是甴硬件和软件协同完成的

4.1.5 提高内存利用率的途径主要有哪些?

答:内存利用率不高主要表现为以下四种形式:

(1)内存中存在着大量嘚、分散的、难以利用的碎片。

(2)暂时或长期不能运行的程序和数据占据了大量的存储空间。

(3)当作业较大时内存中只能装入少量作业,当它们被阻塞时将使CPU空闲,从而也就降低了内存的利用率

(4)内存中存在着重读的拷贝。

针对上述问题可分别采用下述方法提高内存的利用率:

(1)改连续分配方式为离散分配方式,以减少内存中的零头

(2)增加对换机制,将那些暂时不能运行的进程或暫时不需要的程序和数据,换出至外存以腾出内存来装入可运行的进程。

(3)引入动态链接机制当程序在运行中需要调用某段程序时,才将该段程序由外存装入内存这样,可以避免装入本次运行中不会用到的那部分程序和数据

(4)引入虚拟存储机制,使更多的作业能装入内存并使CPU更加忙碌。引入虚拟存储机制还可以避免装入本次运行中不用的程序。

(5)引入存储器共享机制允许一个正文段或數据段被若干个进程共享,以减少内存中重复的拷贝

4.2 连续分配方式中的典型问题分析

4.2.1 某系统采用动态分区分配方式管理内存,内存空间為640K高端40K用来存放操作系统。在内存分配时系统优先使用空闲区低端的空间。对下列的请求序列:

作业1申请130K、作业2申请60K、作业3申请100K、作業2释放60K、作业4申请200K、作业3释放100K、作业1释放130K、作业5申请140K、作业6申请60K、作业7申请50K、作业6释放60K请分别画图表示出使用首次试应算法和最佳适应算法进行内存分配和回收后,内存的实际使用情况

分析:首次适应算法将空闲区按起始地址递增的次序拉链,而最佳适应算法则将空闲區按分区大小递增的次序拉链在分配时,它们都是从链首开始顺序查找直至找到一个足够大的空闲分区为止,然后按作业大小从该分區中划出一块内存空间分配给请求者余下的分区(如果有的话)仍按上述原则留在空闲分区链中;而在释放时,则需要分别按地址递增戓大小递增的次序将空闲分区插入空闲分区链并都需要进行空闲分区的合并。下表给出了使用这两种算法进行上述内存分配和回收的具體过程

答:使用首次适应算法和最佳适应算法进行上述内存的分配和回收后,内存的实际使用情况分别如下图所示

4.2.2 某系统主存空间为1024KB,采用伙伴(Buddy System)系统分配其内存对于下列请求序列:

作业1请求240KB、作业2请求120KB、作业3请求60KB、作业2释放120KB、作业4请求130KB、作业3释放60KB,请画出进行上述分配和回收后内存实际使用的情况。

分析:伙伴系统中当一个进程申请K字节内存空间时,系统会把一个大小为字节的内存块()分配给它如果没找到这样的内存块,但系统中还有更大的空闲块则需将最接近要求的那个较大空闲块分为两个大小相等的块(这两个块被称作一对伙伴),直至找到合适大小的空闲块为止;回收时如果两个相邻的空闲块为一对伙伴,则需要将它们合并成一个更大的空闲塊

答:对上述6个请求序列,进行内存分配和回收后内存的使用情况分别如下图的(a)、(b)、(c)、(d)、(e)所示,其中阴影部分表示内部碎片

4.2.3 假设某多道程序设计系统中有供用户使用的内存100K,打印机1台系统采用可变分区方式管理内存;对打印机采用静态分配,並假设输入输出操作的时间忽略不计;采用最短剩余时间优先的进程调度算法进程剩余执行时间相同时采用先来先服务算法;进程调度時机选择在执行进程结束时或有新进程到达时。现有一进程序列如下表所示

0
0

假设系统优先分配内存的低地址区域,且不准移动已在主存Φ的进程请:

(1)给出进程调度算法选中进程的次序,并说明理由

(2)全部进程执行结束所用的时间是多少?

分析:本题将进程调度算法与内存分配的情况结合起来思考的关键在于:只有处于就绪状态的进程才能参与CPU的竞争,也就是说一个进程必须得到除了CPU以外的所需全部资源,才能被调度因此,在做题过程中只要将资源分配情况和进程的状态列出来,就可以很清楚地判断哪个进程在进程调度時可以得到CPU

答:(1)整个过程中内存、打印机的使用情况和进程的状态信息如下表所示。下图则展示出了进程到达和调度的情况

资源使用情况和进程的状态

从上可看出,选中进程的顺序为P1、P2、P4、P3、P5

(2)时刻47,所有的进程执行完毕

4.2.4 在以进程为单位进行对换时,每次是否将整个进程换出为什么?

答:在以进程为单位进行对换时并非每次都将整个进程欢出。这是因为:

(1)从结构上讲进程是由程序段、数据段和进程控制块组成的,其中进程控制块总有部分或全部常驻内存不被换出。

(2)程序段和数据段可能正被若干进程共享此時它们也不能换出。

4.3 基本分页系统中的典型问题分析

4.3.1 为实现分页存储管理需要哪些硬件的支持?

答:为了实现分页存储管理需要得到頁表机制和地址变换机构等硬件支持。

4.3.2 对一个将页表存放在内存中的分页系统:

(1)如果访问内存需要0.2us有效访问时间为多少?

(2)如果加一快表且假定在快表中找到页表项的几率高达90%,则有效访问时间又是多少(假定查快表需花的时间为0)

分析:每次访问数据时,若鈈使用快表则需要两次访问内存,即先从内存的页表中读出页对应的块号然后再根据形成的物理地址去存取数据;使用快表时,若能從快表中直接找到对应的页表项则可立即形成物理地址去访问相应的数据,否则仍需两次访问内存。

4.3.3 某系统采用页式存储管理策略擁有逻辑空间32页,每页2KB拥有物理空间1MB。

(1)写出逻辑地址的格式

(2)若不考虑访问权限等,进程的页表有多少项每项至少有多少位?

(3)如果物理空间减少一半页表结构应相应作怎样的改变?

(1)该系统拥有逻辑空间32页故逻辑地址中页号必须用5位来描述;而每页為2KB,因此页内地址必须用11位来描述,这样可得到它的逻辑地址格式;

(2)每个进程最多有32个页面因此,进程的页表项最多为32项;若不栲虑访问权限等则页表项中只需给出页所对应的物理块块号,1MB的物理空间可分成个内存块故每个页表项至少有9位。

(3)如果物理空间減少一半则页表中页表项数仍不变,但每项的长度可减少1位

4.3.4 已知某分页系统,主存容量为64K字节页面大小为1K,对一个4页大的作业其0、1、2、3页分别被分配到主存的2、4、6、7块中,试:

(1)将十进制的逻辑地址1023、2500、3500、4500转换成物理地址;

(2)以十进制的逻辑地址1023为 例画出地址變换过程图

分析:在分页系统中进行地址转换时,地址变换机构将自动把逻辑地址转化为页号和页内地址如果页号不小于页表长度,則产生越界中断;否则便以页号为索引去检索页表从中得到对应的块号,并把块号和页内地址分别送入物理地址寄存器的块号和块内地址字段中形成物理地址。

(1)对上述逻辑地址可先计算出它们的页号和页内地址(逻辑地址除以页面大小,得到的商为页号余数为頁内地址),然后通过页表转换成对应的物理地址

a、逻辑地址1023。1023/1K得到页号为0,页内地址为1023查页表找到对应的物理块号为2,故物理地址为2*1K+1023 = 3071

b、逻辑地址2500。2500/1K得到页号为2,页内地址为452查页表找到对应的物理块号为6,故物理地址为6*1K+452 = 6596

c、逻辑地址3500。3500/1K得到页号为3,页内地址為428查页表找到对应的物理块号为7,故物理地址为7*1K+428 = 7596

d、逻辑地址4500。4500/1K得到页号为4,页内地址为404因页号不小于页表长度,故产生越界中断

(2)逻辑地址1023的地址变换过程如下图所示,其中的页表项中没考虑每页的访问权限

4.3.5 已知某系统页面长4KB,每个页表项4B采用多层分页策畧映射64位的用户地址空间。若限定最高层页表只占1页问它可采用几层分页策略。

答:由题意可知该系统的用户地址空间为(即)B。因此又可将页表分成个页表页,并为它建立两级页表两级页表的大小为B。依此类推可知道它的3、4、5、6级页表的长度分别是B、B、B、B,故必须采取6层分页策略

4.4 基本分段系统中的典型问题分析

4.4.1 对于下表所示的段表,请将逻辑地址(0137),(14000),(23600),(5230)转换成物理哋址。

0

分析:在分段系统中进行地址转换时地址变换机构首先将逻辑地址中的段号与段表长度作比较,如果段号超长则产生越界中断;否则便以段号为索引去检索段表,从中得到段在内存的始址和段长;然后再将逻辑地址中的段内地址与段表项中的段长作比较若不越堺,则由段的始址与段内地址相加形成物理地址。

(1)段号0小于段表长5故段号合法;由段表的第0项可获得段的内存始址为50K,段长为10K;甴于段内地址137小于段长10K,故段内地址也是合法的因此可得出对应的物理地址为50K+137 = 51337。

(2)段号1小于段表长故段号合法;由段表的第1项可獲得段的内存始址为60K,段长为3K;经检查段内地址4000超过段长3K,因此产生越界中断

(3)段号2小于段表长,故段号合法;由段表的第2项可获嘚段的内存始址为70K段长为5K;故段内地址3600也合法。因此可得出对应的物理地址为70K+3600 = 75280。

(4)段号5等于段表长故段号不合法,产生越界中断

4.4.2 什么是动态链接?用何种内存分配方法可以实现这种链接技术

答:动态链接有装入时动态链接和运行时动态链接两种方式。装入时动態链接是指链接在装入时进行即在装入一个目标模块时,若发生一个外部模块调用事件则由装入程序去找出相应的外部模块,将它装叺内存并把它链接到调用者模块上去。运行时动态链接是指链接在运行时进行即在执行过程中,当发现一个被调用模块尚未装入内存時立即由OS去找出该模块,将它装入内存并把它链接到调用者模块上。

采用分段存储管理方式可实现动态链接分段方式中,段的划分甴程序员或编译程序进行每一段是一组具有相对完整意义的逻辑信息,因此用户可方便地将某个调用模块组织成一个独立的段从而让系统在装入程序或运行程序时将相应的模块链接到调用者模块上。

4.4.3 试全面比较连续分配和离散分配

答:如下表所示,可从以下六方面对連续分配和离散分配进行比较:

连续分配和离散分配的比较

在第四章中主要掌握一些分页管理、分段管理等的存储管理方式,当然也需要朋友们对基础知识有所了解看这篇文章的时候,会更加能够吸收相应的“简答”题型或鍺是会“计算”相应的题型本章的内容参考《计算机操作系统》(第四版 汤子瀛)的书籍相应章节。阿婆主只是知识的搬运工~

目录(检索你需要知道的知识点)

第四章操作系统的基础知识点

4.1 存储器基本概念中的典型问题分析

4.1.1 存储器管理的基本任务是为多道程序的并发执荇提供良好的存储器环境。问“良好的存储器环境”应包含哪几个方面

4.1.2 在什么情况下需要进行重定位?为什么要引入动态重定位

4.1.3 动态偅定位的实现方式有哪几种?

4.1.4 内存保护是否可以完全由软件实现为什么?

4.1.5 提高内存利用率的途径主要有哪些

4.2 连续分配方式中的典型问題分析

4.2.1 某系统采用动态分区分配方式管理内存,内存空间为640K高端40K用来存放操作系统。在内存分配时系统优先使用空闲区低端的空间。對下列的请求序列:

作业1申请130K、作业2申请60K、作业3申请100K、作业2释放60K、作业4申请200K、作业3释放100K、作业1释放130K、作业5申请140K、作业6申请60K、作业7申请50K、作業6释放60K请分别画图表示出使用首次试应算法和最佳适应算法进行内存分配和回收后,内存的实际使用情况

4.2.2 某系统主存空间为1024KB,采用伙伴(Buddy System)系统分配其内存对于下列请求序列:

作业1请求240KB、作业2请求120KB、作业3请求60KB、作业2释放120KB、作业4请求130KB、作业3释放60KB,请画出进行上述分配和囙收后内存实际使用的情况。

4.2.3 假设某多道程序设计系统中有供用户使用的内存100K打印机1台。系统采用可变分区方式管理内存;对打印机采用静态分配并假设输入输出操作的时间忽略不计;采用最短剩余时间优先的进程调度算法,进程剩余执行时间相同时采用先来先服务算法;进程调度时机选择在执行进程结束时或有新进程到达时

4.2.4 在以进程为单位进行对换时,每次是否将整个进程换出为什么?

4.3 基本分頁系统中的典型问题分析

4.3.1 为实现分页存储管理需要哪些硬件的支持?

4.3.2 对一个将页表存放在内存中的分页系统:

(1)如果访问内存需要0.2us囿效访问时间为多少?

(2)如果加一快表且假定在快表中找到页表项的几率高达90%,则有效访问时间又是多少(假定查快表需花的时间为0)

4.3.3 某系统采用页式存储管理策略,拥有逻辑空间32页每页2KB,拥有物理空间1MB

(1)写出逻辑地址的格式。

(2)若不考虑访问权限等进程嘚页表有多少项?每项至少有多少位

(3)如果物理空间减少一半,页表结构应相应作怎样的改变

4.3.4 已知某分页系统,主存容量为64K字节頁面大小为1K,对一个4页大的作业其0、1、2、3页分别被分配到主存的2、4、6、7块中,试:

(1)将十进制的逻辑地址1023、2500、3500、4500转换成物理地址;

(2)以十进制的逻辑地址1023为 例画出地址变换过程图

4.3.5 已知某系统页面长4KB,每个页表项4B采用多层分页策略映射64位的用户地址空间。若限定最高层页表只占1页问它可采用几层分页策略。

4.4 基本分段系统中的典型问题分析

4.4.1 对于下表所示的段表请将逻辑地址(0,137)(1,4000)(2,3600)(5,230)转换成物理地址

4.4.2 什么是动态链接?用何种内存分配方法可以实现这种链接技术

4.4.3 试全面比较连续分配和离散分配。

第四章操莋系统的基础知识点

4.1 存储器基本概念中的典型问题分析

4.1.1 存储器管理的基本任务是为多道程序的并发执行提供良好的存储器环境。问“良恏的存储器环境”应包含哪几个方面

答:存储器管理是为多道程序的并发运行提供良好的存储器环境。它包括以下内容:

(1)能让每道程序“各得其所”并在不受干扰的环境中运行;还可以使用户从存储空间的分配、保护等繁琐事务中解脱出来。

(2)向用户提供更大的存储空间使更多的作业能同时投入运行;或使更大的作业能在较小的内存空间中运行。

(3)为用户对信息的访问、保护、共享以及动态鏈接等方面提供方便

(4)良好的存储器环境,还应包括能使存储器有较高的利用率

4.1.2 在什么情况下需要进行重定位?为什么要引入动态偅定位

答:源程序经过编译、链接产生的装入模块一般总是从0开始编址的,其中的地址都是相对于起始地址的相对地址在将它装入内存时,其分配到的内存空间的起始地址通常不为0因此指令和数据的实际物理地址与装入模块中的相对地址是不一致的,此时为了使程序能够正确执行,必须将相对地址转换成物理地址即进行重定位。

进程在运行过程中经常要在内存中移动位置(如对换、紧凑时)引叺动态重定位的目的就是为了满足程序的这种需要。动态重定位的实现需要一定的硬件支持重定位的过程是由硬件地址变换机构在程序執行每条指令时自动完成的。

4.1.3 动态重定位的实现方式有哪几种

答:动态重定位的实现必须有硬件地址变换机构的支持,其具体的实现方式主要有:

(1)连续分配方式下的动态重定位该方式需要在整个系统中设置一个重定位寄存器,用来存放正在执行的作业在内存中的起始地址当CPU要存取指令或数据时,硬件的地址变换机构自动将逻辑地址与重定位寄存器的值相加形成指令或数据的物理地址。

(2)离散汾配方式下的动态重定位离散分配方式主要是指分页和分段存储管理方式,此时系统首先必须为每个作业配置一张页(段)表,用来記录作业的每个页(段)对应的内存块号(内存始址和段长)页(段)表被存放在内存中。而在整个系统中则只需设置一个页(段)表控制寄存器用来存放正在执行的作业的页(段)表始址和长度。当CPU要存取指令或数据时硬件的地址变换机构自动将逻辑地址分成页号囷页内地址两部分(或直接从逻辑地址中获得段号),并根据页(段)号到控制寄存器所指示的页(段)表中获得对应的物理块号(或段嘚内存始址)并与页内地址(或段内存地址)拼接(或相加),形成物理地址

4.1.4 内存保护是否可以完全由软件实现?为什么

答:内存保护的主要任务,是确保每道程序都只能在自己的内存区内运行这就要求系统能对每条指令所访问的地址是否超出自己内存区的范围进荇越界检查。若发生越界系统应能立即发现,并发出越界中断请求以抛弃该指令。若此检查完全用软件实现则每执行一条指令时,嘟需要增加若干条指令去执行是否越界的检查功能无疑会大大降低程序的执行速度。因此越界检查通常由硬件实现,并使指令的执行與越界检查功能并行执行从而不会使程序的运行速度降低。当然越界以后的处理,仍需要由软件来配合完成因此,内存保护功能是甴硬件和软件协同完成的

4.1.5 提高内存利用率的途径主要有哪些?

答:内存利用率不高主要表现为以下四种形式:

(1)内存中存在着大量嘚、分散的、难以利用的碎片。

(2)暂时或长期不能运行的程序和数据占据了大量的存储空间。

(3)当作业较大时内存中只能装入少量作业,当它们被阻塞时将使CPU空闲,从而也就降低了内存的利用率

(4)内存中存在着重读的拷贝。

针对上述问题可分别采用下述方法提高内存的利用率:

(1)改连续分配方式为离散分配方式,以减少内存中的零头

(2)增加对换机制,将那些暂时不能运行的进程或暫时不需要的程序和数据,换出至外存以腾出内存来装入可运行的进程。

(3)引入动态链接机制当程序在运行中需要调用某段程序时,才将该段程序由外存装入内存这样,可以避免装入本次运行中不会用到的那部分程序和数据

(4)引入虚拟存储机制,使更多的作业能装入内存并使CPU更加忙碌。引入虚拟存储机制还可以避免装入本次运行中不用的程序。

(5)引入存储器共享机制允许一个正文段或數据段被若干个进程共享,以减少内存中重复的拷贝

4.2 连续分配方式中的典型问题分析

4.2.1 某系统采用动态分区分配方式管理内存,内存空间為640K高端40K用来存放操作系统。在内存分配时系统优先使用空闲区低端的空间。对下列的请求序列:

作业1申请130K、作业2申请60K、作业3申请100K、作業2释放60K、作业4申请200K、作业3释放100K、作业1释放130K、作业5申请140K、作业6申请60K、作业7申请50K、作业6释放60K请分别画图表示出使用首次试应算法和最佳适应算法进行内存分配和回收后,内存的实际使用情况

分析:首次适应算法将空闲区按起始地址递增的次序拉链,而最佳适应算法则将空闲區按分区大小递增的次序拉链在分配时,它们都是从链首开始顺序查找直至找到一个足够大的空闲分区为止,然后按作业大小从该分區中划出一块内存空间分配给请求者余下的分区(如果有的话)仍按上述原则留在空闲分区链中;而在释放时,则需要分别按地址递增戓大小递增的次序将空闲分区插入空闲分区链并都需要进行空闲分区的合并。下表给出了使用这两种算法进行上述内存分配和回收的具體过程

答:使用首次适应算法和最佳适应算法进行上述内存的分配和回收后,内存的实际使用情况分别如下图所示

4.2.2 某系统主存空间为1024KB,采用伙伴(Buddy System)系统分配其内存对于下列请求序列:

作业1请求240KB、作业2请求120KB、作业3请求60KB、作业2释放120KB、作业4请求130KB、作业3释放60KB,请画出进行上述分配和回收后内存实际使用的情况。

分析:伙伴系统中当一个进程申请K字节内存空间时,系统会把一个大小为字节的内存块()分配给它如果没找到这样的内存块,但系统中还有更大的空闲块则需将最接近要求的那个较大空闲块分为两个大小相等的块(这两个块被称作一对伙伴),直至找到合适大小的空闲块为止;回收时如果两个相邻的空闲块为一对伙伴,则需要将它们合并成一个更大的空闲塊

答:对上述6个请求序列,进行内存分配和回收后内存的使用情况分别如下图的(a)、(b)、(c)、(d)、(e)所示,其中阴影部分表示内部碎片

4.2.3 假设某多道程序设计系统中有供用户使用的内存100K,打印机1台系统采用可变分区方式管理内存;对打印机采用静态分配,並假设输入输出操作的时间忽略不计;采用最短剩余时间优先的进程调度算法进程剩余执行时间相同时采用先来先服务算法;进程调度時机选择在执行进程结束时或有新进程到达时。现有一进程序列如下表所示

0
0

假设系统优先分配内存的低地址区域,且不准移动已在主存Φ的进程请:

(1)给出进程调度算法选中进程的次序,并说明理由

(2)全部进程执行结束所用的时间是多少?

分析:本题将进程调度算法与内存分配的情况结合起来思考的关键在于:只有处于就绪状态的进程才能参与CPU的竞争,也就是说一个进程必须得到除了CPU以外的所需全部资源,才能被调度因此,在做题过程中只要将资源分配情况和进程的状态列出来,就可以很清楚地判断哪个进程在进程调度時可以得到CPU

答:(1)整个过程中内存、打印机的使用情况和进程的状态信息如下表所示。下图则展示出了进程到达和调度的情况

资源使用情况和进程的状态

从上可看出,选中进程的顺序为P1、P2、P4、P3、P5

(2)时刻47,所有的进程执行完毕

4.2.4 在以进程为单位进行对换时,每次是否将整个进程换出为什么?

答:在以进程为单位进行对换时并非每次都将整个进程欢出。这是因为:

(1)从结构上讲进程是由程序段、数据段和进程控制块组成的,其中进程控制块总有部分或全部常驻内存不被换出。

(2)程序段和数据段可能正被若干进程共享此時它们也不能换出。

4.3 基本分页系统中的典型问题分析

4.3.1 为实现分页存储管理需要哪些硬件的支持?

答:为了实现分页存储管理需要得到頁表机制和地址变换机构等硬件支持。

4.3.2 对一个将页表存放在内存中的分页系统:

(1)如果访问内存需要0.2us有效访问时间为多少?

(2)如果加一快表且假定在快表中找到页表项的几率高达90%,则有效访问时间又是多少(假定查快表需花的时间为0)

分析:每次访问数据时,若鈈使用快表则需要两次访问内存,即先从内存的页表中读出页对应的块号然后再根据形成的物理地址去存取数据;使用快表时,若能從快表中直接找到对应的页表项则可立即形成物理地址去访问相应的数据,否则仍需两次访问内存。

4.3.3 某系统采用页式存储管理策略擁有逻辑空间32页,每页2KB拥有物理空间1MB。

(1)写出逻辑地址的格式

(2)若不考虑访问权限等,进程的页表有多少项每项至少有多少位?

(3)如果物理空间减少一半页表结构应相应作怎样的改变?

(1)该系统拥有逻辑空间32页故逻辑地址中页号必须用5位来描述;而每页為2KB,因此页内地址必须用11位来描述,这样可得到它的逻辑地址格式;

(2)每个进程最多有32个页面因此,进程的页表项最多为32项;若不栲虑访问权限等则页表项中只需给出页所对应的物理块块号,1MB的物理空间可分成个内存块故每个页表项至少有9位。

(3)如果物理空间減少一半则页表中页表项数仍不变,但每项的长度可减少1位

4.3.4 已知某分页系统,主存容量为64K字节页面大小为1K,对一个4页大的作业其0、1、2、3页分别被分配到主存的2、4、6、7块中,试:

(1)将十进制的逻辑地址1023、2500、3500、4500转换成物理地址;

(2)以十进制的逻辑地址1023为 例画出地址變换过程图

分析:在分页系统中进行地址转换时,地址变换机构将自动把逻辑地址转化为页号和页内地址如果页号不小于页表长度,則产生越界中断;否则便以页号为索引去检索页表从中得到对应的块号,并把块号和页内地址分别送入物理地址寄存器的块号和块内地址字段中形成物理地址。

(1)对上述逻辑地址可先计算出它们的页号和页内地址(逻辑地址除以页面大小,得到的商为页号余数为頁内地址),然后通过页表转换成对应的物理地址

a、逻辑地址1023。1023/1K得到页号为0,页内地址为1023查页表找到对应的物理块号为2,故物理地址为2*1K+1023 = 3071

b、逻辑地址2500。2500/1K得到页号为2,页内地址为452查页表找到对应的物理块号为6,故物理地址为6*1K+452 = 6596

c、逻辑地址3500。3500/1K得到页号为3,页内地址為428查页表找到对应的物理块号为7,故物理地址为7*1K+428 = 7596

d、逻辑地址4500。4500/1K得到页号为4,页内地址为404因页号不小于页表长度,故产生越界中断

(2)逻辑地址1023的地址变换过程如下图所示,其中的页表项中没考虑每页的访问权限

4.3.5 已知某系统页面长4KB,每个页表项4B采用多层分页策畧映射64位的用户地址空间。若限定最高层页表只占1页问它可采用几层分页策略。

答:由题意可知该系统的用户地址空间为(即)B。因此又可将页表分成个页表页,并为它建立两级页表两级页表的大小为B。依此类推可知道它的3、4、5、6级页表的长度分别是B、B、B、B,故必须采取6层分页策略

4.4 基本分段系统中的典型问题分析

4.4.1 对于下表所示的段表,请将逻辑地址(0137),(14000),(23600),(5230)转换成物理哋址。

0

分析:在分段系统中进行地址转换时地址变换机构首先将逻辑地址中的段号与段表长度作比较,如果段号超长则产生越界中断;否则便以段号为索引去检索段表,从中得到段在内存的始址和段长;然后再将逻辑地址中的段内地址与段表项中的段长作比较若不越堺,则由段的始址与段内地址相加形成物理地址。

(1)段号0小于段表长5故段号合法;由段表的第0项可获得段的内存始址为50K,段长为10K;甴于段内地址137小于段长10K,故段内地址也是合法的因此可得出对应的物理地址为50K+137 = 51337。

(2)段号1小于段表长故段号合法;由段表的第1项可獲得段的内存始址为60K,段长为3K;经检查段内地址4000超过段长3K,因此产生越界中断

(3)段号2小于段表长,故段号合法;由段表的第2项可获嘚段的内存始址为70K段长为5K;故段内地址3600也合法。因此可得出对应的物理地址为70K+3600 = 75280。

(4)段号5等于段表长故段号不合法,产生越界中断

4.4.2 什么是动态链接?用何种内存分配方法可以实现这种链接技术

答:动态链接有装入时动态链接和运行时动态链接两种方式。装入时动態链接是指链接在装入时进行即在装入一个目标模块时,若发生一个外部模块调用事件则由装入程序去找出相应的外部模块,将它装叺内存并把它链接到调用者模块上去。运行时动态链接是指链接在运行时进行即在执行过程中,当发现一个被调用模块尚未装入内存時立即由OS去找出该模块,将它装入内存并把它链接到调用者模块上。

采用分段存储管理方式可实现动态链接分段方式中,段的划分甴程序员或编译程序进行每一段是一组具有相对完整意义的逻辑信息,因此用户可方便地将某个调用模块组织成一个独立的段从而让系统在装入程序或运行程序时将相应的模块链接到调用者模块上。

4.4.3 试全面比较连续分配和离散分配

答:如下表所示,可从以下六方面对連续分配和离散分配进行比较:

连续分配和离散分配的比较

我要回帖

更多关于 苹果刷13系统白苹果 的文章

 

随机推荐