2022新版计算机基础,计算机组成原理+操作系统+网络
2022 新版计算机基础:计算机组成原理 + 操作系统 + 计算机网络精讲
计算机基础是程序员绕不开的”内功”。本文以 2022 年主流技术视角,系统梳理计算机组成原理、操作系统、计算机网络三大核心板块,兼顾考研 408 与面试实战需求。
一、为什么 2022 年还要重学计算机基础
很多人会问:框架天天更新,为什么计算机基础还要反复学?原因有三:
技术会过时,原理不会。Vue3 会变,但”进程与线程”几十年不变。
面试必考。大厂一面、二面几乎必问 TCP 三次握手、进程调度、虚拟内存。
排查问题的底层能力。CPU 飙高、内存泄漏、网络抖动,最终都要回到这些知识。
2022 年新版的意义在于:结合现代硬件(多核、SSD、云原生)和新场景(容器、微服务、高并发)重新理解经典理论。
二、计算机组成原理
2.1 冯·诺依曼体系结构
现代计算机的基石,核心思想:
存储程序:程序和数据一样存在内存里。
五大部件:运算器、控制器、存储器、输入设备、输出设备。
以运算器为中心(现代计算机已演变为以存储器为中心)。
冯·诺依曼瓶颈:CPU 与内存之间的带宽限制。这催生了 Cache、多级存储体系。
2.2 数据的表示与运算
原码、反码、补码:计算机用补码表示整数,因为可以把减法变加法,简化电路。
浮点数 IEEE 754:
符号位 + 阶码 + 尾数。经典问题0.1 + 0.2 !== 0.3就源于此。定点数与浮点数:定点运算快,浮点范围大。
实战意义:理解浮点误差,才能正确做金额计算(用 BigDecimal 或整数分)。
2.3 存储系统:Cache 与内存
存储层次:
text
寄存器 > Cache(L1/L2/L3) > 内存 > SSD > HDD
速度递减,容量递增,价格递减
Cache 映射方式:
直接映射:简单但冲突多。
全相联映射:灵活但硬件复杂。
组相联映射:折中方案,最常用。
局部性原理:
时间局部性:刚访问的数据很可能再访问。
空间局部性:访问了 A,很可能访问 A 旁边的数据。
实战意义:为什么遍历二维数组,按行遍历比按列快?因为按行符合空间局部性,Cache 命中率高。
c
// 快:按行访问,连续内存
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
sum += a[i][j];
// 慢:按列访问,跨行跳跃
for (int j = 0; j < N; j++)
for (int i = 0; i < N; i++)
sum += a[i][j];
2.4 CPU 与指令系统
指令周期:取指 → 译码 → 执行 → 访存 → 写回。
流水线:多条指令重叠执行,提升吞吐。冒险分三类:结构冒险、数据冒险、控制冒险。
CISC vs RISC:x86 是 CISC,ARM 是 RISC。手机、M1/M2 芯片都是 ARM。
多核与超线程:一个物理核通过超线程模拟两个逻辑核,提升并行度。
实战意义:为什么单核性能提升变慢,大家转向多核?因为功耗墙和频率墙。这也解释了为什么并发编程越来越重要。
三、操作系统
3.1 操作系统概述
四大功能:进程管理、内存管理、文件管理、设备管理。
用户态与内核态:
用户态:应用程序运行,权限受限。
内核态:操作系统核心,可执行特权指令。
系统调用:用户态进入内核态的唯一入口。
实战意义:频繁系统调用(如 read/write)开销大,所以有了缓冲区、批量读写。
3.2 进程与线程
核心区别:
| 维度 | 进程 | 线程 |
|---|---|---|
| 资源 | 独立地址空间 | 共享进程资源 |
| 开销 | 创建/切换大 | 创建/切换小 |
| 通信 | IPC(管道、消息队列、共享内存) | 直接共享变量 |
| 崩溃影响 | 相互隔离 | 一个线程崩溃可能拖垮进程 |
进程状态:创建 → 就绪 → 运行 → 阻塞 → 终止。
调度算法:
先来先服务(FCFS)
短作业优先(SJF)
时间片轮转(RR)
多级反馈队列(现代 OS 主流)
线程实现模型:
用户级线程:切换快,但一个阻塞全阻塞。
内核级线程:切换慢,但可真正并行。
混合模型:如 Go 的 GMP、Java 的虚拟线程(2022 年 JDK 19 预览)。
3.3 内存管理
虚拟内存:每个进程都有独立的虚拟地址空间,通过页表映射到物理内存。
分页 vs 分段:
分页:固定大小,解决外部碎片。
分段:按逻辑划分,便于共享和保护。
段页式:先分段再分页,兼顾两者。
页面置换算法:
FIFO:简单,但有 Belady 异常。
LRU:最近最少使用,效果好但实现成本高。
LFU:最少使用频率。
Clock:LRU 的近似,实际常用。
实战意义:为什么 Redis 用 LRU/LFU 做淘汰策略?为什么数据库 Buffer Pool 用改进 LRU?都是这套理论的应用。
3.4 文件系统与 IO
文件组织:连续分配、链式分配、索引分配。
inode:Linux 中文件的元数据,文件名在目录项中,指向 inode。
IO 模型:阻塞 IO、非阻塞 IO、IO 多路复用(select/poll/epoll)、异步 IO。
epoll 为什么快:
select/poll 需要遍历所有 fd。
epoll 用红黑树管理 fd,就绪事件用回调,只返回活跃的 fd。
这就是 Nginx、Redis 高并发的底层原因。
四、计算机网络
4.1 分层模型
OSI 七层 vs TCP/IP 四层:
| OSI 七层 | TCP/IP 四层 | 典型协议 |
|---|---|---|
| 应用层 | 应用层 | HTTP、DNS、SMTP |
| 表示层 | 应用层 | SSL/TLS |
| 会话层 | 应用层 | — |
| 传输层 | 传输层 | TCP、UDP |
| 网络层 | 网络层 | IP、ICMP、ARP |
| 数据链路层 | 网络接口层 | Ethernet |
| 物理层 | 网络接口层 | — |
实战记忆:物-链-网-传-会-表-应(从下到上)。
4.2 TCP 协议
三次握手:
text
Client Server
|— SYN ——->|
|<– SYN+ACK —-|
|— ACK ——->|
为什么是三次?防止失效的连接请求突然到达,浪费服务器资源。
四次挥手:
text
Client Server
|— FIN ——->|
|<– ACK ——–|
|<– FIN ——–|
|— ACK ——->|
为什么是四次?因为 TCP 是全双工,每个方向都要单独关闭。服务端收到 FIN 后可能还有数据要发,所以 ACK 和 FIN 分开。
TCP 可靠传输:
序号 + 确认 + 重传
滑动窗口(流量控制)
拥塞控制:慢启动、拥塞避免、快重传、快恢复
实战意义:为什么 HTTP/3 改用 UDP(QUIC)?因为 TCP 队头阻塞在高丢包网络下性能差。
4.3 HTTP 协议
HTTP/1.1 问题:
队头阻塞:一个请求慢,后面都等。
头部冗余:每次都要带完整 Header。
HTTP/2 改进:
多路复用:一个连接并发多个请求。
头部压缩(HPACK)。
服务器推送。
HTTP/3:基于 QUIC(UDP),解决 TCP 层队头阻塞。
HTTPS:
对称加密 + 非对称加密 + 证书。
TLS 握手:ClientHello → ServerHello → 证书验证 → 密钥交换 → 加密通信。
4.4 高频面试题
从输入 URL 到页面展示发生了什么?
DNS 解析 → TCP 握手 → TLS 握手 → HTTP 请求 → 服务端处理 → 响应 → 浏览器渲染。TCP 和 UDP 区别?
TCP 可靠、面向连接、有序;UDP 不可靠、无连接、快。为什么 TCP 粘包?怎么解决?
TCP 是字节流,无消息边界。解决:定长、分隔符、长度字段。TIME_WAIT 过多怎么办?
原因:主动关闭方等待 2MSL。
解决:SO_REUSEADDR、调整内核参数、连接复用。
五、三大板块的联系
不要孤立地学这三门课,它们在实际系统中是联动的:
案例:一次 HTTP 请求的完整链路
网络:TCP 三次握手建立连接,HTTP 请求发送。
组成原理:数据经过网卡 → 内存 → CPU 处理,Cache 加速热点数据。
操作系统:网卡中断 → 内核协议栈 → epoll 通知应用 → 用户态处理。
再比如高并发系统:
网络层:epoll 多路复用。
操作系统:多线程/协程调度。
组成原理:多核并行、Cache 亲和性。
理解联动,才是真正学懂。
六、2022 新版学习建议
6.1 学习顺序
text
计算机组成原理 → 操作系统 → 计算机网络
先懂硬件,再懂 OS 如何管理硬件,最后懂网络如何通信。
6.2 推荐资源
书籍:《深入理解计算机系统》(CSAPP)、《现代操作系统》、《计算机网络:自顶向下方法》。
课程:哈工大李治军操作系统、王道考研 408、MIT 6.824(分布式)。
实战:用 C 写一个简易 TCP 服务器;用 Go/Java 写一个简易 HTTP 服务器。
6.3 面试准备
必背:TCP 三次握手/四次挥手、进程线程区别、虚拟内存、epoll。
加分:能手写 LRU、能解释 TCP 拥塞控制、能说清 HTTPS 握手。
避坑:不要只背结论,要能讲清”为什么”。
七、总结
| 板块 | 核心问题 | 一句话精髓 |
|---|---|---|
| 计算机组成原理 | 硬件如何执行程序 | 存储程序 + 层次化存储 + 流水线 |
| 操作系统 | 如何管理硬件资源 | 抽象 + 隔离 + 调度 |
| 计算机网络 | 如何跨机器通信 | 分层 + 协议 + 可靠传输 |
计算机基础不是背出来的,是理解 + 串联 + 实战出来的。2022 年新版的意义,不是推翻经典,而是用现代视角重新理解经典。
基础扎实,方能走远。
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu
推荐文章: