操作系统系列——CPU和内存

article/2025/10/13 18:05:26

操作系统作为所有程序运行的载体,了解其基本组成和运行的逻辑也是十分重要的。虽然要弄明白它的方方面面需要花很长的时间,但作为底层码弄,弄清楚与平常程序打交到的CPU、内存、磁盘等工作原理也十分重要。因此这里我将学习的过程和知识点做一个记录,方便知识的记录和查询。

什么是CPU

CPU(Central processing Unit)中央存储单元是一块超大的集成电路。CPU主要由运算器,控制器,寄存器和内部总线等部件组成。
运算器
运算器主要由,算数逻辑单元(ALU)、累加寄存器、数据缓冲寄存器、和状态条件寄存器组成。它是数据加工的处理部件,完成各种算数和逻辑运算。它是执行部件,所有的操作都根据控制器发送的指令进行,运算器主要有下列两种功能:
(1)执行所有算数运算,加减乘除基本运算级附加运算
(2)执行所有逻辑运算,如与、或、非、零值测试或两个值的比较等
运算器各部件功能:
(1)ALU(Arithmetic and logic unit)负责处理数据,实现对数据的算数运算和逻辑运算
(2)累加寄存器(AC)它是一个通用寄存器为ALU计算时提供一个工作区
(3)数据缓冲寄存器(DR),通用寄存器缓存从内存储器读取指令或数据字,并为不同时段读取的数据进行隔离
(4)状态条件寄存器(PSW),保存有运算器执行算数运算和逻辑运算或测试的结果建立各种条件吗和内容,保存当前指令执行结果的状态。算数运算产生一个结果,而逻辑运算产生一个判决
控制器
控制整个CPU的工作,控制器一般包含指令控制逻辑,时序控制逻辑、总线控制逻辑和中断控制逻辑几个部分。
它的组成部分为:
(1)指令寄存器(IR),cpu读取指令时先把它从内存储器中读取到缓冲寄存器,在放入指令寄存器中,指令译码器解析指令,产生操作命令控制其他部件
(2)程序计数器(PC),也称指令计数器。指令的执行分为两种,一种是顺序执行,一种是转移执行。在程序开始执行的时候,将程序的初始地址送如PC中,如果是顺序执行则只需要将地址+1,如果是转移指令则是在当前地址上加上向前或向后的位移量,或者直接给出转移地址
(3)地址寄存器(AR),AR用于存储当前cpu所访问内存单元的地址。由于内存和cpu在操作的速度上存在着差异,所以需要AR保存地址,直到内存的读写完成。
(4)指令译码器(ID),指令分为操作码和地址码两个部分,译码器就是对操作码部分进行进行分析,识别出指令规定的操作以向各部件发送命令。
寄存器组
寄存器组分为通用寄存器和专用寄存器,运算器和控制器中的寄存器为专用寄存器。通用寄存器可有程序员规定器用途。
内部总线
内部总线将处理器的所有结构单元相连,它的宽度可以是8位,16,32,64等
目前比较流行的几种内部总线技术:
I2C,SPI,SCI

多核CPU

多和CPU是指在一块CPU芯片上集成多个CPU单元,每个单元都有控制单元,运算单元,中断处理单元,一级缓存和二级缓存

什么是内存

内存也称为内存储器或主存储器
内存是外存与CPU沟通的桥梁,所有的应用程序都是运行内存中。当操作系统运行时,会将需要计算的数据从内存方在CPU进行计算,完成之后在写回内存。

大家都直到计算机其实是使用0和1的电路位来标示数据的,这里我们只需要直到,向内存cpu等部件的物理设备能存储这种0和1的电信号就可以,内存中一般包含一个内存地址和具体的用二进制保存的内存数据。

前面有提到,CPU的控制器的AR中或存储内存储器的地址,通过地址与内存进行交互。
接着来了解一下,平时我们程序所交互的内存到底是个什么样的结构?
我们先来了解大致了解一下操作系统的内存结构:
计算机的主存可以看做是N个连续字节大小的单元组成的数组,每个字节单元有自己的物理地址成为PA

在这里插入图片描述
这种cpu直接直接访问主存的方式有中弊端:

  1. 首先所有进程共享内存,如果直接使用主存则空间很快会被用光
  2. 如果进程间的主存可以互相访问,则很容易导致物料地址空间被破坏导致程序异常

