易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux中的内存分配和释放之__free_pages()函数分析

  记得我们在上篇文章mem_init()分析中提到__free_page()函数吗?我们现在来完善它。它的调用过程是这样的:mem_init()->free_all_bootmem_node():我们知道这个函数是统计一共释放了多少空闲页。->free_all_bootmem_core()就是在这个函数里面先后多次调用__free_pages()函数。目的就是为了释放每个内存node里面无用的内存孔洞页。我们现在就来好好探讨这个函数。
  fastcall void __free_pages(struct page *page, unsigned int order)
{
   if (!PageReserved(page) && put_page_testzero(page)) {
       if (order == 0)
          free_hot_page(page);//我们先来看看这个函数。
   else
      __free_pages_ok(page, order);//我们最后才来讨论这个函数。
   }
}
 
  void fastcall free_hot_page(struct page *page)
{
   free_hot_cold_page(page, 0);
}
  static void fastcall free_hot_cold_page(struct page *page, int cold)//如果cold是0的话,表示要把page所指向内存页释放到
                                                                  //其所在内存页区中当前处理器的“热区”内存中,如果为1的话,就释放到这页所在页区
                                                              //中当前处理器的“冷区”高速缓存内存中。在这里肯定有不少人不太了解linux在启动后是
     &nbs


相关文档:

Linux图形化历程

Linux图形化历程
    注:此段文章综合了众多资料,主要引用个人电脑的文章
   
    谈起OPIE,就不能不谈Qt,然而要对Qt有个来龙去脉的认识,需要从Linux
图形化说起。让我们回顾下Linux图形化界面发展的历史。
    Linux实际上是以UNIX为模板的,它继 ......

Linux内核简介


Linux 内核简介
现在让我们从一个比较高的高度来审视一下 GNU/Linux 操作系统的体系结构。您可以从两个层次上来考虑操作系统,如图 2 所示。
图 2. GNU/Linux 操作系统的基本体系结构
 
系统调用接口(SCI)的方法
实际上,体系结构可能并不像图 2 所示的一样清晰。例如,处理系统调用(从用户空间切换到内核空 ......

Linux应用程序安装与管理

目标:
        了解linux应用程序的组成部分
        掌握使用RPM工具管理软件包的方法
        掌握应用程序源代码包的编译安装方法
        掌握图形界面下应用程序管理工具的使用
1、L ......

VMware虚拟机安装Linux光盘无法挂载解决办法

我在Vmware虚拟机上安装Linux时,第一张和第二张光盘都顺利挂载,但是在第三张光盘时却出现无法挂载的提示窗口。此时我的解决办法是:Red Hat Linux/setting/Hardware/cd/dvd(Ide)中配置好Image file后勾上Device status中的Connected即可 ......

用Source Insight建立一个Linux内核代码工程


具体步骤如下:
(一)打开Source Insight,单击【项目】按钮,弹出下拉菜单。
(二)单击【新项目】按钮,弹出【新项目】对话框,输入项目名和存放路径,单击【确定】按钮。如图1所示。
 
图1 新项目对话框
文章来源:http://top-e.org/jiaoshi/html/539.html
(三)弹出【添加删除文件】对话框,在内核源代� ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号