一、冯诺依曼体系结构
我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。
存储器:指的是内存,在冯诺依曼体系结构中处于核心地位,是硬件级别的缓存空间 输入设备:鼠标,键盘,摄像头,话筒,磁盘,网卡…… 输出设备:显示器,播放器硬件,磁盘,网卡…… 运算器:对我们的数据进行计算任务(算数运算,逻辑运算) 控制器:对我们计算机硬件流程进行一定的控制
而我们平时所熟知的 CPU,就是运算器和控制器的结合。
关于冯诺依曼,必须强调几点:
- 这里的存储器指的是内存
- 不考虑缓存情况,这里的 CPU 能且只能对内存进行读写,不能访问外设 (输入或输出设备)
- 外设 (输入或输出设备) 要输入或者输出数据,也只能写入内存或者从内存中读取
- 一句话,所有设备都只能直接和内存打交道
二、操作系统 (Operating System)
操作系统的概念
任何计算机系统都包含一个基本的程序集合,称为操作系统 (OS)。就比如我们常见的 iOS, CentOS, Ubuntu 等等。
笼统的理解,操作系统包括:
- 内核(进程管理,内存管理,文件管理,驱动管理)
- 其他程序(例如函数库,shell 程序等等)
设计 OS 的目的
- 对下,与硬件交互,管理所有的软硬件资源
- 对上,为用户提供一个好的执行环境
OS 核心功能
在整个计算机软硬件架构中,操作系统的定位是:一款纯正的'搞管理'的软件。
总的来说操作系统就像一个管理层,就好像大学中的领导、校长,他只需要获取信息进行管理、下达指令、比如某同学挂科,管理层得到消息,并不会直接联系某同学,通知你的导员与你进行交流,而导员在其中就充当一个'驱动程序'的功能,而我们则更类似于底层硬件。
三、进程
进程的基本概念
通俗来讲:一个已经加载到内存中的程序叫做进程(任务),正在运行的程序叫做进程。 细致来讲:进程是由内核 PCB(process control block)数据结构对象加上你自己的代码和数据构成。
通俗比喻
- 程序 = 菜谱(静态的文本 / 代码,存在硬盘里,不会自己动)
- 进程 = 厨师按照菜谱做菜的全过程(动态的、占用资源、有生命周期)
- 一个菜谱(程序)可以被多个厨师同时做(多个进程),比如你开两个微信窗口,就是两个微信进程。
进程的核心特征
1. 独立性
每个进程都有自己独立的内存空间、CPU 时间片、系统资源(比如文件句柄、网络端口),一个进程崩溃不会影响其他进程(比如浏览器崩溃,微信还能正常用)。
2. 动态性
进程有完整的生命周期:
- 就绪:进程准备好了,就等 CPU 分配时间片
- 运行:CPU 正在执行该进程的代码
- 阻塞:进程在等外部资源(比如读文件、网络请求),暂时让出 CPU
3. 并发性
操作系统通过'时间片轮转'让多个进程'同时'运行(比如你一边听歌,一边写代码,一边聊微信)——CPU 快速切换不同进程,人类感知不到停顿,看起来像并行。
进程控制块——PCB
一句话来解释:PCB 就是操作系统用来描述、管理、记住一个进程的'档案本'。
进程 = 一个人 PCB = 这个人的身份证 + 档案 + 病历 + 状态记录
PCB 核心作用
进程切换靠的就是 PCB
进程 A 跑一半,CPU 要切去跑进程 B 操作系统把 A 的寄存器、PC、状态存到 A 的 PCB 把 B 的 PCB 里的内容恢复到 CPU 寄存器继续跑 B
没有 PCB,操作系统就无法实现多任务。


