实验五 Windows XP 虚拟内存管理 结果
操作系统存储管理实验报告.doc

操作系统存储管理实验报告实验5存储管理第一,实验的目的1,加深对操作系统存储管理的理解2,可以过度模拟页面调试算法,加深对操作系统内存管理的理解二、一般设计思想、环境语言、工具等一般设计思想:1.编写一个函数来计算和输出以下算法的命中率:(1) OPT页面替换算法OPT选定的过时页面是已经转移到内存中并且将来不会被使用或者在最长时间内不会被访问的页面。
因此,如何找到这样的页面是算法的关键。
每页可以设置一个步长变量。
它的初始值是一个足够大的数字。
对于不在内存中的页面,其值将重置为零。
对于内存中的页面,其值被重置为当前访问的页面与页面首次出现时的距离。
因此,该值越大,在最长时间内不会被访问的页面就越多,并且可以选择它作为交换页面。
(2)先进先出页面替换算法先进先出总是选择首先进入内存的页面进行清除,因此可以设置先进先出的繁忙页面帧队列,新转移到内存的页面挂在队列的尾部,当没有空闲页面帧时,可以从队列的头部取出下一个页面帧作为空闲页面帧,然后再转移到需要的页面。
(3) LRU页面替换算法LRU 根据转移到存储器中的页面的使用做出决定。
它使用“最近的过去”作为“最近的未来”的近似,并选择最长时间没有使用的页面进行删除。
该算法主要通过页面结构中的访问时间来实现。
时间记录页面的最后访问时间。
因此,当需要删除一个页面时,选择时间值最小的页面,即最近最长时间没有使用的页面进行删除。
(4) LFU页面替换算法LFU要求每个页面配置一个计数器(即页面结构中的计数器)。
一旦页面被访问,计数器的值将增加1。
当需要替换一个页面时,将选择计数器值最小的页面,即存储器中访问次数最少的页面进行清除。
⑤NUR页面替换算法NUR要求为每个页面设置一个访问位(访问位仍然可以由页面结构中的计数器表示)。
当页面被访问时,其访问位计数器被设置为1。
当需要页面替换时,替换算法从替换指针(最初指向第一页)开始顺序检查内存中的每一页。
如果其访问位为0,则选择页面进行替换,否则,替换指针向下移动以继续向下搜索。
操作系统实验实验报告 虚拟内存

操作系统实验实验报告虚拟内存一、实验目的本次操作系统实验的目的是深入理解虚拟内存的概念、原理和实现机制,通过实际操作和观察,掌握虚拟内存的相关技术,包括页面置换算法、内存分配策略等,并分析其对系统性能的影响。
二、实验环境操作系统:Windows 10 专业版开发工具:Visual Studio 2019编程语言:C++三、实验原理1、虚拟内存的概念虚拟内存是一种计算机系统内存管理技术,它使得应用程序认为自己拥有连续的可用内存(一个连续完整的地址空间),而实际上,这些内存可能是被分散存储在物理内存和外部存储设备(如硬盘)中的。
虚拟内存通过将程序使用的内存地址映射到物理内存地址,实现了内存的按需分配和管理。
2、页面置换算法当物理内存不足时,操作系统需要选择一些页面(内存中的固定大小的块)换出到外部存储设备,以腾出空间给新的页面。
常见的页面置换算法有先进先出(FIFO)算法、最近最少使用(LRU)算法、时钟(Clock)算法等。
3、内存分配策略操作系统在分配内存时,需要考虑如何有效地利用有限的物理内存资源。
常见的内存分配策略有连续分配、分页分配和分段分配等。
四、实验内容与步骤1、实现简单的虚拟内存系统使用 C++编写一个简单的虚拟内存模拟程序,包括内存页面的管理、地址映射、页面置换等功能。
2、测试不同的页面置换算法在虚拟内存系统中,分别实现 FIFO、LRU 和 Clock 算法,并对相同的访问序列进行测试,比较它们的页面置换次数和缺页率。
3、分析内存分配策略的影响分别采用连续分配、分页分配和分段分配策略,对不同大小和类型的程序进行内存分配,观察系统的性能(如内存利用率、执行时间等)。
具体步骤如下:(1)定义内存页面的结构,包括页面号、标志位(是否在内存中、是否被修改等)等。
(2)实现地址映射函数,将虚拟地址转换为物理地址。
(3)编写页面置换算法的函数,根据不同的算法选择要置换的页面。
(4)创建测试用例,生成随机的访问序列,对不同的算法和分配策略进行测试。
实习五虚拟存储器实验报告

