美文网首页
CPU/MMU/PCB

CPU/MMU/PCB

作者: D_Major | 来源:发表于2020-03-04 16:54 被阅读0次

逻辑地址,就是指机器语言指令中用来指定一个操作数或一条指令的地址,由一个段(segment)和偏移量(offset)组成,说地直白点就是CPU拿到的地址。
线性地址,也叫虚拟地址,就是进程使用的地址。值得注意的是这个地址就是一个32位无符号的整型数,所以虚拟地址空间总共就是4 GB大小。
MMU有两个硬件电路单元,一个称之为分段单元(segmentation unit)、一个称之为分页单元(paging unit),下面是它的工作原理:
逻辑地址 -> [分段单元] -> 虚拟地址 -> [分页单元] -> 物理地址
所以MMU的存在使64位系统的内存大于4G时, 仍可以进行寻址, 实际访问到的物理地址是由MMU进行分配映射的.

add eax, ebx流程: 预取器从cache中获取一条二进制指令, 交给译码器判断指令内容, 从而调用对应的加法器和寄存器, 交给ALU做算术操作(只能加法和左移), 之后再赋值给寄存器, 然后再返回到内存里, 交给主线.


linux下CPU权限只使用0级和3级, 由MMU修改内存访问级别. MMU映射到物理内存的最小单位是页, 一页4k.
两个进程的用户区分别由MMU映射到物理内存的不同部分, 但kernel区指向物理内存的同一块, 因为kernel只有一份. 虽然两个进程的PCB表不同, 但共存于同一块物理内存中.
进程四种状态

进程有5种状态, 其中初始化和就绪态常合二为一. 挂起是一种阻塞态, 一般是等待I/O, 暂停运行, 等得到需要的资源后再就绪等待时间片. 各个状态均可以在任意时刻被停止(kill).

环境变量

环境变量表是一个char*数组, 结尾是NULL, 类似于命令行参数, 导入环境变量需要声明extern char** environ. 需要注意区分shell和程序是不同的进程, 其环境变量也不同, 只是值可以一样.
getenv("PATH")返回对应环境变量的值, setenv("ABC", "aabbcc", 1)设置新的环境变量, 1表示覆盖已有的, 0表示创建新的或不覆盖原有的(此时前两个参数作废).
unsetenv("ABC")删除环境变量, 删除不存在的环境变量时返回0也视作成功, 只有unsetenv("ABC=")这种情况才会返回-1看作失败.

相关文章

  • CPU/MMU/PCB

    逻辑地址,就是指机器语言指令中用来指定一个操作数或一条指令的地址,由一个段(segment)和偏移量(offset...

  • CPU和MMU

    版权声明:本文为CSDN博主「IT_10-」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出...

  • Linux学习-内存管理篇(二)-MMU介绍

    开篇从内存管理入手,先了解MMU最基本原理,分析下CPU是如何访问到内存的。 一、MMU介绍 MMU(Memory...

  • 浅尝辄止75-MMU

    CPU如何访问内存? MMU(Memory Managemant Unit) 很容易想象,CPU可以用物理地址对内...

  • CPU控制整个计算机的运作,取指令、执行指令CPU-cache存储器-总线-外部存储器CPU MMU 取址:CPU...

  • 操作系统支持

    存储管理 CPU-MMU-MemoryCPU把虚拟地址发给MMU,转换成物理地址到内存中寻找内容 虚拟内存管理的作...

  • uboot-step5 关闭MMU与cache

    uboot-step5 关闭MMU与cache MMU是什么 MMU 的概念参考百度百科的内容:MMU是Memor...

  • 2.2进程的状态、进程控制

    进程的状态 创建:操作系统为进程分配资源,创建PCB就绪:具备运行条件,但此时没有空闲CPU运行:占有CPU并运行...

  • PowerPC E500 MMU详解

    1. 什么是MMU? MMU是Memory Management Unit的缩写,中文名称为内存管理单元。MMU是...

  • uboot step 11 内存一下子变大了 ----MMU的配

    uboot step 11 内存一下子变大了 ----MMU的配置与使用 本文结构如下: MMU 介绍 MMU 相...

网友评论

      本文标题:CPU/MMU/PCB

      本文链接:https://www.haomeiwen.com/subject/mcrylhtx.html