当前位置:文档之家› 页式虚拟OPT存储管理缺页算法

页式虚拟OPT存储管理缺页算法

页式虚拟OPT存储管理缺页算法
页式虚拟OPT存储管理缺页算法

页式虚拟OPT存储管理缺页算法

在纯页式存储管理提高了内存的利用效率,但并不为用户提供虚存,换句话说,当一个用户程序的页数大于当前总空闲内存块数时,系统就不能将该程序装入运行。即用户程序将受到物理内存大小的限制。为了解决这个问题,人们提出了能提供虚存的存储管理技术——请求分页存储管理技术和请求分段技术。本设计实现请求分页管理技术。

请求分页系统是在分页系统的基础上,增加了请求调页功能和页面置换功能所形成的页式虚拟存储系统。它允许只装入部分页面的程序和数据,便启动运行。以后,再通过调页功能和页面置换功能,陆续把即将要运行的页面调入内存,同时把暂时不运行的页面换出到外存上。置换时以页面为单位,为了能实现请求调页和置换功能,系统必须提供必要的硬件支持和相应的软件。其中硬件支持包括:请求分页的页表机制,它是在纯分页的页表机制上增加若干项而形成的,作为请求分页的数据结构;缺页中断机构,当要访问的页面尚未调入内存时,便产生一缺页中断,以请求OS将所缺的页调入内存;地址变换机构,它同样是在纯分页地址变换机构的基础上形成的。实现请求分页的软件包括用于实现请求调页的软件和实现页面置换的软件。他们在硬件的支持下,将程序正在运行时所需的但尚未在内存的页面调入内存,再将内存中暂时不用的页面从内存置换到外存磁盘上。

为了实现请求分页技术,页表应增加相应的内容,反映该页是否在内存,在外存的位置,和在内存的时间的长短。请求分页中的页表如表1:

表1

各字段说明如下:

状态位:用于指示该页是否已调入内存,供程序访问时参考。

访问字段:用于记录本页在一段时间内被访问的次数,或记录本页最近已有多长时间未被访问,供替换页面时参考。

修改位:表示该页面在调入内存后是否被修改过。由于内存中的每一页都在外存上保留有副本,因此,若未被修改,在替换该页时就不需要再将该页写回到外存上,以减少系统的开销和启动磁盘的次数;若已被修改,则必须将该页重写到外存上,以保证外存中所保留的始终是最新副本。

外存地址:用于指出该页在外存上的地址,通常是物理块号,供调入页面时参考。

在模拟系统的实现中,只需要用到虚拟页号,物理块号和中断位。页表可用一个结构体的数组实现。

请求分页的具体实现过程如图1

图1请求分页流程图

在进程运行过程中,若其所要访问的页面不在内存,这时候会产生一个缺页中断,并需要把它们调入内存,但内存已无空闲已空闲空间时,为了保证该进程能正常运行,系统必须从内存中调出一页程序或数据,送磁盘的对换区。但应将哪个页面调出,必须根据一定的算法来确定。通常,把选择换出页面的算法称为页面替换算法。虚拟内存性能的好坏很大程度上由替换算法的好坏,替换算法的好坏,也将直接影响系统的性能,一个好的页面置换算法,应具有较低的页面更换频率。

常见置换算法有随机淘汰算法(Random Glongram)、轮转法(Round Robin)和先进先出(FIFO)、最近最久未使用页面置换算法和理想型淘汰算法OPT (Optimal Replacement Algorithm)。本次所设计的模拟系统根据题目要求利用随机淘汰算法,先进先出算法和理想型淘汰算法进行页面替换,详细算法原理如下:

随机淘汰算法:在系统设计人员无法确定哪些页被访问的概率较低时,明智

的作法是随机地选择某个用户的页并将其换出。随机淘汰算法实现简单,但是缺页率高。

先进先出算法:总是选择在内存驻留时间最长的一页将其淘汰,因为最早调入内存的页,不再被使用的可能性比近期调入内存的大。该算法实现简单,只需要把一个进程调入内存的页面,按先后次序连结成一个队列,并设置一个指针,称为替换指针,使它总是指向最老的页面。但是该算法与进程实际运行的规律不相适应,因为在进程中,有些页面经常被访问,比如有全局变量、常用函数,例程等的页面,FIFO算法并不能保证这些页面不被淘汰。

假定系统为某进程分配了三个可用物理块,并考虑有以下的页面号引用串:7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1

进程运行时,先将7,0,1三个页面装入内存,且采用FIFO替换算法。当有请求页面2时,内存中页面7,0,1三个页号可知道7先进入内存,所以替换页面1;当请求页面0时,可知,0在内存中,不需要替换;当请求页面号3时内存中0,1,2三个页面0先进入内存,替换0号页。如此进行下去,可得出利用FIFO替换算法,以上请求页面号序列共进行了12次页面替换,比理想型算法要多出一倍。

使用FIFO替换算法效率低的原因是:基于处理器按线性顺序访问地址空间这一假设。事实上,许多时候,处理器不是按线性顺序访问地址空间的。例如,执行循环结构的程序段。

使用FIFO算法时,在未给进程或作业分配足够它所需要的页面数时,有时会出现分配的页面数增,缺页次数反而增加的现象(Belady现象)。例如针对请求序列:1 2 3 4 1 2 5 1 2 3 4 5,若分配3个可用内存块,使用FIFO算法,一共会缺页9次,缺页率:75%;而如果分配4个可用内存块,则一共会缺页10次,缺页率:83.3%。

理想型淘汰算法基本思想:当要调入一新页而必须淘汰一旧页时,所淘汰的页是以后不再使用的,或者是以后相当长的时间内不会使用的。采用理想型替换算法,通常可保证获得最低的缺页率。但是由于人们目前无法预知一个进程在内存的若干个页面中,哪个页面是未来最长时间内不再被访问的,因而该算法是无法实现的,但是在模拟设计中,由于是事先给定一个页面序列,即知道各个时刻以前和以后的页面出现情况,所以可实现该算法。在实际系统中,虽无法实现理想型淘汰算法,但是可用它来评价其他替换算法。

用上面的例子,先将7,0,1三个页面装入内存。以后当进程要访问页面2时,将会产生缺页中断。此时OS根据最佳替换算法,将选择页面7予以淘汰,这是因为页面0将作为第5个被访问的页面,页面1是第14个被访问的页面,而页面1则要在第18次页面访问时才需要调入。下次访问页面0时,因它已经在内存而不必产生缺页中断。当进程访问页面3时,又将引起页面1被淘汰;因为,它在现有的1,2,0三个页面中,将是最后被访问的。如此继续,这个作业序列将会产生6次页面置换。

理想型淘汰算法的具体工作流程如图2:

图2

3 数据结构

