[Linux]命令行参数和进程优先级

[Linux]命令行参数和进程优先级

文章目录

  • [Linux]命令行参数和进程优先级
    • 命令行参数
      • 命令行参数的概念
      • 命令函参数的接收
      • 编写代码验证
    • 进程优先级
      • 进程优先级的概念
      • PRI and NI
      • 使用top指令修改nice值

命令行参数

命令行参数的概念

命令行参数是指用于运行程序时在命令行输入的参数。

命令函参数的接收

C语言中main函数有两个参数用于接收命令行参数,分别是argc和argv,main函数的参数即使没有显式说明,编译器也会自动在编译是添加并且接收参数,只是不显式说明无法使用参数:

int main(int argc, char *argv[]);

在运行程序时需要在命令行输入参数,参数的本质就是字符串,在传入main函数前会以空格作为分割,然后分别传入。argc参数记录传入的参数个数,argv参数记录每一个参数的地址:

image-20230825134110559

编写代码验证

编写如下代码验证main函数接受命令行参数:

#include <stdio.h>int main(int argc, char *argv[])
{int i = 0;for (i = 0; i < argc; i++){printf("argv[%d]->%s\n", i, argv[i]);}return 0;
}

编译成功后进行测试:

image-20230825134818559

补充: 正是因为main函数能够接收命令行参数,才实现了使用Linux指令时添加选项的功能。

进程优先级

进程优先级的概念

进程的优先权是指cpu资源分配的先后顺序,优先权高的进程有优先执行权利。

进程优先级出现的原因:系统进程数目众多,而CPU资源只有少量,甚至1个,所以进程之间是具有竞争属性的。为了高效完成任务,更合理竞争相关资源,便具有了优先级。

PRI and NI

在Linux系统下输入ps -l查看系统进程的参数:

image-20230825140845597

众多数据中和优先级有关的就是PRI和NI两个参数。

  • PRI :代表这个进程可被执行的优先级,其值越小越早被执行

  • NI :代表这个进程的nice值,其表示进程可被执行的优先级的修正数值

PRI = 优先级初始值 + nice值。

nice值的范围是[-20,19),如果某一进程的优先级过高或者过低可能会导致其他进程无法被调度或者自身无法被调度,因此nice值存在一个范围。

使用top指令修改nice值

编写以下代码用于nice值修改的测试:

#include <stdio.h>
#include <unistd.h>int main()
{while(1){printf(".");fflush(stdout);sleep(1);}return 0;
}

编译成功后运行,并另外打开两个终端,一个输入top指令,另一个输入ps -al指令:

image-20230825143626926

在top进程中按下r:

image-20230825143651375

在top进程中输入要修改nice至的进程id:

image-20230825143732282

输入要修改的nice值:

image-20230825143825468

使用ps -al指令查看:

image-20230825143853689

由于初始值是80,nice值是10,因此最终PRI为90。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/88755.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue三级市区联动

默认返回值格式&#xff1a;all:code、name都返回 name:只返回name code:只返回code&#xff0c;level&#xff1a;可设置显示层级 1&#xff1a; 省 2&#xff1a; 省、市 3&#xff1a; 省、市、区 v-model 默认值 可以是 name: [ "天津市", "天津市",…

爬虫逆向实战(二十三)--某准网数据

一、数据接口分析 主页地址&#xff1a;某准网 1、抓包 通过抓包可以发现数据接口是api_to/search/company_v2.json 2、判断是否有加密参数 请求参数是否加密&#xff1f; 通过查看“载荷”模块可以发现b参数和kiv参数是加密参数 请求头是否加密&#xff1f; 无响应是否加…

十四五双碳双控时代下的“低碳认证”

目录 前言 十四五双碳双控时代下的“低碳认证” 一、关于“低碳认证” 二、低碳认证优势 三、环境产品认证EPD 四、EPD相关运营机构 五、碳中和相关机构 六、EPD的认证流程 七、低碳产品认证认证流程和要求 八、相关机构认证证书样例 九、证书附件表 前言 通过本篇文…

柠檬水找零【贪心算法-】

柠檬水找零 在柠檬水摊上&#xff0c;每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品&#xff0c;&#xff08;按账单 bills 支付的顺序&#xff09;一次购买一杯。 每位顾客只买一杯柠檬水&#xff0c;然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零&…

CSS按钮-跑马灯边框

思路很简单&#xff0c;实现方法有很多很多。但是大体思路与实现方法都类似&#xff1a;渐变色 动画&#xff0c;主要区别在动画的具体实现 0、HTML 结构 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><titl…

内网环境搭建-前篇

通常所说的内网渗透测试&#xff0c;很大程度上就是域渗透测试。搭建域渗透测试环境&#xff0c;在Windows的活动目录环境下进行一系列操作&#xff0c;掌握其操作方法和运行机制&#xff0c;对内网的安全维护有很大的帮助。常见的域环境是使用Windows Server2012 R2、Windows7…

大型集团企业数字化管控平台及信息化治理服务体系建设方案PPT

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除&#xff0c;更多浏览公众号&#xff1a;智慧方案文库 篇幅有限&#xff0c;无法完全展示&#xff0c;喜欢资料可转发评论&#xff0c;私信了解更多信息。

什么是ChatGPT水印,ChatGPT生成的内容如何不被检测出来,原理什么?

太长不看版 1. 什么是ChatGPT水印&#xff1f; ChatGPT水印是AI以伪随机方式生成的独特tokens序列。该序列用来作为水印&#xff0c;以区分AI生成内容和人类原创内容。 2. 如何规避ChatGPT水印&#xff1f; 一种规避方法是使用其他AI模型改写ChatGPT生成的文本。这会破坏水…

保护隐私的第一步:从更新浏览器开始

当今社会已经进入了数字化和网络化的时代&#xff0c;而网络安全问题也日益突显。随着互联网在我们生活中的不断渗透&#xff0c;网络威胁变得愈发普遍和隐蔽。在这样的背景下&#xff0c;网络浏览器作为人们访问互联网的主要工具之一&#xff0c;不仅为我们提供了便捷的上网方…

VMware vCenter Server 7.0.3 安装

VMware vCenter Server 7.0.3 安装 文章目录 VMware vCenter Server 7.0.3 安装1. 安装 vcenter1.1 第一阶段1.2 第二阶段 2. exsi 查看 vcenter3. 部署 DNS server3.1 安装 unbound3.2 配置 unbound3.3 vcenter 配置域名访问 1. 安装 vcenter 1.1 第一阶段 双击 192.168.2…

轻松搭建微信小程序商城的详细指南

微信小程序商城是目前非常流行的一种电商模式&#xff0c;它能够为用户提供便捷的购物体验&#xff0c;同时也成为了很多企业开展电商业务的首选方式。那么&#xff0c;如何快速、简单地搭建一个微信小程序商城呢&#xff1f;下面就为大家介绍一下详细的步骤。 首先&#xff0c…

-bash: tree: command not found 的解决方法

在学习git操作时发现使用命令tree .git时显示错误 在网上查阅资料后&#xff0c;发现可能是没有安装生成tree的应用&#xff0c;所以我们使用命令安装应用即可 sudo yum install -y tree像这样就是安装成功了 我们再来试试 问题解决了&#xff0c;成功显示出树形结构