目录
考点概览

一.基本概念
1.大家熟悉的操作系统

2.一台电脑的诞生
- 操作系统介于软件(应用程序)和硬件(裸机)之间

3.操作系统的概念

4.操作系统的功能和目标
- 作为系统资源的管理者
- 向上层提供方便易用的服务
- 作为最接近硬件的层次

5.操作系统的特征
- 并发:操作系统通过时间片轮转等技术,让多个程序在宏观上同时运行,微观上交替执行,提高了系统资源利用率。
- 共享:操作系统允许多个进程或用户共同使用有限的系统资源(如CPU、内存、I/O设备),并通过管理机制确保资源的合理分配和安全访问。
- 虚拟:操作系统通过虚拟化技术为每个进程提供独立的虚拟地址空间和资源视图,使每个进程都感觉自己独占整个系统资源。
- 异步:操作系统中进程的执行具有不确定性,进程的执行顺序、速度和完成时间不可预知,需要通过同步机制来协调并发进程间的执行。

6.操作系统的发展与分类(了解即可)
- 手工操作阶段(无操作系统):程序员直接通过开关、插卡等物理设备操作计算机,程序独占全机,效率极低,人机矛盾突出。
- 批处理系统阶段:将多个作业成批处理,通过监督程序自动调度执行,消除了人工干预,显著提高了系统资源利用率。
- 多道程序系统阶段:允许多个程序同时驻留在内存中交替执行,通过作业调度和内存管理实现并发,进一步提升了CPU和设备的利用率。
- 分时操作系统阶段:采用时间片轮转技术,使多个用户通过终端同时交互使用计算机,每个用户都感觉自己独占系统资源。
- 实时操作系统阶段:能够对外部事件做出及时响应,在严格的时间限制内完成任务,主要用于工业控制、航空航天等对时效性要求高的领域。
- 个人计算机操作系统阶段:面向个人用户,提供友好的图形界面和丰富的应用软件,使计算机从专业工具转变为大众消费品。
- 网络/分布式操作系统阶段:支持多台计算机通过网络互联协同工作,实现资源共享和分布式计算,为现代云计算和物联网奠定基础。

二.进程管理
1.进程的五种状态
- 创建态:进程正在被操作系统创建,已分配必要资源但尚未进入就绪队列。
- 就绪态:进程已获得除CPU外的所有必要资源,等待被调度程序选中分配处理器时间。
- 运行态:进程已获得CPU使用权,其指令正在处理器上执行。
- 阻塞态:进程因等待某事件(如I/O完成、信号量)而暂时无法继续执行,主动放弃CPU。
- 终止态:进程已完成执行或被强制结束,操作系统正在回收其占用的资源。
2.状态转换图

进程由
- 运行态 -> 阻塞态:是进程自身做出的主动行为。(比如,进程因主动请求某项尚未就绪的资源(如I/O操作),而自愿放弃CPU并暂停执行。)
- 阻塞态 -> 就绪态:不是进程自身控制的,而是一种被动行为。(比如,进程因所等待的外部事件(如I/O完成)被操作系统处理完毕,从而被被动唤醒并重新具备运行资格。)

关键名词解读:
- PCB:**进程控制块(PCB)**是操作系统为每个进程维护的核心数据结构,相当于进程的"身份证"。它记录了进程的标识符、状态、程序计数器、CPU寄存器、内存信息、打开文件等关键信息,是进程切换和调度的基础,也是进程存在的唯一标志。
3.前驱图
下图就是生活常识:即,只有之前的事做完了,后续的事才能推进。(比如我要包饺子,就需要准备原材料,并把它们搅拌成饺子馅,这太好理解了)

4.进程同步机制
先好好理解下面这两句话:
- 【同步】的反义词是【异步】
- 【互斥】的反义词是【共享】


5.进程互斥机制



6.信号量机制


7.PV操作
- P:申请一个资源S
- V:释放一个资源S

8.PV操作实现前驱操作
还是那两句话:
- P:表示申请(占用)一个资源
- V:表示释放一个资源
只有前面的进程执行完,把所占信号量释放了(后面进程执行所需的),才能让后面进程执行。

真题

解析:
- 第一步:先画出信号量(这一步非常重要,按照从上到下、从左到右,这个顺序画)
- 第二步:要认识到"进程在执行前,需要进行P操作(申请资源),执行后需要V操作(释放资源)"。且要认识到"进程释放的信号量,就是后驱进程所占用的信号量"
思考:为什么进程P3在执行前,需要申请(占用)的信号量是S1和S2,而在执行后,释放的信号量却是S3和S4?
答案:其实很简单,因为P3的前驱进程(P1和P2)释放的信号量是S1和S2,而P3的后继进程(P4和P5)所需的信号量是S3和S4。
然后就可以选出这道题了,三个空分别选C、A、A。
9.什么是死锁?
如下图所示,在这场四角恋中,没有任何一对是彼此相爱,因此就陷入了死锁(谁也无法成对),这就叫死锁。

10.死锁产生的必要条件

总结:
互斥条件:
资源是独享的,一次只能一个人用,别人想用就得排队等。
不剥夺条件:
东西一旦拿到手,除非自己用完主动扔,否则谁也别想硬抢走。
请求和保持条件:
吃着碗里的,看着锅里的(手里占着资源不放,还想要更多新资源)。
循环等待条件:
大家互相卡脖子,形成了一个死循环(A等B,B等C,C又在等A)。
11.死锁的处理策略

总结:
- 预防死锁:直接拆掉死锁的根基,从设计上就让死锁没法发生。
- 避免死锁:像个精明的会计,每次分配资源前都先算算,确保大家都能活下来。
- 死锁检测和解除:先放任不管,等真"堵死"了再派警察来疏通。
真题

解析:
- 第一步:先算出发生死锁的最大资源数。因为每个进程都要5个R,那我就给4个,这样三个进程就需要12个R,此时谁都没凑齐,发生死锁(注意这只是一个极端的情况,我们找的就正是这种极端的边界)
- 第二步:由于每个进程都有4个R了,还差一个就凑够了,因此我们再拿出1个R给任意一个进程,这样就盘活了整个局面(因为只要任何一个进程执行完,就会释放5个R,局面瞬间宽敞了)
综上,故能确保不发生死锁的最小资源数是13(即发生死锁的最大资源数12 ,再加上1,即13),故本题选B。
12.银行家算法

真题


解析:
- 第一步:先求出当前所剩的资源数(即:可用资源总数 - 已分配资源数)
可见此时R1还剩下2个,R2还剩下1个,R3还剩下0个。
- 第二步:看满足哪个进程的"还需资源数",经过对比,只能满足进程P2的还需资源数。因此给它凑够了,让它去运行,运行完,就把所占的全部资源都释放了。因此进程P2执行完,当前的所剩资源数是R1=4 ,R2=2,R3=1。
- 第三步:看当前所剩资源数还满足哪个进程的还需资源数(重复步骤2)。
- 注意:如果当前所剩资源数,哪个进程的"还需资源数"都无法满足,则说明处于不安全员状态了,即:陷入了死锁。
经过上述推理,B选项是对的。
以上就是本篇文章的全部内容,喜欢的话可以留个免费的关注呦~~~

