CPU的架构:要求能够理解从源程序到微指令的整个经历过程:存储器的层次结构(网络资源下载到硬盘、磁盘缓存、内存、Cache、寄存器);CPU的四大部分:ALU、CU、中断系统和寄存器;程序执行的整个过程(高级语言机器、汇编语言机器、操作系统机器、机器语言机器和微指令系统)。

进程控制块PCB位于内核空间。

MMU(内存管理单元):包括从逻辑地址到虚拟地址(线性地址)再到内存地址的变换过程、页式存储管理、段式存储管理、段页式存储管理、虚拟存储管理(请求分页、请求分段、请求段页)。 MMU位于CPU内部,可以假想为一个进程的所需要的资源都放在虚拟地址空间里面,而CPU在取指令时,机器指令中的地址码部分为虚拟地址(线性地址),需要经过MMU转换成为内存地址,才能进行取指令。MMU完成两大功能:1.虚拟地址到内存地址的地址变换;2.设置修改CPU对内存的访问级别。比如在Linux的虚拟地址空间中,3-4G为内核空间,访问级别最高,可以访问整个内存;而0-3G的用户空间只能访问用户空间的内容。其实这也是由MMU的地址变换机制所决定的。对于Inter(英特尔)CPU架构,CPU对内存的访问设置了4个访问级别:0、1、2、3(如上图所示),0最高,4最低。而Linux下,只是使用了CPU的两种级别:0、3。CPU的状态属于程序状态字PSW的一位,系统模式(0),用户模式(1),CPU交替执行操作系统程序和用户程序。0级对应CPU的内核态(特权态、管态、系统态),而3级对应用户态(普通态或目态),这其实是对内核的一种保护机制。例如,在执行printf函数的时候,其本身是在用户空间执行,然后发生系统调用,调用系统函数write将用户空间的数据写入到内核空间,最后把内核的数据刷到(fsync)磁盘上,在这个过程中,CPU的状态发生了变化,从0级(用户态)到3级(内核态)。

综上,MMU只是在读内存和写内存完成地址变换,以及更改CPU的访问级别。

CPU和MMU(内存管理单元)相关推荐

  1. MMU内存管理单元简介

    MMU 全称叫做 Memory Manage Unit,也就是内存管理单元. 在老版本的 Linux 中要求处理器必须有 MMU,但是现在 Linux 内核已经支持无 MMU 的处理器了. MMU 主 ...

  2. MMU内存管理单元详解

    MMU 诞生之前: 在传统的批处理系统如 DOS 系统,应用程序与操作系统在内存中的布局大致如下图: 应用程序直接访问物理内存,操作系统占用一部分内存区. 操作系统的职责是"加载" ...

  3. MMU内存管理单元之TLB快表

    文章目录 1. TLB快表 1.1 MMU的cache --TLB 1.2 快速上下文切换FSCE 1.3 Global TLB和non-global 1. TLB快表   页表以数据结构的方式存放在 ...

  4. MMU内存管理单元(看书笔记)

    http://note.youdao.com/noteshare?id=8e12abd45bba955f73874450e5d62b5b&sub=D09C7B51049D4F88959668B ...

  5. 操作系统 内存管理单元MMU TLB

    前言 在了解操作系统 内存管理 分页/分段/段页式管理.操作系统 虚拟内存技术两篇文章后,接下来继续看看现代操作系统基本内存管理方式,本文详细介绍Linux操作系统下的内存管理单元MMU和TLB. d ...

  6. Linux 中的内存管理单元MMU

    MMU (内存管理单元) 基础概念 1.TLB – 转换旁路缓存,里面存放着少量的虚拟内存与实际物理内存之间的对应关系,被称为快表. 2.TTW – 漫游转换表,当TLB中没有对应的转换关系,通过对内 ...

  7. 内存管理单元--MMU

    现代操作系统普遍采用虚拟内存管理(Virtual Memory Management)机制,这需要处理器中的MMU(Memory Management Unit,内存管理单元)提供支持,本节简要介绍M ...

  8. 内存管理单元MMU学习

    MMU MMU是Memory Management Unit的缩写,中文名是内存管理单元,有时称作分页内存管理单元(英语:paged memory management unit,缩写为PMMU). ...

  9. 【软件开发底层知识修炼】三 深入浅出处理器之三 内存管理与内存管理单元(MMU)

    学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 上一篇文章学习了中断的概念与意义,以及中断的应用-断点调试原理.点击 ...

最新文章

  1. 美团一面,看看你能否回答上来?
  2. 2018 F40中国青年投资人
  3. Linux_基础指令
  4. 数字信号处理学习笔记(五)|有限脉冲响应数字滤波器的设计
  5. 关于eclipse中web项目tomcat报错Server Tomcat v9.0 Server at localhost failed to start问题解决
  6. python遥感影像分类代码_python,sklearn,svm,遥感数据分类,代码实例
  7. javascript date php date,JavaScript Date 知识浅析
  8. Python笔记-BeautifulSoup基本用法(通过标签及class定位元素)
  9. ggplot2柱状图
  10. clock_gettime系统调用详解
  11. 基于matlab的简单人脸识别程序代码
  12. URL和URI的区别及理解
  13. 1.2 几个经典博弈模型(囚徒的困境、赌胜博弈、产量决策的古诺模型)
  14. 有什么优质的计算机专业书籍?操作系统、计算机网络、计算机组成、数据结构、数据库.....
  15. Java处理图片和视频文件——视频抽帧与图片压缩
  16. mac显示隐藏文件夹
  17. CVE-2022-28512 Fantastic Blog CMS 存在SQL注入漏洞
  18. 晨星、银河基金业绩排行榜数据转换工具
  19. mysql主从配置duxi_做Mysql主从时,注意使用replicate_wild_do_table和replicate-wild-ignore-table...
  20. 不跟风,容器技术的真实优、缺点

热门文章

  1. 替换Quartus 自带编辑器 (转COM张)
  2. mysql主从安装配置_如何安装和配置mysql主从同步
  3. java21个知识点重点_java21个知识点重点
  4. int最大值java_Java 中一个int型数组的求最大值最小值 | 学步园
  5. mysql5 varchar_MYSQL 5.7 VARCHAR 类型实验
  6. php mysql 正则_MySQL 正则表达式
  7. linux将所有文件生成lst_Linux自定义repo文件
  8. 大头贴计算机教程,推荐!自家电脑也能拍大头贴的秘密
  9. 程序如何在两个gpu卡上并行运行_深度学习分布式训练相关介绍 - Part 1 多GPU训练...
  10. python使用多线程写生成器_Python学习——多线程,异步IO,生成器,协程