【通用】vs2019项目sln、suo、vcxproj、vcxproj.filters、vcxproj.user文件名解析及相关节点属性解析

article/2025/10/8 6:30:10

1.sln 文件 (Solution 文件)

解决方案是在 Visual Studio 中组织项目的结构。 该解决方案将项目的状态信息保留在两个文件中:
.sln 文件 (基于文本的共享)
.suo 文件 (用户特定的二进制解决方案选项)
这里先讲.sln 文件,.sln 文件包含环境用于查找和加载持久化数据的名称/值参数及其引用的项目 VSPackages 的基于文本的信息。 当用户打开解决方案时,环境会循环访问 .sln 文件中的 preSolutionProjectpostSolution 信息,以加载解决方案、解决方案中的项目以及附加到解决方案的任何持久化信息。

1.1 sln 解析

1、.sln* 文件的标头如下所示:

Microsoft Visual Studio Solution File, Format Version 12.00 //定义文件格式版本的标准标头。
# Visual Studio Version 16//保存此解决方案文件的 Visual Studio 主版本
VisualStudioVersion = 16.0.31613.86//保存解决方案文件的 Visual Studio 的完整版本
MinimumVisualStudioVersion = 10.0.40219.1//最小 (可以打开此解决方案文件的最早) 版 Visual Studio

2、文件正文

//项目类型 GUID 8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942
//项目    GUID 611D88D3-951B-402B-8965-4A055E2E4691
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PublicNews", "PublicNews\PublicNews.vcxproj", "{611D88D3-951B-402B-8965-4A055E2E4691}"
EndProject
//文件的 Global 部分
Global/*当环境读取标记时 GlobalSection('name') ,它会使用注册表将名称映射到 VSPackage。 注册表项名称应存在于 	[HKLM\Application ID Registry Root>\<SolutionPersistence\AggregateGUIDs] 下的注册表中。 键的默认值是写入条目的 VSPackage 的 Package GUID (REG_SZ) 。*/GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM = Debug|ARMDebug|ARM64 = Debug|ARM64Release|x64 = Release|x64Release|x86 = Release|x86EndGlobalSectionGlobalSection(ProjectConfigurationPlatforms) = postSolution{611D88D3-951B-402B-8965-4A055E2E4691}.Debug|ARM.Build.0 = Debug|ARM{611D88D3-951B-402B-8965-4A055E2E4691}.Debug|ARM.Deploy.0 = Debug|ARM{611D88D3-951B-402B-8965-4A055E2E4691}.Release|x86.Build.0 = Release|x86{611D88D3-951B-402B-8965-4A055E2E4691}.Release|x86.Deploy.0 = Release|x86EndGlobalSectionGlobalSection(SolutionProperties) = preSolutionHideSolutionNode = FALSEEndGlobalSectionGlobalSection(ExtensibilityGlobals) = postSolutionSolutionGuid = {91E5EFFB-3DD9-4DC6-AFA1-26B6327DEE3D}EndGlobalSection
EndGlobal

2.suo 文件(解决方案用户选项)

解决方案用户选项 (.suo) 文件包含每用户解决方案选项。解决方案用户选项 (.suo) 文件是以二进制格式存储的结构化存储或复合文件。 将用户信息保存到流中,流的名称是用于标识 .suo 文件中信息的键。 解决方案用户选项文件用于存储用户首选项设置,并在 Visual Studio 保存解决方案时自动创建。

3.vcxproj文件( 工程文件)

Visual C++ 项目系统用于 .vcxproj 文件。 它基于 Visual Studio Common Project System (CPS) ,并提供其他特定于 C++ 的扩展点,以便轻松集成新工具集、生成体系结构和目标平台。
以下代码片段演示了一个极简的 .vcxproj 文件。 Visual Studio 生成的任何 .vcxproj 文件将包含这些顶级 MSBuild 元素。 此外,它们将按此顺序出现,不过它们可能包含每个此类顶级元素的多个副本。 任何 Label 特性只是 Visual Studio 用作编辑标志的任意标记;它们不具备其他功能。

