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

简介:         进程,百度百科对她这样进行阐述,进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。

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

       

       第一个:状态

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

        三态图

        

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

        就绪状态:就是“万事俱备只欠东风”的状态,进程已得到运行所需资源,只等待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结果就是:

     

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

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


目录
相关文章
|
存储 自然语言处理 数据可视化
【软考学习8】操作系统概述、进程状态转变原理、前趋图
【软考学习8】操作系统概述、进程状态转变原理、前趋图
250 0
【软考学习8】操作系统概述、进程状态转变原理、前趋图
【软考学习9】进程的同步与互斥、生产消费者模型
【软考学习9】进程的同步与互斥、生产消费者模型
198 0
|
算法 调度
[软考]之进程调度
[软考]之进程调度
112 0
UGUI系列-文字实现进度等待、进度加载、进程等待演示动画
今天分享一下UGUI 文字实现进度等待、进度加载、进程等待演示动画,实现思路比较简单,效果也比较简单,仅供大家参考,谢谢
|
5月前
|
监控 Linux 应用服务中间件
探索Linux中的`ps`命令:进程监控与分析的利器
探索Linux中的`ps`命令:进程监控与分析的利器
128 13
|
4月前
|
运维 关系型数据库 MySQL
掌握taskset:优化你的Linux进程,提升系统性能
在多核处理器成为现代计算标准的今天,运维人员和性能调优人员面临着如何有效利用这些处理能力的挑战。优化进程运行的位置不仅可以提高性能,还能更好地管理和分配系统资源。 其中,taskset命令是一个强大的工具,它允许管理员将进程绑定到特定的CPU核心,减少上下文切换的开销,从而提升整体效率。
掌握taskset:优化你的Linux进程,提升系统性能
|
4月前
|
弹性计算 Linux 区块链
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
176 4
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
|
3月前
|
算法 Linux 调度
探索进程调度:Linux内核中的完全公平调度器
【8月更文挑战第2天】在操作系统的心脏——内核中,进程调度算法扮演着至关重要的角色。本文将深入探讨Linux内核中的完全公平调度器(Completely Fair Scheduler, CFS),一个旨在提供公平时间分配给所有进程的调度器。我们将通过代码示例,理解CFS如何管理运行队列、选择下一个运行进程以及如何对实时负载进行响应。文章将揭示CFS的设计哲学,并展示其如何在现代多任务计算环境中实现高效的资源分配。
|
4月前
|
存储 缓存 安全
【Linux】冯诺依曼体系结构与操作系统及其进程
【Linux】冯诺依曼体系结构与操作系统及其进程
171 1
|
4月前
|
小程序 Linux
【编程小实验】利用Linux fork()与文件I/O:父进程与子进程协同实现高效cp命令(前半文件与后半文件并行复制)
这个小程序是在文件IO的基础上去结合父子进程的一个使用,利用父子进程相互独立的特点实现对数据不同的操作
106 2
下一篇
无影云桌面