实习五虚拟存储器实验报告一、实验目的本次虚拟存储器实验旨在深入理解虚拟存储器的工作原理,掌握页面置换算法的实现和性能评估,以及观察虚拟存储器对系统性能的影响。
二、实验环境本次实验在装有 Windows 操作系统的计算机上进行,使用了专门的虚拟存储器实验软件,包括模拟系统内存和磁盘存储的工具。
三、实验原理1、虚拟存储器的概念虚拟存储器是一种通过硬件和软件的结合,为用户提供一个比实际物理内存大得多的逻辑地址空间的技术。
它允许程序在运行时,仅将部分数据和代码装入内存,而其余部分则存储在磁盘上,当需要时再进行调入和调出。
2、页面置换算法常见的页面置换算法有先进先出(FIFO)算法、最近最少使用(LRU)算法和最佳置换(OPT)算法等。
这些算法用于决定当内存空间不足时,哪些页面应该被替换出去,以腾出空间给新的页面。
四、实验内容与步骤(一)实验内容1、实现 FIFO 页面置换算法,并对其性能进行测试。
2、实现 LRU 页面置换算法,并对其性能进行比较。
3、观察不同页面访问序列和内存大小对页面置换算法性能的影响。
(二)实验步骤1、启动虚拟存储器实验软件,设置系统内存大小和页面大小。
2、输入页面访问序列,分别运行 FIFO 和 LRU 页面置换算法。
3、记录每次页面置换的情况,包括被置换的页面、缺页次数等。
4、改变页面访问序列和内存大小,重复上述实验过程。
五、实验结果与分析(一)FIFO 页面置换算法结果当使用 FIFO 算法时,对于给定的页面访问序列,随着内存大小的增加,缺页次数逐渐减少。
但在某些情况下,由于先进先出的特性,可能会出现将即将使用的页面置换出去的情况,导致缺页率较高。
(二)LRU 页面置换算法结果LRU 算法在大多数情况下表现优于 FIFO 算法。
因为它基于页面的最近使用情况进行置换,更能保留近期可能会再次使用的页面,从而减少缺页次数。
(三)不同页面访问序列的影响不同的页面访问序列对页面置换算法的性能有显著影响。
虚拟内存管理——操作系统课程大作业虚拟内存管理报告

2011年操作系统大作业1.虚拟内存管理实验。
在Linux环境下编写一个内核模块,分别实现如下几个函数:●static void mtest_dump_vma_list(void):依次列出当前进程所占用的虚拟内存空间各段的读、写或执行权限。
●static void mtest_find_vma(unsigned long addr):查找出虚拟地址addr所在的vma,并通过printk打印该段的起始地址、终止地址和段标志等信息。
●static void mtest_find_page(unsigned long addr):找到虚拟地址addr对应的物理地址并打印。
为了测试和使用以上函数,需要在内核模块的初始化函数中创建一个名为mtest的/proc 文件。
mtest文件绑定的写函数mtest_write允许用户程序写入一串字符串:●如果写入的字符串是listvma则调用函数mtest_dump_vma_list(void);●如果写入的字符串是findvma0xffffffff则调用函数mtest_find_vma(0xffffffff),字符串的后几个字符是传递给函数的参数;●如果写入的字符串是findpage0xffffffff则调用函数mtest_find_page(0xffffffff),同样字符串的后几个字符是参数。
实验要求:为了测试以上模块的正确性,需要编写一个小型的test应用程序,它打开/proc/mtest文件,并向其中写入字符串调用模块中的相关函数并给出相应的反馈信息。
知识储备:●虚拟存储空间管理的相关数据结构vm_area_struct和mm_struct●/proc文件系统的相关知识●内核模块的相关知识实验思路及过程:相关知识储备:1.可以使用/proc文件系统和pmap工具查看给定进程的内存空间和其中所包含的内存区域mmap描述的该地址空间中的全部内存区域。
内核使用内存描述符结构表示进程的地址空间,由结构体mm_struct结构体表示,定义在linux/sched.h中,同时linux操作系统采用虚拟内存技术,所有进程之间以虚拟方式共享内存。
虚拟存储管理实验报告

