一、前言
计算机专业三大硬核基石:计组、操作系统、计算机网络。
如果说《计算机组成原理》讲的是硬件怎么造,那《操作系统》讲的就是硬件怎么管。
很多初学的同学:
会背进程、线程、死锁、调度、内存管理
但始终不知道:操作系统到底为什么要存在?没有系统电脑会怎样?
二、最早的电脑:根本没有“操作系统”
2.1 裸机时代:程序员=接线员
在最早的计算机(真空管时代),电脑是没有系统的。
那时候的计算机叫「裸机」,特点非常离谱:
1. 没有图形界面、没有鼠标、没有桌面
2. 没有文件管理、不能双击打开程序
3. 程序员想要运行程序:手动拔开关、插排线、输入二进制
一台机器,一次只能干一件事。
如果你要换一个程序,就要重新拔一遍线路、重新输入数据。
小故事:当年的程序员太惨了
早期程序员,不是坐在电脑前敲代码,而是站在机器前面体力干活。
机器运行期间一旦出错,所有数据直接清零,全程没有保存、没有撤回、没有报错提示。
效率极低、浪费海量硬件资源。
于是人类发现一个致命问题:硬件越来越强,但人跟不上速度。
机器空转、闲置、浪费算力,急需一个管家来统一管理硬件——操作系统就此诞生。
三、操作系统三代进化史
第一代:单道批处理系统(解放双手)
早期人工操作太慢,工程师设计出了批处理。
把一堆任务提前打包好,交给电脑顺序执行,不用人工反复干预。
缺点非常明显:
同一时刻内存只有一道程序
CPU经常等磁盘、等IO,一旦程序等待,CPU直接摸鱼闲置。
对应课本考点:
- 资源利用率低
- 系统并发能力极差
第二代:多道批处理系统(现代OS的雏形)
人们开始思考:
CPU闲着也是闲着,为什么不多放几个程序进去跑?
于是诞生了多道程序设计,也是操作系统最核心的灵魂。
核心思想:
内存中同时驻留多个进程
A程序IO等待 → CPU立刻切去跑B程序
让CPU永远不闲着
这就引出了整本操作系统所有重难点:
-进程并发
- 进程调度
-内存分配
-进程同步互斥
- 死锁问题
可以说:整本OS课本,都是为了解决“多道并发带来的混乱”。
第三代:分时操作系统(真正可用的系统)
批处理适合干活,但不能交互,人输完指令只能干等结果。
分时系统彻底改变了计算机:
把CPU时间切成无数个极短时间片
轮流服务每一个用户、每一个程序
人感觉是“同时运行”,本质是高速轮换执行。
从此:
电脑有了交互能力、有了多任务、有了桌面系统
Windows、Linux、Mac 全部基于分时+多道程序思想。
四、一句话讲透:操作系统到底是干什么的?
给大家一个全网最好懂的定义,秒杀所有背诵:
操作系统 = 硬件的大管家 + 软件的中间人 + 资源的分配者
三大核心职能
1.进程管理:谁先跑、谁后跑、谁暂停、谁等待
2.内存管理:谁占内存、谁挪空间、防止越界、合理分配
3.文件+设备管理:文件怎么存、硬盘怎么读、外设怎么调用
所有的:调度算法、分页分段、虚拟内存、PV操作、死锁、银行家算法
全部是为了管好三样东西:CPU、内存、文件设备。
五、生活化类比(彻底打通思维)
把电脑比作一间教室:
-硬件(CPU/内存/硬盘):教室、桌椅、纸笔
-操作系统(OS):班主任/管理员
-进程/程序:学生任务
-并发:多人同时写作业
-内存空间:座位
-死锁:两个人互相借笔、僵持不动、谁也写不完
-调度算法:老师安排谁先做题、谁先答疑
没有操作系统,硬件就是一堆废铁;没有管理规则,并发就是一团混乱。
六、为什么操作系统是计算机的灵魂?
- 计组告诉我们硬件能做什么
- 操作系统告诉我们如何高效、有序、安全地使用硬件
我们现在的:
多开软件、后台挂APP、一边听歌一边打代码、后台推送、多线程服务
全部是操作系统的并发管理能力。
人工智能、服务器、云服务、大数据集群,底层全部依赖操作系统调度与资源管理。
七、全文总结
1. 计算机从裸机、人工操作进化到批处理、分时多道系统,本质是为了提升硬件资源利用率;
2. 现代操作系统的核心是多道程序并发,全书重难点全部由此衍生;
3. 操作系统承担进程调度、内存管理、设备文件管理三大核心任务;
4. 硬件是基础,OS是调度核心,是所有软件、程序、互联网服务运行的底层地基。