实验3 Windows虚拟内存

更新时间:2024-05-06 14:03:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验3 Windows虚拟内存

(一)、虚拟内存 1 背景知识

在Windows环境下,32位Windows系统中,232=4GB的虚拟地址空间被划分成两个部分:低端2GB提供给进程使用,高端2GB提供给系统使用。这意味着用户的应用程序代码,包括DLL以及进程使用的各种数据等,都装在用户进程地址空间内(低端2GB)。用户过程的虚拟地址空间也被分成三部分:

1)虚拟内存的已调配区(committed):具有备用的物理内存,根据该区域设定的访问权限,用户可以进行写、读或在其中执行程序等操作。

2)虚拟内存的保留区(reserved):没有备用的物理内存,但有一定的访问权限o 3)虚拟内存的自由区(free):不限定其用途,有相应的PAGE_NOACCESS权限。 与虚拟内存区相关的访问权限告知系统进程可在内存中进行何种类型的操作。例如,用户不能在只有PAGE_READONLY权限的区域上进行写操作或执行程序;也不能在只有PAGE_EXECUTE权限的区域里进行读、写操作。而具有PAGE_NOACCESS权限的特殊区域,则意味着不允许进程对其地址进行任何操作。

在进程装入之前,整个虚拟内存的地址空间都被设置为只有PAGE_NOACCESS权限的自由区域。当系统装入进程代码和数据后,才将内存地址的空间标记为已调配区或保留区,并将诸如EXECUTE、READWRITE和READONLY的权限与这些区域相关联。

如表1所示,给出了MEMORY_BASIC_INFORMATION的结构,此数据描述了进程虚拟内存空间中一组虚拟内存页面的当前状态,其中State项表明这些区域是否为自由区、已调配区或保留区;Protect项则包含了Windows系统为这些区域添加了何种访问保护;Type项则表明这些区域是可执行图像、内存映射文件还是简单的私有内存。VirtualQueryEX()API能让用户在指定的进程中,对虚拟内存地址的大小和属性进行检测。

Windows还提供了一整套能使用户精确控制应用程序的虚拟地址空间的虚拟内存API。一些用于虚拟内存操作及检测的API如表2所示。

表1 MEMORY_BASIC_INFORMATION结构的成员 成员名称 PVOID BaseAddress PVOID AllocationBase DWORD AllocationProtect DWORD RegionSize 目 的 虚拟内存区域开始处的指针 如果这个特定的区域为子分配区的话,则为虚拟内存外面区域的指针;否则,此值与BaseAddress相同 虚拟内存最初分配区域的保护属性。其可能值包括:PAGE_NOACCESS,PAGE_READONLY,PAGE_READWRITE和PAGE_EXECUTE_READ 虚拟内存区域的字节数 DWORD State DW()RD Protect DWORD Type 区域的当前分配状态。其可能值为MEM_COMMIT,MEM_FREE和MEM_RESERVE 虚拟内存当前区域的保护属性。可能值与AllocationProtect成员的相同 虚拟内存区域中出现的页面类型。可能值为MEM_IMAGE,MEM_ MAPPED和MEM_PRIVATE

表2 虚拟内存的API APl名称 VirtualQueryEx() VirtuaAlloc() VirtualFree() VirtualProtect() VirtualLock() VirtualUnlock() 描 述 通过填充MEMORY_BASIC_INFORMATION结构检测进程内虚拟内存的区域 保留或调配进程的部分虚拟内存,设置分配和保护标志 释放或收回应用程序使用的部分虚拟地址 改变虚拟内存区域保护规范 防止系统将虚拟内存区域通过系统交换到页面文件中 释放虚拟内存的锁定区域,必要时,允许系统将其交换到页面文件中 提供虚拟内存分配功能的是VinualAlloc()API。该API支持用户向系统要求新的虚拟内存或改变已分配内存的当前状态。用户若想通过VirtualAlloc()函数使用虚拟内存,可以采用两种方式通知系统:

1)简单地将内存内容保存在地址空间内。

2)请求系统返回带有物理存储区(RAM的空间或换页文件)的部分地址空间。

用户可以用flAllocation Type参数(commit和reserve)来定义这些方式,用户可以通知Windows按只读、读写、不可读写、执行或特殊方式来处理新的虚拟内存。

与VirtualAlloc()函数对应的是VirtualFree()函数,其作用是释放虚拟内存中的已调配页或保留页。用户可利用dwFreeType参数将已调配页修改成保留页属性。

VirtualProtect()是VirtualAlloc()的一个辅助函数,利用它可以改变虚拟内存区的保护规范。

2 实验目的

1)通过实验了解Windows内存的使用,学习如何在应用程序中管理内存,体会Windows应用程序内存的简单性和自我防护能力。

2)学习检查虚拟内存空间或对其进行操作。

3)了解Windows的内存结构和虚拟内存的管理,进而了解进程堆和Windows为使用内存而提供的一些扩展功能。