<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns='http://schemas.microsoft.com/developer/msbuild/2003'><ItemGroup Label="ProjectConfigurations" /><PropertyGroup Label="Globals" /><Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" /><PropertyGroup Label="Configuration" /><Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /><ImportGroup Label="ExtensionSettings" /><ImportGroup Label="PropertySheets" /><PropertyGroup Label="UserMacros" /><PropertyGroup /><ItemDefinitionGroup /><ItemGroup /><Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /><ImportGroup Label="ExtensionTargets" />
</Project>

以下部分介绍其中每个元素的用途以及它们如此排序的原因:

Project 元素

<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns='http://schemas.microsoft.com/developer/msbuild/2003' >

Project 为根节点。 它表明要使用的 MSBuild 版本以及将文件向 MSBuild.exe 传递时要执行的默认目标。

ProjectConfigurations ItemGroup 元素

<ItemGroup Label="ProjectConfigurations" />

ProjectConfigurations 包含项目配置描述。 例如“Debug|Win32”、“Release|Win32”和“Debug|ARM”等等。 很多项目设置都特定于给定的配置。 例如,你可能想要为发布生成而不是调试生成设置优化属性。

在生成时不使用 ProjectConfigurations 项组。 Visual Studio IDE 需要将其用于加载项目。 可将这个项组移至 .props 文件并导入至 .vcxproj 文件。 但是在这种情况下,如果需要添加或删除配置,则需要手动编辑 .props 文件而无法使用 IDE。

ProjectConfiguration 元素

下面的代码片段演示一个项目配置。 此示例中的配置名称为“Debug|x64”。 项目配置名称必须采用 ( C o n f i g u r a t i o n ) ∣ (Configuration)| (Configuration)(Platform) 格式。 ProjectConfiguration 节点可包含两个属性:Configuration 和 Platform。 当配置处于活动状态时,将使用此处指定的值自动设置这些属性。

<ProjectConfiguration Include="Debug|x64"><Configuration>Debug</Configuration><Platform>x64</Platform>
</ProjectConfiguration>

IDE 预期为所有 ProjectConfiguration 项中使用的 Configuration 和 Platform 值的任意组合查找项目配置。 这通常意味着项目可能具有无意义的项目配置以满足此要求。 例如,如果项目具有这些配置:
Debug|Win32
Retail|Win32
Special 32-bit Optimization|Win32

那么即使“Special 32-bit Optimization”对于 x64 是没有意义的,项目还是需要这些配置:
调试|x64
Retail|x64
Special 32-bit Optimization|x64

可以在“解决方案配置管理器”中禁用任何配置的生成和部署命令。

Globals PropertyGroup 元素

<PropertyGroup Label="Globals" />

Globals 包含项目级设置,例如 ProjectGuid、RootNamespace 和 ApplicationType 或 ApplicationTypeRevision。 最后两项通常定义目标操作系统。 一个项目只能针对一个操作系统,因为目前引用和项目项不能有条件。 通常不会在项目文件中的其他位置重写这些属性。 此组与配置无关,通常项目文件中仅存在一个 Globals 组。

Microsoft.Cpp.default.props Import 元素

<Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" />

Microsoft.Cpp.default.props 属性表是 Visual Studio 附带的,且无法修改。 它包含项目的默认设置。 根据 ApplicationType,可能默认值会有所不同。

Configuration PropertyGroup 元素

<PropertyGroup Label="Configuration" />

Configuration 属性组具备附加的配置条件(例如 Condition=“‘ ( C o n f i g u r a t i o n ) ∣ (Configuration)| (Configuration)(Platform)’==‘Debug|Win32’”),并在多个副本中出现(每个配置各一个)。 此属性组承载着为特定配置设置的属性。 配置属性包括 PlatformToolset,并控制 Microsoft.Cpp.props 中的系统属性表所包含的内容。 例如,如果定义 <CharacterSet>Unicode</CharacterSet>属性,则会包含系统属性表 microsoft.Cpp.unicodesupport.props。 如果检查 Microsoft.Cpp.props,你会看到该行:<Import Condition="'$(CharacterSet)' == 'Unicode'" Project="$(VCTargetsPath)\microsoft.Cpp.unicodesupport.props" />