虚拟存储管理实验报告实验概述虚拟存储管理实验是操作系统课程中的一项重要实验,旨在通过模拟内存管理中的分页机制和页面置换算法,深入理解操作系统中的虚拟内存管理技术。
本实验主要包括以下几个关键点:- 模拟内存的分页机制- 实现页面置换算法- 分析不同页面置换算法的性能指标实验环境本次实验基于C语言和Linux操作系统进行实现,使用gcc编译器进行编译和调试。
实验过程及实现细节在本次实验中,我们实现了一个简单的虚拟内存系统,主要包括以下几个模块:页面管理、页面分配、页面置换和性能分析。
下面对每个模块的实现细节进行详细描述。
页面管理页面管理模块主要负责管理虚拟内存和物理内存之间的映射关系。
我们采用了分页机制进行管理,将虚拟内存和物理内存划分为固定大小的页面。
页面的大小由实验设置为4KB。
页面分配页面分配模块负责分配物理内存空间给进程使用。
我们使用一个位图作为物理内存管理的数据结构,记录每个页面的使用情况。
在每次页面分配时,我们会查找位图中第一个空闲的页面,并将其分配给进程。
页面置换页面置换模块是虚拟存储管理中的核心算法,主要用于解决内存中页面不足时的页面置换问题。
本次实验中我们实现了两种常用的页面置换算法:FIFO(先进先出)和LRU(最近最少使用)算法。
FIFO算法是一种简单的页面置换算法,它总是选择最早被加载到物理内存的页面进行置换。
LRU算法是一种基于页面访问历史的算法,它总是选择最长时间未被访问的页面进行置换。
性能分析性能分析模块主要用于评估不同的页面置换算法的性能指标。
我们使用了缺页率(Page Fault Rate)和命中率(Hit Rate)作为评价指标。
缺页率表示物理内存中的页面不能满足进程请求的比例,命中率表示进程请求的页面已经在物理内存中的比例。
实验结果为了评估不同的页面置换算法的性能,在实验过程中,我们通过模拟进程的页面访问序列,统计页面置换次数、缺页率和命中率等指标。
以一个包含100个页面访问请求的序列为例,我们分别使用FIFO算法和LRU 算法进行页面置换。
使用WindowsXP实验报告