3 实验内容与步骤

虚拟内存的检测

清单2所示的程序使用VirtualQueryEX()函数来检查虚拟内存空间。 步骤1:在“开始”菜单中单击“程序”、 “Microsoft Visual Studio 6.0”、 “MicrosoftVisualC++6.0”,进入VisualC++窗口。 步骤2:运行以下程序清单

清单2 检测进程的虚拟地址空间 #include #include #include #include

#pragma comment(lib,\

//以可读方式对用户显示保护的辅助方法。

//保护标记表示允许应用程序对内存进行访问的类型以及操作系统强制访问的类型 inline bool TestSet(DWORD dwTarget, DWORD dwMask) { return((dwTarget & dwMask)==dwMask); }

#define SHOWMASK(dwTarget,type)\\ if(TestSet(dwTarget,PAGE_##type))\\ {std::cout<<\

void ShowProtection(DWORD dwTarget) { SHOWMASK(dwTarget,READONLY); SHOWMASK(dwTarget,GUARD); SHOWMASK(dwTarget,NOCACHE); SHOWMASK(dwTarget,READWRITE); SHOWMASK(dwTarget,WRITECOPY); SHOWMASK(dwTarget,EXECUTE); SHOWMASK(dwTarget,EXECUTE_READ); SHOWMASK(dwTarget,EXECUTE_READWRITE); SHOWMASK(dwTarget,EXECUTE_WRITECOPY); SHOWMASK(dwTarget,NOACCESS); }

//遍历整个虚拟内存并对用户显示其属性的工作程序的方法 void WalkVM(HANDLE hProcess) { //首先,获得系统信息 SYSTEM_INFO si; ::ZeroMemory(&si,sizeof(si)); ::GetSystemInfo(&si); //分配要存放信息的缓冲区 MEMORY_BASIC_INFORMATION mbi; ::ZeroMemory(&mbi,sizeof(mbi)); //循环整个应用程序地址空间 LPCVOID pBlock=(LPVOID)si.lpMinimumApplicationAddress;

while(pBlock

//显示块地址和大小 std::cout.fill('0');

std::cout<

//显示保护

if(mbi.Protect==0&&mbi.State!=MEM_FREE) { mbi.Protect=PAGE_READONLY; }

ShowProtection(mbi.Protect); //显示类型

switch(mbi.Type) {

case MEM_IMAGE: std::cout<<\ break; case MEM_MAPPED: std::cout<<\ break; case MEM_PRIVATE: std::cout<<\ break; } //检验可执行的影像 TCHAR szFilename[MAX_PATH]; if(::GetModuleFileName( (HMODULE)pBlock, szFilename, MAX_PATH)>0) { //除去路径并显示 ::PathStripPath(szFilename); std::cout<<\ } std::cout<

void main() { //遍历当前进程的虚拟内存 ::WalkVM(::GetCurrentProcess()); }

清单2中显示一个WalkVM()函数开始于某个进程可访问的最低端虚拟地址处,并在其中显示各块虚拟内存的特性。虚拟内存中的块由VirtualQueryEx()APl定义成连续块或具有相同状态(自由区、已调配区等)的内存,并分配以一组统一的保护标志(只读、可执行等)。

回答下列问题:

1) 分析运行结果

committed、reserved、free分别表示什么含义?

_1)虚拟内存的已调配区(committed):具有备用的物理内存,根据该区域设定的访问权限,用户可以进行写、读或在其中执行程序等操作。

2)虚拟内存的保留区(reserved):没有备用的物理内存,但有一定的访问权限o

3)虚拟内存的自由区(free):不限定其用途,有相应的PAGE_NOACCESS权限。___________________________________

按committed、reserved、free等三种虚拟地址空间分别记录实验数据,其中“描述”是指对该组数据的简单描述,例如,对下列一组数据:

00010000—00012000<8.00KB>Committed,READWRITE,Private可描述为:具有READWRITE权限的已调配私有内存区。

将系统当前的自由区(free)虚拟地址空间填入表1中。(表格可以自己画,通过把运行结果复制到word中文字转换成表格)

