软考之路--用文字记录这个美丽的进程

进程,百度百科对她这样进行阐述,进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。,在小编的理解世界中,进程就是一段程序的执行过程,就好比中午要去食堂吃饭,从十一教走到中快食堂的路上的这个过程,就是进程,纯属小编的个人傻傻的理解,有不同想法的小伙伴欢迎讨论交流,这篇博文,小编主要来讲解一下进程的相关知识,如下图所示,小编会根据下图的框架,进行一一讲解,用文字记录这个美丽的进程......

第一个:状态

进程的状态,这里,我们主要讲解的内容就是两张图,一张三态图,一张五态图,小编通过这两个图来介绍一些相关的知识点:

三态图

我们就这个图来分析一下各个关键部分:

就绪状态:就是“万事俱备只欠东风”的状态,进程已得到运行所需资源,只等待cpu的调度便可运行。

运行状态:进程已得到运行所需资源,并且得到了cpu的调度。

等待状态:不具备运行条件,等待时机的状态,也叫阻塞状态。

运行状态PS等待状态:就绪状态,是等待cpu的调度,只欠cpu的调度。而等待状态是,除cpu以外的其他资源,比如打印机。可能一个进程,这个进程的作用是做统计报表,她同时要进行打印,当用户点击打印,进程需要判断,这个打印机是否空闲,如果这个打印机空闲,资源充足,只需要cpu的调度,即可工作,如果处于忙的状态,那么就需要等待,等待是等待打印机资源,等到打印机空闲,以及系统把打印机分配给a进程的时候,我们就可以进入就绪态了,就只等待cpu的调度了,等待态,等待cpu以外的资源,就绪态,只等待cpu资源。

五态图:

我们对比着三态图来看,从两张图的对比我们可以看出来,运行状态保持,五态图中的活跃就绪和活跃阻塞分别是三态图中的活跃和阻塞,唯有不同的是,五态图中多了挂起,静止就绪和静止阻塞。挂起,从活阻到静止就绪,从活跃阻塞到静止阻塞,把内存中的进程映射到外层的一个过程。挂起,用户可以操作控制,比如听歌的时候,来了电话,按下暂停键,就是挂起。静止就绪静止阻塞点击相应的连接,给您更多惊喜。

第二个:进程死锁

        死锁是进程管理设计不当造成的;进程死锁是一个进程在等待一个不可能发生的事;系统死锁是一个或多个进程产生死锁。其实对于这方面的知识,跟我们的生活特别贴近。比如现阶段,要自考了,好多小伙伴去打印自考题,打印机就是一个很好的例子。所以把生活的场景投进去理解,就很简单了。

死锁产生的条件:

互斥条件:即一个资源每次只能被一个进程使用。

保持和等待条件:有一个进程已获得了一些资源,但因请求其他资源被阻塞时,对已获得的资源保持不放。

不剥夺条件:有些系统资源是不可剥夺的,当某个进程已获得这种资源后,系统不能强行收回,只能由进程使用完时自己释放。

环路等待条件:若干个进程形成环形链,每个都占用对方要申请的下一个资源。

 解决死锁的策略:

死锁预防:我们要求用户申请资源时一起申请所需的全部资源,这就破坏了保持和等待条件:将资源分层,得到上一层资源后,才能申请下一层资源,它破坏了环路等待条件。预防通常会降低系统的效率。

死锁避免:避免是指进程在每次申请资源时判断这些操作是否安全,典型算法是”银行家算法“。但这种算法会增加系统的开销。

死锁检测:前两者是事前措施,而死锁的检测则是判断系统是否处于死锁状态,如果是,则执行死锁解除策略。

死锁解除:这是与死锁检测结合使用的,它使用的方式就是剥夺。即将资源强行分配给别的进程。

第三个:牛刀小试

