Linux内核学习第4天

网友投稿 531 2022-05-29

保护模式内存管理

分页机制(支持虚拟存储技术)

(1)虚拟存储:是一种内存管理技术,“虚拟化”线性地址空间的方法

(2)使用分页将段划分成页面(通常为4K),页面存储于物理内存或硬盘上,操作系统通过维护页表或页目录来管理,当程序访问线性地址空间的一个地址位置时,处理器会使用页目录和页表来转换为物理地址。如果访问的页面不在物理内存上,处理器会产生一个中断,然后将该页面载入到物理内存。

*段表存储在线性地址空间;页表存储在物理内存中

保护

*80X86支持两种保护:一是通过给每个任务不同的虚拟地址空间来隔绝各个任务

二是通过保护机制

(1)任务之间的保护

*80X86使用的是把不同任务放在不同的虚拟地址空间中,给予每个任务不同的逻辑地址到物理地址的变换映射。

*全局地址空间:所有任务具有的相同虚拟地址空间

局部地址空间:每个任务唯一的虚拟地址空间

(2)特权级保护(定义了4个执行特权级,0最高,3最低)

*每一个内存段都与一个特权级相关联

*CPL:Current Privilege Level 当前特权级,定义了当前活动代码段的特权级,确定了哪些段能被程序访问

*每个特权级都有自己的程序栈

段的定义:段是虚拟地址到线性地址转换机制的基础

(1)段由三个参数定义

*段基地址Base address:指定段在线性地址空间中的开始地址,基地址是线性地址,偏移为0

*段限长Limit:是虚拟地址空间中段内最大可用偏移地址,定义了段的长度

*段属性Attributes:描述了段的属性,如是否可读可写或作为程序执行以及段的特权级

Linux内核学习第4天

(2)逻辑地址---->线性地址:

*使用段选择符中的偏移值(段索引)在GDT或LDT表中定位相应的段描述符

*利用段描述符检验段的访问权限和范围

*把段描述符中的基地址加到偏移量上,形成线性地址

段描述符表:是段描述符的一个数组

(1)分类:GDT(全局描述符表)

LDT(局部描述符表)

(2)GDT

*每个系统必须定义一个GDT

*GDT本身不是一个段,是线性地址中的数据结构

*处理器不使用GDT的第一个描述符

*LDT的段描述符必须包含于GDT中

Linux 虚拟化

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:2021牛客寒假算法基础集训营2,签到题FHIJ
下一篇:【金蝶天燕鲲鹏云最佳实践 1】Apusic v9 鲲鹏云应用服务器安装实践
相关文章