表1 实验记录 00012000-00020000(56.0 KB) 00021000-00030000(60.0 KB) 00133000-00140000(52.0 KB) 00276000-00280000(40.0 KB) 002c1000-002d0000(60.0 KB) 00311000-00320000(60.0 KB) 00326000-00330000(40.0 KB) 00371000-00380000(60.0 KB) 00391000-003a0000(60.0 KB) 003a1000-003b0000(60.0 KB) 003c3000-003d0000(52.0 KB) 003e0000-00400000(128 KB) 00485000-00490000(44.0 KB) 00558000-00560000(32.0 KB) 00663000-00670000(52.0 KB) 00970000-62c20000(1.53 GB) 62c29000-73fa0000(275 MB) Free Free Free Free Free Free Free Free Free Free Free Free Free Free Free Free Free NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS 7400b000-76300000(34.9 MB) 7631d000-77be0000(24.7 MB) 77c38000-77d10000(864 KB) 77e49000-77e50000(28.0 KB) 77ee2000-77ef0000(56.0 KB) 77f39000-77f40000(28.0 KB) 77fb6000-77fc0000(40.0 KB) 77fd1000-7c800000(72.1 MB) 7c91e000-7c920000(8.00 KB) 7c9b3000-7f6f0000(45.2 MB) Free Free Free Free Free Free Free Free Free Free NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS NOACCESS 7f7f0000-7ffa0000(7.68 Free MB) 7ffd3000-7ffd7000(16.0 Free KB) 7ffd8000-7ffdf000(28.0 Free KB) 将系统当前的已调配区 (committed) 虚拟地址空间填入表2中。

表2 实验记录

00010000-00012000(8.00 KB) 00020000-00021000(4.00 KB) 0012c000-0012d000(4.00 KB) 0012d000-00130000(12.0 KB) 00130000-00133000(12.0 KB) 00140000-00145000(20.0 KB) 00240000-00246000(24.0 KB) Committed Committed Committed Committed Committed Committed Committed READWRITE READWRITE GUARD READWRITE READONLY READWRITE READWRITE Private Private READWRITE Private Mapped Private Private Private 00250000-00253000(12.0 KB) 00260000-00276000(88.0 KB) 00280000-002c1000(260 KB) 002d0000-00311000(260 KB) 00320000-00326000(24.0 KB) 00330000-00371000(260 KB) 00380000-00388000(32.0 KB) 00390000-00391000(4.00 KB) 003a0000-003a1000(4.00 KB) 003b0000-003b4000(16.0 KB) 003c0000-003c3000(12.0 KB) 003d0000-003d3000(12.0 KB) 00400000-00401000(4.00 KB) 00401000-00470000(444 KB) 00470000-00478000(32.0 KB) 00478000-0047b000(12.0 KB) 0047b000-0047d000(8.00 KB) 0047d000-00481000(16.0 KB) 00481000-00485000(16.0 KB) 00490000-00496000(24.0 KB) 00550000-00552000(8.00 KB) 00560000-00663000(1.01 MB) Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed READWRITE READONLY READONLY READONLY READONLY READONLY READWRITE READWRITE READWRITE READWRITE READONLY READWRITE READONLY EXECUTE_READ READONLY READWRITE WRITECOPY READWRITE READONLY EXECUTE_READ EXECUTE_READ READONLY Mapped Mapped Mapped Mapped Mapped Mapped Private Private Private Private Mapped Private Image Image Image Image Image Image Image Mapped Mapped Mapped Module:111.exe 00670000-006ef000(508 KB) 62c20000-62c21000(4.00 KB) 62c21000-62c26000(20.0 KB) 62c26000-62c27000(4.00 KB) 62c27000-62c29000(8.00 KB) 73fa0000-73fa1000(4.00 KB) 73fa1000-73fe5000(272 KB) 73fe5000-73fef000(40.0 KB) Committed Committed Committed Committed Committed Committed Committed Committed EXECUTE_READ READONLY EXECUTE_READ READWRITE READONLY READONLY EXECUTE_READ WRITECOPY READWRITE WRITECOPY READWRITE READONLY READONLY EXECUTE_READ READWRITE READONLY READONLY EXECUTE_READ WRITECOPY READWRITE WRITECOPY READWRITE Mapped Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Module:LPK.DLL Module:USP10.dll Module:IMM32.DLL Module:msvcrt.dll 73fef000-73ff1000(8.00 CommitteKB) d 73ff1000-73ff4000(12.0 CommitteKB) d 73ff4000-73ff5000(4.00 CommitteKB) d 73ff5000-7400b000(88.0 KB) 76300000-76301000(4.00 KB) 76301000-76316000(84.0 KB) 76316000-76317000(4.00 KB) 76317000-7631d000(24.0 KB) 77be0000-77be1000(4.00 KB) 77be1000-77c2d000(304 KB) 77c2d000-77c2f000(8.00 KB) 77c2f000-77c30000(4.00 KB) 77c30000-77c31000(4.00 KB) 77c31000-77c34000(12.0 KB) Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed 77c34000-77c38000(16.0 KB) 77d10000-77d11000(4.00 KB) 77d11000-77d71000(384 KB) 77d71000-77d72000(4.00 KB) 77d72000-77d73000(4.00 KB) 77d73000-77da0000(180 KB) 77da0000-77da1000(4.00 KB) 77da1000-77e16000(468 KB) 77e16000-77e17000(4.00 KB) 77e17000-77e1b000(16.0 KB) 77e1b000-77e49000(184 KB) 77e50000-77e51000(4.00 KB) 77e51000-77edb000(552 KB) 77edb000-77edc000(4.00 KB) 77edc000-77ee2000(24.0 KB) 77ef0000-77ef1000(4.00 KB) 77ef1000-77f34000(268 KB) 77f34000-77f36000(8.00 KB) 77f36000-77f39000(12.0 KB) 77f40000-77f41000(4.00 KB) 77f41000-77fad000(432 KB) 77fad000-77fae000(4.00 KB) Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed READONLY READONLY EXECUTE_READ READWRITE WRITECOPY READONLY READONLY EXECUTE_READ READWRITE WRITECOPY READONLY READONLY EXECUTE_READ READWRITE READONLY READONLY EXECUTE_READ READWRITE READONLY READONLY EXECUTE_READ READWRITE Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Module:USER32.dll Module:ADVAPI32.dll Module:RPCRT4.dll Module:GDI32.dll Module:SHLWAPI.dll

