一.操作系统概述
1.1 概念
操作系统是用来管理整个系统的软件资源,如果没有操作系统,无法对计算机进行操作,所以操作系统是计算机与人之间进行交互的一种接口,以及图中绿色部分的内容。
而操作系统具备的管理权是上图中的蓝色部分。
图中的五种管理部分引申出来的各种分支,是我们这一大章节所要学习的内容。
微内核操作系统是后续作为了解。
二.进程管理
2.1进程的状态
进程的状态指操作系统在对进程进行管理的时候,为进程指定的一种状态,便于给进程分配资源管理起来。(好绕,好抽象)
进程的状态如上图中的左边可知,有三种状态
运行(执行)状态:
当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为运行(执行)状态。
就绪状态:
当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。
等待(阻塞)状态:
正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于等待(阻塞)状态
2.2 进程间的转换
如上图,在运行态的时候可以发生某个事件(等待某个事件的发生),就是缺某种资源,随后进入到了等待状态,当你缺的这个资源,调配给了的时候,这个时候就可以由等待状态进入到就绪状态,需要注意的是,等待状态完成时,并不能返回运行状态(图中没有箭头可以由等待返回运行),所以当事情发生的时候,需要去到就绪状态去排队,等cpu给你指令再去运行状态。
上面的可能有点绕,可以打个比方:
你去医院看病(运行),医生让你验血,等报告(等待),验血完成,拿报告去排队(就绪),排到你去让医生看结果(运行)。
2.3 五态模型
上面所说到的图中右边的三种状态并不能涵盖我们所有的状态,比如一些人为的操作(比如医院的急诊,病人根本没用那个时间让你运行-等待-就绪-运行),这个时候就引申出了,五态模型。
五态模型种的运行,活跃就绪(就绪),活跃阻塞(阻塞)对应三态模型,新增了静止就绪,静止阻塞。
五态模型新增加了一个挂起操作,比如运行-挂起这个操作就是人为操作,让这个操作暂时搁置,并不缺其他的资源,此时进入到静止就绪,而静止就绪到活跃就绪的操作就相当于
你在听歌(活跃就绪)-----来电话了,暂停听歌(挂起听歌这个操作-(听歌)静止就绪)------挂断电话,继续听歌(取消暂停,恢复听歌,活跃就绪)。
三.前趋图
3.1 简单介绍
前趋图通常与pv操作放在一起,后面会讲,这里介绍一些,前趋图是高频考点。
如上图,是一个包饺子的操作,左边给我们一种感觉就是,必须先完成a,然后b,然后c,而右边的图可以告诉我们,A,B,C的操作可以同时进行。所以用前趋图来表达的就是一系列活动他的先后约束关系。
四.进程的同步与互斥
4.1 进程的同步与互斥介绍
下一章的PV操作是难点,所以得要先理解什么是同步什么是互斥
进程的同步:
同步的概念非常好理解,你和你闺蜜约好去白马寺玩,你走路,你闺蜜骑车,可想而知,你闺蜜会先赶到白马寺门口
这个时候她需要等你开11路公交车走过来,然后一起买票进去,这就是同步。
所以同步对速度有所要求,当速度快的与速度慢的差距过大,就需要速度快的等待速度慢的。
同步的反义词是异步。
进程的互斥:
在同一时刻我只允许某一个进程去使用某个资源,同一个资源不能同时赋予多个进程,看图,千军万马过独木桥,独木桥就是一个资源。
而后面的千军万马就是我们的进程。一个人占用了这个独木桥过桥,其他人得等待。这就是互斥。
而如果是一个人行天桥,可供多人通过,我们称之为共享资源
互斥的反义词是共享
4.2 同步与互斥在PV操作里的经典问题
如上图,生产者与消费者哪里会存在同步,哪里会存在互斥。
单缓冲区:
当市场的容量只能存放第一个东西,而不能存放第二个了,而对于市场的操作不能一个人进去搬东西,一个人去运东西。
只能有一个人进行操作,而此时市场就是一个互斥资源,只能一个人操作,不能同时操作。
而生产者只能在市场放入一个东西,且需要等待消费者拿走东西,才能放第二个,这个操作是同步。
因为生产者需要等待消费者取走东西,才能放入。
多缓冲区:
多缓冲区的情况其实和单缓冲区的情况是一样的,只不过在同步的情况下可以放的更多了,之前是1个现在是10个。
对于PV操作的问题就是需要我们去判别什么时候是同步,什么时候是互斥。