Microsoft.Cpp.props Import 元素

<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

Microsoft.Cpp.props 属性表为许多特定于工具的属性(直接或通过导入)定义默认值。 示例包括编译器的优化和警告级别属性、MIDL 工具的 TypeLibraryName 属性,等等。 它还基于紧靠在其前面的属性组中定义的配置属性导入各种系统属性表。

ExtensionSettings ImportGroup 元素

<ImportGroup Label="ExtensionSettings" />

ExtensionSettings 组包含属于生成自定义项的属性表的导入。 生成自定义最多由三个文件定义:.targets 文件、.props 文件和 .xml 文件。 此导入组包含 .props 文件的导入。

PropertySheets ImportGroup 元素

<ImportGroup Label="PropertySheets" />

PropertySheets 组包含用户属性表的导入。 这些导入是在 Visual Studio 中通过属性管理器视图添加的属性表。 这些导入的列出顺序很重要,且会反映在属性管理器中。 项目文件通常包含此类导入组的多个实例,每个项目配置各一个。

UserMacros PropertyGroup 元素

<PropertyGroup Label="UserMacros" />

UserMacros 包含创建为变量的属性,这些属性用于自定义生成过程。 例径定如,可定义将自定义输出路义为 $(CustomOutputPath) 的用户宏,并用它来定义其他变量。 此属性组包含这类属性。 在 Visual Studio 中不会将此组填充到项目文件,因为 Visual C++ 不支持在配置中使用用户宏。 属性表支持用户宏。

按配置 PropertyGroup 元素

<PropertyGroup />

此属性组有多个实例,所有项目配置都各有一个。 每个属性组必须具备一个附加的配置条件。 如果漏掉了任何配置,“项目属性”对话框将不会正常工作。 与前面列出的属性组不同,此属性组没有标签。 此组包含项目配置级别的设置。 这些设置适用于所有属于该特定项组的文件。 在此处初始化生成自定义项定义元数据。

PropertyGroup 必须位于 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />之后,并且在它之前不能存在其他不带标签的 PropertyGroup(否则项目属性的编辑工作将无法正确进行)。

按配置 ItemDefinitionGroup 元素

<ItemDefinitionGroup />

包含项定义。 这些定义必须和无标签的按配置 PropertyGroup 元素遵循同样的条件规则。

ItemGroup 元素

<ItemGroup />

ItemGroup 元素包含项目中的项(源文件等)。 不支持对项目项(也就是根据规则定义被视为项目项的项类型)使用条件。

元数据应具备每个配置的配置条件,即使它们都是一样的。 例如:

<ItemGroup><ClCompile Include="stdafx.cpp"><TreatWarningAsError Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</TreatWarningAsError><TreatWarningAsError Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</TreatWarningAsError></ClCompile>
</ItemGroup>

Visual Studio C++ 项目系统目前不支持在项目项中使用通配符。


<ItemGroup><ClCompile Include="*.cpp"> <!--Error-->
</ItemGroup>

Visual Studio C++ 项目系统目前不支持在项目项中使用宏。


<ItemGroup><ClCompile Include="$(IntDir)\generated.cpp"> <!--not guaranteed to work in all scenarios-->
</ItemGroup>

ItemGroup 中指定了引用,且这些引用具有以下限制:

引用不支持条件。

引用元数据不支持条件。

Microsoft.Cpp.targets Import 元素

<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

(直接或通过导入)定义 C++ 目标,例如生成、清理等。

ExtensionTargets ImportGroup 元素

<ImportGroup Label="ExtensionTargets" />