所以现在操作系统会在cpu和主存总加上一层,虚拟内存virtual Memory
在这里插入图片描述
由MMU将虚拟地址转换为实际的物理地址。
在32位系统上虚拟地址的空间为2^32bit=4G, 在64位系统上只使用到低48位为2^48bit=256T。使用虚拟地址可以提供更大的地址空间、地址空间连续使程序认为它的内存地址空间都是连续的、可以对不同进程间的内存进行隔离,同时可以将同一块物理内存映射到两个虚拟内存实现内存空间的共享。
这里我们稍微探讨一下虚拟地址是如何映射到物理地址的?
(这里有涉及到内存分段和分页的概念,因为分段存在着许多的坏处,比如内存碎片等,因此现在操作系统大部分都是采用分页模式)
在这里插入图片描述
由cpu生成的每个逻辑地址包含两个部分,p表示页表中的索引号,d表示偏移量
页表中存的是每个内存的基地址,真是的内存地址是通过基地址+偏移量。
页的大小和帧的大小一致都为2的幂,设置成2的幂次,可以方便cpu将逻辑地址转为计算页号和偏移量,如果逻辑地址空间为2^m 次方,页的大小为2^n次方,那么逻辑地址的高m-n位则为页号,低n位表示页偏移量。按照这种计算方式:

在这里插入图片描述
则虚拟地址8转为二进制表示为1000, 高2位为2,偏移量为0,2对应页码中的基地址为1,则实际内存地址为4*1+0=4,所以放在内存为4的位置
当一个进程启动时,计算机将检查该进程的大小,并为期查找空间的内存帧。将帧码一页一页放入页码列表中。
由于操作系统管理内存,因此它必须知道内存每一帧的具体状况。是在用还是空闲。因此操作系统中有一个帧表的数据结构用以记录这些内容。
操作系统会为每个进程保留一个也表的副本,当需要进行虚拟内存与物理内存转换的时可以用到。

看下硬件支持

操作系统有自己保持页表的方法,一般计算机会采用cpu寄存器的方式来保存也表,但随着页表的增大,寄存器容量明显不足,这时就会使用转换表缓冲区(TLB)来加速访问
其机构如下:

在这里插入图片描述

参考资料:

软件设计师考试同步辅导第四版
内存分页机制完全攻略


http://chatgpt.dhexx.cn/article/8D8ddXOj.shtml

相关文章

【IC卡】终极版复卡器操作方法 ID卡读取方法

终极版复卡器操作方法 ID卡读取方法: http://rfid.polinktech.com/RFID-Toolkit/RFID%E8%AF%BB%E5%8D%A1%E5%99%A8%E6%93%8D%E4%BD%9C%E8%AF%B4%E6%98%8E.pdf 1. 放上ID卡,,显示如图界面,点击读取卡号。 2. 读取卡号后,放上新的…

NFC手机模拟加密门禁卡

CSDN仅用于增加百度收录权重,排版未优化,日常不维护。请访问:www.hceng.cn 查看、评论。 本博文对应地址:https://hceng.cn/2019/07/12/NFC手机模拟加密门禁卡/#more 记录小米手机NFC模拟加密门禁卡,以及Proxmark3的使用。 0. 缘…

Arduino + RFID 读取 IC 卡 Arduino uno中获得RFID的UID 并通过串口转发RFID卡号

RFID简介:射频识别即RFID(Radio Frequency IDentification)技术,又称无线射频识别,是一种通信技术,可通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或光学接触。常用的有低频(125k~134.2K)、高频(13.56Mhz)、超高频,微波等技术。…

UID卡修改UID锁死修复

原文地址::http://www.hackdig.com/?10/hack-15044.htm 相关文章 1、论如何优雅地蹭饭:克隆篡改公司饭卡(M1卡)----http://www.freebuf.com/articles/wireless/50123.html 2、什么是UID卡,它与普通卡有什么不同?---…

UID卡读取与写入

1、电脑连接PN532 NFC模块,将NFC卡放置模块上。 2、打开MifareOneTool,选择“高级操作模式”,选择“手动扫描”,卡查看当前卡片的属性。 3、已加密卡可选择采用“MFOC读”来读取当前卡片的信息,读取完成后将数据保存至…

UID卡_ID卡

1、基本信息 M1卡:全称Mifare classic 1K,普通IC卡,0扇区不可修改,其他扇区可以反复擦写。通常我们使用的门禁卡、电梯卡都是M1卡。 M1卡是NXP(恩智浦半导体)公司研发的IC卡,执行标准是ISO/IE…

北京内推 | 华为CloudAI机器视觉产品部招聘计算机视觉见习研究员

合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 华为 华为云机器视觉产品部是华为云当前的核心部门。在这里,你将直接接触到最前…

