linux中进程有优先级。Linux是一个多用户、多任务的操作系统,系统中通常运行着非常多的进程,但CPU在一个时钟周期内只能运算一条指令;哪个进程应该先运算,谁应该后运算呢?这就需要由进程的优先级来决定了。在Linux系统中,表示进程优先级的有两个参数:Pri和Nice;进程优先级是PRI值不是Nice值,但是Nice值会影响优先级。
本教程操作环境:linux7.3系统、Dell G3电脑。
Linux-进程的优先级
Linux 是一个多用户、多任务的操作系统,系统中通常运行着非常多的进程。但是 CPU 在一个时钟周期内只能运算一条指令(现在的 CPU 采用了多线程、多核心技术,所以在一个时钟周期内可以运算多条指令。 但是同时运算的指令数也远远小于系统中的进程总数),那问题来了:谁应该先运算,谁应该后运算呢?这就需要由进程的优先级来决定了。
cpu分配资源的先后顺序就是优先级
优先权高的进程有优先执行的权利,
可以让进程运行在指定的cpu上,改善系统整体性能
另外,CPU 在运算数据时,不是把一个集成算完成,再进行下一个进程的运算,而是先运算进程 1,再运算进程 2,接下来运算进程 3,然后再运算进程 1,直到进程任务结束。不仅如此,由于进程优先级的存在,进程并不是依次运算的,而是哪个进程的优先级高,哪个进程会在一次运算循环中被更多次地运算。
这样说很难理解,我们换一种说法。假设我现在有 4 个孩子(进程)需要喂饭(运算),我更喜欢孩子 1(进程 1 优先级更高),孩子 2、孩子 3 和孩子 4 一视同仁(进程 2、进程 3 和进程 4 的优先级一致)。现在我开始喂饭了,我不能先把孩子 1 喂饱,再喂其他的孩子,而是需要循环喂饭(CPU 运算时所有进程循环运算)。那么,我在喂饭时(运算),会先喂孩子 1 一口饭,然后再去喂其他孩子。而且在一次循环中,先喂孩子 1 两口饭,因为我更喜欢孩子 1(优先级高),而喂其他的孩子一口饭。这样,孩子 1 会先吃饱(进程 1 运算得更快),因为我更喜欢孩子 1。
查看进程优先级
1.使用ps-al,可以看进程的优先级
2.PRI和NI
在 Linux 系统中,表示进程优先级的有两个参数:Priority 和 Nice。
[root@localhost ~]# ps -le F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 1 0 0 80 0 - 718 - ? 00:00:01 init 1 S 0 2 0 0 80 0 - 0 - ? 00:00:00 kthreadd ...省略部分输出...
其中,PRI 代表 Priority,NI 代表 Nice。这两个值都表示优先级,数值越小代表该进程越优先被 CPU 处理。不过,PRI值是由内核动态调整的,用户不能直接修改。所以我们只能通过修改 NI 值来影响 PRI 值,间接地调整进程优先级。
PRI 和 NI 的关系如下:
PRI (最终值) = PRI (原始值) NI
其实,大家只需要记得,我们修改 NI 的值就可以改变进程的优先级即可。NI 值越小,进程的 PRI 就会降低,该进程就越优先被 CPU 处理;反之,NI 值越大,进程的 PRI 值就会増加,该进程就越靠后被 CPU 处理。
修改 NI 值时有几个注意事项:
NI 范围是 -20~19。
普通用户调整 NI 值的范围是 0~19,而且只能调整自己的进程。
普通用户只能调高 NI 值,而不能降低。如原本 NI 值为 0,则只能调整为大于 0。
只有 root 用户才能设定进程 NI 值为负值,而且可以调整任何用户的进程。
查看查看并修改nice值的命令
1.用top命令查看并修改nice值
输入top-按r ,输入进程pid,输入nice值。(如果显示拒绝提升的话,使用sudo提升top命令的权限)。
2.其他概念
竞争性:系统数目很多,但只有cpu数量少,甚至只有一个,所以进程之间是具有竞争属性的。为了高效完成任务,更合理竞争相关资源,便具有了优先级。
独立性:多进程运行,需要独享各种资源,所以多进程期间互不干扰。
并行:多个进程在多个cpu中进行,同时进行运行,称为并行。
并发:多个进程在一个cpu上采用进程切换的方式,在一段时间内,让多个进程得以推进,称为并发。
进程优先级是 PRI 值不是 Nice 值,但是 Nice 值会影响优先级
PRI 也还是比较好理解的,即进程的优先级,或者通俗点说就是程序被 CPU 执行的先后顺序,此值越小进程的优先级别越高。那 NI 呢?就是我们所要说的 nice 值了,其表示进程可被执行的优先级的修正数值。如前面所说, PRI 值越小越快被执行,那么加入 nice 值后,将会使得 PRI 变为: PRI(new)=PRI(old) nice 。
到目前为止,更需要强调一点的是,进程的 nice 值不是进程的优先级,他们不是一个概念,但是进程 nice 值会影响到进程的优先级变化。
通过调整 nice 值,更改进程优先级, nice 调整范围是 -20~19 。
进程优先级与变动影响因素与原理
调度策略: RR 调度和 FIFO 调度的进程属于实时进程,以分时调度( OTHER )的进程是非实时进程。
FIFO (先进先出)和 RR (时间片轮转)用于实时进程, OTHER (分时调度)用于非实时进程;实时进程会抢占普通进程; FIFO 会导致同优先级实时进程始终占用 CPU , RR 会保证同优先级实时进程按时间片轮流执行。
实时进程优先级高于普通进程,实时进程使用静态优先级调度、非实时进程使用动态优先级调度,非实时进程动态优先级通过 nice 调整、可能受 bonus 影响。
Linux进程有两种优先级:普通进程优先级(使用 SCHED_NORMAL 调度策略),以及实时进程优先级(使用 SCHED_FIFO 或 SCHED_RR 调度策略)
不同调度策略的实时进程只有在相同优先级时才有可比性,任何时候,实时进程的优先级都高于普通进程
Linux对实时进程使用静态优先级调度,对普通的进程(非实时进程),根据动态优先级进行调度。
实时进程,只有静态优先级(在 0~MAX_RT_PRIO-1 间,默认 MAX_RT_PRIO 为 100 ), 内核不会再根据休眠等因素对其静态优先级做调整;
实时进程 0-99 号优先级每一个优先级对应一个优先级队列(链表),先执行数值高的对应的链表(0号最低),可由后面所述的 chrt 以及 相应函数修改该优先级;
非实时进程静态优先级可通过 nice 值( -20~19 )调整: static_prio=MAX_RT_PRIO nice 20 。
nice 只影响非实时进程(静态优先级在 100~139 之间), nice 越大静态优先级值越大,优先级越低。
非实时进程动态优先级根据静态优先级和 bonus 计算: dynamic_prio = max (100, min (static_prio - bonus 5, 139))
bonus 反映进程平均睡眠时间(范围 0~10 ),睡眠时间越多越可能是交互进程,每次轮到它运行时它就越可能不会使用完时间片再释放 cpu 。
相关推荐:《Linux视频教程》
以上是linux中进程有优先级么的详细内容。更多信息请关注PHP中文网其他相关文章!