77fae000-77fb6000(32.0 KB) 77fc0000-77fc1000(4.00 KB) 77fc1000-77fce000(52.0 KB) 77fce000-77fcf000(4.00 KB) 77fcf000-77fd1000(8.00 KB) 7c800000-7c801000(4.00 KB) 7c801000-7c885000(528 KB) 7c885000-7c888000(12.0 KB) 7c888000-7c88a000(8.00 KB) 7c88a000-7c91e000(592 KB) 7c920000-7c921000(4.00 KB) 7c921000-7c99b000(488 KB) 7c99b000-7c99e000(12.0 KB) 7c99e000-7c9a0000(8.00 KB) 7c9a0000-7c9b3000(76.0 KB) 7f6f0000-7f6f7000(28.0 KB) 7ffa0000-7ffd3000(204 KB) Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed Committed READONLY READONLY EXECUTE_READ READWRITE READONLY READONLY EXECUTE_READ READWRITE WRITECOPY READONLY READONLY EXECUTE_READ READWRITE WRITECOPY READONLY EXECUTE_READ READONLY READWRITE READWRITE Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Mapped Mapped Private Private Module:Secur32.dll Module:kernel32.dll Module:ntdll.dll 7ffd7000-7ffd8000(4.00 CommitteKB) d 7ffdf000-7ffe0000(4.00 CommitteKB) d 7ffe0000-7ffe1000(4.00 CommitteREADONLY Private KB) d 将系统当前的保留区 (reserved) 虚拟地址空间填入表3中。

表3 实验记录

00030000-0012c000(0.98 MB) 00145000-00240000(0.98 MB) 00246000-00250000(40.0 KB) 00253000-00260000(52.0 KB) 00388000-00390000(32.0 KB) 003b4000-003c0000(48.0 KB) 003d3000-003e0000(52.0 KB) 00496000-00550000(744 KB) 00552000-00558000(24.0 KB) 006ef000-00970000(2.50 MB) Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved READONLY READONLY READONLY READONLY READONLY READONLY READONLY READONLY READONLY READONLY READONLY Private Private Private Mapped Private Private Private Mapped Mapped Mapped Mapped 7f6f7000-7f7f0000(996 Reserved KB) 7ffe1000-7fff0000(60.0 Reserved NOACCESS Private KB) 2) 从上述输出结果,对照分析程序,请简单描述程序运行的流程:

从主程序开始,调用 walkvm(handle hProcess), walkvm(handle hprocess) 先获得系统信息,分配应用程序地址空间,进行循环程序:获得虚拟程序的内存信息,显示块的大小和位置及状态,显示保护方式和类型,检查可执行的影像,,除去文件名的路径并将文件名显示出来,,移动块指针获得下一块,循环

3) 实验总结

(根据实验结果及自己查阅相关资料写出VirtualAlloc()函数的作用,各个参

数的可能值及含义。列出对虚拟内存的认识)

通过本次实验体会学习检查虚拟内存空间或对其进行操作,windows2000的内存采用,进而了解进程和windows为使用内存而提供的一些扩展功能。虚拟内存计算机系统内存管理的一种技术。它使得应用成粗认为它拥有连续的可用的内存,而实际上,它通常是被隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。

4)列出虚拟内存不足的原因及其解决方法; 一、剪贴板占用了太多的内存

实际上,剪贴板是内存中的一块临时区域,当你在程序中使用了“复制”或“剪切”命令后, Windows将把复制或剪切的内容及其格式等信息暂时存储在剪贴板上,以供“粘贴”使用。如果当前剪贴板中存放的是一幅图画,则剪贴板就占用了不少的内存。这时,请按下述步骤清除剪贴

板中的内容,释放其占用的内存资源:

1.单击“开始”,指向“程序”或“所有程序”,指向“附件”,指向“系统工具”,然后单击“剪贴板查看程序”,打开“剪贴板查看程序”窗口。

2.在“编辑”菜单上,单击“删除”命令。 3.关闭“剪贴板查看程序”窗口。

