【Linux 学习】进程优先级和命令行参数!

1. 什么是优先级?

指定进程获取某种资源(CPU)的先后顺序;

Linux 中优先级数字越小,优先级越高;

在这里插入图片描述
在这里插入图片描述

1.1 优先级和权限的区别?

权限 : 能不能做

优先级: 已经能了,但是获取资源的顺序有差别


1.2 为什么要有优先级呢?

系统中访问的资源(CPU)有限,硬件资源有限(学校窗口打饭的例子);

肌饿问题的存在;
在这里插入图片描述

2. 优先级特点和查看方式

  • 批量化修改指令
    在这里插入图片描述
    2.1 指令 : ps - l 和 ps - al

ps -l 显示当前终端下用户启动的进程

ps -al 查看全部的

2.2 进程 PRI 和 NI
在这里插入图片描述

因为当前的进程可能在被调度,被调度的时候优先级更改会影响当前的调度,所以时间片用完后,在下一轮的调度中再对优先级进行修改

2.3 优先级进行调整

用 top 命令 (还可以直接用 renice 指令)

进入top后按“r”–>输入进程PID–>输入nice值

  • nice 的调整是有范围限制的 [-20,19] 40个数字进行调整,如果 nice 值为 -100 时,则会自动为 -20;
  • 为什么要有范围呢? 因为如果 nice 值任意调整,如果调整到无穷大,则会影响CPU的调度;
  • 注意: 每次进程调整的优先级都是从 80 开始调整的;

  • 注意:❗ 优先级不要轻易调整

2.4 并发,竞争

竞争性: 系统进程数目众多,而CPU资源只有少量,甚至1个,所以进程之间是具有竞争属性的。为了高
效完成任务,更合理竞争相关资源,便具有了优先级 ( 键盘 鼠标 只有一个,竞争这些资源);

独立性: 多进程运行,需要独享各种资源,多进程运行期间互不干扰;

并行: 多个进程在多个CPU下分别,同时进行运行,这称之为并行;

并发: 多个进程在一个CPU下采用进程切换的方式,在一段时间之内,让多个进程都得以推进,称之为
并发

3. 命令行参数
在这里插入图片描述

argc : 数组中元素的个数
char* argv [ ] : 字符指针数组(指向字符串的首地址)

这个 char * argv [ ] 是以 NULL 结尾;

for ( int i = 0; argv [ i ]; i ++ ) 来证明以 NULL 结尾;

在这里插入图片描述
3.1 为什么有 这个 main() 函数的命令行参数 ? 有什么作用呢 ?

同一个程序,可以通过带不同的选项,执行不同的程序功能函数;

例如: ls -a , ls -l 执行不同的功能
在这里插入图片描述

3.2 argv 这个是谁来生成的呢?

  • 由父进程 bash 来做的; 父进程 命令行解释器;

  • 父进程会生成一个表,然后子进程可以看到父进程的数据,所以子进程通过查表,就可以转换为 -a, -b,-c 等不同选项了;

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未来可期LJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值