此组包含生成自定义项目标文件的导入。

4 vcxproj.filters文件

筛选器 文件 (*.vcxproj.filters) 是位于根项目文件夹中的 MSBuild 格式的 XML 文件。 它指定哪些文件类型进入解决方案资源管理器中的逻辑文件夹。 在下图中 .cpp ,文件位于 “源文件” 节点下。 .h文件位于“头文件”节点下,而 .ico.rc 文件位于“资源文件”下。 此位置由筛选器文件控制。
在这里插入图片描述

4.1 示例

以下示例显示前面所示示例的筛选器文件。 其层次结构是扁平的,也就是没有嵌套逻辑文件夹。 UniqueIdentifier 节点是可选的。 它使 Visual Studio 自动化接口能够查找筛选器。 Extensions 也是可选的。 将新文件添加到项目中时,会将其添加到具有匹配文件扩展名的最顶层筛选器。 若要将文件添加到特定筛选器,请右键单击筛选器,然后选择“添加新项”。

包含 ClInclude 节点的 ItemGroup 是在项目首次启动时创建的。 如果要生成自己的 vcxproj 文件,请确保所有项目项在筛选器文件中也有一个条目。 ClInclude 节点中的值会覆盖基于文件扩展名的默认筛选。 使用 Visual Studio 向项目添加新项时,IDE 会在筛选器文件中添加单个文件条目。 如果更改文件的扩展名,筛选器不会自动重新分配。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"><ItemGroup><Filter Include="Source Files"><UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier><Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions></Filter><Filter Include="Header Files"><UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier><Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions></Filter><Filter Include="Resource Files"><UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier><Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions></Filter></ItemGroup><ItemGroup><ClInclude Include="MFCApplication1.h"><Filter>Header Files</Filter></ClInclude><ClInclude Include="MFCApplication1Dlg.h"><Filter>Header Files</Filter></ClInclude><ClInclude Include="stdafx.h"><Filter>Header Files</Filter></ClInclude><ClInclude Include="targetver.h"><Filter>Header Files</Filter></ClInclude><ClInclude Include="Resource.h"><Filter>Header Files</Filter></ClInclude></ItemGroup><ItemGroup><ClCompile Include="MFCApplication1.cpp"><Filter>Source Files</Filter></ClCompile><ClCompile Include="MFCApplication1Dlg.cpp"><Filter>Source Files</Filter></ClCompile><ClCompile Include="stdafx.cpp"><Filter>Source Files</Filter></ClCompile></ItemGroup><ItemGroup><ResourceCompile Include="MFCApplication1.rc"><Filter>Resource Files</Filter></ResourceCompile></ItemGroup><ItemGroup><None Include="res\MFCApplication1.rc2"><Filter>Resource Files</Filter></None></ItemGroup><ItemGroup><Image Include="res\MFCApplication1.ico"><Filter>Resource Files</Filter></Image></ItemGroup>
</Project>

若要创建嵌套逻辑文件夹,请声明筛选器 ItemGroup 中的所有节点,如下所示。 每个子节点必须声明指向最顶层父级节点的完整逻辑路径。 在以下示例中,必须声明空 ParentFilter ,因为它在后面的节点中被引用。

<ItemGroup><Filter Include="ParentFilter"></Filter><Filter Include="ParentFilter\Source Files"> <!-- Full path to topmost parent.-->  <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> <!--  Optional--><Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> <!-- Optional --></Filter><Filter Include="Header Files"><UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier><Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions></Filter></ItemGroup>

5.vcxproj.user文件

用户文件 (.vcxproj.user) 存储特定于用户的属性,例如调试和部署设置。 vcxproj.user 文件适用于特定用户的所有项目。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
</Project>

参考文档:microsoft VS 文档 https://learn.microsoft.com/zh-cn/visualstudio/windows/


http://chatgpt.dhexx.cn/article/bjmdosjc.shtml

相关文章

cosi-corr操作详细步骤

