
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
Linux随着互联网的不断发展而被越来越多的程序员学习并应用,今天我们就通过案例分析来简单了解一下,Linux系统进程分类都有哪些。
1、调度的概念
科技源自生活,调度系统绝对不是计算机领域的专利,现实生活中调度无处不在:
连锁超市某些热门商品短缺,就需要在全城范围内考虑人口密度、超市规模、商品缺口等多个因素,进行资源调配;
铁路部门为了应对春运会在热门线路增加列车来缓解运输压力,春运结束则恢复正常;
“
调度是为了解决资源和需求之间的不匹配问题,现实往往是资源少&需求多,计算机领域也是如此。
在操作系统中CPU资源是有限的,需要使用CPU的进程数量是不确定的,并且大部分情况下进程数量远大于CPU数量,如何解决不匹配问题就是进程调度核心。
2、操作系统分类
操作系统的种类非常多,本身上是硬件层和应用层之间的中间层,对上与应用程序进行交互,对下实现硬件资源的管理。
批处理系统(BatchProcessingSystem)
“
批处理是指用户将一批作业提交给操作系统后就不再干预,由操作系统控制它们自动运行,这种采用批量处理作业任务的操作系统称为批处理操作系统,不具有交互性,用户无法干预任务的运行。
实时系统(Real-TimeSystem)
“
实时系统大的特点在于计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统出错,强实时系统一般应用在航空航天、导弹导航制导、核工业等领域。
分时系统(TimeSharingSystem)
“
分时系统将计算机系统资源(比如CPU)进行时间上的分割,每个时间段称为一个时间片,每个用户依次轮流使用时间片,由于时间间隔很短,每个用户的感觉就像他独占计算机一样,从而有效增加资源的使用率,提高用户交互体验。
3、进程分类
根据进程运行时的状态,可以分为:
I/O密集型(IO-bound)
“
在进程占用CPU期间频繁有IO操作,出现IO阻塞等待情况,比如负责监听socket的进程,真正使用CPU进行计算的时间并不多。
CPU密集型(CPU-bound)
“
在进程占用CPU期间基本都在进行计算,很少进行IO操作,期间对CPU的真实使用率很高。
进程调度器需要根据进程是IO密集型还是CPU密集型会采用不同的策略。
在调度器中往往需要对IO密集型进程进行奖励来提高其调度优先级,对CPU密集型进程进行惩罚降低其调度优先级。
对进程的奖惩策略是调度器的一项核心工作,希望大家务必理解:
“
交互进程往往伴随较多的IO操作,同时也是响应时间敏感的任务,鼠标点一下半天没响应,想想就很糟糕,因此属于高优先级进程。
“
非交互进程往往是纯CPU计算,用户是无感知的,所以对响应时间的要求并没有那么高,属于低优先级进程。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。