监测网站定制北京网站开发建设 58同城

张小明 2026/1/14 9:06:53
监测网站定制,北京网站开发建设 58同城,安徽智能网站建设,哈尔滨免费做网站先来看两张图大致了解一下基本结构#xff1a;CPU我们先来看看一条程序是如何执行的#xff1f;CPU 执行程序的过程如下#xff1a;第⼀步#xff0c;CPU 读取「程序计数器」的值#xff0c;这个值是指令的内存地址#xff0c;然后 CPU 的「控制单元」操作「地址总线」指…先来看两张图大致了解一下基本结构CPU我们先来看看一条程序是如何执行的CPU 执行程序的过程如下第⼀步CPU 读取「程序计数器」的值这个值是指令的内存地址然后 CPU 的「控制单元」操作「地址总线」指定需要访问的内存地址接着通知内存设备准备数据数据准备好后通过「数据总线」将指令数据传给 CPUCPU 收到内存传来的数据后将这个指令数据存⼊到「指令寄存器」。第二步CPU 分析「指令寄存器」中的指令确定指令的类型和参数如果是计算类型的指令就把指令交给「逻辑运算单元」运算如果是存储类型的指令则交由「控制单元」执行第三步CPU 执⾏完指令后「程序计数器」的值⾃增表示指向下⼀条指令。这个自增的大小由CPU 的位宽决定⽐如 32 位的 CPU指令是 4 个字节需要 4 个内存地址存放因此「程序计数器」的值会⾃增 4简单总结⼀下就是⼀个程序执行的时候CPU 会根据程序计数器⾥的内存地址从内存里面把需要执行的指令读取到指令寄存器里面执行然后根据指令长度自增开始顺序读取下⼀条指令。CPU 从程序计数器读取指令、到执行、再到下⼀条指令这个过程会不断循环直到程序执行结束这个不断循环的过程被称为CPU 的指令周期。这里可能有人又会有疑问了你说 CPU 读取「程序计数器」的值那程序计数器的值在哪来了解这里的程序计数器PC/RIP的值从哪来—— 现代 Linux 版阶段一系统启动从 UEFI 到 Kernel当你按下电源键时现代 Linux 的接力跑是这样的硬件强制 (Reset Vector) 通电瞬间CPU 的程序计数器在 64 位下叫RIP被硬件强制指向主板 Flash 芯片上的UEFI 固件入口。UEFI 掌权 (The Firmware) UEFI 开始运行初始化硬件内存、显卡等。关键区别它不再去读取硬盘的前 512 字节MBR而是直接挂载硬盘上的ESP 分区一个 FAT32 格式的分区。加载“垫脚石”与引导程序 (Shim GRUB) UEFI 在 ESP 分区里找到并执行.efi文件。通常先执行shimx64.efi为了通过安全启动验证。然后由 Shim 拉起真正的 Linux 引导程序GRUB(grubx64.efi)。此时PC 指针指向了内存中的 GRUB 代码。加载内核 (Loading vmlinuz) GRUB 读取配置文件找到硬盘里的Linux 内核文件通常叫vmlinuz和初始化内存盘initramfs。 GRUB 把这两个大文件加载到内存里。移交控制权 (Kernel Takeover) GRUB 完成任务修改 PC (RIP) 指针使其指向Linux 内核的入口地址。从此CPU 归 Linux 内核管开始初始化systemd等进程。阶段二你运行程序ELF 的加载与执行当你双击一个图标或者在终端输入./my_program时Linux 内核开始忙活了识别格式 (Not .exe but ELF) Linux 不认.exe它运行的是ELF (Executable and Linkable Format)格式的文件。 操作系统调用fork()和execve()系统调用来启动新进程。映射而非搬运 (mmap)关键修正现代 Linux 通常不会傻傻地把整个文件从硬盘一次性“搬运”到内存。它使用mmap(内存映射)技术在虚拟内存里“占个座”告诉 CPU“这个程序的数据在硬盘的某某位置用到的时候再去拿缺页中断。”这样速度极快。动态链接 (Dynamic Linker) 大多数 Linux 程序需要依赖.so库类似 Windows 的 .dll。 内核会先让 PC 跳到动态连接器(ld-linux.so) 的地址由它把需要的库如libc.so加载进来。寻找入口 (Find Entry Point) Linux 读取 ELF 文件的头部信息ELF Header找到Entry Point Address。注意现代系统开启了ASLR (地址随机化)所以入口地址不再是固定的0x8000这种整数而是一个每次运行都不同的随机虚拟地址例如0x55a3...以防止黑客攻击。JUMP (Context Switch) 万事俱备内核调度器Scheduler决定运行这个新进程。 内核修改 CPU 的RIP 寄存器程序计数器将其指向程序的 Entry Point通常是_start符号随后调用main函数。开始执行 CPU 看到 RIP 变了跳转到用户空间的代码开始执行。你的 Linux 程序窗口比如 VS Code 或 终端输出就出现了。下面以a 1 2为例看看在冯诺伊曼模型32位 CPU下的程序执行过程第一步翻译与布局 (Compile Layout)翻译编译器将高级代码a 1 2依次转化为汇编代码-机器码CPU 唯一认识的 0/1 指令。分段存储数据段存放数据1(在 0x100) 和2(在 0x104)。正文段存放编译后的4 条指令(从 0x200 开始)。第二步初始化 (Initialization)程序计数器 (PC)被设置为程序的起始指令地址0x200准备开始执行。第三步指令执行循环 (Execution Cycle)CPU 依次执行正文段中的 4 条指令Load (取数)把地址0x100里的数1加载到寄存器R0。Load (取数)把地址0x104里的数2加载到寄存器R1。Add (运算)CPU 运算单元计算R0 R1结果3存入R2。Store (存回)把R2里的结果写回内存地址0x108变量 a 的位置。第四步地址自增 (PC Increment)每执行完一条指令PC 自动增加4因为 32 位 CPU 中一条指令占 4 字节指向下一条指令0x200 - 0x204 - ...直到程序结束。RAM我们先来看看 RAM 的大致结构以及操作系统是如何管理 RAM 的地址隔离安全性 操作系统为每个进程分配独立的虚拟地址空间。进程只能看到并使用自己的虚拟地址无法直接触碰物理内存从而互不干扰。两套地址概念区分虚拟地址程序代码中使用的逻辑地址。物理地址内存条RAM硬件上实际存在的存储地址。动态映射核心实现 操作系统维护映射表由硬件MMU内存管理单元负责实时将“虚拟地址”翻译成“物理地址”确保数据准确落入物理内存且不发生冲突。所以我们重点要了解的一个概念就是 ——虚拟内存学习虚拟内存之前我们需要了解虚拟内存怎么发展来的虚拟内存是啥计算机发展史上的两个核心阶段实模式Real Mode到保护模式Protected Mode/Virtual Memory阶段一裸奔时代无操作系统 / DOS 时代你可以叫它单片机模式、实模式。写代码的人必须知道这台机器有多少内存。如果机器只有 1KB 内存你写代码往0x2000写数据程序直接崩溃或跑飞。编译出的指令MOV EAX, [0x100]执行过程CPU 看到0x100直接把电流送到内存条的第 100 号单元。缺点不安全程序 A 可以随意修改程序 B 的数据因为大家都在物理内存上裸奔。麻烦每次换个内存大小不同的电脑程序可能都要重新改。阶段二现代操作系统时代虚拟内存时代你可以叫它保护模式。写代码的人完全不用管物理内存多大。你假装自己有 4GB随便用。编译出的指令MOV EAX, [0x100]注意这里的指令长得一模一样执行过程指令中的地址0x100是虚拟地址。中间层介入CPU 想去访问0x100被**MMU硬件**拦住了。查表OS的工作MMU 去查操作系统维护的页表。映射页表上写着“虚拟0x100- 物理0x9999”。最终访问电流最终去读内存条的第9999号单元。接下来我们就学习一下操作系统是如何管理虚拟地址与物理地址之间的关系1. 虚拟内存机制核心目标隔离与扩展隔离性为每个进程分配独立的虚拟地址空间进程间互不干扰感知不到物理内存的差异。内存交换 (Swap)通过将不常使用的内存数据暂时“换出”到硬盘解决物理内存不足的问题。2. 地址映射方案分段 vs 分页分段 (Segmentation)按逻辑代码、堆、栈分块连续但大小不一。缺点易产生内存碎片内存交换效率低。分页 (Paging)按固定大小如 Linux 4KB切分。优点彻底解决外部碎片大幅提升内存交换效率按页流转。3. 性能与空间优化多级页表 TLB多级页表解决“页表本身占用内存过大”的问题空间换时间虽然变慢但省内存。TLB (快表)利用局部性原理在 CPU 缓存最近的映射关系解决“多级页表导致寻址慢”的问题提速。4. Linux 的具体实现“屏蔽”分段策略Linux 主要采用分页管理。兼容性为了兼容 x86 硬件的段式架构Linux 将所有段基址设为0。这被称为“扁平模型”实质上屏蔽了分段的逻辑地址转换只利用分段做权限控制。5. 虚拟空间布局两态区分虚拟空间划分为内核态高地址和用户态低地址。用户态包含代码段、数据段全局变量/BSS、堆Heap、栈Stack、文件映射区。一句话总结操作系统通过虚拟内存实现进程隔离利用分页解决碎片和效率问题通过多级页表TLB平衡空间与时间开销并在 Linux 中采用扁平模型弱化分段机制最终构建出高效、安全的内存管理体系。参考资料 —— 小林coding《图解系统》
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

