当前位置: 首页 > news >正文

【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 等不同选项了;

http://www.lryc.cn/news/338000.html

相关文章:

  • Git删除未跟踪的文件Untracked files
  • S7-1200PLC控制V90伺服通过FB284实现位置控制的方法
  • 2024年阿里云优惠券领取和使用方法
  • 工业项目中你连PLM系统都没见过?
  • 【QT入门】 Qt自定义控件与样式设计之QPushButton实现鼠标悬浮按钮弹出对话框
  • C盘变红怎么办?免费的系统C盘清理方法,C盘空间占用克星
  • 简述VPS 与 Apache 搭建网站方式对比:新手科普指南
  • js获取年月份
  • Promise常用方法及区别
  • pyqt 标题栏设置
  • 关于可视化大屏适配
  • 如何用composer来安装和配置LAMP环境?
  • 题目:学习使用按位取反~。
  • vue3第十六节(keep-alive 内置组件)
  • 跨域和跨域解决方案
  • 数学基础:矩阵
  • Windows完全卸载MySQL后再下载安装(附安装包)
  • 【央国企专场】——国家电网
  • linux 安装MySQL
  • 行云防水堡-打造企业数据安全新防线
  • 在ORACLE中找出某列非数字类型的数据
  • 建造者模式:构造复杂对象的艺术
  • Fence同步
  • 【UE 委托】如何利用函数指针理解委托的基本原理
  • 【云原生篇】K8S部署全面指南
  • uni-app + vue3实现input输入框保留2位小数的2种方案
  • 原型模式:复制对象的智能解决方案
  • 量子信息产业生态研究(一):关于《量子技术公司营销指南(2023)》的讨论
  • vue开发工具和开发环境,测试环境等
  • C++---vector容器