总结了这么多的理论知识,接下来,我们在实战中演练一下,银行家算法例子,听着高大上有么有`(*∩_∩*)′,题目描述:假设系统中有三类互斥资源R1,R2,R3,可用资源数分别是9,8,5,在T0时刻系统中有P1,P2,P3,P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如下所示,如果进程按(  )序列执行,那么系统状态是安全的?

接下来,小编跟大家分析一下,小编的理解,我们首先求剩下的资源数:

R1=9 -(1+2+2+1)=2;

R2=8 -(2+1+1+2+1)=1;

R3=5 -(1+1+3)=0;

我们从这个表中很容易的分析出    还需资源数=最大需求量-已分配资源数

那么需要一个系统是安全的,那么这个进程就不能产生死锁。现在从我们剩下的资源数和还需要的资源数,我们剩下的R1=2、R2=1、R3=0这个只能符合P2进程的0、1、0;那么我们给P1运行完成之后,我们的资源要释放,所以我们资源=现有资源+已经分配的:

那么我们现在就有了R1、R2、R3的资源分别为:4、2、1;我们再观察一下看哪个进程需要资源符合我们的释放的资源的。那只能是P4了,因为需要的资源为:0、0、1;而我们现在有的资源为:4、2、1,完全能满足这个进程P4的要求,我们看图:

那么这两个进程就完成了,接下来我们还继续对比着来看:我们剩下的资源5、4、1。这时候我们发现了P5和P1都能满足他们所需的资源:所以P5和P1就可以随心所欲了,那我们不如就从需要资源小的开始分配试试;

这时候我们发现我们剩余的资源又能满足到P3和P1进程了。所以我们的答案就不止一种了:

我们要是先分配P1,再分配P5,再到P3结果就是:

从上面的分析过程,我们可以看出来进程的这个顺序有很多种,小编就在想,在都满足不造成死锁的情况下,是否有最优的排序呢,小编觉得,应该有,或许就是在不发生死锁的情况下,我们应该是选择给予需要资源少的进程有不同意见的小伙伴欢迎讨论交流`(*∩_∩*)′。

小编寄语:该篇博文,小编主要从三个方面对进程进程了一些阐述,包括状态,三态图五态图,已经她们之间的区别,其次,死锁,包括死锁产生的条件以及解决死锁的策略,最后,银行家算法,进程和线程的对比,小编找到了一个讲解的很好新意的文章,在这里分享给各位小伙伴,软考之路,未完,待续......

时间: 2024-10-21 05:45:14

软考之路--用文字记录这个美丽的进程的相关文章

软考之路--计算机背后的故事

文法:1.法制:法规. 2.文章的作法. 3.语法.语言的结构方式.包括词的构成和变化﹐词组和句子的组织.文法即文章的书写法规,一般用来指以文字.词语.短句.句子的编排而组成的完整语句和文章的合理性组织.这个是我们小时候接触过的关于文法的概念,那个时候的文法总是会和主语,宾语,谓语等联系在一起. 二十年过去了,今天她再次出现在我面前,还是一样的眼神,藏在记忆深处的"文法"跟眼前的这个"她"有什么不一样呢?在计算机科学中,文法是编译原理的基础,是描述一门程序设计语言和

我的软考之路(七)——数据结构与算法(5)之查找

上篇博文我重点介绍了八大内部排序,这篇博文(数据结构与算法的最后一课)重点介绍查找,我们依旧沿用上篇博文的风格,先简单介绍,再以例子重点讲解. 下面我们开始今天的旅行,首先祝你旅行愉快,呵呵. 静态查找 若查找目的是为了查询某个特定的数据是否在表中或检索某个特定数据的各种属性,则此类查找表为静态查找表. 1.顺序查找 基本原理:从表一端开始逐个和关键字进行比较,若找到一个记录和给定值相等,则查找成功,反之失败.再简单点就是,一个一个的比大小,看看是否相等. 例子: 顺序查找更适合于顺序存储结构和

软考之路--数据结构之线性表

数据就是数值,也就是我们通过观察.实验或计算得出的结果.数据有很多种,最简单的就是数字.数据也可以是文字.图像.声音等.数据可以用于科学研究.设计.查证等.结构,组成整体的各部分的搭配和安排,两者完美结合在一起,我们这样需要重新认识她,对她重新审视与定义:数据结构是程序设计的重要理论和技术基础,她所讨论的内容和技术,对从事软件项目的开发有重要作用,通过学习数据结构,我们学会从问题出发,分析和研究计算机加工的数据的特性,以便为应用所设计的数据悬着适当的逻辑结构.存储结构及其相应的操作方法,为提高应

