3.3 WindowsⅫP操作系统的存储管理 3.3.1存储管理概述 操作系统中的存储器管理是指对主存(又称内存)的管理。由于程序运行和数据处理 都是在主存中进行,所以主存和CPU一样也是一种重要的资掘。如何对主存进行有效的管理, 不仅直接影响到存储器的利用率,还影响到系统的性能。 1.存储器管理的功能 存储器管理主要有以下几个功能 (1)存储分配按分配策略和分配算法分配主存空间。 (2)地址变换将程序在外存空间中的逻辑地址转换为在内存空间中的物理地址 (3)存储保护保护各类程序(系统、用户、应用程序)及数据区免遭破坏。 (4)存储扩充解决在小的存储空间中运行大程序的问题,即虚拟存储问题 2.存储分配 存储分配主要考虑如何提高空间利用率问题。常用的存储分配方式有三种: (1)直接分配程序员在编写程序时,在源程序中直接使用主存的物理地址。这种方 式对用户要求高,使用不方便,容易出错,空间利用率不高。早期就使用这种分配方式。 )静态分配在程序装入前,一次性申请程序所需要的地址空间。存储空间确定后在整 个程序执行过程中不再改变。要求整个程序必须一次性整体装人,若主存空间不够,则不能 执行。这种方式简单,但存储空间利用率低,在多道程序系统中难于实现主存的共享 (3)动态分配在程序被装入主存或执行过程中,才确定其存储分配。在程序执行过程中 可以根据需要对存储空间提出动态申请。不要求程序一次性整体装入,装入的程序在执行过 程中,其相应位置可以发生变化。这种方式管理复杂,但存储空间利用率高,容易实现主存 资源的共享。在现代多道程序系统中,主要采用动态分配方式 3.地址变换 在用各种程序设计语言编写的源程序中规定,必须用符号名来定义被处理的数据,将其 称为符号名空间。源程序经编译后产生目标程序,它是以逻辑地址存放(不是实际运行的地 址),被称为逻辑地址空间。当程序运行时要装入主存,则要将逻辑地址转换成主存中的物 理地址,称其为物理地址空间。三个不同空间的关系如图3-10所示 符号名空间 地址空间 储空间 a的逻辑地址 a的物理地址|2FF0 b的逻辑地址 c的逻辑地址 b的物理地址3Ec0 c的物理地址]A 图3-10地址转换示意图 例如,在图3-10所示样例中,程序的符号名空间中定义了三个变量a、b和c。程序经 编译后,在目标程序的地址空间中为a、b和c分配了逻辑地址。当程序被装入主存空间运
1 3.3 Windows XP 操作系统的存储管理 3.3.1 存储管理概述 操作系统中的存储器管理是指对主存 ( 又称内存 ) 的管理。由于程序运行和数据处理 都是在主存中进行, 所以主存和 CPU 一样也是一种重要的资掘。如何对主存进行有效的管理, 不仅直接影响到存储器的利用率, 还影响到系统的性能。 1. 存储器管理的功能 存储器管理主要有以下几个功能: (1) 存储分配按分配策略和分配算法分配主存空间。 (2) 地址变换将程序在外存空间中的逻辑地址转换为在内存空间中的物理地址。 (3) 存储保护保护各类程序 ( 系统、用户、应用程序 ) 及数据区免遭破坏。 (4) 存储扩充解决在小的存储空间中运行大程序的问题,即虚拟存储问题。 2. 存储分配 存储分配主要考虑如何提高空间利用率问题。常用的存储分配方式有三种: (1) 直接分配程序员在编写程序时,在源程序中直接使用主存的物理地址。这种方 式对用户要求高, 使用不方便, 容易出错, 空间利用率不高。早期就使用这种分配方式。 (2) 静态分配在程序装入前, 一次性申请程序所需要的地址空间。存储空间确定后在整 个程序执行过程中不再改变。要求整个程序必须一次性整体装人, 若主存空间不够, 则不能 执行。这种方式简单, 但存储空间利用率低, 在多道程序系统中难于实现主存的共享。 (3) 动态分配在程序被装入主存或执行过程中, 才确定其存储分配。在程序执行过程中 可以根据需要对存储空间提出动态申请。不要求程序一次性整体装入, 装入的程序在执行过 程中, 其相应位置可以发生变化。这种方式管理复杂, 但存储空间利用率高, 容易实现主存 资源的共享。在现代多道程序系统中, 主要采用动态分配方式。 3. 地址变换 在用各种程序设计语言编写的源程序中规定, 必须用符号名来定义被处理的数据, 将其 称为符号名空间。源程序经编译后产生目标程序, 它是以逻辑地址存放 (不是实际运行的地 址 ), 被称为逻辑地址空间。当程序运行时要装入主存, 则要将逻辑地址转换成主存中的物 理地址, 称其为物理地址空间。三个不同空间的关系如图 3-10 所示。 图 3-10 地址转换示意图 例如,在图 3-10 所示样例中, 程序的符号名空间中定义了三个变量 a、b 和 c。程序经 编译后, 在目标程序的地址空间中为 a、b 和 c 分配了逻辑地址。当程序被装入主存空间运
行时,操作系统的存储分配程序将a、b和c的逻辑地址转换成能够在主存中存放和处理的 物理地址(绝对地址)。图3-15中所示的物理地址分别为0x2FF0、Ox3ECOH和0x6DAA。 地址变换是将存放在外存逻辑地址空间中的程序装人主存,重新分配物理地址,因此也 被称为地址重定位;又分静态重定位和动态重定位。下面介绍动态重定位 动态重定位是指在程序执行过程中进行重定位,更确切地说是在每次访问内存单元前 才进行地址变换。该方法是通过硬件的地址变换机构来实现重定位的。最简单的方法是设置 个重定位寄存器,用来存放装入主存空间时的起始地址。程序的实际地址是由逻辑地址加 重定位寄存器的值来确定。如图3-11所示。 重定位寄存器 100Load1,[300 (100 10 3001500 1100Load1,[300 程序地址空间L 图3-11动态重定位示意图 例如,在图3-11所示样例中,程序语句“Load1,[300]”是在逻辑地址300单元处读 入数据“1500”,经动态重定位操作后,该语句实际读入数据“1500”的物理地址是 1300(即1000+300)。 4.存储保护 在计算机中运行的系统程序、应用程序和用户程序都存放在主存中。为了确保各类程序 在各自的存储区内独立运行,互不干扰,系统必须提供安全保护功能。作为安全保护的一种 措施,就是把各类程序的实际使用区域分隔开,使得各类程序之间不可能发生有意或无意的 损害行为。这种分割是靠硬件实现的。用户程序只能使用用户区域的存储空间,而系统程序 则使用系统区域的存储空间,如图3-12所示 系统区域 硬件隔 离装置 用户区域 图3-12存储保护示意图 5.存储扩充 在计算机中主存空间是常数,要想处理大的程序,就要想方设法扩充主存空间。主导思 想是:如何在有限的主存空间中,处理大于主存的程序。“自动覆盖”技术、“交换”技术和“虚 拟存储”技术是扩充主存空间常用的有效方法 自动覆盖技术的主要思想是:将大的程序划分为在主存空间中可以容纳的独立的逻辑程 序段,每次只调入其中的一个程序段运行。后面调人的程序段覆盖当前程序段弃用的主存空
2 行时, 操作系统的存储分配程序将 a、b 和 c 的逻辑地址转换成能够在主存中存放和处理的 物理地址(绝对地址)。图 3-15 中所示的物理地址分别为 Ox2FF0、Ox3ECOH 和 Ox6DAA 。 地址变换是将存放在外存逻辑地址空间中的程序装人主存, 重新分配物理地址, 因此也 被称为地址重定位;又分静态重定位和动态重定位。下面介绍动态重定位。 动态重定位是指在程序执行过程中进行重定位, 更确切地说是在每次访问内存单元前 才进行地址变换。该方法是通过硬件的地址变换机构来实现重定位的。最简单的方法是设置 一个重定位寄存器,用来存放装入主存空间时的起始地址。程序的实际地址是由逻辑地址加 重定位寄存器的值来确定。如图 3-11 所示。 图 3-11 动态重定位示意图 例如,在图 3-11 所示样例中, 程序语句“Load1,[300]”是在逻辑地址 300 单元处读 入数据“1500”, 经动态重定位操作后, 该语句实际读入数据“1500”的物理地址是 1300( 即 1000+300) 。 4.存储保护 在计算机中运行的系统程序、应用程序和用户程序都存放在主存中。为了确保各类程序 在各自的存储区内独立运行, 互不干扰, 系统必须提供安 全保护功能。作为安全保护的一种 措施, 就是把各类程序的实际使用区域分隔开, 使得各类程序之间不可能发生有意或无意的 损害行为。这种分割是靠硬件实现的。用户程序只能使用用户区域的存储空间, 而系统程序 则使用系统区域的存储空间, 如图 3-12 所示。 图 3-12 存储保护示意图 5. 存储扩充 在计算机中主存空间是常数, 要想处理大的程序, 就要想方设法扩充主存空间。主导思 想是:如何在有限的主存空间中, 处理大于主存的程序。“自动覆盖”技术、“交换”技术和“虚 拟存储”技术是扩充主存空间常用的有效方法。 自动覆盖技术的主要思想是:将大的程序划分为在主存空间中可以容纳的独立的逻辑程 序段, 每次只调入其中的一个程序段运行。后面调人的程序段覆盖当前程序段弃用的主存空
间,以此达到扩充主存空间的目的 交换技术的主要思想是:可以根据需要将运行的程序在内、外存之间进行调人或调出的 交换,即可以把执行了一段时间而因故暂停的进程由系统调出主存,以文件的形式存入外 存。而将下一个程序装人主存运行。交换技术是对自动覆盖技术的改进,其目的是为了更加 充分地利用系统的各种资源(包括内、外存储器、CPU等) 3.3.2虚拟存储器的设置 1.虚拟存储器的概念 虚拟存储技术是解决在“小内存中求解大问题”的存储管理技术。虚拟存储器是通过交 换功能,在逻辑上对主存空间加以扩充的一种存储系统。它是通过采用内、外存结合的办法, 把外存空间作为主存使用,以此为用户提供足够大的地址空间一一虚存空间。用户可在逻辑 地址空间内编程,而不考虑实际主存的大小。在多道程序系统中,为每个用户的每个进程都 建立一个虚拟存储器环境。虚拟存储器技术是在硬件和软件的共同支持下实现的。硬件负责 虚、实地址的转换;软件负责实存(内存)和虚存(外存)之间的信息调度管理。 程序在虚拟存储器环境中运行时,并不是一次把全部程序装入到主存中,而是只将那些 当前要运行程序段装人主存运行,而将其余部分存留在外存中。程序在执行过程中,若所要 访问程序段尚未装人主存,则向操作系统发出请求,将它们调人主存。如果此时主存已满, 无法再装入新的程序段,则请求操作系统的置换功能,将主存中暂时不用的程序段置换到外 存去,腾出足够大的主存空间后,再将所要访问的程序段调入主存,使程序能够继续运行。 虚拟存储器有以下四个特性 (1)虚拟扩充。虚拟存储器不是物理上扩大内存空间,而是逻辑上扩充了内存容量。 (2)部分装入。每个作业不是全部一次性地装入内存,而是分成若干部分 (3)离散分配。一个作业分成多个部分,没有全部装入内存。即使装入内存的部分也不 必占用连续的内存空间,而是“见缝插针”,即哪里有空闲地方就装入另一部分。这样, 个作业在内存的部分就可能散布在内存的不同的地方,彼此并不连续 (4)多次对换。在一个进程运行期间,它所需的全部程序和数据要分成多次调入内存。每 次调入的一部分只解决当前需要,而在内存的那些暂时不被使用的程序和数据,可换出到外 存的对换区。甚至把暂时不能运行的进程在内存的全部映像都换出到对换区,以腾出尽量多 的内存空间供其他运行进程调入内存使用。被调出的程序和数据在需要时再调入内存中(换 虚拟存储器的容量取决于主存和外存之和的容量。一个虚拟存储器的最大容量是由计算 机系统的地址结构所确定的,即由地址长度所确定的。 例如, Windows XP是32位的操作系统,它的地址空间是按32位编址的,因此,在 Windows xp中最大的存储空间是232B或4GB。也可以说,每个用户程序可使用的最大存储 空间是4GB。但是,对于普通微型计算机来说,4GB的主存空间无疑是一种资源浪费,更不要 说为每个程序提供如此巨大的存储容量了。显然,这4GB的存储容量是虚拟存储空间 2. Windows xp虚拟存储器的设置 Windows Xp中的用户可根据自己的需要设置虚拟内存的大小。设置步骤如下: (1)在“我的电脑”上单击鼠标右键,选择“属性”命令,在弹出的“系统属性”的对
3 间, 以此达到扩充主存空间的目的。 交换技术的主要思想是: 可以根据需要将运行的程序在内、外存之间进行调人或调出的 交换, 即可以把执行了一段时间而因故暂停的进程由系统调出主存, 以文件的形式存入外 存。而将下一个程序装人主存运行。交换技术是对自动覆盖技术的改进, 其目的是为了更 加 充分地利用系统的各种资源(包括内、外存储器、CPU 等)。 3.3.2 虚拟存储器的设置 1.虚拟存储器的概念 虚拟存储技术是解决在“小内存中求解大问题”的存储管理技术。虚拟存储器是通过交 换功能,在逻辑上对主存空间加以扩充的一种存储系统。它是通过采用内、外存结合的办法, 把外存空间作为主存使用, 以此为用户提供足够大的地址空间一一虚存空间。用户可在逻辑 地址空间内编程, 而不考虑实际主存的大小。在多道程序系统中, 为每个用户的每个进程都 建立一个虚拟存储器环境。虚拟存储器技术是在硬件和软件的共同支持下实现的。硬件负责 虚、实地址的转换;软件负责实存( 内存 )和虚存( 外存 )之间的信息调度管理。 程序在虚拟存储器环境中运行时, 并不是一次把全部程序装入到主存中, 而是只将那些 当前要运行程序段装人主存运行, 而将其余部分存留在外存中。程序在执行过程中, 若所要 访问程序段尚未装人主存, 则向操作系统发出请求, 将它们调人主存。如果此时主存已满, 无法再装入新的程序段, 则请求操作系统的置换功能, 将主存中暂时不用的程序段置换到外 存去, 腾出足够大的主存空间后, 再将所要访问的程序段调入主存, 使程序能够继续运行。 虚拟存储器有以下四个特性: (1) 虚拟扩充。虚拟存储器不是物理上扩大内存空间,而是逻辑上扩充了内存容量。 (2) 部分装入。每个作业不是全部一次性地装入内存,而是分成若干部分。 (3) 离散分配。一个作业分成多个部分, 没有全部装入内存。即使装入内存的部分也不 必占用连续的内存空间, 而是“见缝插针”, 即哪里有空闲地方就装入另一部分。这样, 一 个作业在内存的部分就可能散布在内存的不同的地方, 彼此并不连续。 (4) 多次对换。在一个进程运行期间,它所需的全部程序和数据要分成多次调入内存。每 次调入的一部分只解决当前需要, 而在内存的那些暂时不被使用的程序和数据, 可换出到外 存的对换区。甚至把暂时不能运行的进程在内存的全部映像都换出到对换区, 以腾出尽量多 的内存空间供其他运行进程调入内存使用。被调出的程序和数据在需要时再调入内存中(换 入)。 虚拟存储器的容量取决于主存和外存之和的容量。一个虚拟存储器的最大容量是由计算 机系统的地址结构所确定的, 即由地址长度所确定的。 例如,Windows XP 是 32 位的操作系统, 它的地址空间是按 32 位编址的, 因此, 在 Windows XP 中最大的存储空间是 232B 或 4GB。也可以说, 每个用户程序可使用的最大存储 空间是 4GB。但是, 对于普通微型计算机来说,4GB 的主存空间无疑是一种资源浪费, 更不要 说为每个程序提供如此巨大的存储容量了。显然, 这 4GB 的存储容量是虚拟存储空间。 2.Windows XP 虚拟存储器的设置 Windows XP 中的用户可根据自己的需要设置虚拟内存的大小。设置步骤如下: (1)在“我的电脑”上单击鼠标右键, 选择“属性”命令, 在弹出的“系统属性”的对
话框中,选择“高级”选项卡,见图3-15所示系统属性对话框。 (2)在系统属性对话框中的“性能”栏上,单击“设置”命令按钮,在弹出的“性能选 项”对话框中,选择“高级”选项卡,见图3-16所示性能选项对话框 系统属性 规计算机名硬件翻级系统还原自动更新远程 视觉就果商级数帮执行保护 要进行大多数改动,您必须作为管理员登录 下,计算机设置为用多的处理器的运行 视觉效果,处理器计划,内存使用,以及虚内存 调整以忧化性能 设置 O后台服务G 用户配置文件 内存使用 与您登录有关的桌面设置 说下,计算机设置为用较多的内存来运行您的 设量 ⊙程序0 ◎系统存① 系统启动,系统失败和而试信息 虚拟内存 「设置 所有驱动器页面文件大小的总数:1538MB 匚环境费量①匚结误报告① 更c 确定□取消了应用 确定□取应用 图3-15系统属性对话框 图3-16虚拟内存对话框 (3)单击虚拟内存中的“更改”按钮,弹出“虚拟内存”对话框,如图3-17所示 首先选择要作虚拟内存的磁盘,如图3-17中选择D盘。在下面“自定义大小”的单选 按钮中,输入初始值的大小和最大值,单击“设置”按钮,最后单击“确定”按钮即可 虚拟内存 p区 驱动器[卷标]) 页面文件大小B) 153-3072 所选驱动器的页面文件大小 可用空间 10168MB O自定义大小c 初始大小0NB)① 最大值B)) O系统管理的大小) 厂设置g 所有驱动器页面文件大小的总数 允许的最小值:2B 当前已分配 匚确定匚取消 图3-17虚拟内存对话框
4 话框中,选择“高级”选项卡,见图 3-15 所示系统属性对话框。 (2)在系统属性对话框中的“性能”栏上,单击“设置”命令按钮, 在弹出的“性能选 项”对话框中, 选择“高级”选项卡,见图 3-16 所示性能选项对话框。 图 3-15 系统属性对话框 图 3-16 虚拟内存对话框 (3)单击虚拟内存中的“更改”按钮, 弹出“虚拟内存”对话框, 如图 3-17 所示。 首先选择要作虚拟内存的磁盘, 如图 3-17 中选择 D 盘。 在下面“自定义大小”的单选 按钮中, 输入初始值的大小和最大值, 单击“设置”按钮, 最后单击“确定”按钮即可。 图 3-17 虚拟内存对话框
3.4 Windows XP操作系统的设备管理 3.4.1设备管理概述 这里所说的“设备”是指所有输入输出设备、控制器和通道。设备管理的目标一是在操 作系统统一调度和控制下,让用户便捷、有效地使用输入输出设备,实现各种用途的输入/输 出操作:二是提高设备的利用率以及提高CPU与输入输出设备之间的并行工作能力。 设备管理的重要任务就是负责控制和操纵所有输入输出设备,实现不同类型的输入/输 出设备之间、输入输出设备与CPU之间、输入/输出设备与通道和输入/输出设备与控制器 之间的数据传输,使它们能协调地工作,为用户提供高效、便捷的输入/输出操作服务 1.设备管理的目的 设备管理的目的是: (1)方便用户操作 由于设备的物理特性十分复杂,为了控制设备完成输入输出操作,首先需要掌握设备的 硬件结构和工作原理等,然后才能编制输入隃输出程序。通常使设备完成一个简单输入输出 的程序可能要使用几十甚至几百条指令。因此,面对设备的程序设计是一项十分复杂且繁重 的工作。设备管理的主要目标之一就是面对用户把设备复杂的物理特性屏蔽起来不同设备 之间的差异交由操作系统来处理 2)设备独立于用户程序 在多道系统中物理设备是由操作系统控制和管理的,用户程序不能直接对物理设备进行 操作。用户使用设备时需要向系统提出请求。操作系统把物理设备逻辑化,仅向用户提供逻 辑设备。用户在程序中使用的是逻辑设备,由操作系统建立逻辑设备与物理设备之间的联系。 这样就使得用户在程序中使用的设备与实际使用的物理设备无关,从而使物理设备独立于用 户程序,这种特性称为设备独立性 (3)提高设备利用率和处理效率 在多道程序系统中,设备管理必须和进程管理有效地配合,使设备和处理机能够高度地 并行工作,同时各个设备之间也要能够并行工作,从而达到提高设备利用率的目的。同时设 备管理要为各个作业或进程合理地分配各种设备,处理好多个进程对设备的竞争与共享,还 要均衡各个同类设备的工作状况,避免出现忙闲不均的现象,使各个设备都能以较高的工作 效率执行各种输入输出操作。 2.设备分类 从不同角度、按不同的方式,输入输出设备可以分为不同的类型。 1)按所属关系分类 (1)系统设备 在操作系统生成时己登记在系统中的标准设备称为系统设备。这些设备是计算机系统运 行所需的基本设备。通常有键盘、打印机、磁盘机、显示器等。系统设备由操作系统提供设 备的处理程序 (2)用户设备 在系统生成时并未登记到系统中,由用户根据其运行需要向系统提供的设备称为用户
5 3.4 Windows XP 操作系统的设备管理 3.4.1 设备管理概述 这里所说的“设备”是指所有输入/输出设备、控制器和通道。设备管理的目标一是在操 作系统统一调度和控制下, 让用户便捷、有效地使用输入/输出设备, 实现各种用途的输入/输 出操作:二是提高设备的利用率以及提高 CPU 与输入/输出设备之间的并行工作能力。 设备管理的重要任务就是负责控制和操纵所有输入/输出设备,实现不同类型的输入/输 出设备之间、 输入/输出设备与 CPU 之间、输入/输出设备与通道和输入/输出设备与控制器 之间的数据传输, 使它们能协调地工作, 为用户提供高效、便捷的输入/输出操作服务。 1.设备管理的目的 设备管理的目的是: (1)方便用户操作 由于设备的物理特性十分复杂, 为了控制设备完成输入输出操作, 首先需要掌握设备的 硬件结构和工作原理等, 然后才能编制输入/输出程序。通常使设备完成一个简单输入/ 输 出 的程序可能要使用几十甚至几百条指令。因此, 面对设备的程序设计是一项十分复杂且繁重 的工作。设备管理的主要目标之一就是面对用户把设备复杂的物理特性屏蔽起来, 不同设备 之间的差异交由操作系统来处理。 (2)设备独立于用户程序 在多道系统中物理设备是由操作系统控制和管理的, 用户程序不能直接对物理设备进行 操作。用户使用设备时需要向系统提出请求。操作系统把物理设备逻辑化, 仅向用户提供逻 辑设备。用户在程序中使用的是逻辑设备, 由操作系统建立逻辑设备与物理设备之间的联系。 这样就使得用户在程序中使用的设备与实际使用的物理设备无关, 从而使物理设备独立于用 户程序, 这种特性称为设备独立性。 (3)提高设备利用率和处理效率 在多道程序系统中, 设备管理必须和进程管理有效地配合, 使设备和处理机能够高度地 并行工作, 同时各个设备之间也要能够并行工作, 从而达到提高设备利用率的目的。同时设 备管理要为各个作业或进程合理地分配各种设备, 处理好多个进程对设备的竞争与共享, 还 要均衡各个同类设备的工作状况, 避免出现忙闲不均的现象, 使各个设备都能以较高的工作 效率执行各种输入输出操作。 2.设备分类 从不同角度、按不同的方式,输入/输出设备可以分为不同的类型。 1)按所属关系分类 (1)系统设备 在操作系统生成时己登记在系统中的标准设备称为系统设备。这些设备是计算机系统运 行所需的基本设备。通常有键盘、打印机、磁盘机、显示器等。系统设备由操作系统提供设 备的处理程序。 (2)用户设备 在系统生成时并未登记到系统中 , 由用户根据其运行需要向系统提供的设备称为用户