实习二 主存空间的分配和回收一、实习内容模拟主存空闲空间的表示方法,以及模拟实现主存空间的分配和回收。
二、实习目的通过本实习帮助理解在不同的存储管理方式下应怎样进行存储空间的分配和回收。
三、实习题目在可变分区管理方式下采用首次适应算法实现主存分配和回收。
假定内存大小为128K 。
空闲区说明表格式为:起始地址——指出空闲区的起始地址;长度——一个连续空闲区的长度;状态——有两种状态,一种是“未分配”状态,另一种是“空表目”状态。
本实习我用FBT 实现,并且采用首次适应算法FF 分配内存。
四、程序中所使用的符号说明和数据结构struct FBT自由块表结构体{int startdress; 自由块表中一个表项的始地址 int size; 自由块表中的一个表项的大小 int processid; 这个表项所对应的进程号 int state; 这个表项的状态struct FBT *next;指向下一个自由块表结构体};struct FBT *create() 建立自由块表子函数 struct FBT *distribute(struct FBT *head)分配内存空间子函数struct FBT *callback(struct FBT *head) 回收内存空间子函数回收内存有下列4种情况,在程序中用条件语句实现:void print(struct FBT *head)显示自由块表内容子函数void main()主函数五、流程图… 进程i 回收区 进程j … …空闲区 回收区 进程j …… 进程i 回收区 空闲区 … … 空闲区 回收区 空闲区 …开始tail=head打印这个结点tail==null结束tail=tail->next;NY将余下的空闲内存设为一个空闲区间返回头指针head=null将第一个内存分区分配给操作系统申请一个新的内存区间q申请一个新的内存区间p链表初始化流程图显示FBT 流程图开始输入要申请的进程号和内存大小neededsizetail==null此分区未分配且足够大tail==0&&tail->size>=neededsize分区大小大于申请大小Tail->size>neededsize申请一个新结点P p->size=neededsize;p->state=1;大小刚刚等于申请内存大小tail->state=1;tail->processid=id;指向下一个结点pretail=tail tail=tail->next;返回头指针显示没有足够的内存空间够分配修改所剩分区的大小和起始地址tail->size=tail->size-neededsize;tail->startdress=tail->startdress+neededsize;将P插入到链表中NYYYNN分配内存子函数流程图开始输入要回收的进程号id显示没有此进程tail==nulltail->processid==id;tail->next==null;pretail->state==1&&tail->next->state==1;pretail->state ==0&&tail->next->state ==1pretail->state ==1pretail->state ==0&&tail->next->state ==0pretail->state ==1&&tail->next->state ==0返回头指针NYNNNNYY Npretail=tail;tail=tail->next;Y tail->state=0;将两个分区和为一个分区 置状态为0YN将状态置为0即可tail->state=0;Y将此分区与前一个分区合并并修改状态将此分区与后一个分区合并并修改状态将此分区与前后两个分区合并并修改状态YY回收内存子函数流程图六、程序清单#include <stdio.h> #include<malloc.h> struct FBT { int startdress; //分区首地址 int size;//分区所占内存大小int processid;//所申请内存分区的进程号,本来FBT 中没有这一项,但是便于内存的回收我加了这一项 int state;//此分区的状态struct FBT *next;//指针,指向下一个结点(分区)};struct FBT *create() //建立自由块表{struct FBT *head,*p,*q;head=NULL;p=(struct FBT *)malloc (sizeof(struct FBT));//申请一个新的结点,用来存放新的分区q=(struct FBT *)malloc (sizeof(struct FBT));//申请一个新的结点,用来存放新的分区head=p;p->size =5; //系统分区,大小为5p->processid =-1; //-1表示操作系统的固定分区p->startdress =0; //开始地址为0p->state =1; //状态为已分配,值为1p->next =q; //指向下一个结点q->size=123; //余下的分区大小为123q->processid=0; //所对应的进程号为0,表示都未分配q->startdress=5; //开始地址为5q->state=0; //状态为未分配,值为0q->next=NULL; //指向下一个分区,因为只有两个分区,所以为空return head;}struct FBT *distribute(struct FBT *head) //分配内存子函数{int id,neededsize;struct FBT *pretail,*tail,*p;printf("please input the process id:"); //输入要申请内存的进程号scanf("%d",&id);printf("please input the needed size:"); //输入要申请的内存大小scanf("%d",&neededsize);pretail=tail=head;while (tail!=NULL){if(tail->state ==0&&tail->size >=neededsize)//如果此分区没有分配,而且大小大于等于申请的内存大小{if(tail->size >neededsize)//如果此分区大小大于要申请的大小,分配,并把余下的再分割成一个分区{p=(struct FBT *)malloc (sizeof(struct FBT));p->size =neededsize;p->processid =id;p->startdress =tail->startdress ;p->state =1;if(head!=tail){pretail->next =p;p->next =tail;pretail=p;}else{p->next =tail;head=p;tail->next =NULL;}tail->startdress =p->startdress+p->size ;tail->size =tail->size -neededsize;break;}if(tail->size =neededsize)//如果此分区等于要申请的大小,直接分配即可{tail->processid =id;tail->state =1;break;}}else //否则,指向下一个结点继续判断{pretail=tail;tail=tail->next ;}}if(tail==NULL) //如果遍历完链表都没有找到合适的分区分配,则显示以下信息printf("\nSorry,there is not enough memory!\n");return head; //返回头指针}struct FBT *callback(struct FBT *head) //回收内存子函数{int id;struct FBT *pretail,*tail;printf("please input the process's id:");scanf("%d",&id);pretail=tail=head;while(tail!=NULL) //遍历链表{if(tail->processid ==id)//如果改分区所对应的进程号为要收回分区的进程号,则做以下动作{if(tail->next !=NULL)//如果改分区不是最后一个分区,则做以下动作{if(pretail->state ==1&&tail->next->state ==1 )//前一个分区是已分配的且后一个分区也是已分配的{tail->state =0;break;}if(pretail->state ==0&&tail->next->state ==1 )//前一个分区是未分配的且后一个分区是已分配的{pretail->next =tail->next;pretail->size =tail->size +pretail->size ;free(tail);break;}if(pretail->state ==1&&tail->next->state ==0 )//前一个分区是已分配的且后一个分区是未分配的{if(pretail!=tail){pretail->next =tail->next ;tail->next ->size =tail->next ->size +tail->size;tail->next ->startdress =tail->startdress ;free(tail);break;}else{head=tail->next ;tail->next->startdress =0;tail->next->size +=tail->size;break;}}if(pretail->state ==0&&tail->next->state ==0 )//前一个分区和后一个分区都是未分配的{pretail->next =tail->next->next ;pretail->size =pretail->size +tail->size +tail->next ->size ;free(tail->next);free(tail);break;}}else//如果改分区是最后一个分区则做以下动作{if(pretail->state ==1) //如果前一个分区是已分配的{tail->state =0;break;}else //如果前一个分区是未分配的{pretail->next =NULL;pretail->size=pretail->size +tail->size ;free(tail);break;}}}pretail=tail;tail=tail->next ; //遍历下一个分区结点}return head; //返回头指针}void print(struct FBT *head) //显示FBT的内容给用户{struct FBT *tail=head;printf("startdress\tsize\tstate\t\tprocessid\t\n");tail=head;while(tail!=NULL){if(tail->state==1)printf("%5d\t\t%5d\t%5d\t\t%5d\n",tail->startdress ,tail->size ,tail->state ,tail->processid );elseprintf("%5d\t\t%5d\t%5d\n",tail->startdress ,tail->size ,tail->state );tail=tail->next ;}}void main()//主函数{int choice=1;struct FBT *head;head=create();while(choice!=0) //显示选择菜单,供用户选择{printf("\t1.distribute the memory\n");printf("\t2.callback the memory\n");printf("\t0.exit\n");printf("\tplease choose:");scanf("%d",&choice);switch (choice){case 1:head=distribute(head);print(head);break;//选择1,则做内存分配case 2:head=callback(head);print(head);break; //选择2,则做内存回收case 0: break;default :printf("input is error!\n"); //否则显示选择错误}}}。
实习五-虚拟存储器实验报告

