Linux进程一般可以分为哪三类

Linux进程一般可以分为哪三类,第1张

进程是正在执行的一个程序或命令,每个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。程序一旦运行就是进程。

进程可以看成程序执行的一个实例。进程是系统资源分配的独立实体,每个进程都拥有独立的地址空间。一个进程无法访问另一个进程的变量和数据结构,如果想让一个进程访问另一个进程的资源,需要使用进程间通信,比如管道,文件,套接字等。

Linux中进程分为以下三类:

①交互进程:由一个shell启动的进程,交互进程既可以在前台运行,也可以在后台运行。

②批处理进程:这种进程和终端没有联系,是一个进程序列。

③监控进程:也称守护进程,是一个在后台运行且不受任何终端控制的特殊进程,用于执行特定的系统任务。

进程的状态:

①可运行状态:此时进程正在运行或者正在运行队列中等待准备运行。

②等待状态:此时进程在等待一个事件的发生或某种系统资源。在Linux系统中等待状态又细分为两种等待状态:可中断的等待状态和不可中断的等待状态。

③暂停状态:处于暂停状态的进程被暂停运行。

④僵死状态:每个进程在运行结束后都会处于僵死状态,等待父进程调用进而释放系统资源,处于该状态的进程已经运行结束,但是它的父进程还没有释放其系统资源。

进程分为三类:

在Linux中,调度程序可以明确的确认实时进程(如通过静态优先级),但没有办法区分交互式进程和批处理进程,Linux2.6使用的方式是基于历史行为的启发式算法。

Linux进程是抢占式的,若进程进入TASK_RUNNING状态后,

每个普通进程有自己的静态优先级,范围是[100, 140),静态优先级用于计算动态优先级等参数,本质上决定了进程的基本时间片。

1)基本时间片

基本时间片公式如下:

静态优先级越高,其时间片越长。

通常来说较高优先级能获得更长的CPU时间片。

bonus是惩罚值,范围为0到10,值小于5表示惩罚,大于则表示奖赏,同时该值与进程的平均睡眠时间有关。

平均睡眠时间不是过去时间的平均值,而是进程在睡眠状态下的平均纳秒数,进程在运行过程中平均睡眠时间递减。平均睡眠时间小于1s。

平均睡眠时间也被用于确定一个进程是否为交互式进程的依据:

上面的公式用于确认进程是否为交互式进程,其中静态优先级/4-28为交互式值。从公式中看出,高优先级进程比低优先级进程更容易成为交互式进程。例如静态优先级为100的进程,若其睡眠时间大于200ms,责备认定为交互式进程。

进程也分为活动进程和过期进程。因为即使高优先级进程获得较高时间片,也不应该让低优先级进程饥饿,当一个进程用完时间片后,应该让低优先级进程投入运行。实现这种机制的方式是调度程序维持了两个集合:

为保持交互式进程的性能,有以下策略:

实时进程优先级从1到99,同时实时进程总是活动进程。实时进程仅在以下情况下被取代:

Linux系统中的进程分为:独立守护进程和被动守护进程。 独立守护进程由相应的独立启动,而被动守护进程由Xinetd服务监听启动。 例如:邮件服务器配置守护进程sendmail就是独立守护进程,可以用service命令启动,而pop3协议就以被动守护进程方式启动,需要修改/etc/xinetd.d目录下的相应守护进程文件ipop3,再重新启动xinetd的方式启动。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/9034426.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-24
下一篇2023-04-24

发表评论

登录后才能评论

评论列表(0条)

    保存