当前位置: 首页 > news >正文

计算机基石:CPU、内存、硬盘与操作系统

本文作为JavaEE入门,对计算机是如何工作的这个问题做一个基础了解,主要目标是记住一些核心概念,让面试的时候有话可谈~

目录

1、冯诺依曼体系结构

2、计算机硬件组成图

3、内存与硬盘的对比

4、CPU

4.1 两个重要指标

4.1.1 频率

4.1.2 核心数

4.2 CPU执行程序(指令)的过程

4.2.1 程序加载(由操作系统完成)

4.2.2 指令执行循环(核心流程)

① 取指

② 解码

③ 执行

④ 写回

4.2.3 支撑机制(现代 CPU 特性)

4.2.4 结束

5、操作系统

5.1 进程

5.2 进程控制块 PCB

5.3 操作系统管理进程的步骤

5.3.1 创建阶段

5.3.2 进程调度与执行阶段

5.3.3 状态监视与资源管理

5.3.4 终止阶段


1、冯诺依曼体系结构

* 思考:有哪些设备既是输入设备,又是输出设备呢?

2、计算机硬件组成图

*本文主要涉及CPU、内存和硬盘。此图只为加深印象。

3、内存与硬盘的对比

①内存的数据访问速度快,硬盘的访问速度慢;

②内存的存储空间小,硬盘的存储空间大;

③内存数据断电后丢失,硬盘数据断电后持久存储;

④内存成本高,硬盘成本低。

而中央处理器(CPU)的特点是容量较小,存取速度较快,单位成本高。


4、CPU

4.1 两个重要指标

在现代日常开发生产中,主要关心CPU的两个指标:频率 核心数

4.1.1 频率

我们在查看电脑CPU时,会显示两个“速度”,一个是“基准速度”,另一个是“速度”。单位是GHz,也就是10亿Hz。

对应的,“基准速度”就是CPU的基频(也称默频),是CPU在正常、持续满负载下所有核心都能稳定运行的‌最低保证频率‌,由厂商设定,属于静态标称值,是固定的;

“速度”则是CPU的睿频(即加速频率),‌ 是 Intel 或 AMD 等厂商推出的‌动态频率调整技术‌,根据当前工作负载、温度、功耗等条件‌实时提升单个或多个核心的频率‌,以提高性能。是动态、自适应的。

4.1.2 核心数

因为CPU的频率是有上限的,当无法提升频率时,研发人员就会考虑增加CPU的核心数。

CPU内部是由数不清的 小的电路元件(计算单元) 构成的,计算单元越多,计算速度就越快。在CPU面积固定的情况下,要想计算单元多,单个计算单元就得越小。

但Intel公司认为增加核心的数量还不够,因此研发出了“超线程技术”,让一个CPU核心,顶两个。

我们在自己的电脑上查看CPU时,有以下两个指标:

其中,“内核”是物理核心,类比真实干活的人数;“逻辑处理器”是逻辑核心,类比实际上这些人能同时干多少任务。CPU核心数越多,干活效率就越高。

4.2 CPU执行程序(指令)的过程

CPU的根本任务是执行指令(Instruction),是一个取指 → 解码 → 执行 → 写回‌的循环过程,由硬件与操作系统协同完成。其中包含的重要组件有控制单元CU(Control Unit)、运算逻辑单元ALU(Arithmetic & Logic Unit)、程序计数器PC(Program Counter) 和指令寄存器IR(Instruction Register)。

CU:驱动ALU去进行具体的计算工作。

ALU:计算机中进行算数(加减乘除)、逻辑运算(与、或、非、异或、移位、求补等)的核心部件。

PC:保存要执行的下一条指令在内存中的地址。

IR:暂存要执行的下一条指令。

指令:主要由 操作码 + 被操作数 组成。本身是数字,以二进制形式保存在内存的某个区域中。(操作码 opcode:表示要做什么动作,被操作数:本条指令要操作的数据)

4.2.1 程序加载(由操作系统完成)

  • 程序以可执行文件(如 ELF、PE 格式)存储在磁盘中。
  • 操作系统通过‌加载器‌将程序的‌代码段‌和‌数据段‌读入内存。
  • 初始化‌程序计数器(PC)‌,指向程序入口地址(如main函数)。
  • 创建‌进程控制块(PCB)‌,保存寄存器状态、栈指针等上下文信息。