cosi-corr是一个可以加载到ENVI的软件包&#xff0c;由加利福尼亚理工学院的Franois Ayoub, Sbastien Leprince, and Lionel Keene开发&#xff0c;并且提供源代码&#xff0c;该软件受到了NSF的资助。软件的主要功能是可以满足各种影像的正射校正和影像配准。 针对下载下来的…

pearsonr(x,y)、corr()、corrcoef(u1) 相关系数计算

函数&#xff1a;pearsonr(x,y) 功能&#xff1a; 计算特征与目标变量之间的相关度 参数说明&#xff1a; 1&#xff09;输入&#xff1a;x为特征&#xff0c;y为目标变量. 2&#xff09;输出&#xff1a;r&#xff1a; 相关系数 [-1&#xff0c;1]之间&#xff0c;p-value: …

pandas.DataFrame.corr求解变量列相关系数与可视化展示

pandas.DataFrame.corr求解变量列相关系数与可视化展示 目录 pandas.DataFrame.corr求解变量列相关系数与可视化展示 1常见的三种相关系数2 pandas.DataFrame.corr用法3 结果可视化 1常见的三种相关系数 Pearson相关系数&#xff1a;度量两变量之间的线性相关性&#xff1b;对…

【20220623】【信号处理】深入理解Pearson相关系数和Matlab corr()、corrcoef()仿真

目录 一、定义 二、特性 三、适用条件 四、Matlab 仿真 1. 时间序列 2. 矩阵 一、定义 相关系数&#xff08;correlation of coefficient&#xff09;是统计学中的概念&#xff0c;是由统计学家卡尔皮尔逊设计的一个统计指标&#xff0c;也称作 Pearson 相关系数。相关系…

python计算两组数据的相关性_关于python:使用.corr获取两列之间的相关性

我有以下熊猫数据框Top15&#xff1a; 我创建了一个列来估计每个人的可引用文档数&#xff1a; 1 2Top15[PopEst] Top15[Energy Supply] / Top15[Energy Supply per Capita] Top15[Citable docs per Capita] Top15[Citable documents] / Top15[PopEst] 我想知道人均可引用…

df.corr和df.describe()

1&#xff1a;df.corr&#xff08;&#xff09; df.corr()函数的作用是返回列与列之间的相关系数 corr_matrix df.corr() sns.heatmap(corr_matrix, annotTrue, cmapcoolwarm) 2:df.describe() 得到数字列的一些特殊值。如果是df.describe(includeO) &#xff0c;则描述obje…

Oracle MySQL Hive sql 求相关性系数 corr

MySQL所有版本&#xff1a; CREATE TABLE sample (x float NOT NULL,y float NOT NULL,user_name varchar(255) ) ;INSERT INTO sample VALUES (1, 10, zs); INSERT INTO sample VALUES (2, 4, zs); INSERT INTO sample VALUES (3, 5, zs); INSERT INTO sample VALUES (6, 17…

CORR函数 看不明白

CORR聚集函数来计算相关系数 CORR&#xff1a;皮尔逊相关系数&#xff0c;是用于度量两个变量X和Y之间的相关&#xff08;线性相关&#xff09;&#xff0c;其值介于-1与1之间。 CORR_S&#xff1a;斯皮尔曼等级相关 SELECT CORR(SYSDATE - hiredate, sal) AS corr_val, CORR…

COSI-Corr安装教程

hello,各位好久不见。最近要处理数据了&#xff0c;一步步学习COSI-Corr软件。安装很简单的&#xff0c;大家一起来学习吧。 1、在COSI-Corr官网点击并注册&#xff0c;官方会给你提供的邮箱发送软件安装包&#xff1b;COSI-Corr: Measuring Ground Deformation from Optical …

matlab corr2原码,matlab中corr2函数的错误