实习五-虚拟存储器实验报告实习五虚拟存储器实验报告一、实验目的本次虚拟存储器实验的主要目的是深入理解虚拟存储器的工作原理和机制,通过实际操作和观察,掌握虚拟存储器的地址转换、页面置换算法等关键概念,以及它们对系统性能的影响。
二、实验环境本次实验在_____操作系统下进行,使用了_____开发工具和_____模拟软件。
三、实验原理虚拟存储器是一种将主存和辅存结合起来使用的技术,它为用户提供了一个比实际物理内存大得多的逻辑地址空间。
虚拟存储器的实现基于分页或分段机制,将逻辑地址空间划分为固定大小的页或段,然后通过页表或段表将逻辑地址映射到物理地址。
在虚拟存储器中,当访问的页面不在主存中时,会发生页面缺失,此时需要从辅存中将所需页面调入主存。
页面置换算法则用于决定在主存已满时,将哪些页面换出主存,以腾出空间调入新的页面。
常见的页面置换算法有先进先出(FIFO)算法、最近最少使用(LRU)算法和最佳置换(OPT)算法等。
四、实验内容与步骤1、初始化实验环境启动操作系统和模拟软件。
设置相关参数,如页面大小、主存容量、辅存容量等。
2、生成访问序列使用随机数生成器或特定的模式生成一系列的逻辑地址访问序列。
3、地址转换根据页表,将逻辑地址转换为物理地址。
记录地址转换的过程和结果,包括是否发生页面缺失。
4、页面置换算法实现分别实现 FIFO、LRU 和 OPT 页面置换算法。
在发生页面缺失时,根据相应的算法选择换出的页面。
5、性能评估统计不同页面置换算法下的页面缺失次数、缺页率等性能指标。
分析不同算法对系统性能的影响。
五、实验结果与分析1、地址转换结果展示部分逻辑地址转换为物理地址的示例,说明转换的过程和正确性。
2、页面置换算法的性能比较给出 FIFO、LRU 和 OPT 算法在相同访问序列下的页面缺失次数和缺页率。
绘制图表直观地比较不同算法的性能差异。
例如,以下是三种算法在某一特定访问序列下的性能数据:|算法|页面缺失次数|缺页率||||||FIFO|_____|_____%||LRU|_____|_____%||OPT|_____|_____%|从上述数据可以看出,OPT 算法的性能最优,其页面缺失次数和缺页率最低;FIFO 算法的性能最差,页面缺失次数和缺页率相对较高;LRU 算法的性能介于两者之间。
操作系统虚拟内存调优实验报告

