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

数据库策略网站推广的有效方法有自动交换友情链接

数据库策略网站推广的有效方法有,自动交换友情链接,嘉兴品牌网站建设,做网站满屏的照片尺寸是多少《Linux操作系统原理分析之linux存储管理#xff08;5#xff09;》#xff08;21#xff09; 6 Linux存储管理6.6 Linux 物理空间管理6.6.1 Linux 物理内存空间6.6.2 物理页面的管理6.6.3 空闲页面管理——buddy 算法 6.7 内存的分配与释放6.7.1 物理内存分配的数据结构 6… 《Linux操作系统原理分析之linux存储管理5》21 6 Linux存储管理6.6 Linux 物理空间管理6.6.1 Linux 物理内存空间6.6.2 物理页面的管理6.6.3 空闲页面管理——buddy 算法 6.7 内存的分配与释放6.7.1 物理内存分配的数据结构 6 Linux存储管理 6.6 Linux 物理空间管理 本节介绍 linux 对进程虚拟空间的管理方法和内核提供的对进程虚拟空间进行管理的数据结构及有关函数。 6.6.1 Linux 物理内存空间 Linux 物理内存空间分成两个区域 内核区存放内核代码和数据以及内核管理进程的数据结构等。低地址区 动态 RAM 区存放各个用户进程的代码、数据等。高地址区。 需要注意 内核区映射到进程线性地址空间时时在高地址区域故内核在进程虚拟内存和物理内存所占据的位置不同。 6.6.2 物理页面的管理 Linux 以页面为单位来分配内存。 Linux 对每个物理页面都使用一个页面描述符 page 结构体描述其物理特性。其定义包含在/include/linux/mm.h 中并进一步被定义为 mem_map_t 类型。 typedef struct page { struct page *next; /*双向链表的下一个*/ struct page *prev; /*双向链表的前一个*/ struct page *next_hash; /*指向 hash 表后一个*/ struct page *prev_hash; /*指向 hash 表前一个*/ unsigned dirty16age8; /*age 记载被访问的情况dirty是否被修改*/ atomic_t count; /*共享进程数目*/ unsigned long flags; /*页面状态*/ /*当页面内容是文件的一部分*/ struct inode *inode; /*指向文件的 inode */ unsigned long offset; /*指出在文件中的偏移量 */ /*系统把所有 page 结构体集中组成一个 mem_map 数组*/ unsigned long map_nr; /*在 mem_map 数组中的下标*/ unsigned long swap_unlock_entry; struct wait_queue *wait; struct buffer_head * buffers; } mem_map_t;6.6.3 空闲页面管理——buddy 算法 为了提高访问页面的速度以及满足使用连续面的要求如较大的线性数组要求连续的页面。操作系统在分配内存时要尽量保留连续的页面所以实施分配时不能以单一页面分配而是以多个页面为单位分配。根据这个思想linux 对内存空间的管理和分配采用了 Buddy 算法。Buddy 是“伙伴”、“搭档”的意思。 Buddy 算法的基本思想以多个页面为单位管理和分配空闲区域。 空闲页块组 它把物理内存中的所有页面按照 2 的整数次幂2n进行划分linux2.0 中年0~5对物理内存进行 6 次划分12481632。这样划分后形成大小不同的存储块称为页面块页块。 包含一个页面的块称为 1 页块包含两个页面的块称为 2 页块依次类推。将每种页块按照它们的先后顺序两两结合成一对对的 buddy“伙伴”如 1 页块中0 和 1、2 和 3、4 和 5、…….就是一对对的 1 页块 buddy“伙伴” 2 页块中0~ 1 和 2~ 3、4~ 5 和 6~ 7、8~ 9 和 10~11、……. 就是一对对的 2 页块 buddy“伙伴” 对空闲区域的管理按照页块大小分组进行管理。 系统设置了一个静态数组 free_area[]来管理各个空闲页块组。在/mm/page_alloc.c 中。 #define NR_MEM_LISTS 6 Static struct free_area_struct free_area[NR_MEM_LISTS]; Struct free_area_struct { Struct page *next; /*空闲链表下一个节点*/ Struct page *prev; /*空闲链表前一个节点*/ Unsigned int *map; /*指向相应页块的位图其位于内存 bitmap 区*/ }该数组共 6 个元素指向 1、2、4、8、16、32 六种页面块。 两种管理方法位图法和空闲页块组链表 。 1位图法 Linux 对内存页面块的每种划分都对应一个位图 map图 6.19 给出了 1、2、4 页块位图示意图。在位图中每一位表示一对 buddy 页块的使用情况方法 如1 对都空闲则该位为 0 1 对都占用全部或部分则该位为 0 1 对中1 组空闲而另一组被占用全部或部分则该位为 1 2空闲页块组链表 系统按照 buddy 关系把具有相同大小的空闲页面块组成空闲页面块每个空闲页块组用一个双向循环链表进行管理。见图 分配和释放管理 用事例说明 6.7 内存的分配与释放 Linux 中设置了多个用于虚拟内存和物理内存分配和释放的函数本节主要介绍其中两对面向物理内存分配和释放的函数 kmalloc和 kfree面向虚拟内存的分配和释放的函数 vmalloc和vfree 6.7.1 物理内存分配的数据结构 Linux 中 kmalloc和 kfree用于分配和释放小于 128K 的连续物理内存空间。使用它可以分配到[32B128KB]的连续的内存空间。它在 Baddy 算法的基础上又设置了专门的数据结构来管理内存。 在使用 kmalloc和 kfree分配和释放内存是以块为单位进行的。可以分配的块单位记录在blocksize 表中它是一个静态数组定义在/mm/kmalloc.c 中 #if PAGE_SIZE 4096 Static const unsigned int blocksize[]{ 32,64,128,252,508,1020,……..,131072-16,0 }对页面大小为 4K 的机器块单位共 13 种它们近似于 2 的次幂。 可以块的大小与页面大小不一致可能小于或等于大于页面。 如小于一个页面时需要将一个页面再次按照第一次使用该页面的块单位来划分页面。所以每个页面又需要一个 page_descriptor 结构体页描述符来记录它的划分情况它放在页面首部。
http://www.zqtcl.cn/news/23514/

