当前位置: 首页 > news >正文

有一个网站叫浪什么怎样生成链接

有一个网站叫浪什么,怎样生成链接,六安的网页制作,微信公众号自己微网站吗Linux之HugePage的原理与使用 虚拟地址与物理地址虚拟地址物理地址虚拟地址与物理地址的转换 HugePage的概念Linux使用HugePage创建HugePage在程序中使用HugePage 总结 虚拟地址与物理地址 在研究HugePage之前#xff0c;首先需要明白虚拟地址和物理地址的概念。在计算机系统… Linux之HugePage的原理与使用 虚拟地址与物理地址虚拟地址物理地址虚拟地址与物理地址的转换 HugePage的概念Linux使用HugePage创建HugePage在程序中使用HugePage 总结 虚拟地址与物理地址 在研究HugePage之前首先需要明白虚拟地址和物理地址的概念。在计算机系统中虚拟地址和物理地址是两个重要的概念。 虚拟地址 虚拟地址是由操作系统为每个进程分配的地址空间。每个进程都认为自己拥有独立的、连续的地址空间从地址零开始。 提供了一种内存保护机制。不同的进程有各自独立的虚拟地址空间一个进程不能直接访问另一个进程的内存从而防止了进程之间的非法访问和干扰。实现了多任务环境下的内存管理。操作系统可以在物理内存不足时将部分暂时不用的页面存储到磁盘上当需要时再重新加载到内存中使得多个进程可以在有限的物理内存下同时运行。方便程序的编写和移植。程序员可以在不考虑实际物理内存布局的情况下进行编程提高了开发效率。而且由于虚拟地址空间的独立性程序可以在不同的硬件平台上更容易地进行移植。 物理地址 物理地址是计算机内存中实际的存储单元地址。 物理地址直接对应着内存中的实际存储位置是数据真正存储的地方。硬件设备如 CPU、内存控制器等通过物理地址来访问内存中的数据。 虚拟地址与物理地址的转换 为了让进程能够正确地访问内存中的数据操作系统需要将虚拟地址转换为物理地址。这个转换过程通常由硬件如内存管理单元 MMU和操作系统共同完成并且需要MTT内存转换表Memory Translate Table以及MPT内存保护表Memory Protect Table。 当进程访问一个虚拟地址时MMU 会根据页表等数据结构将虚拟地址转换为物理地址。如果转换过程中发现所需的页面不在物理内存中操作系统会触发页面错误然后将所需的页面从磁盘加载到物理内存中并更新页表再次进行地址转换。 总之虚拟地址和物理地址在计算机系统中起着不同的作用虚拟地址为进程提供了独立的地址空间和内存保护而物理地址则是实际存储数据的位置。通过虚拟地址到物理地址的转换操作系统实现了高效的内存管理和多任务环境下的程序运行。 例如下图的转换所示 HugePage的概念 Linux 会以页为单位管理内存而默认的页面大小为 4KB虽然部分处理器会使用 8KB、16KB 或者 64KB 作为默认的页面大小不过 4KB 仍然是操作系统的默认页面配置的主流。这样一来一个程序可能会使用很多的内存页面而每个页面都需要相应的MTTMemory Translate Table和MPTMemory Protect Table来进行虚拟地址VA到物理地址PA的转换当一个程序需要大量的内存时由于每个页面都很小就需要很多的MTT和MPT从而会增加系统的开销影响程序的性能。 为此Linux中应用了大页HugePage的概念也就是使用比较大的内存页面2MB 一般都是 HugePages 的默认大小在 arm64 和 x86_64 的架构上甚至支持 1GB 的大页面是 Linux 默认页面大小的 262144 倍。这样当一个应用程序需要大量的内存时就可以只是使用非常少的内存页面就能够满足程序的需求可以大大降低所需要的MTT和MPT提升性能。 可以通过如下所示的命令查看有关HugePage的信息 cat /proc/meminfo | grep Huge例如如下的结果 上图的结果表示HugePage的大小为2048KB也就是2MB现有的HugePage有两个并且它们都没有被使用。 Linux使用HugePage 创建HugePage 首先需要在linux系统中创建HugePage然后才可以去使用创建并加载HugePage的命令如下所示这里使用的时默认的大页HugePage大小2MB 创建一定数量的HugePage sudo sysctl -w vm.nr_hugepagesHugePage 数量挂载 HugePages 文件系统 sudo mkdir /mnt/huge sudo mount -t hugetlbfs none /mnt/huge检查 HugePages 是否被正确使用 cat /proc/meminfo | grep Huge也可以使用如下所示的命令查看已经挂载了的HugePage mount | grep hugetlbfs其运行结果为 可以看出我创建并且挂载了两个大页。 在程序中使用HugePage 在linux中一般使用 mmap 或 shmget 来分配和使用大页需要在程序中明确地调用这些函数并指定所需的标志和内存大小。 例如下面的示例代码我们使用了等待用户输入字符这种方法或者死循环的方法也可以以便于使得程序运行很长的时间从而我们就可以通过命令行来检验程序是否使用了大页 hp.c #include stdio.h #include stdlib.h #include sys/mman.h #include fcntl.h #include unistd.h #include string.hint main() {size_t hugepage_size 2 * 1024 * 1024; // 大页大小2MBint fd open(/mnt/huge/none, O_CREAT | O_RDWR, 0755); // 打开大页文件系统路径if (fd 0) {perror(Failed to open hugetlbfs);return 1;}// 使用 mmap 分配大页void *addr mmap(NULL, hugepage_size, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS | MAP_HUGETLB, fd, 0);if (addr MAP_FAILED) {perror(mmap failed);return 1;}// 向大页写入数据strcpy((char *)addr, Hello, Huge Page!);printf(Huge page allocated at: %p\n, addr);printf(Data in huge page: %s\n, (char *)addr); // 读取并打印数据// 程序运行等待输入以退出printf(Press Enter to exit...);getchar();// 使用完毕后记得释放内存munmap(addr, hugepage_size);close(fd);return 0; } 对代码进行编译 gcc -o hpt hp.c运行程序 sudo ./hpt为了验证我们的程序是否使用了指定的大页我们首先查看程序的进程 ps aux | grep hpt命令行运行之后的结果为 这里需要注意真正使用了大页的是中间那行所表示的进程号这是由于第一行的进程号是原始的c程序的进程在其中我们开启了一个调用大页所以会重新开启一个进程最后那一行的进程可以不用管与我们的大页示例程序无关如果非要去深究一下那么它实际上表示的是对应的那个大页分配给了我们的这个程序。 这里记录一下程序运行的pid我的就是169136后续在使用的时候需要替换为你自己的pid。 然后我们再次运行下面的命令 cat /proc/meminfo | grep Huge结果为 可以看出来空闲的HugePage只有一个实际上非空闲的那个HugePage正在被我们的程序使用。 在前面我们已经得到了程序的pid现在就使用这个pid直接去查看程序所使用的页面命令行如下所示 sudo cat /proc/pid/smaps | grep -i Private_Hugetlb例如我的命令就是 sudo cat /proc/169136/smaps | grep -i Private_Hugetlb得到的结果为 可以看出的确使用了一个大小为2048KB也就是2MB的大页HugePage。 至此我们成功使用了大页并对其进行了验证可以关闭之前的那个程序了。 总结 本文介绍了虚拟地址、物理地址、地址转换、大页HugePage等概念并在linux中创建大页然后还使用c语言编写程序真实地使用了HugePage并且对其使用情况进行了检验和分析。希望本文对大家有所帮助和启发。
http://www.hkea.cn/news/14482488/