模拟设计时,页表用数组模拟。数组的数据类型为结构体,结构体有三个成员:int pageNum 表示页面号;int memoryNum表示页面所对应的内存块号;int isInmemory是存在状态位标志,表示页面是否在内存,0表示不在内存,1表示在内存。程序中设定虚拟页面号共10个,所以页表大小为10,即10个元素的数组pageTable。在每一个算法函数中都要初始化页表,否则,后面的算法会受前面算法结果的影响。

struct page

{

int pageNum;

int memoryNum;

int isInmemory;

};

page pageTable[10];

初始化页表:

for(int i=0;i<10;i++)

{

pageTable[i].pageNum=i;

pageTable[i].memoryNum=-1; //初始化时,内存块号为-1,即没在内存块中。

pageTable[i].isInmemory =0; //初始化时,各页面均不在内存}

页面请求序列:int *in= new int[inputSize]。

模拟内存:int *memory=new int[memorySize],在程序中模拟内存存放页面号。

4 各模块函数功能说明

int Main()函数提示并接受用户输入等待调入页面数inputSize,可用物理块数memorySize,并随机生成inputSize个请求页面,或提示用户自己输入页面序列。然后调用FIFO()、random()和OPT()函数实现按不同替换算法调入页面进内存。

void FIFO()函数实现先进先出的替换算法调入页面。

void random()函数实现随机替换算法调入页面。

void OPT()函数实现理想型替换算法。

int getOPTPage(int page)用于获取最优替换页面所在的内存块。该函数的算法实现流程图如图2。

三源程序的主要部分

1 main函数

int main()

{

for(int i=0;i<10;i++) //初始化页表

{

pageTable[i].pageNum=i;

pageTable[i].memoryNum=-1;

pageTable[i].isInmemory =0;

}

cout<<"输入待调入页面数"<

cin>>inputSize;

cout<<"输入可使用的物理块数:"<

cin>>memorySize;

int temp;

srand( (unsigned)time( NULL ) );

cout<<"随机生成页面请求序列(0-9)"<

for( i=0;i

{

temp=rand()%10;

cout<

in[i]=temp;

}

cout<

OPT();

return 0;

}

四使用说明

运行程序替换算法.exe,根据提示输入等待调入页面数和可使用的物理块数,程序会提示是否随机生成并显示一个页面请求序列,如果是,则随机生成序列,否则,要求自行输入序列。然后显示利用各算法处理请求页面的结果:如果页面在内存则显示“‘页面号’is in memory ”,若不在内存则显示“‘页面号’not in memory!take place of ‘被替换的页面号’”。处理完各页面后,统计并显示缺页次数和缺页率。

五运行结果与运行情况分析

待调入页面数:25

可用物理块数:3

随机生成页面请求序列,如图3:

0 3 9 4 0 1 6 0 1 5 0 9 5 2 7 6 8 8 8 2 5 2 5 3 0

图3

结果分析,如表2(×表示缺页,并在下方填被替换的页面号,√表示不缺页):

表2

通过表可以看出,利用随机替换算法,请求序列共缺页18次,替换序列依次是:0 3 9 4 0 1 6 5 0 9 2 7 6 8 2,缺页率72%,运行结果与分析结果一致。

3 OPT替换算法

运行结果,如图6:

图6

结果分析,如表4(×表示缺页,并在下方填被替换的页面号,√表示不缺页):

表4

通过表可以看出,利用随机替换算法,请求序列共缺页14次,替换序列依次是:3 4 9 1 0 9 5 7 8 2 3,缺页率为56%,运行结果与分析结果一致。

结论

通过测试运行,可以看出结果程序能满足设计要求,提示用户对请求序列的大小和可用内存数量进行限制,并提示用户输入请求序列号,或系统随机生成序列,按照不同的替换算法处理并且显示请求页面的调入和替换情况。

附录

#include

#include

using namespace std;

int inputSize;

int memorySize;

int *in; //请求序列

int *memory; //模拟内存

void OPT();

struct page

{

int pageNum;

int memoryNum;

int isInmemory;

};

page pageTable[10]; //假设虚拟页面数10个,页表长度10

int main()

{

for(int i=0;i<10;i++) //初始化页表

{

pageTable[i].pageNum=i;

pageTable[i].memoryNum=-1;

pageTable[i].isInmemory =0;

}

cout<<"输入待调入页面数"<

cin>>inputSize;

cout<<"输入可使用的物理块数"<

cin>>memorySize;

in= new int[inputSize];

memory=new int[memorySize];

int temp;

int select;

srand( (unsigned)time( NULL ) );

cout<<"随机生成请求序列?(1是)"<

cin>>select;

if(select==1)

{

cout<<"随机生成页面请求序列(0-9)"<

for( i=0;i

{

temp=rand()%10;

cout<

in[i]=temp;

}

}

else

{

cout<<"输入"<

for( i=0;i

{

cin>>temp;

in[i]=temp;

}

}

cout<

OPT();

delete [] in;

delete [] memory;

return 0;

}

void OPT() //理想型替换算法实现函数

{

for(int i=0;i<10;i++) //初始化页表{

pageTable[i].pageNum=i;

pageTable[i].memoryNum=-1;

pageTable[i].isInmemory =0;

}

srand( (unsigned)time( NULL ) );

cout<<"OPT替换算法:"<

for(i=0;i

{

memory[i]=-1;

}

int lackTime=0;

int replace=0; ////////被替换的物理块号

int isFull=0;

int page=0;

do

{

if(pageTable[in[page]].isInmemory ==1) //in[i]在memory中{

cout<

page++;

if(page==inputSize)break;

else continue;

}

else

{

lackTime++;

cout<

memory[isFull]=in[page]; // 装入内存

pageTable[in[page]].isInmemory=1;

pageTable[in[page]].memoryNum=isFull;

isFull++;

page++;if(page==inputSize)break;

}

if(page==inputSize)break;

}while(isFull!=memorySize);

for( i=page;i!=inputSize;i++)

{

if(pageTable[in[i]].isInmemory ==1)//in[i]在memory中

{

cout<

continue;

}

else //in[i]不在memory中

{

lackTime++;

replace=getOPTPage(i);

for(int j=0;j<10;j++)

{

if( pageTable[j].memoryNum==replace)

{

cout<

pageTable[j].memoryNum=-1;

pageTable[j].isInmemory=0;

break;

}

}

memory[replace]=in[i];

pageTable[in[i]].isInmemory=1;

pageTable[in[i]].memoryNum=replace;

}

}

cout<<"缺页次数:"<

cout<<"缺页率:"<

}

段式虚拟存储管理

学号: 课程设计 题目段页式虚拟存储管理 学院计算机科学与技术 专业 班级 姓名 指导教师吴利军 2013 年 1 月16 日

课程设计任务书 学生姓名: 指导教师:吴利军工作单位:计算机科学与技术学院题目: 模拟设计段页式虚拟存储管理中地址转换 初始条件: 1.预备内容:阅读操作系统的内存管理章节内容,理解段页式存储管理的思想及相应的分配主存的过程。 2.实践准备:掌握一种计算机高级语言的使用。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写 等具体要求) 1.实现段页式存储管理中逻辑地址到物理地址的转换。能够处理以下的情形: ⑴能指定内存的大小,内存块的大小,进程的个数,每个进程的段数及段内 页的个数; ⑵能检查地址的合法性,如果合法进行转换,否则显示地址非法的原因。 2.设计报告内容应说明: ⑴需求分析; ⑵功能设计(数据结构及模块说明); ⑶开发平台及源程序的主要部分; ⑷测试用例,运行结果与运行情况分析; ⑸自我评价与总结: i)你认为你完成的设计哪些地方做得比较好或比较出色; ii)什么地方做得不太好,以后如何改正; iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训); iv)完成本题是否有其他方法(如果有,简要说明该方法); 时间安排: 设计安排一周:周1、周2:完成程序分析及设计。 周2、周3:完成程序调试及测试。 周4、周5:验收、撰写课程设计报告。 (注意事项:严禁抄袭,一旦发现,一律按0分记) 指导教师签名:年月日 系主任(或责任教师)签名:年月日

