加载中
内存管理之9:磁盘页面的抽象

date: 2014-10-01 19:09 在讲《x86页式内存管理》中提到过“页面交换”。一个系统的物理内存总是有限的,但是运行在其上的进程却不敢不顾的一味“索取”,为了解决这种困境,在计算机的发展史...

内存管理之3:linux的页式内存管理

date: 2014-09-07 19:09 备注:本文中引用的内核代码的版本是3.14。 当地址的宽度是32位时,页面目录表+页面表的两级映射合情合理,但如果地址总线的宽度超过32位,比如64位时,两级映射就不...

内存管理之13:情景分析之页面换入

date: 2014-10-13 19:09 注:本文展示的代码来自2.4.0版本的内核,入口函数do_page_fault定义在<arch/mm/fault.c>中。 前情提要: 前面讲过,内存页面换出到磁盘页面后,页面表项pte_t变身为...

内存管理之12:守护进程kswapd

date: 2014-10-10 19:09 1 kswapd的创建 为了避免总在CPU忙碌时也就是缺页异常发生时,临时再来搜寻空换出的页面进行换出,内核将定期检查并预先将若干页面换出以腾出空间,维持系统空闲内存...

内存管理之10:内存页面的周转

date: 2014-10-03 19:09 1 页面交换策略 所谓内存页面的周转有两方面的含义:其一是物理页面的分配、使用和回收,并不一定涉及页面的盘区交换;其二才是盘区交换,盘区交换的最终目的也是为了...

进程调度之 4:系统调用execve

date: 2014-10-24 12:09 1 用户空间的编程接口 这部分详情请参考APUE(第2版)第8章。 1.1 六种exec函数 有6种不同的exec函数可供使用,这些函数最终都是通过系统调用execve来实现的: <uni...

内存管理之4:页面映射中的结构体

date: 2014-09-10 19:09 备注:本文中引用的内核代码的版本是2.4.0。 在前面的文章中,我们介绍了linux页式内存管理,讲到了页面目录PGD、中间目录PMD以及页表PT,本文来看下内核中对应的结构...

译:Self-Modifying cod 和cacheflush

date: 2014-11-26 09:53 翻译自: http://community.arm.com/groups/processors/blog/2010/02/17/caches-and-self-modifying-code Cache处在CPU核心与内存存储器之间,它给我们的感觉是,它具...

07/16 19:51
6
开篇之3:内核中list_head的理解

date: 2014-08-30 19:09 1 需求分析 我们在《数据结构》课程上,学习过双向链表。现在假定有下列需求。 需求1:设计一个结构体,结构体本身支持双向链表,你的实现可能会是: //方案1 struc...

进程调度之8:nanosleep与内核定时器

date: 2014-11-08 14:16 某些情况下,运行中的进程需要主动进入睡眠状态,这里“睡眠”的原语是:当前进程的状态变成TASK_INTERRUPTIBLE或者TASK_UNINTERRUPTIBLE,并从可执行队列中脱钩,调...

AMRv8内存管理简介

date: 2017-8-28 1 ARMv8架构简介 1.1背景 2011年,ARM推出了第8代架构ARMv8(ARMv4之前的架构已经被废弃),ARMv8架构是迄今为止ARM历史上变革最大的架构。 如果知道了架构的历史背景,以及...

内存管理之6:虚存管理中的抽象

date: 2014-09-20 19:09 在软件设计时,我们一般要从需求中提取出抽象(类或者数据结构),然后围绕这些抽象设计相关的算法。内存管理自然也不能例外,这一节我们来看看为了管理为了内存以及...

内存管理之5:物理内存管理中的抽象

date: 2014-09-16 19:09 在软件设计时,我们一般要从需求中提取出抽象(类或者数据结构),然后围绕这些抽象设计相关的算法。内存管理自然也不能例外,这两节我们来看看为了管理为了物理内存...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部