本文作为JavaEE入门对计算机是如何工作的这个问题做一个基础了解主要目标是记住一些核心概念让面试的时候有话可谈~目录1、冯诺依曼体系结构2、计算机硬件组成图3、内存与硬盘的对比4、CPU4.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 进程控制块 PCB5.3 操作系统管理进程的步骤5.3.1 创建阶段5.3.2 进程调度与执行阶段5.3.3 状态监视与资源管理5.3.4 终止阶段1、冯诺依曼体系结构* 思考有哪些设备既是输入设备又是输出设备呢2、计算机硬件组成图*本文主要涉及CPU、内存和硬盘。此图只为加深印象。3、内存与硬盘的对比①内存的数据访问速度快硬盘的访问速度慢②内存的存储空间小硬盘的存储空间大③内存数据断电后丢失硬盘数据断电后持久存储④内存成本高硬盘成本低。而中央处理器CPU的特点是容量较小存取速度较快单位成本高。4、CPU4.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 是 00B 寄存器 ID 是 01。以及约定一条指令是 8 个 bit1 个字节则操作码和操作数都是 4 位。真实的一条指令是 16 个 bit8 个字节初始状态如下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 进程控制块 PCBProcess 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并通知父进程。
计算机基石:CPU、内存、硬盘与操作系统
发布时间:2026/6/1 16:54:37
本文作为JavaEE入门对计算机是如何工作的这个问题做一个基础了解主要目标是记住一些核心概念让面试的时候有话可谈~目录1、冯诺依曼体系结构2、计算机硬件组成图3、内存与硬盘的对比4、CPU4.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 进程控制块 PCB5.3 操作系统管理进程的步骤5.3.1 创建阶段5.3.2 进程调度与执行阶段5.3.3 状态监视与资源管理5.3.4 终止阶段1、冯诺依曼体系结构* 思考有哪些设备既是输入设备又是输出设备呢2、计算机硬件组成图*本文主要涉及CPU、内存和硬盘。此图只为加深印象。3、内存与硬盘的对比①内存的数据访问速度快硬盘的访问速度慢②内存的存储空间小硬盘的存储空间大③内存数据断电后丢失硬盘数据断电后持久存储④内存成本高硬盘成本低。而中央处理器CPU的特点是容量较小存取速度较快单位成本高。4、CPU4.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 是 00B 寄存器 ID 是 01。以及约定一条指令是 8 个 bit1 个字节则操作码和操作数都是 4 位。真实的一条指令是 16 个 bit8 个字节初始状态如下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 进程控制块 PCBProcess 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并通知父进程。