预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共103页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

绪论(Windows编程基础)1Windows操作系统的特点1.1直观的图形化用户界面Windows应用程序的外观是由诸如窗口、菜单、工具栏、状态栏、滚动条、对话框等标准图形元素构成的。程序运行中的人机交互操作也都是通过这些标准图形元素进行的。我们将这样的用户界面称为图形化用户界面GUI(GraphicsUserInterface)。GUI使得应用程序的用户界面统一、友好、美观。1.2丰富的设备无关操作Window程序的输出显示均为图形操作(包括文本操作)。各类复杂的图形操作都是通过与物理设备无关的图形设备接口GDI(GraphicsDeviceInterface)完成的。每个图形操作都是在一个特定的图形设备上下文(DeviceContext)中完成的。也就是说,通过设备上下文句柄,能够调用图形设备接口GDI所提供的相应图形操作进行格式统一而具有特定功能的图形绘制操作,而这些图形操作又可以通过对应的物理图设备驱动的支持,在指定的设备上实现相应的图形输出。下图形象地示意了这种GDI图形接口的实现机制:1.3完善的多任务运行环境Windows是一个多任务的操作系统。这种多任务表现在多个不同进程(包括同一程序的多个进程实例)的同时运行和同一进程中的多个线程的同时运行。这些同时运行的多任务对系统资源的共享表现在:CPU:通过系统分时实现多任务共享同一CPU。屏幕:通过可以重叠或平铺分布的窗口实现多个任务的视窗可以共享同一屏幕,用户可以通过切换不同任务的窗口为活动窗口,在不同任务之间进行切换。内存:通过虚拟内存管理实现多任务共享有限的内存资源。多任务之间可以进行手工和自动的数据交换和通信。其中Windows虚拟内存管理的实现如下:⑴进程和内存空间下面给出的图是在Windows95平台上,执行同一个EXE文件的两个不同进程时的虚拟内存映射图。对于每个进程来说,只有低端的2GB(0-0x7FFFFFFF)的地址空间是真正属于进程私有的。其中最低端的4MB内存空间是禁止访问的。进程运行期间所需要的堆栈、堆和可读/写的全局内存以及应用程序的EXE文件和DLL文件都被映射到这2GB空间内。而高端的2GB空间对所有的进程都是一样的,在这一区间存放着所有进程共享的Windows核心执行过程,虚拟设备驱动程序(VxD)和文件系统代码以及一些重要的表(如映射页表)都被映射到最高端1GB(0xC0000000-0xFFFFFFFF)空间中。WindowsDLL和内存映射文件在0x80000000-0xBFFFFFFF的内存空间中。由于低端的2GB内存空间分配给特定的进程,所以一个进程想要改变另一个进程的堆栈、全局内存或者堆空间的内容是不可能的。EXE和DLL代码存放空间都有只读标记,因此,它们被映射到多个进程是没有问题的。然而在最高端的1GB空间有重要的Windows可读数据,因此,这部分内存很容易受到错误程序的攻击,例如毁坏系统表。在0x80000000-0xBFFFFFFF地址空间中存放的一个进程的映射文件也可能被另一个进程破坏。在WindowsNT中这些问题不会发生,因为在WindowsNT中,进程只允许访问低端的2GB空间,并且这2GB的最高端和最低端的64KB空间是不允许访问的。同时高端的2GB空间中所存放的内容完全受保护。这就是为何提倡使用WindowsNT的原因之一(Windows2000和WindowsXP有类似的安全机制)。⑵虚拟内存如何工作①为什麽要使用虚拟镜像技术•计算机不可能有数百个GB的RAM(物理内存)和数百个GB的磁盘空间能满足多进程(每个进程4GB)的需要。•每个进程的4GB空间不会全部使用,更不会同时使用。②如何实现虚拟镜像技术•32位线性地址分三段,页表目录、页表和页内偏移量。•每页4KB空间。•页以4KB为边界,即页的首地址必须是4KB的整倍数。每个进程可以获得的虚拟内存空间为4GB,每一个物理地址的形成可以解析如下:页表地址=页表目录地址+偏移量(第22-31位),共有1K个页表。页地址=页表地址+偏移量(地址第12-21位),共有1K*1K=1M页。物理地址=页地址+偏移量(地址第0-11位),共有1M*4KB=4GB内存单元•每个页表入口都包含存在位(表示页是否在物理RAM中)和读/写位(表示页中内容是否可读/写或只读)。当需要访问此页内容时,根据“存在”位确定是否需要将此页的内容从磁盘读入到此物理页中。如果页中内容有一段时间未被访问,则根据虚拟管理的优化算法确定是否将页中内容交换到磁盘中或直接放弃,使物理页空间可以被