为了与Microsoft Office程序提供的多重剪贴板相区分,上述所说的剪贴板,常被我们称为系统剪贴板。如果你正在使用Micros OftOffice程序,而且使用了其多重剪贴板功能,那么你应清空“Office剪贴板”上的项目,方法是

:在“Office剪贴板”任务窗格(OfficeXP)或工具栏 (Office2000)上,单击“全部清空”或“清空‘剪贴板’”。当清空“Office剪贴板”时,系统剪贴板也将同时被清空

二、打开的程序太多

如果同时打开的文档过多或者运行的程序过多,就没有足够的内存运行其他程序。这时,对于多文档界面(MDl)程序,如Word、Excel等,请关闭当前文档外的所有文档,并退出当前未使用的程序,然后或许你就能够继续执行因“内存不足”而被中断的任务。

三、重新启动计算机

如果只退出程序,并不重新启动计算机,程序可能无法将内存资源归还给系统。请重新启动计算机以释放系统资源,然后再次运行程序或执行被中断的任务。

四、自动运行的程序太多如果在启动Windows时自动运行的程序太多,那么,即使重新启动计算机,也没足够的内存用来运行其它程序。

(一)确定设置为自动运行的程序是否太多 1.单击“开始”,然后单击“运行”。

2.在“打开”框中,键入“Msconfig”,单击“确定”按钮,打开“系统配置实用程序”窗口。

3.单击“常规”选项卡,选中“选择性启动”复选钮,清除“处理Win.ini文件”复选框和“加载启动组项目”复选框。

4.单击“确定”按钮,当系统提示重新启动计算机时,请单击“是”按钮。重新启动电脑后,如果内存不足的问题已经解决,你就可以将计算机配置为启动时不打开任何程序。

(二)

配置计算机不自动打开任何程序

1.恢复在Msconfig中所作的更改,方法是:在“系统配置实用程序”窗口,单击“常规”选项卡,选择“正常启动”,单击“确定”按钮,然后重新启动计算机。

2.删除“启动”文件夹中的所有快捷方式

①单击“开始”,指向“设置”,然后单击“任务栏和开始菜单”,系统弹出“任务栏属性”对话框。

②单击“开始菜单”选项卡,单击“自定义”,再单击“删除”按钮。 ③单击“启动”文件夹旁的加号,以显示设置为自动运行的程序列表。如果“启动”文件夹旁没有加号“+”,则表明没有设置为自动运行的程序,请单击“关闭”按钮以终止此过程。

④单击“启动”文件夹中的每个快捷方式,然后单击“删除”按钮。此操作将从“开始”菜单中删除快捷方式,但并不从硬盘中删除相应的程序。对于“启

动”文件夹中的每个快捷方式,重复该步骤。

⑤单击“关闭”按钮。 ⑥单击“确定”按钮。

3.禁用从Win.ini文件加载的所有程序

①如上所述打开“系统配置实用程序”窗口。

②单击“Win.ini”选项卡,双击“[windows]”,然后清除“Load=”和“Run=”复选框。

③单击“确定”按钮,当系统提示重新启动计算机时,请单击“是”按钮。 五、让Windows管理虚拟内存设置

如果没有设置让Windows管理虚拟内存或者禁用虚拟内存,那么计算机可能无法正常工作,也可能收到“内存不足”的消息,或在运行某程序时出现相同的错误消息。

1.单击“开始”,单击“设置”,单击“控制面板”,然后双击“系统”。 2.在“系统属性”对话框中,单击“性能”选项卡,然后单击“虚拟内存”按钮。

3.选中“让Windows管理虚拟内存设置—(推荐)”选项,将计算机中可作为虚拟内存使用的硬盘空间量设置为默认值。此时,虚拟内存分页“win386.swp”能够根据实际内存的使用情况动态缩小和放大,最小容量为0,最大容量为硬盘的全部可用空间。

4.单击“确定”按钮。

六、增加可用磁盘空间

由于Windows以虚拟内存分页文件的格式使用硬盘空间以模拟RAM(),所以,尽管已设置为让Windows管理虚拟内存,但是当虚拟内存分页文件所在的驱动器(默认为Windows系统所在的硬盘分区)

没有足够的空间时,仍会出现“内存不足”的错误。此时,请执行以下一项或多项操作,增加Windows虚拟内存分页文件所在驱动器上的可用空间:

1.清空回收站,方法是:在桌面上,右键单击“回收站”,再单击“清空回收

将从“开始”菜单中

删除快捷方式,但并不从硬盘中删除相应的程序。对于“启动”文件夹中的每个快捷方式,重复

该步骤。

⑤单击“关闭”按钮。

⑥单击“确定”按钮。 3. 禁用从 Win.ini

文件加载的所有程序

①如上所述打开“系统配置实用程序”窗口。

②单击“Win.ini”选项卡,双击“[windows]”,然后清除“Load=”和“Run=”复选框。

③单击“确定”按钮,当系统提示重新启动计算机时,请单击“是”按钮。 五、让 Windows

