赛迪网 > IT技术 热点推荐 > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

Linux系统的内存管理地址映射机制

发布时间:2006.09.25 17:42     来源:赛迪网技术社区    作者:bobo






地址的映射机制

地址的映射机制,主要完成主存.辅存和虚存之间的关联 。包括磁盘文件到虚存的映射和虚存与内存的映射关系。为了虚拟存储和进程调度相一致。linux 采用可一系列的数据结构,和一个硬件缓存(tlb)来实现地址映射机制。

mm_strut 用来描述进程的缓存。

struct mm_struct 
{ 
struct vm_area_struct * mmap; /* list of vmas */ 
struct vm_area_struct * mmap_avl; /* tree of vmas */ 
struct vm_area_struct * mmap_cache; /* last find_vma result */ 
pgd_t * pgd; 
atomic_t count; 
int map_count; /* number of vmas */ 
struct semaphore mmap_sem; 
spinlock_t page_table_lock; 
unsigned long context; 
unsigned long start_code, end_code, start_data, end_data; 
unsigned long start_brk, brk, start_stack; 
unsigned long arg_start, arg_end, env_start, env_end; 
unsigned long rss, total_vm, locked_vm; 
unsigned long def_flags; 
unsigned long cpu_vm_mask; 
unsigned long swap_cnt; /* number of pages to swap on next pass */ 
unsigned long swap_address; 
/* 
* this is an architecture-specific pointer: the portable 
* part of linux does not know about any segments. 
*/ 
void * segments; 
};

他描述了一个进程的页目录,有关进程的上下文信息.以及数据.代码.堆栈的启示结束地址。还有虚拟存储取得数目。以及调度存储用的链表指针,他的参差比较高。较高层次的vm_area-struct 是描述进程的虚拟地址区域,他形成一个算相链表。按虚地址下降排列,这样当内核需要在一个给定进程页上执行给定操作时。客从双向列表中找到该项。在世想有关页的处理。如页错误.页换出等等。 他的具体结构如下:

struct vm_area_struct { 
struct mm_struct * vm_mm; /* vm area parameters */ 
unsigned long vm_start; 
unsigned long vm_end; 
  
/* linked list of vm areas per task, sorted by address */ 
struct vm_area_struct *vm_next; 
  
pgprot_t vm_page_prot; 
unsigned short vm_flags; 
  
/* avl tree of vm areas per task, sorted by address */ 
short vm_avl_height; 
struct vm_area_struct * vm_avl_left; 
struct vm_area_struct * vm_avl_right; 
  
/* for areas with inode, the list inode->i_mmap, for shm areas, 
* the list of attaches, otherwise unused. 
*/ 
struct vm_area_struct *vm_next_share; 
struct vm_area_struct **vm_pprev_share; 
  
struct vm_operations_struct * vm_ops; 
unsigned long vm_offset; 
struct file * vm_file; 
unsigned long vm_pte; /* shared mem */ 
};

而page 结构 则是对物理页进行描述的一个数据结构,他不是一个真正的物理页。而只不过是描述了一个物理页的内容和框架,作了逻辑页的一个标志。他的标志域定义了这个页在进行的操作,链域则定义了一个双项链表时的页框,可以很容易的查找到为实际物理内存的使用直到方便。 他的具体结构如下:

typedef struct page { 
/* these must be first (free area handling) */ 
struct page *next; 
struct page *prev; 
struct inode *inode; 
unsigned long offset;

(T114)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 关于Linux下两种内存引导模式的区别 (09-25) · 教你怎样合理的分配Linux系统的内存 (09-25)
· 教你怎样加快 Linux系统的数据存取 (09-25) · Linux系统的内存管理的虚拟存储管理 (09-25)
· IBM看上红旗Linux 未来市场是否三国鼎立? (09-25) · 红旗Linux可能获得IBM支持 企业应用前景广阔 (09-25)
· 消息总线和活动系统渗透到 Linux桌面 (09-22) · 恰当选择嵌入式Linux环境下的GUI系统 (09-22)
· VNC远程控制Linux系统主机图形界面 (09-22) · Linux 内核模块和驱动程序的详细编写 (09-22)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管