软考之路--开始的开始,我们都是孩子

为了软考,奋力一搏,没钱.没人脉.没背景,在人人自危的竞争中,要靠自己的真实力,这次考试我们积极备考,不打无准备之战,软考的目的,不仅仅是为了软考通过这么简单,在软考的背后还隐藏着一个古老的秘密,那就是为了学习知识,在个人重构,机房合作,牛腩新闻发布系统等学习中,小伙伴们有没有这样的疑问,出现了很多问题,解决了,但是具体的原理自己并不是很理解,这个时候,软考来了,驾着五彩的云霞,翩翩来到你眼前,解决我们计算机体系知识不全的问题.在面临自考,等级考,软考,计算机学习,英语学习等犹如冰糖葫芦的串儿的

软考之路(6)——设计模式之工厂系列

mnesia在频繁操作数据的过程可能会报错:** WARNING ** Mnesia is overloaded: {dump_log, write_threshold},可以看出,mnesia应该是过载了.这个警告在mnesia dump操作会发生这个问题,表类型为disc_only_copies .disc_copies都可能会发生. 如何重现这个问题,例子的场景是多个进程同时在不断地mnesia:dirty_write/2 mnesia过载分析 1.抛出警告是在mnesia 增加dump

软考之路--你存在我深深的脑海里

小时候,总是期待着过年,过年可以吃到好多好吃的,暴露了小编的本质,哈哈,最让我期待的,就是压岁钱了,七大姑八大姨这个给一个红包,那个给一个红包,爸爸又会以同样的方式给她们的孩子,我们孩子从中得到的是纯利润,然后,恨不得连睡觉都紧紧握住自己的存钱筒,想着,要去买什么好吃的呢,在小编的理解中,把压岁钱存在一起,堆积起来的过程,就是存储,在我们的计算机中,官方定义如下存储就是根据不同的应用环境通过采取合理.安全.有效的方式将数据保存到某些介质上并能保证有效的访问,总的来讲可以包含两个方面的含义:一方面

我的软考之路(六)——数据结构与算法(4)之八大排序

排序是编程的基础,在程序中会常常使用,好的排序方法能够帮助你提高程序执行的效率,所以学好排序,打好基础,对于程序的优化会手到擒来.不管你的技术多么强,假设没有基础也强不到哪去. 不多说了,我们直接进入今天的主题. 总有人说排序非常难,可是我总认为非常easy,我们仅仅须要了解基本思想就好了,通过简单的样例来加深理解. 1.直接插入排序 (1)简单介绍:直接插入排序,从字面意思能够看出,直接插入数据完毕排序. (2)基本思想:在插入第i个数时,如果前i-1数已经排好序了,仅仅须要将第i个数插入到i

软考之路(1)——浅解网络基础知识

对网络这一块的基础知识理解如下,以图文并茂的形式展出,便于分析和理解.解析与图如下: 物理层: 功能: 提供为建立.维护和拆除物理链路所需的机械.电气.功能和规程的特性: 提供有关在传输介质上传输非结构的位流及物理链路故障检测指示: 为数据链路层提供一个物理连接,以及他们的机械.电气.功能和过程性.如规定使用电缆和接头的类型,传送信号的电压.在这一层,数据还没有被组织,仅作为原始的位流或电气电压处理,单位是位. 物理链路: 这里多次出现物理链路,简单解释物理链路:一条无源的点到点的物理线路段,中

软考之路(六)---数据库---深入浅出 三层模式两级映像

在备课数据库的时候,再一次遇到这三个概念,兴奋起来了,这次务必要转化为自己的话说出来,这样的知识点,才算理解吧(今后学习也是这样,学习的内容要用自己的话说出来为标准,才算有一定的理解). 我们首先,谈谈模式的概念,模式为某种事物的标准形式或使人可以照着做的标准样式.这个词用在数据库中,它是由英文的Schema翻译过来的.在数据库管理系统中,其模式是指数据模式(data schema),是数据抽象的结果表示,如用关系模型抽象学生的基本信息表示为:学生(学号,姓名,性别,出生年月,入校年月,专业编号