响应式网站用什么语言信息展示网站系统

MATLAB/Simulink风光储交直直流混合微电网 直流: 光伏MPPT控制 蓄电池双向DC/DC 直流侧低压700V 交流: 风机MPPT控制 交流负载 连接电网 互联变换器: VSG最近在搞微电网仿真,发现风光储交直流混合系统是真有意思。尤其是用MATLAB/…

张小明 2026/1/10 5:22:00 网站建设

网站弹窗是怎么做的重庆网站建设 优化

使用Jupyter Notebook连接TensorFlow-v2.9镜像进行模型调试 在深度学习项目开发中,最让人头疼的往往不是模型结构设计或训练调参,而是环境配置——“在我机器上能跑”这句话几乎成了团队协作中的黑色幽默。不同操作系统、Python 版本、CUDA 驱动、Tenso…

张小明 2026/1/10 3:58:41 网站建设

做网站注册什么公司好下载官方版微信

PaddleOCR GPU极致性能?实测不同显卡下的推理耗时 在智能文档处理、自动化办公和工业质检等场景中,OCR(光学字符识别)早已不再是“能不能识别”的问题,而是“多快、多准、多稳”的工程挑战。尤其面对中文复杂版式、低…

张小明 2026/1/10 1:12:04 网站建设

网站运营外包公司做网站编辑累不累

2025年12月,豆包AI手机的发布瞬间引爆了整个科技圈,媒体和社交平台上的讨论声浪几乎没有停歇。这款由豆包科技推出的手机不仅在功能上做出了许多创新,更是通过其革命性的人工智能系统,提出了一种全新的智能手机使用体验。然而&…

张小明 2026/1/9 21:51:45 网站建设

气象网站建设管理的不足深圳便宜做网站

手机的适配性体现在多个维度,涵盖操作系统、硬件设备、应用程序以及网络环境等方面,总体表现出较为广泛的适应性,但在部分特定场景下也存在一定局限。云手机主要基于安卓操作系统,这是由于安卓系统的开源特性使得在云端进行虚拟化…

张小明 2026/1/14 1:24:06 网站建设

自己做网站什么网站比较好佛山手机建站模板

你是不是也遇到过这样的尴尬时刻?🤔 拿出手机想扫描二维码,结果屏幕上一片空白,或者提示"无法识别"!别着急,今天我要分享的就是如何让那些"瘫痪"的二维码重新焕发生机,成为…

张小明 2026/1/10 19:21:14 网站建设