所有图片来自于B站王道操作系统视频教程。上课听不懂,考前抱佛脚。
第一章:操作系统:
1.定义:
1.负责管理协调硬件、软件等计算机资源的工作。
2.为上层的应用程序、用户提供简单易用的服务。
3.操作系统是系统软件,而不是硬件。
进程的知识:进程是一个程序的执行过程。执行前需要将该程序放到内存中
,才能被CPU处理。
2.操作系统的功能
1.系统资源的管理者:处理机管理,存储器管理,文件管理,设备管理。
2.作为用户和计算机硬件之间的接口:命令接口,程序接口(由一组系统调用
组成),GUI。
3.实现了对计算机资源的抽象。
3.操作系统的目标
方便性
,有效性
,可扩充性
和开放性
。
4.多道批处理系统的优缺点
优点:
1.资源利用率高
:引入多道批处理能使多道程序交替运行。
2.统吞吐量大
。
缺点:
1平均周转时间长
。
2无交互能力
。
单道批处理系统技术:
多道批操作系统技术:
5.分时系统的优缺点
分时操作系统:计算机以时间片为单位轮流为各个用户/作用服务。
主要优点:解决了人机交互问题、共享主机
。
主要缺点:不能优先处理一些紧急任务
,对于所有用户、作业都是公平的。。
1.多路性:允许多个用户共享同一台计算机。
2.独立性:每个用户在各自的终端上进行操作。
3.及时性:用户的请求在很短的时间内获得响应。
4.交互性:用户可以通过终端与系统进行广泛的人机对话。
6.实时系统与分时系统的比较
分时系统指的是终端用户与系统交互
。
实时系统指的是信息的采集和控制
。
实时操作系统的主要优点:能够优先响应一些紧急任务
。
7.并发
概念
指两个或多个事件在同一个时间间隔内发生。这些事件宏观上是同时发生的
。但是微观上是交替进行的
。
操作系统的并发性与并行性。
并发性:是指两个或者多个事件在同一时间间隔内
发生。
并行性:是指两个或者多个事件在同一时刻
发生。
总结:
8.共享
1.互斥共享方式
系统中的某些资源,如打印机、磁带机等,虽然可以提供给多个进程(线程)使用,但应规定在一段时间内,只允许一个进程访问该资源
。为此,在系统中应建立一种机制,以保证多个进程对这类资源的互斥访问。
2.同时访问方式
系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。这里所谓的“同时”,在单处理机环境下是宏观意义上的,而在微观上,这些进程对该资源的访问是交替进行的。典型的可供多个进程“同时”访问的资源是磁盘设备
。一些用重入码编写的文件也可以被“同时”共享,即允许若干个用户同时访问该文件。
9.虚拟
1.时分复用技术
虚拟处理机技术、虚拟设备技术
2.空分复用技术
20世纪初,电信业中就已使用频分复用技术来提高信道的利用率。它是指将一个频率范围比较宽的信道划分成多个频率范围较窄的信道(称为频带)
,其中的任何一个频带都仅供一对用户通话。早期的频分复用技术只能将一条物理信道划分为几条到几十条话路,后来又很快发展到成千上万条话路,每条话路供一对用户通话。再后来在计算机中也把空分复用技术用于对存储空间的管理,用以提高存储空间的利用率。
10.异步
在多道程序环境下,系统允许多个进程并发执行。在单处理机环境下,由于系统中只有一台处理机,因而每次只允许一个进程执行,其余进程只能等待。
第二章:进程
1.进程的定义。
程序段+数据段+PCB=进程
PCB是进程的唯一标志
。
传统定义:
1.进程是程序的一次执行过程。
2.进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
3.进程是具有独立功能的程序在数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
进程定义:
进程是进程实体的动态运行过程,是系统进行资源分配和调度的一个独立单位。
进程实体和进程的区别:
进程实体是静态的,进程则是动态的。
2.进程的特征
1.动态性:进行是程序的一次执行过程,是动态地产生、变化和消亡
的。
2.独立性:进程是能独立运行,独立获得资源、独立接受调度
的基本单位。
3.并发性:内存中有多个进程实体,各进程可并发执行
。
4.异步性:各进程按各自独立的、不可预知的速度向前推进
,操作系统要提供"进程同步机制"来解决异步问题。
5.结构性:每个进程都会配置一个PCB。结构上看,进程由程序段,数据段,PCB组成
。
3.进程的状态和转换
三种基本状态:
运行态:占有CPU,并在CPU上运行
。
就绪态:已经具备运行条件,但由于没有空闲CPU,而暂时不能运行
。
阻塞态(又称为等待态):因等待某一事件而暂时不能运行
。
进程之间的转换:
4.挂起操作
进程除了就绪,执行,阻塞三种最基本的状态外,为子系统和用户观察和分析进程需要,还引入了一个对进程的重要操作---------挂起操作。
挂起操作作用于某个进程时,该进程将被挂起,该进程处于静止状态
。
如果进程处于执行状态,进程将暂停执行
。
如果进程处于就绪状态,进程此时暂不接受调度
。
挂起操作
与激活操作
相对应。
挂起操作的引入的原因:
1.终端用户的需要。
2.父进程请求。
3.负荷调节的需要。
4.操作系统的需要。
5.进程同步
进程同步概念:
对多个相关进程在执行次序上进行调度,使并发执行的诸进程之间按照一定的规则共享系统资源,并能很好地相互合作,从而使程序的执行具有可再现性。
临界资源的概念:
一个时间段内只能允许一个进程使用的资源。
临界区:访问临界资源的那一段代码
。
6.进程互斥
同步机制(为了实现对临界资源的互斥访问)应遵循的规则:
7.信号量机制
信号量(S):拥有资源总数。
通过P V操作,S为正值----当前剩余资源数量
通过P V操作,S为负值----当前等待唤醒数量
P:申请资源
有,批准资源数量,进行S-1操作
无,阻塞调用进程
V:释放资源
有,资源数量 ,进行S+1操作
无,唤醒等待进程
1.信号量机制实现进程互斥
信号量实现互斥:
1.分析并发进程关键活动,划定临界区
2.设置互斥信号量mutex,初值为1
3.在临界区之前执行P(mutex)
4.在临界区之后执行V(mutext)
对于不同临界资源
需要设置不同的互斥信号量
(如下图的打印机和摄像头)。P、V操作必须成对出现
。
2.信号量机制实现进程同步
实现进程同步的意思是让进程按照我们的期望有序的推进
。
实现进程同步的方法:
1.分析什么地方需要进行“同步关系”,即必须保证“一前一后”执行两个操作。
2.设置同步信号量S,初始为0
。
3.在“前操作”之后执行V(S)
。
4.在“后操作”之后执行P(S)
如图所示:
这样就达到了P1操作执行才能执行P2操作
3.信号量机制的前驱图
根据前驱图,每一个前驱图设置一个同步变量(例如:a=0),每一个前驱关系都是前V后P
。
8.生产者-消费者问题
总共分为三种关系:
只有缓冲区没满时,生产者才能把产品放入缓冲区,否则必须等待。(同步关系。缓冲区满时,生产者等待消费者取走产品,这里让进程按照我们的期望有序的推进,所有属于同步关系
)。
只有缓冲区不空时,消费者才能取出产品,否则必须等待。(同步关系。缓冲区空时,消费者要等待生产者放入成品。这里让进程按照我们的期望有序的推进,所有属于同步关系
)。
缓冲区是临界资源,各进程必须互斥地分为。(互斥关系。因为生产的产品不能占用同一个缓冲区
)。
如何实现生产者-消费者问题:
P(empty)需要放在P(mutext)之前,P(full)放在P(mutex)之前,否则将使生产者,和消费者进程阻塞,出现死锁。
使用产品放在V(empty)之后,避免增加临界区的代码过大,耗废更多时间。
V操作的顺序可以随意交换。
同步关系:是前一个进程V后一个进程P。
互斥关系:P、V在同一个进程。
9.多消费者和多生产者问题。
问题描述:
问题分析:
互斥关系(mutex=1):
对缓冲区(盘子)的访问要互斥的进行
。
同步关系:
1.父亲将苹果放入盘子后,女儿才能取苹果
。
2.母亲将橘子放入盘子后,儿子才能取橘子
。
3.只有盘子为空时,父亲或母亲才能放入水果
。
初始化:
如何实现:
10.读者写者问题
王道读者写者问题视频地址
问题描述:
如何实现:
11.哲学家进餐问题
问题描述:
如何实现:
分析:下面这种方法起到了总有一个哲学家在吃饭的效果,不会发生死锁。
第三章:处理机调度和死锁
1.非抢占式算法
1.先来先服务算法(FCFS)
总结:
2.短作业优先(SJF)
总结:
3.高响应比优先调度算法(HRRN)
总结:
4.优先级调度算法(PSA)
非抢占式的形式:
总结:
4.总结
2.抢占式算法
1.优先调度算法(PSA)
抢占式调度:
总结:
3.死锁
1.什么是死锁?
2.死锁、饥饿、死循环的区别
死锁:各进程互相等待对方手里的资源,导致各进程都阻塞,无法向前推进的现象
。
饥饿:由于长期得不到想要的资源,某进程无法向前推进的现象
。比如:在短进程优先(SPF)算法中,若有源源不断的短进程到来,则长进程将一直得不到处理机,从而发生长进程“饥饿”。
死循环:某进程执行过程中一直跳不出某个循环的现象
。有时是因为程序逻辑 bug 导致的,有时是程序员故意设计的。
3.死锁产生的必要条件
产生死锁必须同时满足四个条件,缺一不可,否则死锁不会发生:
互斥条件
:只有对必须互斥使用的资源争抢才会导致死锁。(如哲学家的筷子,打印机设备)
请求和保持条件
:进程已经保持至少一个资源
,但又提出了新的资源请求
,而该资源又被其他进程占有
,此时请求进程被阻塞
,但又对自己已有的资源保持不放
。
不可抢占条件
:进程所获得的资源在未使用完之前,不能由其他进程强行夺走
,只能主动释放
。
循环等待条件
:存在一种进程资源的循环等待链
,链中的每一个进程已获得的资源同时被下一个进程所请求
。
4.什么时候会发生死锁
1.对系统的竞争
。
2.进程推进顺序非法
。
3.信号量使用不当也会造成死锁
。
5.预防死锁
1.破坏互斥条件
互斥条件:只有对必须互斥使用的资源的争抢才会导致死锁
。
如果把只能互斥使用的资源改造为允许共享使用
,则系统不会进入死锁状态。比如SPOOLING技术。
该策略的缺点:并不是所有的资源都可以改造成可共享使用的资源
。并且为了系统安全,很多地方还必须保护这种互斥性。因此,很多时候都无法破坏互斥条件
。
2.破坏不可抢占条件
不可抢占条件
:进程所获得的资源在未使用完之前,不能由其他进程夺走,只能主动释放。
破坏不可抢占条件
方案一:当某个进程请求新的资源得不到满足时,它必须立即释放保持的所有资源
,待以后需要时再重新申请。也就是说,即使某些资源尚未使用完,也需要主动释放
,从而破坏了不可剥夺条件。
方案二:当某个进程需要的资源被其他进程占有的时候,可以由操作系统协助,将想要的资源强行剥夺
。这种方式一般需要考虑各进程的优先级。(比如:剥夺调度方式,就是将处理资源强行剥夺给优先级更高的进程使用)
该策省略的缺点:
1.实现起来比较复杂
。
2.释放已获得的资源可能造成前一段工作失效
。因此这种方法一般只适用于易保存和恢复状态的资源,如CPU。
3.反复地申请资源会增加系统开销,降低系统吞吐量。
4.采用方案一可能会导致进程饥饿
。
3.破坏请求和保持条件
请求和保持条件
:进程已经保持至少一个资源
,但又提出了新的资源请求,而该资源被其他进程占有,此时请求进程被组塞,但又对自己已有的资源保持不放。
可以采用静态分配方法
,即进程在运行前一次申请完它所需要的全部资源,在它的资源未满足前,不让它投入运行。一旦投入运行后,这些资源就一直归他所有,该进程就不会再请求别的任何资源了。
4.破坏循环等待条件
循环等待条件
:存在一种进程资源的循环等待链
,链中的每一个进程已获得同时被下一次进程所请求。
6.避免死锁
银行家算法
第四章:存储器管理
1.基于顺序搜索动态分区分配算法
1.首次适应算法(FF)(按地址依次递增
)
2.最佳适应算法( BF)(按容量递增,内存改变之后需要重新排序
)
缺点:
3.最坏适应算法(WF)(按容量递减,内存改变之后需要重新排序
)
缺点:
4.循环首次适应(NF)(按地址递增的顺序排列,组成一个循环链,内存改变之后不需要重新排序
)
缺点:
2.伙伴系统
3.分页存储管理方式
1.物理地址
求物理地址:
2.页表
页表长度=页表项长度×分页的个数
页表项长度=块号的长度
3.基本地址变换机构
例题:
4.具有快表的地址变换机构
什么是快表(TLB)
快表
,又称联想寄存器(TLB
),是一种访问速度比内存快得多的高速缓冲缓存器
,用来存放当前还问的若干页表项,以加速地址变换的过程。与之相对应的内存中的页表被称为慢表
。
区别:
5.两级页面
单级页面的问题?
4.分段存储管理
1.分段
2.段表
页表的长度是相同,但是段表的长度是不一定相同的
各个段表项的长度是相同的
例子:
5.分段和分页的区别
1.页是信息的物理单位
。分页的主要目的是为了实现离散分配,提高内存利用率。分页仅仅是系统管理上的需要
,完全是系统行为,对用户是不可见的
。段是信息的逻辑单位
。分段主要目的是更好地满足用户需求
。一个段通常包含一组属于一个逻辑模块的信息。分段对用户是可见的
,用户编程时需要显式地给出段名。
2.页的大小固定
由系统决定。段的长度不固定
,决定于用户编写的程序。
3.分页的用户进程地址空间是一维的
,程序只需给出一个记忆符即可表示一个地址
。分段的用户进程地址空间是二维的
,程序员在标识一个地址时,既要给出段名
,也要给出段内地址
。
优缺点分析:
第五章:虚拟存储器
1.虚拟存储器的特征
易混淆知识点
:
虚拟内存的最大容量
=CPU寻址范围
虚拟内存的实际容量
=min(内存和外存容量之和,CPU寻址范围)
例:
虚拟内存的主要特征:
多次性
:无需在作业运行时一次性全部装入内存,而是允许被分为多次调入内存
。
对换性
:在作业运行时无需一直常驻内存,而是允许在作业运行过程中,将作业换入、换出
。
虚拟性
:从逻辑上扩充了内存的容量,使用户看到的内存容量,远大于实际的容量
。
2.页面置换算法
1.最佳置换算法(OPT)
概念:
最佳置换算法:每次选择淘汰的页面
将是以后永不使用
,或者在最长时间内不再被访问的页面
,这样可以保证最低的缺页率
。
例题:
缺点:
操作系统无法提前预判页面访问序列。因此,最佳置换算法是无法实现的。
2.先进先出置换算法(FIFO)
概念:
先进先出置换算法:每次选择淘汰的页面
是最早进入内存的页面
。
例题:
缺点:
3.最近最久未使用置换算法(LRU)
概念:
最近最久未使用置换算法:每次淘汰的页面
是最近最久未使用的页面
。
例题:
缺点:
该算法实现需要专门的硬件支持,实现困难,开销大。
优点:
算法性能好,最接近最佳置换算法。
4.Clock置换算法(NRU)
前面三个算法的缺点:
实现方法:
5.改进型的时钟置换算法
算法的定义:
算法规则:
建议看视频,图文并茂
6.最少使用置换算法(LFU)
概念:
在最近时期内是使用最少的页面做为淘汰页。
7.总结
3.抖动和工作集
1.什么是抖动?
抖动的定义:
数字信号的各个有效瞬时对其当时的理想位置的短期性偏离
2.抖动产生的原因?
根本原因:
在系统中运行的进程太多
,由此分配给每一个进程的物理块太少
,不能满足进程正常运行
的基本要求,致使每个进程在运行时,频繁地出现缺页
,必须请求系统将所缺之页调入内存
。这会使用的系统在排队等待页面调进/调出的进程数目增加
。显示,对磁盘的有效访问时间也随之急剧增加
,造成每个进程的大部分时间都用于页面的换进/换出
,而几乎不能
在去做任何有效的工作
,从而导致发生处理机的利用率急剧下降并趋于0的情况
。我们称此事的进程是处于"抖动
"状态的。
3.工作集的定义
工作集是指某段时间间隔△里,进程实际访问页面的集合。
第六章:输入输出系统
寻找时间:
延迟时间:
(平均延时时间=(顺时针延时时间+逆时针延时时间)/2)
传输时间:
(平均传输时间=(顺时针传输时间+逆时针传输时间)/2)
1.先来先服务算法(FCFS)
2.最短寻道时间优先算法(SSTF)
3.扫描算法(SCAN)
4.LOOK调度算法
5.循环扫描算法(CSCAN)
6.C-LOOK算法
如果没有题目特殊说明,一般做题SCAN就是LOOK算法,CSCAN算法就是C-LOOK算法。