计算机是如何工作的
目录
1.计算机早期历史
一、计算机的底层逻辑:从工具到大脑
二、计算机的“身体构造”
三、计算机的“隐形管家”:软件与系统
四、计算机的“社交网络”
五、计算机的“超能力”:现代应用
六.冯诺依曼体系
2.CPU的构成
1. 门电路:CPU 的 “基础积木”
2. 半加器:CPU 的 “初级算账员”
3. 全加器:CPU 的 “进阶算账员”
4. 加法器:CPU 的 “高效加法团队”
5. ALU(算术逻辑单元):CPU 的 “万能运算助手”
6. 从 ALU 到 CPU:“组装完整大脑”
3.CPU 基本工作流程
3.1布尔逻辑 和 逻辑门
一、布尔逻辑
二、逻辑门
三、复杂逻辑的组合应用
四、我的学习建议
3.1.1电子开关
3.1.2门电路
3.2算术逻辑单元
3.2.1进制的理解
3.2.2算术单元:数字计算的 “专职工坊”
3.2.3逻辑单元:条件判断的 “智能裁判”
3.2.4ALU(算术逻辑单元):集两者能力的 “全能助手”
3.3寄存器和内存
3.4控制单元
3.5指令
编辑
3.6CPU 的基本工作总流程
4.编程语言
4.1程序
4.2早期编程
4.3编程语言的发展
5.操作系统
5.1操作系统的定位
编辑
5.2什么是进程/任务
分类
5.3进程控制块抽象
5.4CPU 分配⸺进程调度
5.5内存分配⸺内存管理
5.6进程间通信
6.扩展一些疑惑
6.1CPU
1.CPU那么厉害,为什么不弄大一点?
2.CPU不能搞大,能不能搞多一点提升效率?
3.能不能一个大cpu当作两个cpu用?再次提升效率
6.2进程
1.进程是怎么管理的?
一、进程管理的核心目标
二、进程管理的四大核心机制
1. 进程调度(CPU 分配)
2. 内存管理
3. 进程控制块(PCB)
4. 进程间通信(IPC)
三、进程管理的完整流程(以手机点餐为例)
2.为什么需要进程?
6.3PCB
1.PCB是什么?拿来干嘛的?
一句话总结
一、PCB 的核心作用
二、PCB 包含的关键信息(生活类比)
三、PCB 的工作流程(以医院挂号为例)
2.为什么需要PCB?
3.PCB与其他进程管理机制的关系?
4.PCB的属性特点是什么?
1. PID(进程标识符)
2. 内存指针
3. 文件描述符表
4. 状态(就绪状态、阻塞状态等)
5. 优先级
6. 记账信息
7. 上下文
属性总结
7.总结
1.计算机早期历史
一、计算机的底层逻辑:从工具到大脑
-
从算盘到电子计算机的进化
-
生活案例:
-
算盘:像小卖部老板用不同颜色的盒子分装硬币(个位用绿盒、十位用蓝盒),快速统计每日收入。
-
电子计算机:如同从手摇爆米花机升级到微波炉爆米花——按按钮即可自动完成,无需手动转动。
-
-
核心原理:
-
物理操作(珠子/齿轮)→ 电子信号(0/1)
-
理解:计算机是人类思维的“加速器”,将复杂思考转化为物理或电子动作。
-
-
-
布尔逻辑:计算机的“是非观”
-
生活案例:
- AND 门:卧室灯需同时插电 + 开开关才亮
- OR 门:客厅灯用任意一个开关都能控制
- NOT 门:冰箱灯关上门就灭
-
核心原理:
-
所有复杂判断(比如人脸识别)最终都分解为 AND/OR/NOT 的组合。
-
理解:计算机的思考像玩闯关游戏,必须通过层层“是”或“否”的门槛。
-
-
二、计算机的“身体构造”
-
二进制与信息编码
-
生活案例:
-
二进制:用摩尔斯电码的“滴”(短)和“答”(长)传递信息 → 计算机用 0(关) 和 1(开) 表达一切。
-
编码:手机输入“你好”时,键盘将汉字转为数字(如 Unicode 编码),再转为二进制传输。
-
-
核心原理:
-
文字、图片、视频最终都变成 0和1的排列组合,如同乐高积木用不同颜色和位置拼出图案。
-
理解:计算机是“翻译大师”,所有信息必须转成它能懂的“二进制方言”。
-
-
-
计算机的“器官”与协作
-
生活案例:
-
CPU(大脑):像奶茶店店长,按订单步骤(程序)指挥员工操作。
-
内存(工作台):存放正在制作的奶茶原料(临时数据),用完即清空。
-
硬盘(仓库):存储未使用的奶茶原料包(长期数据),需要时再取出。
-
-
核心原理:
-
冯·诺依曼架构 = “输入指令→处理数据→输出结果” 的标准流水线。
-
理解:计算机像一家高效工厂,各部门分工明确,流水线作业。
-
-
三、计算机的“隐形管家”:软件与系统
-
操作系统:全能大管家
-
生活案例:
-
手机同时运行微信和音乐App时,系统像交通警察,给每个App分配“通行时间片”,让它们轮流使用CPU。
-
虚拟内存:如同租房中介把多个小房间伪装成大套房,让程序误以为自己独占内存。
-
-
核心原理:
-
操作系统通过 “抽象层” 隐藏复杂性,用户只需点击图标,无需知道背后的电路如何工作。
-
理解:就像开车无需懂发动机原理,踩油门就能前进。
-
-
-
文件系统:智能收纳师
-
生活案例:
-
手机相册按“时间-地点-人物”自动分类照片 → 类似图书馆按“类别-作者-出版年份”整理书籍。
-
删除文件:实际是撕掉书的目录标签,书还在架上但找不到,直到被新书覆盖。
-
-
核心原理:
-
文件系统通过 “路径+索引” 快速定位数据,如同快递单号追踪包裹位置。
-
理解:结构化存储是效率的关键,乱放东西只会浪费时间。
-
-
四、计算机的“社交网络”
-
互联网通信:数字世界的快递员
-
生活案例:
-
IP地址:像外卖订单上的地址,确保数据包送到正确设备。
-
路由算法:像导航App避开拥堵路段,选择最优路径传输数据。
-
-
核心原理:
-
互联网通过 “分层协议” 实现全球通信,如同跨国物流需遵守海关、运输、派送多层规则。
-
理解:网络通信的核心是 “可靠+高效”,既要送得快,又要不送错。
-
-
-
DNS:互联网的“114查号台”
-
生活案例:
-
输入“www.baidu.com”时,DNS像查号台把名字转为IP地址(如“14.215.177.38”),就像记住朋友名字比电话号码更容易。
-
-
核心原理:
-
DNS通过 “域名→IP” 映射解决人类与机器的记忆矛盾。
-
理解:这是互联网的“翻译服务”,让人机协作更顺畅。
-
-
五、计算机的“超能力”:现代应用
-
计算机视觉:让机器“看懂”世界
-
生活案例:
-
手机相册自动识别人脸 → 计算机将照片分解为像素网格,分析颜色和形状(如眼睛、鼻子位置)。
-
卷积神经网络:像多级流水线,第一层识别边缘,第二层拼成形状,最后一层判断“这是猫脸”。
-
-
核心原理:
-
通过 “模式匹配” 和 “大数据训练” 让机器模仿人类视觉。
-
理解:计算机视觉的本质是 “熟能生巧”,看多了自然能识别。
-
-
-
人工智能的边界:计算机做不到的事
-
生活案例:
-
导航App可能陷入“绕圈死循环” → 图灵证明 停机问题(无法预判程序是否会停止)。
-
-
核心原理:
-
计算机的局限性源于 “逻辑系统的自指矛盾”,如同无法用镜子照出镜子本身的全貌。
-
理解:技术需与人类互补,就像自动驾驶仍需司机监督。
-
-
六.冯诺依曼体系
- 核心思想 :
- 二进制表示:计算机处理的数据和指令都用二进制数表示,也就是只有 0 和 1 两个基本数字。比如我们日常写的数字 “10”,在二进制里是 “1010”。这就像用 “开” 和 “关” 两种状态来传递所有信息。
- 程序存储执行:把程序和数据都当作数据,以同样的方式存储在同一个存储器中。比如把菜谱和食材都放在一个仓库里,计算机可以按顺序执行存储器中的指令 。
- 五大组成部分:计算机由运算器、控制器、存储器、输入设备、输出设备五个部分组成。
- 各部分组成及生活类比 :
- 运算器:可以进行算术运算(如加、减、乘、除)和逻辑运算(如比较大小、判断真假) ,就像一个超级会算账的小助手。比如在计算超市购物的总价时,它能快速算出结果。
- 控制器:是计算机的指挥中心,负责从存储器中取出指令,并对指令进行分析,然后指挥其他部件协调工作。可以把它想象成乐队的指挥,让各个乐器(计算机部件)有序配合。
- 存储器:用于存储程序和数据,分为内存和外存。内存就像书桌,放着正在处理的资料,读写速度快,但断电后数据会消失;外存像仓库,用于长期存储大量数据,比如硬盘 。
- 输入设备:用来向计算机输入信息,如键盘、鼠标、扫描仪等。就像给厨师(计算机)报菜单,把我们的需求告诉计算机。
- 输出设备:用于将计算机处理的结果展示出来,如显示器、打印机、扬声器等。相当于厨师做好菜后把菜端上桌,让我们看到或听到处理结果。
- 基本工作流程 :
- 首先通过输入设备,比如键盘,将程序和数据输入到计算机的存储器中,就像把菜谱和食材放进仓库。
- 控制器从存储器中按顺序取出指令,这一步就像从菜谱中找到做菜的第一步。
- 控制器对取出的指令进行解码分析,明确要做什么操作,比如是要计算还是要读取数据等。
- 运算器根据控制器的指示,从存储器中获取数据并进行相应的运算处理,类似厨师按照菜谱处理食材。
- 最后,处理结果通过输出设备展示出来,比如在显示器上显示计算结果。
2.CPU的构成
1. 门电路:CPU 的 “基础积木”
- 是什么:最底层的电子开关组合,实现布尔逻辑(与、或、非)。
- 生活例子:像家里的电路开关。比如 “与门” 类似卧室灯,必须同时插电 + 开开关才亮;“或门” 像客厅灯,任意一个开关都能控制。
- 作用:CPU 的所有功能,最终都靠这些门电路的开关组合实现。
2. 半加器:CPU 的 “初级算账员”
- 是什么:只能计算两个二进制数相加,不处理进位。
- 生活例子:假设你有 2 个苹果(二进制 10),朋友给 1 个(二进制 01),半加器只算 0+1、1+0,得出结果 11(3 个苹果),但不管进位怎么来的。
- 作用:是加法运算的初级单元。
3. 全加器:CPU 的 “进阶算账员”
- 是什么:在半加器基础上,能处理进位。
- 生活例子:比如计算 3(11)+ 2(10),全加器会处理每一位相加的进位,像算账时把 “零头” 往后传,最终得出正确结果 101(5)。
- 作用:让加法计算更完整,适合复杂数字运算。
4. 加法器:CPU 的 “高效加法团队”
- 是什么:把多个全加器组合,能快速计算多位数的加法。
- 生活例子:类似超市收银台的扫码器,一次性计算多件商品价格总和,比一个个手算快得多。
- 作用:实现大规模二进制加法,是 CPU 处理数据的重要环节。
5. ALU(算术逻辑单元):CPU 的 “万能运算助手”
- 是什么:不只能做加法,还能做减法、逻辑判断(如比较大小)等。
- 生活例子:像多功能瑞士军刀,既能当刀(加法)、又能当剪刀(减法),还能开瓶盖(逻辑判断)。
- 作用:CPU 的核心运算部件,负责处理数据的各种数学和逻辑操作。
6. 从 ALU 到 CPU:“组装完整大脑”
- 怎么组成 CPU:除了 ALU,CPU 还需要寄存器(临时存数据,像草稿纸)、控制单元(指挥各部件工作,像乐队指挥)等。把这些部分整合在一起,就像把 “运算助手”“草稿纸”“指挥官” 集合,最终形成能处理各种任务的 CPU。
- 生活类比:CPU 像一个全能小工厂,ALU 是负责加工的机器,寄存器是放原料的临时货架,控制单元是调度员,大家协作完成计算任务。
总结:CPU 的构成就像搭积木,从最基础的开关逻辑(门电路)开始,一步步做出能算账、能处理复杂运算的部件,最后整合出这个 “计算机大脑”,让计算机学会 “思考” 和计算。
3.CPU 基本工作流程
3.1布尔逻辑 和 逻辑门
一、布尔逻辑
核心概念:用数学符号表示 “真 / 假” 判断,通过三种基本运算组合复杂条件。
-
AND 运算(与)
- 生活例子:卧室灯需要同时插电(条件 A)+ 开开关(条件 B)才会亮
- 数学表达:A ✔️ AND B ✔️ → 结果 ✔️
- 符号:A ∧ B
- 理解:类似 “双保险”,必须同时满足两个条件
-
OR 运算(或)
- 生活例子:客厅灯用任意一个开关(条件 A 或 B)都能控制
- 数学表达:A ✔️ OR B ✔️ → 结果 ✔️
- 符号:A ∨ B
- 理解:类似 “多途径选择”,满足任一条件即可
-
NOT 运算(非)
- 生活例子:冰箱灯关上门(条件 A ✖️)就会灭
- 数学表达:NOT A ✔️ → 结果 ✖️
- 符号:¬A
- 理解:类似 “反转开关”,条件不满足时触发结果
二、逻辑门
核心原理:通过电子开关(晶体管)的开合组合,模拟布尔运算。
三、复杂逻辑的组合应用
案例 1:自动浇花系统
- 条件:土壤干燥(A)AND 白天(B)→ 启动浇水
- 实现:将湿度传感器(A)和光敏电阻(B)接入 AND 门,输出控制水泵
案例 2:家庭安防系统
- 条件:窗户打开(A)OR 运动检测(B)→ 触发警报
- 实现:用 OR 门连接两个传感器,输出控制蜂鸣器
案例 3:节能模式
- 条件:无人移动(A)→ 关闭空调
- 实现:用 NOT 门反转运动传感器信号,控制空调开关
四、我的学习建议
- 记住口诀:
- AND 门:“两者都要,缺一不可”
- OR 门:“只要有一,马上触发”
- NOT 门:“反其道而行之”
3.1.1电子开关
3.1.2门电路
3.2算术逻辑单元
3.2.1进制的理解
3.2.2算术单元:数字计算的 “专职工坊”
- 功能:专注数学运算,如加法、减法、乘法、除法。
- 生活例子:类似超市收银机的计算功能。当顾客购买多件商品,收银机快速算出总价(如 10 元 + 20 元 = 30 元),这就是算术单元在执行加法运算,纯熟地处理数字加减乘除。
3.2.3逻辑单元:条件判断的 “智能裁判”
- 功能:负责逻辑判断,比如比较大小(如 “5 是否大于 3”)、判断是否符合条件(如 “温度是否超过 30℃”)。
- 生活例子:如同比赛裁判判定胜负。比如跑步比赛中,裁判通过对比选手冲线顺序,判断 “谁第一个到达终点”,这就是逻辑单元在执行 “比较” 的判断任务。
3.2.4ALU(算术逻辑单元):集两者能力的 “全能助手”
- 构成:将算术单元和逻辑单元整合,既能算数学题,又能做逻辑判断。
- 符号:在电路图中,ALU 常用一个方框表示,内部标注 “ALU” 字样,是计算机芯片设计图中的关键标识。
- 生活例子:好比一位全能助理,既能帮你计算每月水电费总和(算术运算),又能判断 “这个月电费是否比上个月高”(逻辑判断)。它一人承担两种角色,是计算机中处理数据运算和逻辑判断的核心部件。
总结:算术单元是数学计算的 “执行者”,逻辑单元是条件判断的 “决策者”,而 ALU 把两者合为一体,成为计算机的 “运算大脑”,让计算机既能处理数字计算,又能应对逻辑判断任务,就像一个全能工具,支撑计算机完成各种复杂工作。
3.3寄存器和内存
-
寄存器
- 类比:像厨师炒菜时手边的 “调料盒”。容量小但拿取速度极快,专门放当下要用的调料(数据)。
- 本质:CPU 内部的高速小容量存储,临时存放正在处理的关键数据或指令。
-
内存(RAM)
- 类比:餐厅的 “备菜区”。食材(数据)临时存这里,厨师(CPU)需要时能快速拿到,但打烊(断电)后食材会清空。
- 本质:计算机运行时临时存储数据和程序的地方,速度快但断电数据消失。
3.4控制单元
- 类比:餐厅的 “经理”。负责协调后厨(CPU 运算单元)、备菜区(内存)等,让整个流程有序。
- 本质:CPU 的 “指挥官”,负责调度各组件,确保取指令、解码、执行等步骤有序进行。
3.5指令
- 类比:餐厅的 “菜单菜品”。比如 “番茄炒蛋” 就是一条指令,告诉厨师(CPU)要做什么。
- 本质:计算机能识别的操作命令,如 “加、减、读取数据” 等,是 CPU 工作的 “任务清单”。
3.6CPU 的基本工作总流程
-
取指令
- 流程:控制单元从内存中找到 “计算 3+5” 的指令,就像经理从菜单里找到 “番茄炒蛋” 这道菜的制作要求。
- 原理:内存提前存好程序指令,控制单元按顺序 “读取” 指令。
-
解码指令
- 流程:控制单元分析指令 “3+5” 的含义,告诉 CPU “现在要做加法”,如同经理看懂菜单后,告诉厨师 “需要炒番茄和鸡蛋”。
- 原理:把二进制指令翻译成 CPU 能执行的操作步骤。
-
执行指令
- 取数据:从内存获取数字 3 和 5,先放到寄存器(像把番茄、鸡蛋拿到厨师手边)。
- 运算:CPU 的算术单元计算 3+5,寄存器暂存结果 8(类似厨师炒菜,备好的食材快速加工)。
- 存结果:把结果 8 存回内存或输出,如同把炒好的菜端出餐厅。
4.编程语言
4.1程序
- 要点:程序是为实现特定目标设计的 “指令集合”,告诉计算机该做什么、怎么做。
- 生活例子:像一份 “做菜菜谱”。菜谱里写着 “切菜→倒油→炒菜→装盘”,计算机按程序的指令步骤执行任务,比如用软件计算数据,背后就是程序在指挥计算机操作。
4.2早期编程
- 要点:早期用 “机器语言” 编程,直接写二进制代码(0 和 1 组成的指令),计算机能直接识别,但对人来说难写又难记。
- 生活例子:好比用 “摩尔斯电码” 交流。每串电码对应特定含义(如 “滴滴答” 代表字母 U),早期程序员需记住大量二进制组合(如 “01000001” 代表字母 A),直接写给计算机 “看”,效率低且容易出错。
4.3编程语言的发展
- 要点:从机器语言到汇编语言(用英文缩写替代二进制),再到高级语言(如 Python、Java,更接近人类自然语言)。高级语言让编程像写中文句子一样易懂,最后通过编译器 / 解释器转成计算机能懂的机器语言。
- 生活例子:沟通方式的进化。最初用摩尔斯电码(机器语言),后来有了翻译工具,现在可以直接用中文交流(高级语言),最后通过 “翻译”(编译器)让计算机理解,大大降低了编程门槛。
5.操作系统
5.1操作系统的定位
- 要点:操作系统是计算机的 “大管家”,管理硬件(如 CPU、内存)和软件(如各种 App),让计算机有序工作。
- 生活例子:像学校的 “总务处”。既要管理教室(硬件)、分配课程(软件运行),还要协调师生需求(用户操作),确保学校(计算机)正常运转。
5.2什么是进程/任务
- 要点:进程是计算机正在执行的任务。比如打开一个浏览器、运行音乐软件,每一个任务都是一个进程。
- 生活例子:像餐厅里的 “订单”。每个订单(进程)代表一个任务,厨师(CPU)需要按订单做菜,服务员(操作系统)负责管理这些订单的处理流程。
分类
单进程:只能运行一个任务(只能打开浏览器)
多进程:能同时运行多个任务(既能打开浏览器,又能打开音乐)
5.3进程控制块抽象
- 要点:进程控制块是记录进程信息的 “档案”,包括进程状态(运行中、暂停)、使用的资源等,方便操作系统管理。
- 生活例子:类似学生的 “档案袋”。档案袋里记录学生成绩、选课情况(进程信息),老师(操作系统)通过档案袋了解学生(进程),决定如何安排教学(资源分配)。
5.4CPU 分配⸺进程调度
- 要点:操作系统决定哪个进程使用 CPU、用多久,确保多个任务 “看起来” 同时运行。
- 生活例子:像老师安排学生 “发言顺序”。每个学生(进程)轮流发言几分钟,老师(操作系统)协调时间,虽然同一时间只有一个学生发言,但整体上大家感觉都在参与课堂。
5.5内存分配⸺内存管理
- 要点:给每个进程分配内存空间,避免冲突,还要回收不用的内存。
- 生活例子:好比图书馆 “分配自习座位”。管理员(操作系统)给每个读者(进程)安排座位(内存空间),读者离开后回收座位,给新读者使用,确保资源合理利用。
5.6进程间通信
- 要点:不同进程之间传递信息,实现协作。比如音乐软件播放音乐(一个进程),同时显示歌词(另一个进程),需要互相通信。
- 生活例子:像公司不同部门 “合作项目”。市场部(进程 A)收集用户需求,研发部(进程 B)根据需求开发产品,两个部门通过开会、文件共享(通信方式)协作,完成目标。
6.扩展一些疑惑
6.1CPU
1.CPU那么厉害,为什么不弄大一点?
2.CPU不能搞大,能不能搞多一点提升效率?
如果是4个核心的cpu,那么就当与整个大的cpu包含有8个小cpu
3.能不能一个大cpu当作两个cpu用?再次提升效率
6.2进程
1.进程是怎么管理的?
一、进程管理的核心目标
类比:餐厅经理需要高效安排顾客(任务)的用餐流程,确保资源(餐桌、服务员)不冲突且合理利用。
关键点:
- 让多个任务(进程)同时运行
- 公平分配 CPU、内存等资源
- 保护不同进程的数据互不干扰
二、进程管理的四大核心机制
1. 进程调度(CPU 分配)
类比:服务员按顺序叫号安排顾客入座。
流程:
- 时间片轮转:每个进程轮流使用 CPU(例如每个顾客只能占用餐桌 30 分钟)。
- 优先级调度:紧急任务优先处理(比如孕妇或老人优先入座)。
例子:
你一边刷短视频(高优先级)一边下载文件(低优先级),CPU 会先保证短视频流畅播放,再处理下载。
2. 内存管理
类比:餐厅为每桌顾客分配独立用餐区域。
流程:
- 地址空间隔离:每个进程的内存互不干扰(就像每桌顾客的食物不会混在一起)。
- 动态分配回收:进程结束后释放内存(顾客离席后收拾餐桌给下一批)。
例子:
打开微信时,系统会分配一块内存给它存储聊天数据;关闭微信后,这块内存会被回收。
3. 进程控制块(PCB)
类比:顾客的「用餐档案」,记录座位号、用餐进度、特殊需求等。
内容:
- 进程 ID、状态(运行 / 暂停)、优先级、内存地址等。
例子:
当你切换手机应用时,系统通过 PCB 记录每个应用的当前状态,确保切换回来时能恢复。
4. 进程间通信(IPC)
类比:不同餐桌顾客传递菜品(如拼桌时共享菜肴)。
方式:
- 管道:单向传递数据(类似服务员传菜)。
- 共享内存:多个进程共用一块内存区域(类似公共餐盘)。
例子:
你用微信发照片给朋友,微信和相机进程通过共享内存快速传输数据。
三、进程管理的完整流程(以手机点餐为例)
- 创建进程:你打开外卖 app(操作系统创建「外卖进程」PCB)。
- 分配资源:系统给 app 分配内存(餐桌)和 CPU 时间片(服务员服务时间)。
- 运行调度:CPU 交替处理外卖 app 和其他后台任务(如消息通知)。
- 通信协作:外卖 app 调用地图 app 获取位置(进程间通信)。
- 终止回收:关闭 app 后,系统释放内存并删除 PCB(顾客离席后收拾餐桌)。
2.为什么需要进程?
- 效率:同时处理多个任务(边听歌边打字)。
- 稳定:一个进程崩溃不影响其他进程(某桌顾客打翻汤,其他桌继续用餐)。
- 安全:隔离恶意软件的破坏(小偷无法进入其他餐桌偷东西)。
6.3PCB
1.PCB是什么?拿来干嘛的?
一句话总结
PCB(进程控制块)是操作系统管理进程的 “户口本”,记录每个进程的身份、状态和资源使用情况,就像餐厅经理管理顾客的 “用餐档案”。
一、PCB 的核心作用
类比:餐厅里每个顾客的 “用餐档案”,记录座位号、点餐进度、特殊需求等信息,帮助服务员高效管理。
关键点:
- 身份标识:每个进程有唯一 ID(类似顾客编号)。
- 状态跟踪:记录进程是 “运行中”“等待资源” 还是 “暂停”(类似顾客在 “用餐中”“排队” 或 “去洗手间”)。
- 资源分配:记录进程占用的内存、CPU 时间等(类似顾客占用的餐桌、服务员服务时间)。
二、PCB 包含的关键信息(生活类比)
三、PCB 的工作流程(以医院挂号为例)
-
创建 PCB:
- 你挂号时,医院生成一张 “病历卡”(PCB),记录你的姓名、病情、挂号科室等(进程 ID、状态、优先级)。
-
分配资源:
- 护士根据病历卡安排你到诊室(内存地址),并记录医生的服务时间(CPU 时间片)。
-
进程调度:
- 医生按病历卡的优先级(急症优先)叫号,处理你的病情(执行进程)。
-
状态切换:
- 若你需要做检查(阻塞状态),病历卡被暂时存放在 “待检查区”,等检查完成后再恢复就诊(就绪状态)。
-
终止回收:
- 看完病后,病历卡被归档(删除 PCB),释放诊室和医生资源。
2.为什么需要PCB?
- 有序管理:避免多个进程 “抢资源”(类似餐厅避免多桌顾客争同一个服务员)。
- 状态保存:切换任务时不丢失进度(如你切回微信时,系统通过 PCB 恢复聊天窗口的状态)。
- 安全隔离:不同进程的 PCB 信息互不干扰(类似病人病历隐私保护)。
3.PCB与其他进程管理机制的关系?
- 进程调度:根据 PCB 的优先级和状态分配 CPU(护士按病历卡叫号)。
- 内存管理:通过 PCB 的内存地址找到进程数据(服务员按餐桌号上菜)。
- 进程通信:多个 PCB 通过共享内存或管道协作(不同病历卡通过护士传递检查结果)。
4.PCB的属性特点是什么?
1. PID(进程标识符)
- 作用:唯一标识每个进程,就像每个人的身份证号,方便操作系统区分不同进程。
- 生活例子:餐厅给每位顾客发一个专属号码牌(如 A01、B05),服务员通过号码牌找到对应顾客,操作系统通过 PID 找到对应进程。
2. 内存指针
- 作用:记录进程使用的内存位置,标明内存中哪部分放程序指令、哪部分放数据。
- 生活例子:顾客订了一个包间,内存指针就像包间的布局图,标注好哪里放餐桌(放指令)、哪里放储物架(放数据),确保进程的指令和数据各就其位。
3. 文件描述符表
- 作用:记录进程使用硬盘的相关信息,比如打开了哪些文件、文件夹。
- 生活例子:顾客在餐厅的 “借书登记本”,记录他借了哪些菜单、资料(类似进程调用硬盘里的文件),方便餐厅管理资源使用情况。
4. 状态(就绪状态、阻塞状态等)
- 作用:标记进程当前状态,决定操作系统如何调度。
- 就绪状态:准备好运行,等待 CPU 分配资源(像顾客坐在座位上,等服务员上菜)。
- 阻塞状态:因等待资源(如硬盘读取)暂时无法运行(像顾客在等厨房煎牛排,暂时不能继续用餐)。
- 生活例子:顾客可能处于 “排队中”(阻塞)、“用餐中”(运行)、“等甜点”(等待资源)等状态,服务员根据状态安排服务。
5. 优先级
- 作用:决定进程获取资源的先后顺序,高优先级进程优先使用 CPU 等资源。
- 生活例子:餐厅给 VIP 顾客(高优先级)优先安排座位、上菜,普通顾客(低优先级)按顺序等待,操作系统也按优先级调度进程。
6. 记账信息
- 作用:记录进程使用 CPU、内存等资源的时长和量,用于统计和资源分配调整。
- 生活例子:餐厅记录每位顾客的用餐时间、占用餐桌时长,后续根据这些信息优化翻台率,操作系统用记账信息优化资源分配。
7. 上下文
- 作用:保存进程运行时的关键信息(如当前执行到哪条指令),确保进程被中断后还能恢复运行。
- 生活例子:顾客用餐时临时去洗手间,服务员会记住桌上菜的状态(吃了多少、下一步该上什么菜),等顾客回来继续用餐,上下文就像这个 “记忆”,让进程恢复时无缝衔接。
属性总结
PCB 就像进程的 “全能档案”,操作系统通过这些属性管理进程,如同餐厅通过顾客档案优化服务。每个属性各司其职:标识身份(PID)、管理资源位置(内存指针、文件描述符表)、跟踪状态(状态、优先级)、记录开销(记账信息)、保存进度(上下文),最终让计算机高效有序地运行。
7.全部流程总结图
好好理解各部分之间的关系