我想通过使用corr2函数的模板匹配来读取输入图像中的字母 . 为此,我创建了数字和符号模板 . 在运行读取信件的代码时,我收到以下错误: Error using corr2 Expected input number 1, A, to be two-dimensional. 用于模板创建的MAtlab代码 %CREATE TEMPLATES one=imread(1.png…

pandas——相关系数函数corr()

计算DataFrame列之间的相关系数 a np.arange(1,10).reshape(3,3)data DataFrame(a,index["a","b","c"],columns["one","two","three"])print(data)one two threea 1 2 3b 4 5 6c 7 …

回归分析中的相关度(Corr)和R^2

一、.皮尔逊相关系数&#xff08;Pearson Correlation Coefficient&#xff09; 1.可以用来衡量两个数值之间的线性相关程度 2.对应的取值范围为[-1,1],即存在正相关&#xff0c;负相关和不相关 3.计算公式&#xff1a; 二、R^2 1.定义&#xff1a;决定系数&#xff0c;反应…

Python机器学习:corr()分析变量之间的相关关系

变量之间存在多重共线性的情况下会影响模型的精度&#xff0c;这里用相关矩阵corr()和热力图heatmap()可以直观地观察变量之间的相关关系&#xff0c;进而判断是否要对自变量进行删除&#xff0c;或者降维的操作。 首先用corr()构造相关矩阵研究变量之间的相关关系&#xff1a…

理解页面置换算法

对页面置换算法的理解&#xff1a; 在进程运行时&#xff0c;若其访问的页面不在内存&#xff0c;而需将其调入&#xff0c;但内存已无空闲空间时&#xff0c;就需要从内存中调出一页程序或数据&#xff0c;送入磁盘的对换区。选择调出页面的算法就称为页面置换算法。好的页面置…

Python实现页面置换算法

Python实现页面置换算法 FIFO LRU OPT 页面置换——FIFO、LRU、OPT Python实现页面置换算法页面置换算法&#xff1a;一、FIFO&#xff08;先进先出置换算法&#xff09;1.算法解析算法原理&#xff1a;当需要淘汰一个页面时&#xff0c;总是选择驻留主存时间最长的页面进行淘…

页面置换算法java_页面置换算法之Clock算法

1.前言 缓冲池是数据库最终的概念&#xff0c;数据库可以将一部分数据页放在内存中形成缓冲池&#xff0c;当需要一个数据页时&#xff0c;首先检查内存中的缓冲池是否有这个页面&#xff0c;如果有则直接命中返回&#xff0c;没有则从磁盘中读取这一页&#xff0c;然后缓存到内…

一文看懂页面置换算法

页面置换算法分为两类 1、局部页面置换算法 最优页面置换算法&#xff08;OPT、optimal&#xff09;先进先出算法&#xff08;FIFO&#xff09;最近最久未使用算法&#xff08;LRU,Least Recently Used&#xff09;时钟页面置换算法&#xff08;Clock&#xff09;最不常用算法…

虚拟内存页面置换算法

虚拟内存页面置换算法 虚拟地址空间页表分页式分段式段页式 页面置换算法最优置换算法( OPT)先进先出算法&#xff08;FIFO)最近最久未使用算法(LRU) 虚拟内存是计算机系统内存管理的一种技术。 它使得应用程序认为它拥有连续的可用的内存&#xff08;一个连续完整的地址空间&a…

OS之页面置换算法

之前几篇博客记录了OS内存管理的一些知识和技术&#xff0c;接下来将继续深入&#xff0c;介绍一些页面置换算法&#xff0c;这里包括一些我们大家都略有耳闻的算法。 置换算法 当出现缺页故障时&#xff0c;需要从外存调入新的页面到内存中去&#xff0c;而如果此时内存已满…

os 页面置换算法

在进程运行过程中&#xff0c;若其所要访问的页面不在内存&#xff0c;而需把它们调入内存&#xff0c;但内部无空闲空间时&#xff0c;为了保证该进程能正常运行&#xff0c;系统必须从内存中调出一页程序或数据送到磁盘的对换区中。但应将哪个页面调出&#xff0c;须根据一定…