一、需求分析: 页式管理基本原理: 各个进程的虚拟空间被划分成若干个长度相等的页。页长的划分和内存与外存之间的数据传输速度及内存大小等有关。一般每个页长大约为1----4K,经过页划分之后,进程的虚拟地址变为页号p与页内地址w所组成。 除了将进程的虚拟空间划分为大小相等的页之外,页式管理还把内存空间也按页的大小划分为片或者页面。这些页面为系统中的任一进程所共享。从而与分区管理不一样,分页管理时,用户进程在内存空间内除了在每个页面内地址连续之外,每个页面之间不再连续。第一是实现了内存中碎片的减少,因为任意碎片都会小于一个页面。第二是实现了由连续存储到非连续存储的这个飞跃,为在内存中局部地、动态地存储那些反复执行或即将执行的程序和数据段打下了基础。 怎样由页式虚拟地址转变为内存页面物理地址?页式管理把页式虚拟地址与内存页面物理地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地址变换问题。 静态页面管理: 静态页面管理方法是在作业或进程开始执行之前,把该作业或进程的程序段和数据全部装入内存的各个页面,并通过页表和硬件地址变换机构实现虚拟地址到内存物理地址的地址映射。 1、内存页面的分配与回收 静态分页管理的第一步是为要求内存的作业或进程分配足够的页面。系统依靠存储页面表、请求页面表以及页表来完成内存的分配。 (1)页表 最简单的页表由页号与页面号组成,页表在内存中占有一块固定的存储区。页表的大小有进程或作业的长度决定。 每个进程至少要拥有一个页表。 (2)请求表 用来确定作业或进程的虚拟空间的各页在内存中的实际对应位置。系统必须知道每个作业或进程的页表起始地址和长度,以进行内存的分配和地址变换,另外请求表中还应包括每个作业或进程所要求的页面数。 (3)存储页面 存储页面表也是整个系统一张,存储页面表指出内存各个页面是否已被分配出去,以及未被分配页面总数。存储页面表也有两种构成方法,一种是在内存中划分一块固定区域,每个单元的每个比特代表一个页面,如果该页面已被分配,则对应比特位置置1,否则置0。 另一种方法空闲页面链,不占内存空间。 2、分配算法 3、地址变换 在程序执行过程中,执行的是虚拟空间中的代码,代码中的指令是相对于虚拟空间的,需要到内存的实际空间中寻找对应的要执行的指令。 静态页式管理的缺陷: 虽然解决了分区管理时的碎片问题,但是由于静态页式管理要求进程或作业在执行前全部装入内存,如果可用页面数小于用户要求时,改作业或进程只好等待。而且,作业或进程的大小仍受内存可用空间的限制。

操作系统-页式虚拟存储管理程序模拟

操作系统-页式虚拟存储管理程序模拟

FIFO页面置换算法 1在分配内存页面数(AP)小于进程页面数(PP)时,当然是最先运行的AP个页面放入内存。 2这时有需要处理新的页面,则将原来内存中的AP个页面最先进入的调出(是以称为FIFO),然后将新页面放入。 3以后如果再有新页面需要调入,则都按2的规则进行。 算法特点:所使用的内存页面构成一个队列。LRU页面置换算法 1当分配内存页面数(AP)小于进程页面数(PP)时,当然是把最先执行的AP个页面放入内存。2当需要调页面进入内存,而当前分配的内存页面全部不空闲时,选择将其中最长时间没有用到的那个页面调出,以空出内存来放置新调入的页面(称为LRU)。 算法特点:每个页面都有属性来表示有多长时间未被CPU使用的信息。 结果分析

#include #include using namespace std; const int MaxNum=320;//指令数 const int M=5;//内存容量 int PageOrder[MaxNum];//页面请求 int Simulate[MaxNum][M];//页面访问过程 int PageCount[M],LackNum;//PageCount用来记录LRU算法中最久未使用时间,LackNum记录缺页数 float PageRate;//命中率 int PageCount1[32]; bool IsExit(int i)//FIFO算法中判断新的页面请求是否在内存中 { bool f=false; for(int j=0;j

操作系统-页式虚拟存储管理程序模拟

实验3:页式虚拟存储管理程序模拟 实验目的:编写程序来模拟计算机的两种调度方式: (1)先进先出算法 (2)最近最少使用算法 程序设计 FIFO页面置换算法 1在分配内存页面数(AP)小于进程页面数(PP)时,当然是最先运行的AP个页面放入内存。2这时有需要处理新的页面,则将原来内存中的AP个页面最先进入的调出(是以称为FIFO),然后将新页面放入。 3以后如果再有新页面需要调入,则都按2的规则进行。 算法特点:所使用的内存页面构成一个队列。 LRU页面置换算法

1当分配内存页面数(AP)小于进程页面数(PP)时,当然是把最先执行的AP个页面放入内存。2当需要调页面进入内存,而当前分配的内存页面全部不空闲时,选择将其中最长时间没有用到的那个页面调出,以空出内存来放置新调入的页面(称为LRU)。 算法特点:每个页面都有属性来表示有多长时间未被CPU使用的信息。 结果分析

#include #include using namespace std; const int MaxNum=320;//指令数 const int M=5;//内存容量 int PageOrder[MaxNum];//页面请求 int Simulate[MaxNum][M];//页面访问过程 int PageCount[M],LackNum;//PageCount用来记录LRU算法中最久未使用时间,LackNum记录缺页数 float PageRate;//命中率 int PageCount1[32]; bool IsExit(int i)//FIFO算法中判断新的页面请求是否在内存中 { bool f=false; for(int j=0;j

存储管理习题整理(DOC)