2021 马克拉伯大视觉奖:探索、创造机器视觉的价值

引言:马克拉伯是集软件、硬件、人才为一体的视觉开放社区,致力于帮助工业用户以最低 门槛、成本部署机器视觉,目前社区拥有6000多位分别来自系统集成商、终端企业及院校科研机构的工程师们,他们在探索、创造机器视觉价值的过程中,运用社区开放的机器视觉软SGVision已部署…

辰视将携3D视觉技术及各领域解决方案参加华南工博会国际机器视觉展

新一轮工业革命方兴未艾,全球工业数字化转型迈向纵深。在素有“世界工业发展晴雨表”之称的汉诺威工业博览会,有关数字工业、智能制造的设想和愿景越来越多地变为现实应用。 创办于1947年的汉诺威工博会是全球最大的工业展,也是德国“工业4.…

【十大视觉传感器厂家排名】

我们今天先不从视觉检测解决方案的角度出发,而是从ccd视觉传感器检测产品的角度来评选出机器视觉龙头企业。众所周知,整个视觉系统我们所用到的软硬件产品有:光源、镜头、工业相机、视觉软件等,那么在这些领域哪些公司做的比较好呢…

机器视觉与图像处理研究必备

机器视觉和图像处理的研究工作,做到以下两点非常重要: 1、把握国际最前沿的内容 2、所做的工作具备很高的实用性 上述两点的解决方法分别为:找到这个方向公认成就最高的几个超级专家;找到实际应用的项目,边做边写文章…

机器视觉 光学工程专业_学引之高校专业篇(一):光学工程

2020年注定不平凡,一场突如其来的疫情防控阻击战,在中华大地骤然打响,这是一场没有硝烟的持久战,关系到每个人的生命健康。从中我们失去了很多,但也收获了很多。这段经历中最难熬的应该还是广大莘莘学子,尤其是应届高三毕业生,在经历疫情只能呆在家里备考,脱离早已习惯…

中国工业机器视觉应用领域9家新晋企业名单

基于在速度、精度以及可重复性等方面的绝对优势,机器视觉在工业自动化的重要性不言而喻,其不仅可以使产品质量更加稳定,还能提高生产过程中的柔性化程度。甚至在一些不适于人工作业的危险工作环境中,机器视觉已难以替代。 事实上…

一文看懂机器视觉芯片

来源:半导体行业观察 来源:半导体行业观察 【导读】机器视觉之于人工智能等同于视觉之于人类,本文系统介绍决定机器视觉的两大要素——视觉算法和芯片,重点介绍国内外视觉芯片市场及发展前景,包括重量级玩家及其产品。…

2023中国机器视觉领域最具商业合作价值企业盘点

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 机器视觉最先的应用来自“机器人”的研制,20世纪70年代CCD图像传感器的出现,CCD摄像机替代硅靶摄像是机器视觉发展历程中的一个重要转折点。 机器视觉作为新兴技术被寄予厚望,也被认为是自…

机器视觉九大应用场景

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达本文转自|新机器视觉 机器视觉是人工智能重要分支,机器视觉在应用上具有广泛性,能够在智能制造,以及众多智能生活领域展开应用&#x…

中国机器视觉产业业发展战略研究及投资方向分析报告2022-2027年

中国机器视觉产业业发展战略研究及投资方向分析报告2022-2027年 第1章:机器视觉行业概念界定及行业发展环境剖析1.1 机器视觉界定 1.1.1 机器视觉界定 1.1.2 机器视觉原理 1.1.3 机器视觉作用 1.1.4 行业所属的国民经济分类 1.1.5 本报告的数据来源及统计标准说明 1.2…

中国机器视觉产业全景图谱

https://www.toutiao.com/a6717769414466339339/ 眼睛是最重要的感觉器官,可在一定程度上肉眼在许多时候被限制。机器视觉的发展,是人类不断突破生理的界限,相当于为机器设备安上了感知外界的眼睛,使机器具有像人一样的视觉功能&a…

中国十大机器视觉公司排名

目录 ​编辑 十大机器视觉公司排名,机器视觉行业哪个公司实力强 一、劲拓股份 二、精测电子 三、赛腾股份 四、美亚光电 五、矩子科技 六、LEAD先导 七、康鸿智能 八、华兴源创 九、天准TZTEK 十、深科达 中国十大机器视觉公司:国内3D机器视…

Jpython相比Cpython而言没有全局解释器锁(GIL),那嘎哈我们不用Jpython?

引用文章:Python在其它语言中的应用研究 曾浩 2012.7