本文探讨如何在Debian系统上提升Hadoop数据处理效率。优化策略涵盖硬件升级、操作系统参数调整、Hadoop配置修改以及高效算法和工具的运用。一、硬件资源强化确保所有节点硬件配置一致,尤其关注CPU、内存和网络设备性能。选择高性能硬件组件对于提升整体处理速度至关重要。二、操作系统调优文件描述符和网络连接数:修改/etc/security/limits.conf文件,增加系统允许同时打开的文件描述符和网络连接数上限。JVM参数调整:在hadoop-env.sh文件中调整

本指南将指导您学习如何在Debian系统中使用Syslog。Syslog是Linux系统中用于记录系统和应用程序日志消息的关键服务,它帮助管理员监控和分析系统活动,从而快速识别并解决问题。一、Syslog基础知识Syslog的核心功能包括:集中收集和管理日志消息;支持多种日志输出格式和目标位置(例如文件或网络);提供实时日志查看和过滤功能。二、安装和配置Syslog(使用Rsyslog)Debian系统默认使用Rsyslog。您可以通过以下命令安装:sudoaptupdatesud

选择适合Debian系统的Hadoop版本,需要综合考虑以下几个关键因素:一、稳定性与长期支持:对于追求稳定性和安全性的用户,建议选择Debian稳定版,例如Debian11(Bullseye)。该版本经过充分测试,拥有长达五年的支持周期,能够确保系统稳定运行。二、软件包更新速度:如果您需要使用最新的Hadoop功能和特性,则可以考虑Debian的不稳定版(Sid)。但需注意,不稳定版可能存在兼容性问题和稳定性风险。三、社区支持与资源:Debian拥有庞大的社区支持,可以提供丰富的文档和

本文介绍如何在Debian系统上使用TigerVNC共享文件。你需要先安装TigerVNC服务器,然后进行配置。一、安装TigerVNC服务器打开终端。更新软件包列表:sudoaptupdate安装TigerVNC服务器:sudoaptinstalltigervnc-standalone-servertigervnc-common二、配置TigerVNC服务器设置VNC服务器密码:vncpasswd启动VNC服务器:vncserver:1-localhostno

配置Debian邮件服务器的防火墙是确保服务器安全性的重要步骤。以下是几种常用的防火墙配置方法,包括iptables和firewalld的使用。使用iptables配置防火墙安装iptables(如果尚未安装):sudoapt-getupdatesudoapt-getinstalliptables查看当前iptables规则:sudoiptables-L配置

在Debian邮件服务器上安装SSL证书的步骤如下:1.安装OpenSSL工具包首先,确保你的系统上已经安装了OpenSSL工具包。如果没有安装,可以使用以下命令进行安装:sudoapt-getupdatesudoapt-getinstallopenssl2.生成私钥和证书请求接下来,使用OpenSSL生成一个2048位的RSA私钥和一个证书请求(CSR):openss

在Debian系统上配置邮件服务器的虚拟主机通常涉及安装和配置邮件服务器软件(如Postfix、Exim等),而不是ApacheHTTPServer,因为Apache主要用于Web服务器功能。以下是配置邮件服务器虚拟主机的基本步骤:安装Postfix邮件服务器更新系统软件包:sudoaptupdatesudoaptupgrade安装Postfix:sudoapt

要配置Debian邮件服务器的DNS设置,您可以按照以下步骤进行操作:打开网络配置文件:使用文本编辑器(例如vi或nano)打开网络配置文件/etc/network/interfaces。sudonano/etc/network/interfaces查找网络接口配置:在配置文件中找到要修改的网络接口。通常情况下,以太网接口的配置位于ifaceeth0区块中。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

记事本++7.3.1
好用且免费的代码编辑器

Atom编辑器mac版下载
最流行的的开源编辑器