1.某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下: 计算逻辑地址0A5C(H)所对应的物理地址(要求写出分析过程)。 解: 逻辑地址0A5C(H)所对应的物理地址是125C(H)。 分析页式存储管理的逻辑地址分为两部分:页号和页内地址。 由已知条件“用户编程空间共32个页面”,可知页号部分占5位;由“每页为1KB”,1K=210,可知内页地址占10位。由“内存为16KB”,可知有16块,块号为4位。 逻辑地址0A5C(H)所对应的二进制表示形式是:000 1010 0101 1100 ,根据上面的分析,下划线部分为页内地址,编码“000 10”为页号,表示该逻辑地址对应的页号为2。查页表,得到物理块号是4(十进制),即物理块地址为:01 00 ,拼接块内地址10 0101 1100,得01 0010 0101 1100,即125C(H)。 (1分),得01 0010 0101 1100(1分),即125C(H)(1分)。 2、设某程序大小为460字,并且他有下面的存储访问序列: 10、11、104、170、73、309、185、245、246、434、458、364 设页面大小是100字,请给出该访问序列的页面走向,又设该程序基本可能用内存是200字,采用先进先出置换算法(FIFO),求出其缺页率。如果采用最佳置换算法(OPT),其缺页中断率又是多少?(注:缺页率=缺页次数/访问页面总数) 、现有一个作业,在段式存储管理的系统中已为其主存分配,建立的段表内容如下: 注:括号中第一个元素为段号,第二个元素为段内地址。 解:

实验五动态页式存储管理实现过程的模拟

实验五动态页式存储管理实现过程的模拟 一、实验目的与要求 在计算机系统中,为了提高主存利用率,往往把辅助存储器(如磁盘)作为主存储器的扩充,使多道运行的作业的全部逻辑地址空间总和可以超出主存的绝对地址空间。用这种办法扩充的主存储器称为虚拟存储器。通过本实验帮助学生理解在分页式存储管理中怎样实现虚拟存储器;掌握物理内存和虚拟内存的基本概念;掌握重定位的基本概念及其要点,理解逻辑地址与绝对地址;掌握动态页式存储管理的基本原理、地址变换和缺页中断、主存空间的分配及分配算法;掌握常用淘汰算法。 二、实验环境 VC++6.0集成开发环境或java程序开发环境。 三、实验内容 模拟分页式虚拟存储管理中硬件的地址转换和缺页中断,以及选择页面调度算法处理缺页中断。 四、实验原理 1、地址转换 (1)分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。为此,在为作业建立页表时,应说明哪些页已在主存,哪些页尚未装入主存,页表的格式如图10所示: 图10 页表格式 其中,标志----用来表示对应页是否已经装入主存,标志位=1,则表示该页已经在主存,标志位=0,则表示该页尚未装入主存。 主存块号----用来表示已经装入主存的页所占的块号。

在磁盘上的位置----用来指出作业副本的每一页被存放在磁盘上的位置。 (2)作业执行时,指令中的逻辑地址指出了参加运算的操作存放的页号和单元号,硬件的地址转换机构按页号查页表,若该页对应标志为“1”,则表示该页已在主存,这时根据关系式: 绝对地址=块号×块长+单元号 计算出欲访问的主存单元地址。如果块长为2的幂次,则可把块号作为高地址部分,把单元号作为低地址部分,两者拼接而成绝对地址。若访问的页对应标志为“0”,则表示该页不在主存,这时硬件发“缺页中断”信号,有操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后再重新执行这条指令。 (3)设计一个“地址转换”程序来模拟硬件的地址转换工作。当访问的页在主存时,则形成绝对地址,但不去模拟指令的执行,而用输出转换后的地址来代替一条指令的执行。当访问的页不在主存时,则输出“* 该页页号”,表示产生了一次缺页中断。该模拟程序的算法如图11。 图11 地址转换模拟算法 2、用先进先出(FIFO)页面调度算法处理缺页中断。

请求页式存储管理中常用页面置换算法模拟

请求页式存储管理中常用页 面置换算法模拟 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

信息工程学院实验报告 课程名称:操作系统Array 实验项目名称:请求页式存储管理中常用页面置换算法模拟实验时间: 班级姓名:学号: 一、实验目的: 1.了解内存分页管理策略 2.掌握调页策略 3.掌握一般常用的调度算法 4.学会各种存储分配算法的实现方法。 5.了解页面大小和内存实际容量对命中率的影响。 二、实验环境: PC机、windows2000 操作系统、VC++6.0 三、实验要求: 本实验要求4学时完成。 1.采用页式分配存储方案,通过分别计算不同算法的命中率来比较算法的优劣,同时 也考虑页面大小及内存实际容量对命中率的影响; 2.实现OPT 算法 (最优置换算法)、LRU 算法 (Least Recently)、 FIFO 算法 (First IN First Out)的模拟; 3.会使用某种编程语言。 实验前应复习实验中所涉及的理论知识和算法,针对实验要求完成基本代码编写、实验中认真调试所编代码并进行必要的测试、记录并分析实验结果。实验后认真书写符合规范格式的实验报告,按时上交。 四、实验内容和步骤: 1.编写程序,实现请求页式存储管理中常用页面置换算法LRU算法的模拟。要求屏幕 显示LRU算法的性能分析表、缺页中断次数以及缺页率。 2.在上机环境中输入程序,调试,编译。 3.设计输入数据,写出程序的执行结果。 4.根据具体实验要求,填写好实验报告。 五、实验结果及分析: 实验结果截图如下:

利用一个特殊的栈来保存当前使用的各个页面的页面号。当进程访问某页面时,便将该页面的页面号从栈中移出,将它压入栈顶。因此,栈顶始终是最新被访问页面的编号,栈底是最 近最久未被使用的页面号。 当访问第5个数据“5”时发生了缺页,此时1是最近最久未被访问的页,应将它置换出去。同理可得,调入队列为:1 2 3 4 5 6 7 1 3 2 0 5,缺页次数为12次,缺页率为80%。 六、实验心得: 本次实验实现了对请求页式存储管理中常用页面置换算法LRU算法的模拟。通过实验,我对内存分页管理策略有了更多的了解。 最近最久未使用(LRU)置换算法的替换规则:是根据页面调入内存后的使用情况来进行决策的。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间,当需淘汰一个页面的时候选择现有页面中其时间值最大的进行淘汰。 最佳置换算法的替换规则:其所选择的被淘汰页面,将是以后永不使用的或许是在最长(未来)时间内不再被访问的页面。 先进先出(FIFO)页面置换算法的替换规则:该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。该算法实现简单只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,称为替换指针,使它总是指向最老的页面。 三种替换算法的命中率由高到底排列OPT>LRU>FIFO。 本次的程序是在网上查找的相关代码然后自己进行修改,先自己仔细地研读了这段代码,在这过程中我对C++代码编写有了更深的了解。总之,本次实验使我明白要学会把课堂上的理论应用到实际操作中。我需要在今后熟练掌握课堂上的理论基础,只有坚实的基础,才能在实际操作中更得心应手。

操作系统自测题六(虚拟存储管理)