管理虚拟内存设置

如果没有设置让 Windows

管理虚拟内存或者禁用虚拟内存,那么计算机可能无法正常工作,也可 能收到“内存不足”的消息,或在运行某程序时出现相同的错误消息。

1.

单击“开始”,单击“设置”,单击“控制面板”,然后双击“系统”。 2.

在“系统属性”对话框中,单击“性能”选项卡,然后单击“虚拟内存”按钮。

3. 选中“让 Windows

管理虚拟内存设置— (

推荐)”选项,将计算机中可作为虚拟内存使用的硬盘

空间量设置为默认值。此时,虚拟内存分页“win386.swp”能够根据实际内存的使用情况动态缩

小和放大,最小容量为 0

,最大容量为硬盘的全部可用空间。 4.

单击“确定”按钮。

六、增加可用磁盘空间 由于 Windows

以虚拟内存分页文件的格式使用硬盘空间以模拟 RAM()

,所以,尽管已设置为让 Windows

管理虚拟内存,但是当虚拟内存分页文件所在的驱动器 ( 默认为 Windows 系统所在的硬盘 分区 )

没有足够的空间时,仍会出现“内存不足”的错误。此时,请执行以下一项或多项操作,增

加 Windows

虚拟内存分页文件所在驱动器上的可用空间 : 1.

清空回收站,方法是 :

在桌面上,右键单击“回收站”,再单击“清空回收站”。 2.

从磁盘中删除临时文件,方法是 :

打开“Windows

资源管理器”或“我的电脑”窗口,右键单击

要释放其空间的磁盘,然后单击“属性”,在“常规”选项卡上,单击“磁盘清理”按钮,选中

要删除的不需要的文件前的复选框 ( 如图 3)

,可以阅读列表下面区域中每个文件类型的说明,单 击“确定”按钮。 3.

从磁盘中删除过期的文件或已存档的文件。 4.

删除从未使用过的所有文件。

七、程序文件被毁坏

如果仅仅是使用某个程序时,系统提示内存不足,而其他程序可以正常运行,那么可能的原因是

该程序文件被毁坏,从而导致内存问题。然而 Windows

并没有确切地提示表明该程序已损坏,所

以请尝试删除并重新安装该程序,然后重新运行该程序。如果系统不再提示内存不足,那么说明

原程序文件确实被损坏。

八、使用内存优化软件

内存优化软件有很多,比如 RAM Idle 和 Memo Kit

就是比较出色的两个。这些软件都可以设置自 动清空剪贴板、

释放被关闭程序未释放的内存、

Win386.swp

文件进行重新组织等,从而免除你

手工操作的麻烦,达到自动释放内存的目的,不妨一试 !

九、查杀病毒

系统感染电脑病毒也是导致内存不足的罪魁祸首,当系统出现“内存不 足”的错误时,

请使用最新的防毒软件查杀病毒, 或者在清除电脑病毒之

后,就解决了“内存不足”的问题 后,就解决了“内存不足”的问题

5) 进一步了解windows操作系统的发展过程 利用搜索引擎了解windows操作系统的发展过程;

把你所找到的相关资料整理好复制在下面;

Windows

操作系统的发展历程

1. Windows的开发过程

Windows的起源可以追溯到美国Xerox公司进行的工作。该公司著名的研究机构Palo AltoResearch Center(PARC.),于1981年宣布推出世界上第一个商用的GUI(图形用户接口)系统:Star 8010/512作站。当时,Apple Computer公司的创始

人之一SteveJobs,在参观Xerox公司的PARC究中心后,认识到了图形用户接口的重要性以及广阔的市场前景,开始着手进行自己的GUI系统研究开发工作,并于1983年研制成功第一个GUI系统:AppleLisa。随后不久,Apple推出第二个

GUI系统AppleMacintosh,这是世界上第一个成功的商用GUI系统。图形界面的优势,人人可见,这是未来趋势,早在1981年,微软公司内部就制定了发展“界面管理者”的计划。到了1983年5微软公司决定把这一计划命名为Microsoft

Windows。1983年11月10日,比尔·盖茨宣布推出Windows,但是一直到年月微软公司才正式发布Windows 1.0版。Windows个产品在微软公司的历史上创造了几个记录:延迟交货次数最多,投入开发人员最多,开发时间最长,更换主管

人员最多。几年之后,Windows也创造了销售成绩最佳的历史录。1987年12月,Windows 2.0~E式供货。1990月22日,微软推出Windows 3.0。该版本的Windows的许多功 能都比以前大有提高。从此,在许多独立软件开发商和硬件厂

商的支持下,微软Windows在市场中逐渐开始取代DOS成为操作系统平台的主流软件。

2早期的Windows

微软公司在1985年和1987年分别推出的Windows 1.0版和Windows 2.0版是基于x86微处理芯片上的操作系统,但这两个版本并不成功。1990年5月,微软又推出了 Windows3.0版,该版本对内存管理、图形界面做了重大改进,图形界面更加美观并支持虚拟内存。