操作系统虚拟内存调优实验报告摘要:本实验通过对操作系统中虚拟内存的调优进行研究,旨在优化内存管理策略,提高系统性能。
实验采用了xxx方法,通过对不同参数的调节和对比分析,得出了一系列实验结果。
实验结果表明,在xxx场景下,调整虚拟内存的配置可以显著改善系统性能,从而提高用户体验。
1. 引言在当今多任务操作系统中,虚拟内存是一种重要的内存管理技术。
它允许系统在有限的物理内存资源下运行更多的应用程序,有效提高了系统的利用率。
然而,在虚拟内存的设计和配置上存在一定的挑战,因此本实验旨在通过调优虚拟内存的配置,进一步提升系统性能。
2. 实验环境本实验使用了xxx虚拟机软件,搭建了xxx操作系统环境。
实验过程中,我们采用了xxx指标来评估系统的性能,并通过对比分析得出结论。
3. 实验设计3.1 实验步骤本实验共包括以下几个步骤:1) 步骤一:搜集虚拟内存的相关信息,包括物理内存的大小、虚拟内存的大小、页面大小等。
2) 步骤二:根据实验需要,选择合适的测试场景和工作负载。
3) 步骤三:记录系统的初始性能数据,作为比较的基准。
4) 步骤四:根据实验需求,调整虚拟内存的相关参数。
5) 步骤五:运行相同的测试场景和工作负载,并记录性能数据。
6) 步骤六:对比初始性能数据和调优后的性能数据,分析调优效果。
3.2 实验指标本实验主要评估以下指标:1) 指标一:系统的响应时间。
2) 指标二:系统的吞吐量。
3) 指标三:页面错误率。
4) 指标四:页面置换算法的效果。
4. 实验结果与分析4.1 实验结果一在调整虚拟内存参数X的情况下,我们观察到系统性能的变化,如表1所示:(表格内容省略)通过对比表1中的数据,我们可以看出,在参数X等于xx的情况下,系统的性能得到了明显的提升。
具体而言,系统的响应时间减少了xx%,吞吐量增加了xx%。
4.2 实验结果二除了参数X,我们还对参数Y进行了调优。
实验结果如表2所示:(表格内容省略)根据表2中的数据分析,我们可以发现,在参数Y等于xx的情况下,系统的性能得到了进一步的改善。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五 Windows XP 虚拟内存管理一实验目的1) 了解存储器管理以及虚拟存储器管理的基本原理2)了解和学习Windows系统管理工具中关于内存管理的设置和使用;二实验环境需要准备一台运行Windows XP操作系统的计算机。
三背景知识虚拟存储器技术是当代计算机中广泛采用的内存管理方案,在Windows XP中合理的进行虚拟内存的设置,可以更有效的提高系统的工作效率。
利用系统自带的系统监视器可以查看虚拟内存的使用情况,根据使用情况可以灵活的进行虚拟内存的管理。
四实验内容与步骤启动并进入Windows环境,单击Ctrl + Alt + Del键,或者右键单击任务栏,在快捷菜单中单击“任务管理器”命令,打开“任务管理器”窗口。
步骤1:当前机器中由你打开,正在运行的应用程序有:1) 实验五Windows XP虚拟内存管理步骤2:单击“进程”选项卡,一共显示了41个进程。
请试着区分一下,其中:系统 (SYSTEM) 进程有25个服务 (SERVICE) 进程有4个用户进程有12个。
图2-0 实验记录步骤3:查看本机的物理内存容量为 3144812K,点击任务管理器中性能标签,再查看一下,物理内存可用数,核心内存总数58200K,核心内存为操作系统所占的内存,可将以上表格中所填写的各进程所占内存数与步骤3中填写的数字做下比较。
步骤4:用鼠标右键点击“我的电脑”,选择“属性”,弹出系统属性窗口,选择“高级”标签,点击“性能”下面的“设置”按钮,再选择高级标签,查看本机的虚拟内存大小为 2048M,点击更改按钮,本系统所用的虚拟内存设置在E分区,初始大小2048MB,最大值2048MB,当前已分配2048MB,页面大小4606MB。
步骤5:请在Windows2000(XP)目录下查找一个名为pagefile.sys的系统文件(Windows98下为Win386.swp),它的大小经常自己发生变动,小的时候可能只有几十兆,大的时候则有数百兆,pagefile.sys 是Windows下的一个虚拟内存,请观察一下目前该文件大小为 1560576KB 。
步骤6:观察虚拟内存的使用情况,并进行重新设置1)在控制面板中的管理工具中打开性能监视器,展开左侧的性能日志和警报,并点击选择记数器日志,在右侧的面板中空白处点击鼠标右键,选择新建日志设置,并命名为Pagefile,然后回车确认。
2)在常规选项卡下,点击添加记数器按钮,在新弹出的窗口的性能对象下拉菜单中选择Paging File,并选择“从列表选择记数器”,然后点击% Usage Peak,在范例中选择“_Total”,并接着点击“添加”按钮。
3)然后关闭这个窗口,并点击图三中的“确定”按钮。
点击“是”创建日志文件。
接着打开“日志文件”选项卡,在日志文件类型下拉菜单中选则“文本文件(逗号分隔)”,然后记住“例如”框中显示的日志文件的路径。
4)这样,点击确定后这个记数器已经开始运行了,你可以在电脑上进行你的日常操作,并尽可能多的打开和关闭各种经常使用的应用程序和游戏。
经过一段时间的使用,基本上记数器已经可以对你的使用情况做出一个完整的评估。
5)停止这个记数器的运行,同样是在记数器日志窗口中,选中我们新建的Page File记数器,然后右键点击,并且选择停止。
用记事本打开日志文件,并将日志文件的内容复制在下面日志文件:(PDH-CSV 4.0) ()(-480) \\W1_F10\Paging File(_Total)\% Usage Peak11/12/2012 19:16:35.750 3.28521728511/12/2012 19:16:50.765 3.28521728511/12/2012 19:17:05.781 3.28521728511/12/2012 19:17:20.781 3.28521728511/12/2012 19:17:35.796 3.28521728511/12/2012 19:17:50.796 3.28521728511/12/2012 19:18:05.796 3.28521728511/12/2012 19:18:20.796 3.28521728511/12/2012 19:18:35.796 3.28521728511/12/2012 19:18:50.796 3.28521728511/12/2012 19:19:05.796 3.28521728511/12/2012 19:19:20.796 3.28521728511/12/2012 19:19:35.796 3.28521728511/12/2012 19:19:50.796 3.28521728511/12/2012 19:20:05.796 3.28521728511/12/2012 19:20:20.796 3.28521728511/12/2012 19:20:35.796 3.28521728511/12/2012 19:20:50.796 3.28521728511/12/2012 19:21:05.796 3.28521728511/12/2012 19:21:20.796 3.28521728511/12/2012 19:21:35.796 3.28521728511/12/2012 19:21:50.796 3.28521728511/12/2012 19:22:05.796 3.28521728511/12/2012 19:22:20.796 3.28521728511/12/2012 19:22:35.796 3.28521728511/12/2012 19:22:50.796 3.28521728511/12/2012 19:23:05.796 3.28521728511/12/2012 19:23:20.796 3.28521728511/12/2012 19:23:35.796 3.28521728511/12/2012 19:23:50.796 3.28521728511/12/2012 19:24:05.796 3.28521728511/12/2012 19:24:20.796 3.28521728511/12/2012 19:24:35.796 3.28521728511/12/2012 19:24:50.796 3.28521728511/12/2012 19:25:05.796 3.28521728511/12/2012 19:25:20.796 3.28521728511/12/2012 19:25:35.796 3.28521728511/12/2012 19:25:50.796 3.28521728511/12/2012 19:26:05.796 3.28521728511/12/2012 19:26:20.796 3.28521728511/12/2012 19:26:35.796 3.28521728511/12/2012 19:26:50.796 3.28521728511/12/2012 19:27:05.796 3.28521728511/12/2012 19:27:20.796 3.28521728511/12/2012 19:27:35.796 3.28521728511/12/2012 19:27:50.796 3.28521728511/12/2012 19:28:05.796 3.28521728511/12/2012 19:28:20.796 3.28521728511/12/2012 19:28:35.796 3.28521728511/12/2012 19:28:50.796 3.28521728511/12/2012 19:29:05.796 3.28521728511/12/2012 19:29:20.796 3.28521728511/12/2012 19:29:35.796 3.28521728511/12/2012 19:29:50.796 3.28521728511/12/2012 19:30:05.796 3.28521728511/12/2012 19:30:20.796 3.28521728511/12/2012 19:30:35.796 3.28521728511/12/2012 19:30:50.796 3.28521728511/12/2012 19:31:05.796 3.440475464注意:在日志中的数值并不是分页文件的使用量,而是使用率。
也就是说,根据日志文件的显示,该系统一般情况下的分页文件只使用了25%左右,而系统当前设置的分页文件足有2GB,那么为了节省硬盘空间,完全可以把分页文件最大值缩小为512MB大小。
而对于最小值,可以先根据日志中的占用率求出平均占用率,然后再与最大值相乘,就可以得到了。
6)请根据实验数据,重新设置虚拟内存的大小,并尝试将虚拟内存设置在其他分区,观察一下pagefile.sys文件有什么变化:调小虚拟内存后,相应的pagefile.sys也变小了。
同样设置到其他分区也会改变pagefile.sys的大小。
步骤7:注意观察性能监视器,请自己调查一下监视器中三条不同颜色线条分别代表什么含义,性能监视器除了可以查看这些性能以外,还可以通过设置进行哪些性能监视,举例说明一下。
内存(黄色)、物理硬盘(蓝色)、进程(绿色)还可设置:IP,cache(高速缓存)等。