相关文章:

  • 数据网站建设多少钱wordpress标签大全文档
  • 驾校网站建设方案题婚淄博企业网站排名优化
  • 千度网站手机页面设计软件
  • 深圳网站建设的排名优化百度
  • 论述简述网站制作的步骤wordpress 微博同步插件
  • 学生做兼职哪个网站网站icp备案申请流程
  • 怎么做海淘网站WordPress下载统计
  • 免费做思维导图的网站抖音seo培训
  • 网站建设需要注意那些点网站设计做图工具
  • 商品展示网站模板源码温州网站设计案例
  • DW网站建设出现哪些问题肥城网站建设公司
  • 苏州知名网站建设公司排名惠州专业网站设计公司
  • 甘肃省住房和城乡建设局网站做问卷调查赚钱的网站
  • 网站开发代码说明书开通网站需要多少钱
  • 哪些网站可做矿机期货英文网站建设公司报价
  • 网站根域名是什么手机助手
  • 免费的推文制作网站建立网站需要哪些
  • 一元云够网站建设wordpress调用图标icon
  • 发泡机 东莞网站建设百度不做网站外链是什么
  • 精美网站制作公司wordpress主题页脚添加联系信息
  • 营销网站费用网站背景更换
  • 网站品牌词优化怎么做wordpress 关键词 插件
  • 手机网站建设教材做网站用什么配置的笔记本
  • 免费企业网站系统国内外网站建设2017
  • 怎样做知道网站子页网站设计
  • 山西省两学一做网站汕头网站建设推广方法
  • 网站空间商排名廊坊那家做网站排行榜
  • 什么网站免费做游戏创建自己的个人网站
  • 建设公司网站要注意哪些个人网站做淘宝客犯法吗
  • 2018做网站 工具盘石做的网站