相关文章:

  • 网站太原wangz建设单页网站快速收录
  • 网站设计的公司价格深圳优化新材料
  • 闽清住房和城乡建设局网站WordPress pdo mysql
  • 杭州网站设计公司排名网站建设大作业提交要求
  • 律师网站建设哪家专业网站设计需要的元素
  • 浙江省火电建设公司网站家具设计用什么软件最好
  • 国内做新闻比较好的网站有哪些教育网站制作运营
  • django做的网站模板北京发布会直播
  • 网站建设价格差别为什么这么大重庆电子商务网站seo
  • 淘宝联盟怎么自己做网站推广免费查企业信息查询
  • 门户网站集群建设小程序开发哪家好
  • 莆田网站开发wordpress后台打开太慢
  • 重庆有效的网站推广咨询公司收费标准
  • 专业的聊城网站优化河源市建设厅网站
  • asp.net商务网站 包括哪些文件销售管理app软件
  • 用ps怎么做网站重庆新闻联播今天
  • 网站的宽度网站建设的参考书籍
  • 系网站建设总结报告网站建设河南
  • 做文化墙的网站宁波市城乡和建设网站
  • 苏州做网站公司 速选苏州聚尚网络wordpress去除谷歌
  • 网站推广经验杂谈跟换网站域名
  • 如何建立公司网站建议和规则信息发布型网站
  • 个人网站用react做wordpress礼物说主题
  • 网站导航结构电商是干什么的是什么意思
  • 做最好的在线看片网站深圳大型设计公司排名
  • 网站开发周期和进度管理进入微信官方网站注册
  • 自己怎样建设淘宝返现网站主机怎么做网站服务器
  • 长春网站排名网站搭建报价单
  • 大同网站建设开发最近的新闻有哪些
  • 长沙网站建设索王道下拉网页设计与网站建设中的热点