一、选择题 1.页式虚拟存储管理的主要特点是__________ A.不要求动态重定位 B.不要求将作业同时全部装入主存的连续区域 C.不要求进行缺页中断处理 D.不要求进行页面置换 2.设内存的容量为4MB,辅存的容量为40MB,计算机的地址线24位,则虚存的最大容量是___ A.40MB B.4MB+40MB C.16MB D.24MB 3.在请页式存储管理中,当所访问的页面不在内存时将产生缺页,缺页中断属于_____ A.I/O中断 B.内中断 C.外中断 D.程序中断 4.虚拟存储管理策略可以_______ A.扩大逻辑外存容量 B.扩大物理外存容量 C.扩大逻辑内存容量 D.扩大物理内存容量 5. 请段式存储管理系统的特点是___________ A.不要求进行段的保护 B.不要求将进程同时全部装入内存的连续区域 C.不要求进行缺段中断处理 D.不要求进行动态连接 6.进程在执行过程中发生了缺页中断,操作系统处理后,应让其继续执行_________ A.被中段的指令 B.被中断指令的前一条 C.被中断指令的后一条 D.启动时的第一条指令 7.在请页式存储管理中,若采用FIFO页面置换算法,则当分配给进程的页面增加时.缺页的次数__________ A.无影响 B.增加 C.减少 D.可能增加也可能减少 8.虚拟存储器的理论基础是___________ A.局部性原理 B.全局性原理 C.动态性 D.虚拟性 9.下面的页面置换算法中,引起抖动可能性最大的是_____ A. OPT B. FIFO C. LRU D. CLOCK 10.内存空间是______ A.一维的 B.二维的 C.三维的 D.四维的 11.逻辑地址对应的是________ A.数据的地址 B.模块的地址 C.内存的基址 D.外存的基址 12.物理地址对应的是________ A.数据的地址 B.模块的地址 C.内存的地址 D.外存的地址 13.在页式存储管理中,页表的作用是实现从页号到物理块号的______ A.逻辑映射 B.物理映射 C.地址映射 D.逻辑地址映射 14.虚拟存储器受到的限制除了外存的容量,还有_________ A.指令中的地址长度 B.内存的容量 C.硬件的好坏 D.以上观点都对 15.在页式存储管理系统中,每当CPU要形成一条有效地址时都要查页表,这一工作是由以下__________实现的 A.硬件 B.操作系统 C.查表程序 D.存取控制程序 16.系统抖动现象的发生是由________引起的 A.置换算法选择不当 B.交换的信息量过大 C.内存容量不足 D.请页式管理方案

段页式虚拟存储管理

课程设计 题目段页式虚拟存储管理 学院计算机科学与技术 专业 班级 姓名 指导教师吴利军 2013年1月16日 课程设计任务书 学生姓名:

指导教师:吴利军工作单位:计算机科学与技术学院题目: 模拟设计段页式虚拟存储管理中地址转换 初始条件: 1.预备内容:阅读操作系统的内存管理章节内容,理解段页式存储管理的思想及相应的分配主存的过程。 2.实践准备:掌握一种计算机高级语言的使用。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写 等具体要求) 1.实现段页式存储管理中逻辑地址到物理地址的转换。能够处理以下的情形: ⑴能指定内存的大小,内存块的大小,进程的个数,每个进程的段数及段内页 的个数; ⑵能检查地址的合法性,如果合法进行转换,否则显示地址非法的原因。 2.设计报告内容应说明: ⑴需求分析; ⑵功能设计(数据结构及模块说明); ⑶开发平台及源程序的主要部分; ⑷测试用例,运行结果与运行情况分析; ⑸自我评价与总结: i)你认为你完成的设计哪些地方做得比较好或比较出色; ii)什么地方做得不太好,以后如何改正; iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训); iv)完成本题是否有其他方法(如果有,简要说明该方法); 时间安排: 设计安排一周:周1、周2:完成程序分析及设计。 周2、周3:完成程序调试及测试。 周4、周5:验收、撰写课程设计报告。 (注意事项:严禁抄袭,一旦发现,一律按0分记) 指导教师签名:年月日 系主任(或责任教师)签名:年月日 一、需求分析: 页式管理基本原理:

各个进程的虚拟空间被划分成若干个长度相等的页。页长的划分和内存与外存之间的数据传输速度及内存大小等有关。一般每个页长大约为1----4K,经过页划分之后,进程的虚拟地址变为页号p与页内地址w所组成。 除了将进程的虚拟空间划分为大小相等的页之外,页式管理还把内存空间也按页的大小划分为片或者页面。这些页面为系统中的任一进程所共享。从而与分区管理不一样,分页管理时,用户进程在内存空间内除了在每个页面内地址连续之外,每个页面之间不再连续。第一是实现了内存中碎片的减少,因为任意碎片都会小于一个页面。第二是实现了由连续存储到非连续存储的这个飞跃,为在内存中局部地、动态地存储那些反复执行或即将执行的程序和数据段打下了基础。 怎样由页式虚拟地址转变为内存页面物理地址页式管理把页式虚拟地址与内存页面物理地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地址变换问题。 静态页面管理: 静态页面管理方法是在作业或进程开始执行之前,把该作业或进程的程序段和数据全部装入内存的各个页面,并通过页表和硬件地址变换机构实现虚拟地址到内存物理地址的地址映射。 1、内存页面的分配与回收 静态分页管理的第一步是为要求内存的作业或进程分配足够的页面。系统依靠存储页面表、请求页面表以及页表来完成内存的分配。 (1)页表 最简单的页表由页号与页面号组成,页表在内存中占有一块固定的存储区。页表的大小有进程或作业的长度决定。 每个进程至少要拥有一个页表。 (2)请求表 用来确定作业或进程的虚拟空间的各页在内存中的实际对应位置。系统必须知道每个作业或进程的页表起始地址和长度,以进行内存的分配和地址变换,另外请求表中还应包括每个作业或进程所要求的页面数。 (3)存储页面 存储页面表也是整个系统一张,存储页面表指出内存各个页面是否已被分配出去,以及未被分配页面总数。存储页面表也有两种构成方法,一种是在内存中划分一块固定区域,每个单元的每个比特代表一个页面,如果该页面已被分配,则对应比特位置置1,否则置0。 另一种方法空闲页面链,不占内存空间。 2、分配算法 3、地址变换 在程序执行过程中,执行的是虚拟空间中的代码,代码中的指令是相对于虚拟空间的,需要到内存的实际空间中寻找对应的要执行的指令。 静态页式管理的缺陷: 虽然解决了分区管理时的碎片问题,但是由于静态页式管理要求进程或作业在执行前全部装入内存,如果可用页面数小于用户要求时,改作业或进程只好等待。而且,作业或进程的大小仍受内存可用空间的限制。 动态页式管理: 动态页式管理是在静态页式管理的基础上发展起来的。它分为请求页式管理和与调入页式管理(调入方式上)。

第四章 操作系统存储管理(练习题)

