首页 > 系统相关 >Linux 进程 | 进程优先级&进程的环境变量

Linux 进程 | 进程优先级&进程的环境变量

时间:2024-08-25 23:51:45浏览次数:11  
标签:优先级 process Linux 进程 PATH 环境变量 nice

文章目录

进程概念

4、进程优先级

4.1基本概念

  • cpu资源分配的先后顺序,就是进程的优先权
  • 优先权高的进程有优先执行权,配置进程优先权对多任务环境的linux很有用,可以改善系统性能
  • 还可以把进程运行到指定的CPU上,把不重要的进程安排到某个CPU,可以大大改善系统整体性能

4.2查看系统进程

4.2.1 ps -l

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在使用ps -l命令时,注意到几个信息,有下:

  • UID : 代表执行者的身份
  • PID : 代表这个进程的代号
  • PPID: 代表这个进程是由哪个进程发展衍生而来的,即父进程的代号
  • PRI :代表这个进程可被执行的优先级,其值越小越早被执行
  • NI:代表这个进程的nice值,nice值:进程优先级的修正数据(可以用来改)
4.2.2 PRI & NI
  • PRI,即进程的优先级,或者通俗点说就是程序被CPU执行的先后顺序,此值越小进程的优先级别越高
  • NI就是我们所要说的nice值了,其表示进程可被执行的优先级的修正数值
  • PRI值越小越快被执行,那么加入nice值后,将会使得PRI变为:PRI(new)=PRI(old)+nice
  • 这样,当nice值为负值的时候,那么该程序将会优先级值将变小,即其优先级会变高,则其越快被执行
  • 所以,调整进程优先级,在Linux下,就是调整进程nice值
  • nice其取值范围是**-20至19**,一共40个级别。

  • 需要强调一点的是,进程的nice值不是进程的优先级,他们不是一个概念,但是进程nice值会影响到进 程的优先级变化。
  • 可以理解nice值是进程优先级的修正修正数据

4.3用top命令更改已存在进程的nice:

  • top
  • 进入top后按 “r“ -> 输入进程PID -> 输入nice值

5、环境变量

5.1常见环境变量

  • PATH : 指定命令的搜索路径
  • HOME : 指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)
  • SHELL : 当前Shell,它的值通常是/bin/bash。

5.2查看环境变量

环境变量相关命令

  • echo $NAME 显示某个环境变量的值,其中NAME是环境变量名称
  • export: 设置一个新的环境变量
  • env: 显示所有环境变量
  • unset: 清除环境变量
  • set: 显示本地定义的shell变量和环境变量

5.3测试PATH

  • 举一个简单的例子
#include<stdio.h>

int main()
{
    int i;
    for(i=0;i<5;i++){
        printf("I am a process\n");
    }   
    return 0;
}

我们将他编译为叫process的可执行程序,当需要执行这个程序的时候我们应该使用./process来执行,直接输入process会显示”command not found“。但是在执行命令的时候比如touch命令、ls命令等,我们只需要输入命令名字即可,如果我们想让process这个程序像命令一样执行,即输入process就能执行,那么可以将程序所在路径加入到环境变量PATH当中

配置环境变量
  • PATH=$PATH:/root/workspace/Linux 将当前程序所在的路径加入到环境变量PATH当中
  • PATH=/root/workspace/Linux 将当前程序所在的路径覆盖至环境变量PATH当中,相当于把PATH当中全部覆盖掉,然后ls等指令就会失效了。

执行完后,我们就可以直接输入process来执行程序,不需要带上路径了,甚至用mv将process改名后也能正常运行。使用which process也能找到~/root/workspace/Linux。

5.4代码中获取环境变量

getnev函数

  • 函数声明:

    char *getenv(const char *name) 其中name是需要获取的环境变量名

  • 使用举例:

    #include<stdio.h>
    #include<stdlib.h>
    
    int main()
    {
        printf("PATH:%s\n",getenv("PATH"));
        return 0;
    }
    
    

失效了。

执行完后,我们就可以直接输入process来执行程序,不需要带上路径了,甚至用mv将process改名后也能正常运行。使用which process也能找到~/root/workspace/Linux。

5.4代码中获取环境变量

getnev函数

  • 函数声明:

    char *getenv(const char *name) 其中name是需要获取的环境变量名

  • 使用举例:

    #include<stdio.h>
    #include<stdlib.h>
    
    int main()
    {
        printf("PATH:%s\n",getenv("PATH"));
        return 0;
    }
    
    

