|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
回寝室了
前天在家里研究下shell的时候,看到别人讲解的时候还是有点犯模糊
本着学习就是要知根知底,1个概念的模糊,会造成其实自己什么都不会的想法
我把PED和PTE又重新整理了下。
由于本人不会操作画图,也没好心人教,只有自己随便折腾工具
保护模式下的存储机制
页式存储
PED和PTE
先介绍下他们的共同点,PDE是页表, PTE是页 都是4KB大小。
PDE
PTE
由于第一次自己做图,如果看不清楚,我稍后上传到自己的相册去。
P存在位, 表示当前条目指向的页或者页表是否存在物理内存中, P = 0表示页不存在内存中, 如果试图访问, 则会造成异常
p = 1 就表示在内存中
P/W 指定一个页或者页组 例如,条目指向的是页表和页的权限, R/W = 0表示只读, R/W = 1表示可读和写
U/S 指定一个页或者组页 , 比如, 条目指向的页表的页目录条目的权限 。U/S = 0 表示系统权限, U/S = 1 表示用户级别
PWT 用于控制对单个页或者页表的缓冲策略 。 PWT = 0时候使用的是Write-back缓冲策略 PWT = 1时候使用的是Write-through缓冲策略
PCD 用户控制可不可以被缓冲。 PCD = 0时候页活页表是可以被缓冲的,否则相反
A 指向是否可以被访问, A位在页或者页表被加载进入内存的时候很可能被清0, 处理器也会在访问他的时候然后设置此位。即,处理器不会清理此位,但是软件是很可能的。
D 指示页或者目录是否被写入 属性同A
PS 决定页大小 PS = 0时候, 为4KB, PDE指向页表
PAT 选择条目, 一般设置为0
G 知识全局页 如果此位被设置, 同时CR4中的PGE位被加载, 那么此页的页表或者页目录条目不会在TLB中变得无效。
处理器讲最近常用的页目录和页都会存放在TLB(Transkation Lookaside Buffer )的缓冲区中, 这样就可以加快我们的读取速度,相反只有在找不到的时候才会去更新,在去查找。 这个和小甲鱼老师在WIN32汇编语言程序设计中讲的是一样的
而当cr3被加载的时候, 所有的TLB将会无效 除页或者页目录的G位被重新设置!
//////////////////////////////////////////////////////////////////////////////////////////////////////
继续手记07的内容
//////////////////////////////////////////////////////////////////////////////////////////////////////
在单进程的基础上添加1个进程后,然后在多添加进程就是1个很轻松的事情了。
每一个进程都会在1个全局描述符GDT中有1个局部描述符LDT
在我们自己的原本基础上,多添加1个简单的函数,比如TestB 这样的操作就可以,然后继续扩展。
在处理中断上 是使用的时钟中断其实和Minix中断是一样的(在此我没有Minix的源码,见谅)
回顾从我写的手记1到现在,
流程
控制权交给引导扇区
加载Loader BOOT SECTOR
跳转到Loader
加载kernel
切换到kernel的GDT
在开始金如意内核操作的初始化8259A
初始化IDT
初始化GDT中的LDT2个描述符,与TSS
在调用进程,初始化进程表
指定时钟中断处理程序
让8259A可以接受我们的中断消息
restaet()
从而,实现我们的多进程调用
说的有些仓促,不过对于我来说,我是很能清晰的从读这些书中,明白了怎么从实模式下到保护模式下,不停的利用和调用保护模式的机制,然后从而时间我们的微宏。
最后剩下的,也就是进程调度和算法的实现了,这些并不是我现在能有能力去有感性认识的产物。
对于进程的小结
这节让我感觉压力十分的大,例如很多前辈说到了壳的概念的时候很多都是和这些有很大关系的, 对于调度进程我的感念真的是少之又少,在我看来,就是轻重缓急,然后利用保护模式的一层层麻烦的检测后然后确定你是不是真的很急,是真的很急么?真的好急??那好把,你先,你也急?但是你没他急,所以你等下。然后初始化操作,开始分页设置,然后开始一层层的索引,确认地址, 地址后开始产生全局描述符,设置局部描述符, 然后开始设置地址索引,属性等等,一步步的流程开始操作。
最后 进程是分任务, 服务, 和用户进程三种,在我看来,其实也就是个特权的产物,造成了人与人之间的区分,这是方便计算机,也是方便人们的识别。
如果要我来形容保护模式下的我们的话
苦逼青年~
|
评分
-
查看全部评分
|