32 位的平台上,线性地址空间为固定的 4GB,并且由于采用了保护机制,Linux内核将这 4GB 分为两部分,线性地址较高的 1GB(0xC0000000 到 0xFFFFFFFF )为共享的内核空间;而较低的 3GB 为每个进程的用户空间。由于每个进程都不能直接访问内核空间,而是通过系统调用间接进入内核,因此所有的进程都共享内核空间。而每个进程都拥有各自的用户空间,各个进程之间不能互相访问彼此的用户空间。 一个进程的用户地址空间主要由两个数据结构来描述。一个是 mm_struct 结构,它对进程的整个用户空间进行描述,简称内存描述符;另一个是 vm_area_struct 结构,它对用户空间中各个区间( 代码区、数据区等 )进行描述。 进程用户空间的描述 内存描述符 每个进程只有一个 mm_struct 结构,在每个进程的 task_struct 结构中,有一个指向该结构的指针。 struct mm_struct { struct vm_area_struct *mmap; /* list of VMAs * 继续阅读 >>


杜肖孟 17/12/10 14:47:55
内存为什么要管理 在OS中,每个运行的进程都会占用内存,那么操作系统势必要做好两件事:内存分配和内存回收。这便是本次实验要做的模拟实验了。 内存分配策略 FF(首次适应算法) 这种策略旨在从最低地址的空闲分区开始找起,找到合适的便进行分配。内存空间按起始地址从大到小排序。 优点:查找速度快 缺点:低地址会留下较多的内存碎片,高地址则会存留大块空闲分区。 BF(最佳适应算法) 这种策略每次分配都将最小块的满足需求空闲分区拿去分配。内存空间按空闲区从小到大排序。 优点:保留大的空闲分区。 缺点:造成很多小的空闲分区。 WF(最差适应算法) 这种策略每次分配都将最大块的满足需求空闲分区拿去分配。内存空间按空闲区从大到小排序。 优点:不会留下许多小的内存碎片。往往可以装入多个大内存程序。 缺点:留下大空闲区的可能减少了。 内存管理实验内容 模拟操作系统,既然是模拟,那么自然比真正的内存分配简单很多。 程序中两个链表: 空闲内存区块表,包含该空闲区的起始地址以及大小。程序初始化链表仅一个节点,大小为默认大小。 一分配内存区块表, 继续阅读 >>


李余通 17/11/10 18:56:25
[crayon-5955290b4e1eb881321036/] [crayon-5955290b4e2013 […] 继续阅读 >>


张明瑞 17/06/29 14:59:23
内存分配   这里不再讨论具体架构的内存管理问题,内存的具体结构可以参考我对内存关系分析的博客。我们 […] 继续阅读 >>


张明瑞 17/05/10 00:55:46
Concurrency and competition   并发与竞态 竞态 竞态条件(race c […] 继续阅读 >>


张明瑞 17/04/30 05:07:43
[crayon-58b07f1dd4a9a593011177/] 继续阅读 >>


张明瑞 17/02/24 14:58:20
在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是Linux内存管理的一个优秀特性,主要特点是,无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存(buffer/cache),利用内存读写的高速特性来提高Linux系统的数据访问性能。在这方面,区别于Windows的内存管理。本文从Linux的内存管理机制入手,简单介绍linux如何使用内存、监控内存,linux与windows内存管理上的区别简介,linux内存使用的一大特点(buffer/cache的异同)。 一、Linux内存管理机制 物理内存和虚拟内存   我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念。   物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑 继续阅读 >>


师毅 17/02/16 04:07:24
引用计数 一种直接的内存清扫方式,通过遍历可以直接的判定一个对象的存活性。 这个思想可以说是非常的简单,有新对 […] 继续阅读 >>


张明瑞 16/08/09 02:23:29
我们今天来看看第二种垃圾回收方法: 标记-整理回收算法 双指针整理算法 使用两个指针,一个从前向后遍历,我们称 […] 继续阅读 >>


张明瑞 16/08/06 02:21:12
内存回收一共有四种基本的算法及若干高级算法: 标记-清扫,标记-复制,标记-整理,引用计数。 任何自动内存管理 […] 继续阅读 >>


张明瑞 16/08/05 04:14:09