Intel 手册阅读
文章平均质量分 64
FENG_CLOWN
这个作者很懒,什么都没留下…
展开
-
Intel 分页
一个块内存,我们将数据给 代码段 分配为多少内存合适呢,分得多不合适,分的少也不合适,所以我们就需要将内存进行规划存储。如果只有一级页表,那么我就需要将一级页表都要进行数据分配,那么现在引入二级页表,那么一级页表就变少了。而我们只需要将一级页表进行分配。每一个进程都有这样的结构,如果每一个进程都需要使用完整个内存,那么就需要给每个进程创建一个 4MB空间,充分分配。我们需要创建根据进程,那么我们就将物理内存和需求内存解耦出来,不进保护了物理内存,而且一个进程可以拥有这个内存(在他自己看来)。原创 2023-03-21 18:28:15 · 105 阅读 · 0 评论 -
中断与异常
中断和异常是表示系统、处理器或当前正在执行的程序或任务中存在需要处理器注意的情况的事件。它们通常导致将执行从当前运行的程序或任务强制转移到一个称为中断处理程序或异常处理程序的特殊软件例程或任务。处理器响应中断或异常而采取的动作称为服务或处理中断或异常。在程序执行过程中,响应来自硬件的信号,中断随机发生。系统硬件使用中断来处理处理器外部的事件,例如服务外围设备的请求。软件还可以通过执行INT n指令来生成中断。当处理器在执行指令时检测到错误情况(例如被零除)时,会发生异常。处理器检测各种错误情原创 2023-03-21 18:27:42 · 433 阅读 · 0 评论 -
操作系统
我现在开始深入操作系统。我们现在了解了一个程序运行时,是通过ELF文件格式,在内存中进行了布局,而操作系统就是对ELF文件进行解释并加载进内存中。而一个程序的布局如下图操作系统通过加载ELF文件,将程序的加载并运行。如果是静态链接,使用 PLT 直接替换,如果是动态链接则使用的是 GOT 和 PLT 共同来实现,找到程序的入口点(地址)entry_point 存放在IP寄存器中,而代码在代码段寄存器中,段寄存器中存的是偏移量,将IP寄存器中存放的基地址和段寄存描述符存放的偏移量相加得原创 2023-03-21 18:27:00 · 240 阅读 · 0 评论 -
CPU流水线
这样的场景显而易见的效率慢,那么我们就想出,如果每一个阶段执行完成,去通知下一个阶段去执行就行,我就去处理下一个用户的订单了。那么这样效率就提升上来了,这样我通知下一个阶段的的信息就需要一个地方存储。这个时候就有个问题,如果一个CPU有两个核心,每一个核心都有自己的一级缓存,那么当一个 on-chip 使缓存的数据发生了变化,但是另一个 on-chip 不知道上一个 on-chip 已经将数据进行了修改,这个时候就出现了数据不一致的问题,而后我们看文档得知他是实现了 MESI。为了解释流水线的这个问题。原创 2023-03-21 18:25:48 · 1247 阅读 · 0 评论 -
Intel 实模式和保护模式
如果一个程序已经给他分配了他的代码段,数据段,堆栈段,这个是执行到一条指令,突然要访问,另一个程序的的地址,这个时候对于其他程序来说就是不安全的,或者说他这个时候去访问操作系统的地址,程序之间不能胡乱访问,如果操作系统的内存被更改了,有可能整台计算机都会崩溃。DPL 为目标可访问的权限码。CPL 当前程序的权限码,RPL 当前程序请求的权限码。CPL 和 RPL 中取得最大值,然后和DPL进行比较,当前不相同,则抛出异常。CPL 和 RPL 中取得最大值,然后和DPL进行比较,当前相同,则允许访问。原创 2023-03-21 18:23:05 · 254 阅读 · 0 评论 -
Intel 发展历史
可以使用 20 位的地址总线去访问 1MB 的数据。之前主存的数据最小单位是1kb 现在主存的增加到了 1Mb 那这个时候使用 16 位的地址总线去访问,就不行了。1978 年,发布了两个版本一个是 8086 一个是 8088,8086 使用额 16位的寄存器和 16 位的数据总线,20 位的地址总线,可以读取1MB的地址空间,而8088 不同于 8086 有 8位的数据总线。当到了这一版我们发现了 当前版本增加了 三个东西,具有了保护机制。当前CPU是32位的,那么他的寄存器也扩展到了32位。原创 2023-03-20 19:27:12 · 203 阅读 · 0 评论 -
Intel 开发手册阅读
首先了解一个CPU得了解他是如何发展而来的,所以我先先看的他的历史部分。在此我们选择阅读 Intel 的开发手册,进一步来了解计算机。CPU的实现影响着操作系统的实现。第四卷:模型专用寄存器。第三卷:系统编程指南。原创 2023-03-20 19:26:29 · 525 阅读 · 0 评论