3.0版一经面世便获得了具大的成功,此后微软公司又推出了略加改进的Windows 3.1版。Windows 3.0和Windows 3.1版都必须在MS-DOS操作系统支持下运行。

3.Windows95和Windows98 微软公司于年推出了,它可以独立运行而无需DOS持。用32位处理技术兼容以前16的应用程序,Windows发展史上起到

了承前启后的作用。Windows95对Windows 3

.1版做了许多重大改进,如更加优秀的面向对象的图形用户界面,全32的抢先式多任务和多线程,内置的对支持,更加高级的多媒体支持(声音、图形、影像等),即插即用,32位线性寻址的内存管理和良好 的向下兼容性等。Windows95实际上是

1位和3混合在一起的操作系统,这种操作系统最大的问题就是稳定性。年月,微软公司推出了98。98容16位的应用程序,足系列产品中最后一个“照顾”16位应用程序的操作系统。98 主要特点是加强了功能,使着网络操作系统的方向向前迈

进了一大步。Windosw9x系列能够充分发挥机的硬件资源,提高系统的利用率,并引入了即插即用”等许多先进技术,在界面的友好性上也不断进步,因此逐渐成为PC机操作系统的主流,与此同时,微软公司也致力于企业级平台的开发,推出

了以WindowsNT系列为核心的企业级操作系统。NT系列操作系统的主要特点是具有较强的网络应用能力、用户管理能力和较强的系统安全性、稳定性。

4. Windows2000

从笔记本电脑到高端服务器,Windows2000平台是下一代PC的商务操作系统。该平台建立于NT技术之上,具有强可靠性、高可用时间,并通过简化系统管理降低了操作耗费,是一种适合从最小移动设备到最大商务服务器新硬件的操作系统。

(1)Windows2000Professional继承了WindowsNT技术,提供了高层次的安全性、稳定性和系统性能,同时,它帮助用户更加容易地使用计算机,安装和配置系统以及浏览Internet等。

(2)WindowsServer是为服务器开发的多用途操作系统,是一个性能更好、工作更稳定、更容易管理的平台。

(3)Windows XP是一个把消费型操作系统和商业型操作系统融合为统一代码的Windows,它结束了Windows两条腿走路的历史。即它是第一个既适合家庭用户,同时也适合商业用户使用的新型Windows。

(二)设备管理器

一、 学习如何在 Microsoft Windows XP 中如何使用设备管理器管理设备。

(1)使用设备管理器管理设备

设备管理器提供一个图形视图,可显示计算机上安装的硬件以及与硬件关联的设备驱动程序和资源。在设备管理器上,可以集中更改配置硬件的方式以及更改硬件与计算机微处理器交互的方式。

使用设备管理器管理设备及其驱动程序需要拥有下列权限,系统管理员被授予了所有这些权限:

? 加载/卸载驱动程序权限。

? 向 system32\\drivers 目录复制文件所需的权限。 ? 向注册表写入设置所需的权限。 设备管理器具有下列功能:

? 确定计算机上的硬件是否工作正常。

? 更改硬件配置设置。

? 标识为每个设备加载的设备驱动程序,并获取每个设备驱动程序的有关

信息。

? 更改设备的高级设置和属性。 ? 安装更新的设备驱动程序。 ? 禁用、启用和卸载设备。

? 重新安装驱动程序的前一版本。 ? 找出设备冲突并手动配置资源设置。 ? 打印计算机上所安装设备的概要信息。

通常,设备管理器用于检查计算机硬件的状态以及更新计算机上的设备驱动程序。如果您是高级用户并且通晓计算机硬件知识,则可以使用设备管理器的诊断功能来消除设备冲突和更改资源设置。

(2)要访问设备管理器,请使用下列任一方法:

? 单击开始,单击运行,然后键入 devmgmt.msc。 ? 右键单击我的电脑,单击管理,然后单击设备管理器。

? 右键单击我的电脑,单击属性,单击硬件选项卡,然后单击设备管理器。 ? 在命令提示符处键入下面的命令:

start devmgmt.msc

如果要在本地或远程计算机上访问设备管理器,请按照下列步骤操作:

1. 单击开始,单击运行,然后键入 mmc。

2. 单击文件菜单上的添加/删除管理单元(或按 Ctrl+M),单击添加,然后单击设备管理器。

使用此过程后,会为设备管理器创建一个快捷方式,可以使用它来打开设备管理器。

(3)查看有关设备驱动程序的信息

若要获取某个设备的驱动程序的有关信息,请按照下列步骤操作:

1. 双击要查看的设备的类型。

2. 右键单击此特定的设备,然后单击属性。 3. 在驱动程序选项卡上,单击“驱动程序详细信息”。 查看有关设备驱动程序的信息