下面将模拟创造执行情境:

* 此表是模拟简化的,实际上 CPU 支持哪些指令,每个指令如何表示,有哪些意义,在 CPU 设计出来前已经确定了的。这里的 RAM 表示内存。

同时我们约定 A 寄存器 ID 是 00;B 寄存器 ID 是 01。以及约定一条指令是 8 个 bit,1 个字节,则操作码和操作数都是 4 位。(真实的一条指令是 16 个 bit,8 个字节)

初始状态如下:

4.2.2 指令执行循环(核心流程)

① 取指

CPU 从 PC 中获取下一条指令的内存地址。当前 PC 为 0,取得指令 00101110,暂存到 IR 中。

随后PC自动递增

② 解码

③ 执行

接着就是对照指令表,找到 opcode 对应的指令并执行:

因此寄存器 A 中暂存了二进制数字 00000011,也就是 3

④ 写回

结果“存档”到寄存器


CPU 默认顺序执行下一条指令……(如果遇到 条件语句,循环语句,函数调用语句等会发生跳转,即下面将要提及的 支撑机制 )

步骤同上,一直到 PC 自增到 3 时,到指令 ADD

到这一步后,寄存器 A 中存储的值是 0001 0001,也就是 17。

CPU 继续执行下一条指令,一直到 IR 遇到 00000000,就认为程序已经结束了。而上述过程就是 CPU 处理 3 + 14 的运算过程。

4.2.3 支撑机制(现代 CPU 特性)

  • 流水线(Pipeline)

    • 将指令周期分为多个阶段(如 5 级:取指、译码、执行、访存、写回),‌多条指令重叠执行‌,提升吞吐率‌。
    • 例如:第 2 条指令在取指时,第 1 条指令可同时解码‌。
  • 分支预测与乱序执行

    • 遇到条件跳转时,‌分支预测器‌猜测目标地址,提前取指;若预测错误,需‌清空流水线‌并回滚‌。
    • 乱序执行允许非依赖指令提前执行,提高效率‌。
  • 中断与异常处理

    • 外部事件(如 I/O 完成)或错误(如除零)触发‌中断/异常‌。
    • CPU ‌保存现场‌(PC、寄存器),跳转至‌中断处理程序‌,处理完成后恢复执行‌。
  • 多核并行

    • 多核 CPU 可‌同时执行不同线程‌,每个核心独立维护 PC、寄存器等状态‌。

4.2.4 结束

  • 执行完最后一条指令(或收到exit系统调用)。
  • 操作系统‌回收内存、文件句柄等资源‌,调度其他进程运行‌。

5、操作系统

操作系统是计算机中最重要的“软件”,如 Windows 、Linux、Mac OS、IOS、Android…

操作系统通过驱动程序,管理协作各种硬件设备;操作系统给各种应用程序提供一个稳定的运行环境。

5.1 进程

进程是指正在执行的程序实例,是操作系统进行资源分配和调度的基本单位。当我们双击点开电脑上的 .exe 文件时,就创建了一个进程。进程运行,执行指令,需要消耗 CPU 资源。

5.2 进程控制块 PCB

Process Control Block 是操作系统用于描述和管理进程的核心数据结构,是‌进程存在的唯一标志‌。操作系统通常将多个 PCB 以数组或者链表的方式组织起来,以便高效管理。

PCB 的基本要素有:

1、进程标识符 PID:系统内部唯一标识进程的整数。

2、内存指针(一组指针):指向进程需要执行的指令地址,以及指令依赖的数据地址。

3、文件描述符表:进程在运行过程中,有时候需要与硬盘进行交互,而硬盘上的数据是以文件的形式来组织的。(操作系统中有很多资源都被抽象成文件来表示,不一定是硬盘上的资源)对此,进程在读写文件前需要“打开文件”。每次打开一个文件,操作系统就会返回一个文件描述符,就把这个文件的信息保存在文件描述符表中,后续的读写操作都通过这个整数来引用对应的文件。

4、进程状态

典型的有 就绪状态 和 阻塞状态。

5、进程优先级

进程优先级较高的能吃到更多的 CPU 资源。

6、进程的上下文信息