第四章存储管理 1. C存储管理支持多道程序设计,算法简单,但存储碎片多。 A. 段式 B. 页式 C. 固定分区 D. 段页式 2.虚拟存储技术是 B 。 A. 补充内存物理空间的技术 B. 补充相对地址空间的技术 C. 扩充外存空间的技术 D. 扩充输入输出缓冲区的技术 3.虚拟内存的容量只受 D 的限制。 A. 物理内存的大小 B. 磁盘空间的大小 C. 数据存放的实际地址 D. 计算机地址位数 4.动态页式管理中的 C 是:当内存中没有空闲页时,如何将已占据的页释放。 A. 调入策略 B. 地址变换 C. 替换策略 D. 调度算法 5.多重分区管理要求对每一个作业都分配 B 的内存单元。 A. 地址连续 B. 若干地址不连续 C. 若干连续的帧 D. 若干不连续的帧 6.段页式管理每取一数据,要访问 C 次内存。 A. 1 B. 2 C. 3 D. 4 7.分段管理提供 B 维的地址结构。 A. 1 B. 2 C. 3 D. 4 8.系统抖动是指 B。 A. 使用计算机时,屏幕闪烁的现象 B. 刚被调出内存的页又立刻被调入所形成的频繁调入调出的现象 C. 系统盘不干净,操作系统不稳定的现象 D. 由于内存分配不当,造成内存不够的现象 9.在 A中,不可能产生系统抖动现象。 A. 静态分区管理 B. 请求分页式管理 C. 段式存储管理 D. 段页式存储管理 10.在分段管理中 A 。 A. 以段为单元分配,每段是一个连续存储区 B. 段与段之间必定不连续 C. 段与段之间必定连续 D. 每段是等长的 11.请求分页式管理常用的替换策略之一有 A 。 A. LRU B. BF C. SCBF D. FPF 12.可由CPU调用执行的程序所对应的地址空间为 D 。 A. 名称空间 B. 虚拟地址空间 C. 相对地址空间 D. 物理地址空间 13. C 存储管理方式提供二维地址结构。 A. 固定分区 B. 分页

聊城大学计算机学院12-13第2学期操作系统B卷

我以一名大学生的人格尊严保证,在本场考试中,自觉遵守考试纪律,服从考试管理,决不作弊或帮助别人作弊!签名:学院专业学号级班 ··················密···················封·····················线·················· 命题人签字:系主任签字:审核院长签字:共印份数: 第1页共4页聊城大学计算机学院12—13学年第2学期期末考试2011级《操作系统》试题(闭卷B卷) 一、填空题(共9题,每空1分,共15分) 1.进程最基本的特性是动态性和();每个进程都有唯一的()。 2.处理机调度可分为三级,其中必须具备的调度为()。 3.某虚拟存储器的用户空间共有32个页面,每页1KB,主存16KB,则逻辑地址的有效位为(),物理地址需要()位, 将逻辑地址转换为物理地址的过程称为()。 4.在动态分区式内存管理中,倾向于优先使用低址部分空闲区的算法是(),每次分配时既能满足要求,又是把最小的空闲区 分配给进程的算法是()。 5.在响应比最高者优先的作业调度算法中,当各个作业等待时间相同时,()的作业将得到优先调度;当各个作业要求运行的 时间相同时,()的作业得到优先调度。 6.若系统中有五台绘图仪,有多个进程均需要使用两台,规定每个进程一次仅允许申请一台,则至多允许()个进程参于竞争,而 不会发生死锁。 7.虚拟存储器管理的基础是()原理。 8.在操作系统的存储管理中,由于进行动态不等长存储分配,在内存中形成一些很小的不能再利用的空闲区域,称之为()。 9.常用的I/O控制方式有程序直接控制方式、中断控制方式、()和()。 二、单项选择题(共12题,每题2分,共24分) 1. 操作系统中,P、V操作是一种()。 A.机器指令 B.系统调用命令 C.作业控制命令 D.低级进程通讯原语 2. 虚拟存储管理策略可以()。 A.扩大物理内存容量B.扩大物理外存容量C.扩大逻辑内存容量D.扩大逻辑外存容量 3. 一进程刚获得三个主存块的使用权,若该进程访问页面的次序是{1 3 2 1 2 1 5 1 2 3}。当采用LRU 算法时,缺页数是()次。 A.1 B.3 C.4 D.5 4. 下列关于死锁的说法中,正确的是( ) A. 有环必死锁 B. 死锁必有环 C. 有环无死锁 D. 死锁也无环 5. 多个进程对信号量S进行了5次P操作,2次V操作后,现在信号量的值是-3,则与信号量S相关的处于阻塞状态的进程数和信号量的 初值为()。 A.3,1 B.3,0 C.2,1 D.5,0 6.下列进程调度算法中,()可能会出现进程长期得不到调度的情况。

页式虚拟存储管理中地址转换和缺页中断实验参考2

页式虚拟存储管理中地址转换和缺页中断 一.实验目的 (1)深入了解存储管理如何实现地址转换。 (2)进一步认识页式虚拟存储管理中如何处理缺页中断。 二.实验内容 编写程序完成页式虚拟存储管理中地址转换过程和模拟缺页中断的处理。 三.实验原理 页式存储管理把内存分割成大小相等位置固定的若干区域,叫内存页面,内存的分配以“页”为单位,一个程序可以占用不连续的页面,逻辑页面的大小和内存页面的大小相同,内外存的交换也以页为单位进行,页面交换时,先查询快表,若快表中找不到所需页面再去查询页表,若页表中仍未找到说明发生了缺页中断,需先将所需页面调入内存再进行存取。 四.实验部分源程序 #define size 1024//定义块的大小,本次模拟设为1024个字节。 #include "stdio.h" #include "string.h" #include struct plist { int number; //页号 int flag; //标志,如为1表示该页已调入主存,如为0则还没调入。 int block; //主存块号,表示该页在主存中的位置。 int modify; //修改标志,如在主存中修改过该页的内容则设为1,反之设为0 int location; //在磁盘上的位置 }; //模拟之前初始化一个页表。 struct plist p1[7]={{0,1,5,0,010},{1,1,8,0,012},{2,1,9,0,013},{3,1,1,0,021},{4,0,-1,0,022},{5,0,-1,0,023},{6, 0,-1,0,125}}; //命令结构,包括操作符,页号,页内偏移地址。 struct ilist { char operation[10]; int pagenumber; int address; }; //在模拟之前初始化一个命令表,通过程序可以让其顺序执行。 struct ilist p2[12]={{"+",0,72},{"5+",1,50},{"*",2,15},{"save",3,26},

VMware 虚拟机存储管理