此信息可帮助确定设备驱动程序的文件版本。如果设备驱动程序进行了数字签名,在驱动程序的旁边就会出现一个图标。

Microsoft 对 Windows 设备驱动程序和操作系统文件都进行了数字签名,以保证它们的质量。Microsoft 的数字签名保证:某个文件来自其制造商,并且此文件未被其他程序的安装过程所修改或改写。

根据计算机的配置情况,Windows 忽略未经数字签名的设备驱动程序,在检测到无数字签名的设备驱动程序时显示警告消息(默认行为),或者禁止安装无数字签名的设备驱动程序。 视图和特征

视图及其特征通过以下选项提供,下面描述了这些选项:

? “依类型排序设备”将按照已安装设备的类型显示设备,例如“监视器”或“鼠标”。连接名称在类型下列出。

? “依连接排序设备”将按照设备连接到计算机的方式显示设备。每个设备都在其连接的硬件下列出。例如,如果列出了一个小型计算机系统接口 (SCSI) 卡,则连接到该 SCSI 卡的设备将在其下面列出。 ? “依类型排序资源”将按照使用已分配资源的设备类型显示所有这些资源的状态。这些资源包括直接内存访问 (DMA) 通道、输入/输出端口(I/O 端口)、中断请求 (IRQ) 以及内存地址。

? “依连接排序资源”将按照连接类型显示所有已分配资源的状态。这些资源包括:DMA 通道、I/O 端口、IRQ 以及内存地址。 ? “显示隐藏的设备”包括非即插即用设备(具有较早 Windows 设备驱动程序的设备)。

更新或更改设备驱动程序

确保在 Windows XP 中给每个设备装载了最新的驱动程序。制造商经常更新他们的驱动程序,以便纠正出现的问题并利用操作系统的功能。通常,可从制造商的网站下载这些驱动程序,而且 Microsoft 也在其网站上维护许多设备的驱动程序文件。

下载这些驱动程序后,在使用这些文件更新设备之前,请先阅读制造商的说明。通常,下载的驱动程序文件压缩成一个可自执行的文件,要使用驱动程序,需要提取此文件。在“硬件更新向导”中,单击以选中从磁盘安装选项,然后单击浏览按钮,找到驱动程序文件。

如何从设备管理器安装新的驱动程序

1. 双击要更新或更改的设备类型。

2. 右键单击要更新或更改的特定设备驱动程序。 3. 单击更新驱动程序以打开“硬件更新向导”。按照向导的指示进行操作。 疑难解答

如果状态是“已停用”,这通常是用户操作的结果,并不一定意味着设备有问题。但是,有时用户会由于某个设备引起问题而禁用该设备,这时应尝试启用它,看它是否对其他设备产生了负面影响。

如果设备遇到了问题,则“设备状态”框将显示问题的类型。您可能会看到一个问题代码或编号(或两者)以及建议的解决方案。如果您拨打支持电话,则支持部门可使用此编号来确定和诊断问题。

排查某个设备的问题需要执行特定于该设备的步骤。如果“设备状态”框显示有问题,请单击疑难解答以启动针对此设备类型的 Windows XP 疑难解答程序。

三、学习如何解决 Windows 设备管理器中列出的未知设备问题

设备管理器中显示“未知设备”的主要原因是存在无法正常工作的设备。若要解决此问题,请获取相应设备的更新驱动程序。

可通过以下方法使 Windows 能够识别设备。 方法 1:Windows Update

访问下面的 Microsoft 网站以查看该网站是否会自动检测到该设备的更新驱动程序。安装推荐的所有驱动程序。

http://www.windowsupdate.com

方法 2:从 Internet 下载并安装最新的驱动程序

在从 Internet 下载驱动程序时,如果列出了多个 Windows 版本,请下载 Windows XP 版的驱动程序。使用下列选项之一:

? 如果设备是随计算机一起提供的,请访问计算机制造商的网站。 ? 如果设备是在购买计算机后安装的,请访问设备制造商的网站。

? 如果设备是预先安装在计算机上的而计算机制造商没有提供更新驱动程序,请访问设备制造商的网站。

磁盘

_C:\\windows\\system32\\drivers\\disk.sys________________ C:\\windows\\system32\\drivers\\ntdisk.sys __ C:\\windows\\system32\\drivers\\partmgr.sys ___ C:\\windows\\system32\\drivers\\samdev.sys

_________________________________________________鼠标

___c:\\windows\\system32\\drivers\\mouclass.sys____________ c:\\windows\\system32\\drivers\\mouhid.sys

__________________________________________________网卡___

c:\\windows\\system32\\drivers\\elc5132.sys _

c:\\windows\\system32\\elc5132.din_____________________ c:\\windows\\system32\\elcmsg.dll ___ c:\\windows\\system32\\nicco2.dll c:\\windows\\system32\\nicinstc.dll

______________________________________________________________________

本文来源:https://www.bwwdw.com/article/gntg.html

Top