标签:优先级,process,Linux,进程,PATH,环境变量,nice
From: https://blog.csdn.net/TTKunn/article/details/141474151

相关文章

  • redis下载与安装(以Ubuntu Linux为例)
    redis的下载与安装(Ubuntu)一、下载从GitHub上下载redis官方压缩包:redis官方将下载好的压缩包放入家目录(~)下。(可以使用一些ftp工具将文件传输到Ubuntu)二、安装解压并执行shell命令#进入家目录cd~#7.4.0是我此时安装的版本#输入tarzxvfredis后按tab键补全即可......
  • Linux系统性能调优技巧
    Linux系统性能调优是一个复杂而细致的过程,它涉及到硬件、软件、配置、监控和调优策略等多个方面。以下将详细阐述Linux系统性能调优的技巧:一、硬件优化CPU优化选择适合的CPU:根据应用需求选择多核、高频的CPU,以满足高并发和计算密集型任务的需求。CPU缓存优化:确保CPU缓存(L1......
  • Linux系统目录结构
    这里以我的ubuntu20.0的目录为例/bin  存放系统最基本、最重要的命令,这些命令在系统启动时必须可用。(对于  /usr/bin:存放用户级别的命令,这些命令通常是用户安装的各种应用程序提供的)/boot  存放与系统启动相关的文件/dev  用于存放设备文件(devicefiles),也就是代......
  • Linux磁盘监控管理(fdisk\df\du和iotop、iostat)
    1.fdisk\df\du基本语句及其含义fdiskfdisk-l:表示列出系统中所有可识别的硬盘、U盘等设备的分区情况。此外还有其他参数:p:列出分区表。这是最常用的命令之一,用于查看当前磁盘的分区情况。d:删除分区。用于删除现有的磁盘分区。n:创建新分区。用于在磁盘上创建新的分区。t:改......
  • 【日常记录-Linux】XZ Utils
    Author:赵志乾Date:2024-08-25Declaration:AllRightReserved!!!1.简介    XZUtils是一个为POSIX平台(如Linux和Unix系统)开发的高压缩率工具集,其使用LZMA2压缩算法,能够生成比传统gzip、bzip2等工具更小的压缩文件,并且解压速度也很快。2.安装dnfinstallxz3.使用......
  • Linux中的exec族函数
    exec系列函数用于替换当前进程的用户空间代码和数据,从而执行一个新的程序。调用exec系列函数不会创建新的进程,但会用新程序的代码和数据替换当前进程,因此调用exec后,进程的ID保持不变,但进程的行为变为执行新的程序exec系列函数有六个,分别是:execlintexecl(constcha......
  • 【Linux】并发与并行:理解多任务处理的核心概念
    文章目录并发与并行:理解多任务处理的核心概念1.什么是并发?2.什么是并行?3.并发与并行的区别4.并发与并行的共同点与挑战5.选择并发还是并行?6.总结并发与并行:理解多任务处理的核心概念在现代计算中,性能和效率是关键问题。为了提高处理能力,计算机系统利用了并......
  • 【Linux】理解操作系统中的进程状态:阻塞、挂起、运行
    理解操作系统中的进程状态:阻塞、挂起、运行1.进程状态概述2.阻塞(Blocked)3.挂起(Suspended)4.运行(Running)5.状态转换关系6.总结理解操作系统中的进程状态:阻塞、挂起、运行操作系统是管理计算机硬件和软件资源的核心部分,而进程管理则是操作系统中最重要的功能......
  • Linux 进程 | 进程地址空间
    文章目录进程地址空间程序地址空间进程地址空间进程地址空间程序地址空间地址空间一共有如下的几个区域,从下到上地址逐渐增加,其中栈区的空间是从上往下使用,即从高地址往低地址增长;堆区的空间是从下往上使用,即从低地址往高地址增长,需要注意的是,在不同位操作系统下......
  • Android fork 进程 process(init/Zygote/SystemServer)
    ##Android的init/Zygote/SystemServer Android手机先开机,init/Zygote/SystemServer,然后启动Framework,然后启动Launcher;【安装APP(PMS),】然后启动APP(AMS)。所有的Android应用进程都是有Zygote进程fork出来的。Android系统启动流程(一)解析init进程-http://blog.csdn.net/itach......