QQ在线服务: 风舞残阳风舞残阳 年满19岁年满19岁 小罗小罗 晴天晴天 心雨心雨 叮叮肉叮叮肉 小周小周 小童小童 小破孩小破孩 遥望当年遥望当年

用户导购指南

水货IBM笔记本电脑报价

行货IBM笔记本电脑报价

IBM服务器报价

IBM笔记本电脑配件报价

本周水货IBM笔记本电脑特价

IBM笔记本电脑驱动下载

水货IBM笔记本电脑验机流程

水货IBM笔记本电脑保修政策

IBM笔记本电脑FRU查询

IBM笔记本电脑常见问题

IBM笔记本电脑使用手册

笔记本电脑验机软件

论坛积分使用说明

水货IBM笔记本电脑异地购机流程

笔记本电脑购机经历及现场

贵宾申请入口

贵宾用户FTP入口

查看笔记本配置

水货APPLE苹果笔记本电脑报价

 
发新话题
打印

[linux教程] 读核日记(六)

读核日记(六)

我们讲完了分段机制。接下来我们需要分析保护模式的第二种存储管理机制:分页方式。
- z* S6 ^: }# H在前面我们提到过转台和控制寄存器组。他们包括EFLAGS、ELP。和4个32位的控制寄存器CROCR1CR2CER3。其中CRO中有一位PE用于标志是使用保护模式还是实模式的。有一位PG定义是否使用分页方式(1或0)。
5 O+ v) v: M- G! k. l7 `1 ]  b[color=#FFFFFF']
1 F, |/ Z$ b4 |7 @* `. m% y
& ?+ f$ n6 d" U" U* ~当PG=1时,系统使用分页机制。80386使用大小位4K的页,并且每一个页的边界队奇。即每一个页的起始位置都可以被4K整除。这样4G的字节就被分成了1M页。分页机制把线性页映射成物理页。真正的起到了转换作用. {/ D  h+ [% r+ A+ z0 B; @
下面我们看一下LINUXE得分页结构
5 x& S' F, {5 S1.多级页表结构
5 j8 \$ S8 F1 Y3 z# }: c在LINUX中含有1M个页。其中每个页表占4个字节。则需要占用4M的连续内存因此LINUX引入了2级页表结构。在线性地址中的后10位(22-32)定义了二级页表。; ^- Z' @$ K8 v" R! q$ i
二级页表有1K个字节,页正好存在]一个4K的页中。并且通过前20位进行索引,从而实现实际的物理地址。5 U4 C* K$ h1 m% ?; [
这个地方我说不太清楚。大致可以这样理解。6 k$ B- [: U2 B- \* C
如:有N个链表。每一个便是一页。可最后一页的内容是指向另一个二级炼表的指针(或者是索引项)
+ Q; d3 z( `+ [" x* b1 @2,页面项和页目录项
' @9 ~9 H' O; X* B% k) ^对于每一个页。都会存在一个页面项。用来表示该页的使用状况,是否空闲。是否在内存中等等。而这些相会存储成一个连标。以减少使用表时的查询时间等。
+ O( F0 E0 @2 S) K而每一个页表,会存在1024个页面项,这才是真正的“页“。
% J- V! E. \3 f, v  B/ l3,线性地址到物理地址的切换
: ~/ f+ a' S4 ]  s& n) O1 G: i/ \$ Q; _
CR包含页目录的起始地址,用32位地址中的31-22位的内容作页目录的页目录项的索引,于CR3种的页目录的起始地址相加。得到相应页表的地址
" F. @. K; w9 Z从指定的地址中取出32位页目录项。它的提12位是0用这32位地址中21-12位作为页表中的页面的索引。将它乘以4和页表的起始地址相加,得到32位地址7 W' Y5 f8 _% j- m3 K5 ?6 |4 g
奖11-0位作为相对一页面地址的偏移量,于32位页面地址相加。形成32位的物理地址。7 \7 o+ A/ e" k3 Q; P2 m, C( C
 1 i* ~/ J4 |: W$ V7 c& p% u
4,页面CACHE1 b- h+ ^9 r$ v
[color=#FFFFFF']/ S; C% Q3 K' f
( V2 _/ Z. Y( o
当然,系统频繁的访问二级页表,会造成很大的时间浪费,因此引入了页表CACHE,用来保存最近使用的页面,或者频繁使用的页面,关于CACHE的原理这里不再详细讲解,有兴趣的朋友可以查一些,计算机专业的基础教材3 E: w: G, e2 F
[color=#FFFFFF']
- _. g3 J/ x7 F4 x1 c+ P9 U& T$ \# s& E, g
至此,LINUX使用的836保护模式,基本上讲解完毕。至于控制转移和任务切换。和一般的汇编编程差不多少,本人汇编水平太低。不在献丑# p+ m( T* I. y2 q4 W9 r
[color=#FFFFFF']
0 A( p7 E3 h% B& ?4 _# c# o2 P. a+ r7 q+ a( [
总的说来,多任务的切换,以及保护模式的应用。虚拟存储系统的实现,是建立在硬件技术支持之上的。
& O( v. ]# Z$ n* z& e; e: C# R个人认为,LINUX的存储管理。在不同的机器上是完全不同的,至于linux是否为他们提供了统一的接口。我还不太清楚。可以参见其他机型的源码, d- V' q6 F% `  |0 f; ]0 l! e
[color=#FFFFFF']
(※本文搜集自:重庆未来科技 http://www.wlkj.net 重庆IBM笔记本电脑、重庆IBM水货笔记本电脑、重庆苹果笔记本电脑、重庆IBM服务器专卖)

TOP

发新话题