就像游戏中的存档与读档,当切换下一个进程时,CPU 的寄存器暂存了上一个进程运行的“中间状态”,而保存上下文就是指将 CPU 中的这些寄存器的值保存到内存中(PCB 的对应属性中);恢复上下文就是指把 PCB 刚才保存的属性,填写回对应的寄存器中。

7、进程的记账信息

具有统计功能,统计每个进程占用的系统资源。如果发现某个进程好久没吃到 CPU 资源了,就会给这个进程倾斜一些资源。


上面提及到的进程状态、进程优先级、上下文信息、记账信息,同属于进程调度功能。

5.3 操作系统管理进程的步骤

5.3.1 创建阶段

当运行一个新程序时,操作系统将在进程表中为其分配一个唯一的进程ID (PID),同时为进程分配地址空间,加载程序代码。

最重要的是创建了一个 PCB,并初始化 PCB 中的各个属性。并将 PCB 链接到所需的资源。

5.3.2 进程调度与执行阶段

进程创建后进入就绪队列,由操作系统的调度器决定哪个进程获得 CPU 时间:

调度决策:根据调度算法(考虑优先级等)选择下一个要运行的程序;

上下文切换:保存当前进程的上下文(寄存器、程序计数器等)到 PCB;加载选中的新程序的 PCB 上下文到 CPU 寄存器中;

状态流转:进程状态在“就绪”、“运行”、“阻塞”之间切换。当进程请求 I/O 或事件时,进入阻塞状态让出 CPU;时间片用完则回到就绪状态。

5.3.3 状态监视与资源管理

在程序运行期间,操作系统负责维护秩序和资源分配,包括 中断处理、管理内存分配等,以及更新 PCB 中的信息。

5.3.4 终止阶段

当进程执行完毕、被强制终止,或发生严重错误时,操作系统将进行回收资源、移除 PCB,并通知父进程。

http://www.jsqmd.com/news/530061/

相关文章:

  • 深度学习:Self-attention 原理解析
  • 终极指南:3步用Python实现WPS Office自动化处理
  • 【AI大模型春招面试题11】什么是模型的“涌现能力”(Emergent Ability)?出现条件是什么?
  • **发散创新:用Solidity构建去中心化数字资产合约实战解析**在区块链技术日益普及的今天,**数字资产**已不再是单纯的
  • 3步掌握GPTZero:开源AI文本检测工具实战指南
  • 2026不锈钢冲压件优质厂家推荐指南 - 资讯焦点
  • 深度学习:Transformer 算法原理
  • L1-025 正整数A+B,python解法
  • Ecat EnableKit 开发者指南
  • Day44location对象
  • 测完这批工具 9个AI论文平台测评对比 专科生毕业论文写作必备神器
  • 中国知名科技公司有哪些 - 资讯焦点
  • [SDCTF 2022]jawt that down!s
  • 国内自主研发强的公司有哪些 - 资讯焦点
  • 学生党闭眼入!2026年好用美白的牙膏品牌推荐榜:从根源瓦解色素沉积 - 资讯焦点
  • 2026年3月北京黄金礼品回收机构最新推荐:黄金回收、礼品回收、奢侈品回收机构选择指南 - 海棠依旧大
  • 【Agentic AI】多智能体协作模式学习笔记
  • 单片机工程实践:从硬件抽象到系统可靠性设计
  • IEXS盈十证券:商品周期未到顶,白银长周期突破打开上行空间 - 资讯焦点
  • Z-Image-Turbo_Sugar脸部Lora保姆级教学:Gradio界面中文汉化与字体修复
  • Python列表与元组完全指南:深入理解与性能优化(第5篇)
  • 嵌入式C/C++核心特性深度解析:const、volatile、static与RAII工程实践
  • 20254106 实验一《Python程序设计》实验报告
  • 国内最值得入职的大厂推荐 - 资讯焦点
  • 量子计算中的量子态、量子纠错的计算资源
  • 如何快速搭建多平台内容采集系统:面向新手的完整教程
  • Comsol技术下的弯曲波导模式研究:有效折射率与损耗的精确计算方法
  • 用Python和Matplotlib画出你的第一张乐器波形图(笛子、二胡、钢琴、号角)
  • STM32G0开发环境搭建避坑指南:CubeMX与MDK5的完美配合(附固件包下载)
  • WinCC与PLCSIM通讯全流程指南:从硬件配置到仿真测试(附常见问题排查)