VMware 虚拟机存储管理 1)实现虚拟机共享存储 VMware vSphere环境中对共享存储的访问是通过VMware vStorage VMFS 实现的,这是一种专为虚拟机设计的高性能集群文件系统。 VMware vStorage VMFS 是专为虚拟服务器环境而设计、构造和优化的,可让多个虚拟机对由集群式存储构成的整合池进行共享访问,从而提高资源利用率。VMware vStorage VMFS 还为分布式基础架构服务奠定了基础,例如虚拟机和虚拟磁盘文件实时迁移,以及分布式资源调度、整合备份和自动灾难恢复。 作为文件系统,VMware vStorage VMFS 将构成虚拟机的所有文件存储在一个目录中。经过优化,可以支持大型文件,同时也可以执行许多小型的并发写操作。通过自动处理虚拟机文件,VMware vStorage VMFS 对整个虚拟机进行封装,使其很容易成为灾难恢复解决方案的一部分。事实上,VMware Infrastructure 3 之所以被TechTarget 评为“2006 年度灾难恢复产品”,VMware vStorage VMFS 是主要原因之一。 作为逻辑卷管理器,VMware vStorage VMFS 实现了一个存储资源界面,使得多种类型的存储(SAN、iSCSI 和NAS)能够以可承载虚拟机的数据存储的形式出现。通过以聚合存储资源方式实现那些数据存储的动态增长,VMware vStorage VMFS 可提供在最少停机或无停机的情况下增加共享存储资源池的能力。 VMware vStorage VMFS 与传统文件系统 传统文件系统在指定时间只允许一台服务器对同一文件进行读写访问。与之相对,VMware vStorage VMFS 使用共享存储来允许多个VMware ESX 实例对同一存储资源进行并发读写访问。 VMware vStorage VMFS 利用分布式日志来允许跨这些多服务器资源池进行快速、弹性的恢复。此外,VMware vStorage VMFS 提供了进行灾难恢复所必需的虚拟机快照功能,并且是VMware Consolidated Backup (VCB) 用来提供虚拟环境代理备份的界面。 VMware vStorage VMFS 与CFS 和CVM VMware vStorage VMFS 并不包含当今的其他集群文件系统(CFM) 和集群卷管理(CVM)

请求页式存储管理中常用页面置换算法模拟

湖南科技学院计算机与信息科学系 实验报告 实验名称请求页式存储管理中常用页面置换算法模拟 课程名称计算机操作系统所属系部班级计科0902 时间2011年12 月8 日第9、10 节地点E305 姓名王校君学号200908001230 成绩 本组成员(一人一组) 一、实验要求 1、上机前认真阅读实验内容,并编好程序; 2、上机实验后,请列出实验数据,写出实验结果; 3、完成实验报告后交任课教师。 二、实验目的 页式虚拟存储器实现的一个难点是设计页面调度(置换)算法,即将新页面调入内存时,如果内存中所有的物理页都已经分配出去,就要按某种策略来废弃某个页面,将其所占据的物理页释放出来,供新页面使用。本实验的目的是通过编程实现几种常见的页面调度(置换)算法,加深读者对页面思想的理解。三、实验环境 每人一台电脑,在下实现。 四、实验内容 (1)设计程序实现以上三种页面调度算法,要求: ①.可以选择页面调度算法类型; ②.可以为进程设置分到物理页的数目,设置进程的页面引用情况,可以从键盘输入页面序列,也可从文件中读取; ③.随时计算当前的页面调度次数的缺页中断率; ④.使用敲键盘或响应WM-TIMER的形式模仿时间的流逝; ⑤.以直观的的形式将程序的执行情况显示在计算机屏幕上; ⑥.存盘及读盘功能,可以随时将数据存入磁盘文件,供以后重复实验时使用。(2)假定进程分配到3个物理块,对于下面的页面引用序列: 7-0-1-2-0-3-0-4-2-3-0-3-2-1-2-0-1-7-0-1 请分别用先进和先出调度算法,最近最少用调度算法,最近最不常用调度算法计算缺页中断次数,缺页中断率和缺页调度次数、缺页置换率。 再假定进程分配到4、5个物理块,重复本实验。 (3)假定进程分配到3个物理块,对于下面的页面引用序列: 4-3-2-1-4-3-5-4-3-2-1-5-0-7-3-8-9-0-2-1-4-7-3-9 请分别用先进先出调度算法、最近最少用调度算法,最近最不常用调度算法计算缺页中断次数,缺页中断率和缺页调度次数、缺页置换率。 再假定进程分配到4、5个物理块,重复本实验。 (4)假定进程分配到3个物理块,使用程序的动态页面序列生成算法,生成一个页面序列,将此序列存入磁盘文件。再从磁盘文件读入该序列,用程序分别计算三种算法下的缺页中断次数、缺页中断率和缺页调度次数、缺页置换率。

分章练习题--存储管理

第四章存储器管理 一、填空题 1、对内存的访问是通过一系列对指定进行读或写来实现的。 2、存储器一般分为外存、和高速缓存器。 3、为了提高运算速度和增强处理能力,可以在CPU和内存之间增加______________用来存放程序和数据,CPU可以直接存取其中信息。 4、将编译或汇编后得到的一组目标模块以及它们所需的库函数装配成一个完整的装入模块的过程称为。 5、用户程序经编译之后的每个目标模块都以0为基地址顺序编址,这种地址称为。 6、内存中各存储单元的地址是从统一的基地址顺序编址,这种地址称为。 7、从用户的源程序进入系统到相应程序在机器上运行,要经历的主要处理阶段有:编辑、编译、连接和运行。 8、源程序不能在机器上直接执行,要把源程序编译成处理机能识别的二进制。 9、动态重定位是程序执行期间每次访问内存之前进行重定位,这种变换是靠实现的。 10、动态重定位是程序执行期间每次之前进行重定位,这种变换是靠硬件地址变换机构来实现的。 11、把逻辑地址转变为内存的的过程称为重定位。 12、使用存储管理固定分区法时,内存中的分区个数和都固定。 13、为了提高内存的利用率,在可重定位分区分配方式中可通过________________技术来减少内存碎片。 14、使用动态重定位法,通过紧缩可以消除碎片,但需耗费大量的。 15、紧缩是通过移动内存中的程序数据,从而使得被连成一片,这就要求动态重定位技术支持。 16、所谓对换技术,就是为了解决内存不足的问题,令作业在内存和______________之间交换。 17、某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时刻一用户表中已调入

页式虚拟存储管理FIFO、LRU和OPT页面置换算法

目录 1 需求分析 (2) 1.1 目的和要求 (2) 1.2 研究内容 (2) 2 概要设计 (2) 2.1 FIFO算法 (3) 2.2 LRU算法 (3) 2.3 OPT算法 (3) 2.4 输入新的页面引用串 (3) 3 详细设计 (4) 3.1 FIFO(先进先出)页面置换算法: (4) 3.2 LRU(最近最久未使用)置换算法: (4) 3.3 OPT(最优页)置换算法 (4) 4 测试 (5) 5 运行结果 (5) 6 课程设计总结 (10) 7 参考文献 (10) 8 附录:源程序清单 (11)

