分段机制小结

来源:互联网 发布:2003w0rd软件下载 编辑:程序博客网 时间:2024/06/16 23:53

1、分段的原因

分段提供了隔绝各个代码、数据和堆栈区域的机制,因此多个程序或任务可以运行在同一个处理器上而不会相互干扰。


上图所示,分段机制吧处理器可寻址的线性地址空间划分成一些较小的称为段的受保护地址空间区域,段可以存放程序的数据、代码和堆栈,等。如果有多个程序或者任务在运行,那么每个程序可分配各自的一套段,来进行隔离。

一个系统中所有使用的段都包含在处理器线性地址空间中,为了定位指定段的一个字节,程序必须提供一个逻辑地址,逻辑地址由基地址和偏移地址组成,基地址的获取是通过数据结构--段描述符,段选择符有14bits即能够指向2^14个段描述符,每个段描述符的段长最大2^32(即是偏移地址的有效位),·段选择符提供段描述符表中一个数据结构(段描述符)的偏移量,每个段都有一个段描述符,包含段的大小,权限,基地址等。


段描述符表

段描述符表就是存储段描述符的数组,有两种描述符表:GDT LDT


当任务切换时,LDT会更换成新任务的LDT,但是GDT不变,GDT所映射的虚拟地址是系统中所有任务所共用的

段描述符