1 需求分析 1.1 目的和要求 在熟练掌握计算机虚拟存储技术的原理的基础上,利用一种程序设计语言模拟实现几种置换算法,一方面加深对原理的理解,另一方面提高学生通过编程根据已有原理解决实际问题的能力,为学生将来进行系统软件开发和针对实际问题提出高效的软件解决方案打下基础。 1.2 研究内容 模拟实现页式虚拟存储管理的三种页面置换算法(FIFO(先进先出)、LRU(最近最久未使用)和OPT(最长时间不使用)),并通过比较性能得出结论。 前提: (1)页面分配采用固定分配局部置换。 (2)作业的页面走向和分得的物理块数预先指定。可以从键盘输入也可以从文件读入。 (3)置换算法的置换过程输出可以在显示器上也可以存放在文件中,但必须清晰可读,便于检验。 2 概要设计 本程序主要划分为4个功能模块,分别是应用FIFO算法、应用LRU算法、应用OPT算法和页面引用串的插入。

1.1各模块之间的结构图 2.1 FIFO 算法 该模块的主要功能是对相应页面引用串进行处理,输出经过FIFO 算法处理之后的结果。 2.2 LRU 算法 该模块的主要功功能是对相应的页面引用串进行处理,输出经过LRU 算法处理之后的结果。 2.3 OPT 算法 该模块的主要功功能是对相应的页面引用串进行处理,输出经过OPT 算法处理之后的结果。 2.4 输入新的页面引用串 该模块的主要功能是用户自己输入新的页面引用串,系统默认的字符串是0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,用户可以自定义全新的20个数字页面引用串。 主界面 FIFO 算法 LRU 算法 OPT 算法 新的页面引用 串

虚拟存储器管理实验报告

淮海工学院计算机科学系实验报告书 课程名:《操作系统》 题目:虚拟存储器管理 页面置换算法模拟实验 班级: 学号: 姓名:

一、实验目的与要求 1.目的: 请求页式虚存管理是常用的虚拟存储管理方案之一。通过请求页式虚存管理中对页面置换算法的模拟,有助于理解虚拟存储技术的特点,并加深对请求页式虚存管理的页面调度算法的理解。 2.要求: 本实验要求使用C语言编程模拟一个拥有若干个虚页的进程在给定的若干个实页中运行、并在缺页中断发生时分别使用FIFO和LRU算法进行页面置换的情形。其中虚页的个数可以事先给定(例如10个),对这些虚页访问的页地址流(其长度可以事先给定,例如20次虚页访问)可以由程序随机产生,也可以事先保存在文件中。要求程序运行时屏幕能显示出置换过程中的状态信息并输出访问结束时的页面命中率。程序应允许通过为该进程分配不同的实页数,来比较两种置换算法的稳定性。 二、实验说明 1.设计中虚页和实页的表示 本设计利用C语言的结构体来描述虚页和实页的结构。 在虚页结构中,pn代表虚页号,因为共10个虚页,所以pn的取值范围是0—9。pfn代表实页号,当一虚页未装入实页时,此项值为-1;当该虚页已装入某一实页时,此项值为所装入的实页的实页号pfn。time项在FIFO算法中不使用,在LRU中用来存放对该虚页的最近访问时间。 在实页结构中中,pn代表虚页号,表示pn所代表的虚页目前正放在此实页中。pfn代表实页号,取值范围(0—n-1)由动态指派的实页数n所决定。next是一个指向实页结构体的指针,用于多个实页以链表形式组织起来,关于实页链表的组织详见下面第4点。 2.关于缺页次数的统计 为计算命中率,需要统计在20次的虚页访问中命中的次数。为此,程序应设置一个计数器count,来统计虚页命中发生的次数。每当所访问的虚页的pfn项值不为-1,表示此虚页已被装入某实页内, 此虚页被命中,count加1。最终命中率=count/20*100%。 3.LRU算法中“最近最久未用”页面的确定 为了能找到“最近最久未用”的虚页面,程序中可引入一个时间计数器countime,每当要访问 一个虚页面时,countime的值加1,然后将所要访问的虚页的time项值设置为增值后的当前

操作系统-复习题+答案

复习题 一、选择题 1、一个完整的计算机系统是由( )组成的。 A. 硬件 B.软件 C. 硬件和软件 D.用户程序 2、操作系统的基本职能是( )。 A. 控制和管理系统内各种资源,有效地组织多道程序的运行B. 提供用户界面,方便用户使用 C. 提供方便的可视化编辑程序 D. 提供功能强大的网络管理工具 3、避免死锁的一个著名的算法是( )。 A.先入先出法 B.银行家算法 C.优先级算法 D.资源按序分配法 4、为了使系统中所有的用户都能得到及时的响应,该操作系统应该是()。 A.多道批处理系统 B.分时系统 C.实时系统 D.网络系统 5、计算机系统产生死锁的根本原因是( )。 A.资源有限 B.进程推进顺序不当 C.系统中进程太多 D.A和B 6、下列进程状态的转换中,哪一个是不正确的()。 A.就绪运行 B.运行就绪 C.阻塞就绪 D.就绪阻塞 7、某进程由于需要从磁盘上读入数据而处于阻塞状态。当系统完成了所需的读盘操作后,此时该进程的状态将( )。 A. 从就绪变为运行 B.从运行变为就绪 C. 从运行变为阻塞 D.从阻塞变为就绪 8、多个进程的实体能存在于同一内存中,在一段时间内都得到运行。这种性质称作进程的()。 A. 动态性 B. 并发性

C. 调度性 D. 异步性 9、进程控制块是描述进程状态和特性的数据结构,一个进程()。 A. 可以有多个进程控制块 B.可以和其他进程共用一个进程控制块 C. 可以没有进程控制块 D.只能有惟一的进程控制块 10、在大多数同步机构中,均用一个标志来代表某种资源的状态,该标志常被称为()。 A、公共变量 B、标志符 C、信号量 D、标志变量 11、如果进程PA对信号量S执行P操作,则信号量S的值应( )。 A.加1 B.减1 C.等于0 D.小于0 12、进程状态从就绪态到运行态的转化工作是由()完成的。 A.作业调度 B.中级调度 C.进程调度 D.设备调度 13、为了使系统中各部分资源得到均衡使用,就必须选择对资源需求不同的作业进行合理搭配。这项工作是由()完成的。 A.作业调度 B.中级调度 C.进程调度 D.内存调度 14、通常,用户编写的程序中所使用的地址是()。 A.逻辑地址 B.物理地址 C.绝对地址 D.内存地址 15、把逻辑地址转变为内存的物理地址的过程称作()。 A.编译 B.连接 C.运行 D.重定位 16、在分页存储管理系统中,从页号到物理块号的地址映射是通过()实现的。 A.段表 B.页表 C.PCB D.JCB 17、以下存储管理技术中,支持虚拟存储器的技术是()。 A.动态分区法 B.可重定位分区法

相关主题
文本预览
相关文档 最新文档