一、进程的基本概述

1️⃣:进程是已启动的可执行程序的运行中实例

2️⃣:/proc目录下以数字为名的目录,每一个目录代表一个进程,保存着进程的属性信息

3️⃣:每一个进程的PID是唯一的,就算进程退出了,其它进程也不会占用其PID

二、进程的组成部分

1️⃣:已分配内存的地址空间

2️⃣:安全属性,包括所有权凭据和特权

3️⃣:程序代码的一个或多个执行线程

4️⃣:进程状态

三、进程的环境

1️⃣:本地和全局变量

2️⃣:当前调度上下文

3️⃣:分配的系统资源,如文件描述符和网络端口

四、进程的产生

1️⃣:现有的(父)进程复制自己的地址空间(fork)来创建一个新的(子)进程结构

2️⃣:每个新进程分配有一个唯一的进程ID(PID),满足跟踪和安全性之需

3️⃣:PID与父进程ID(PPID)是新进程环境的元素

4️⃣:任何进程可创建子进程;所有进程都是第一个系统进程的后代;RHEL7上,第一个系统进程是systemd。

五、进程的分类

1️⃣:前台进程:与终端相关的进程,通过终端启动的进程

  注意:也可把在前台启动的进程送往后台,以守护模式运行

2️⃣:守护进程:daemon,与终端无关的进程(如内核),在系统引导过程中启动的进程

六、进程状态描述

1️⃣:Excuting           //正在运行

2️⃣:Ready              //准备就绪状态,也可称作睡眠状态

  • Uninterruptible sleep       //不可中断的睡眠,不可随时唤醒,只有当IO资源加载成功后才能唤醒
  • Interruptible sleep           //可中断的睡眠。可随时唤醒

3️⃣:Zombie                      //僵尸进程。正常运行结束了,但是不释放占据的内存

4️⃣:Stopped                     //停止态,暂停于内存中,但不会被调度,除非手动启动之

5️⃣:进程睡眠的原因:当一个执行中的进程,需要加载额外的IO资源的时候,由于IO设备的速度太慢,所以会转入睡眠状态等待,交出CPU给其他进程,以免浪费剩余执行时间

七、Linux进程状态

八、进程优先级

1、Linux进程优先级

1️⃣:进程优先级范围:0-139,数字越小,优先级越高

  • 0-99:实时优先级,内核调整
  • 100-139:静态优先级,用户可控制

2️⃣:进程优先级高的特点

  • 获得更多的CPU运行时间
  • 更优先获得CPU运行的机会

3️⃣:要修改进程的优先级可以通过调整进程的nice值来实现,nice值越小,优先级越高

  • nice值的范围是(-20,19),-20对应100,19对应139

2、相对优先级

1️⃣:由于并非所有进程都以同样的方式创建,可为采用SCHED_NORMAL策略运行的进程指定相对优先级。此优先级称为进程的nice值

2️⃣:一个进程可以有40种不同级别的nice值

3️⃣:这些nice级别的范围是从-20到19;默认情况下,进程将继承其父进程的nice级别,通常为0

  • nice级别越高,表示优先级越低(该进程容易将其CPU使用量让给其他进程)
  • nice级别越低,表示优先级越高(该进程更加不倾向于让出CPU)
  • 如果不存在资源争用(例如当活动进程数少于可用CPU核心数时),即使nice级别高的进程也将仍使用它们可使用的所有可用CPU资源
  • 但当请求CPU时间的进程数超过可用核心数时,nice级别较高的进程将比nice级别较低的进程收到更少的CPU时间

3、nice级别与权限

1️⃣:为很占CPU资源的进程设置较低的nice级别可能会对同一系统上运行的其他进程的性能造成负面影响,所以仅允许root用户设置负nice级别以及降低现有进程的nice级别

2️⃣:普通(非特权)用户仅允许设置正的nice级别,也就是只能对现有进程提升nice级别,而不能降低nice级别。  

4、进程优先级调整

1️⃣:调整已经启动的进程的nice值

  •  renice NI PID(例:renice 3 3704)

2️⃣:在启动时指定nice值:(-20,19)

  •  nice -n NI COMMAND

Linux_进程管理的基本概述的更多相关文章

  1. Linux_进程管理相关命令

    一.进程管理命令 1.ps -- 进程查看命令 1️⃣:ps(process state)命令用于列出当前的进程 2️⃣:可以显示详细的进程信息,包括: 用户识别符(UID),它确定进程的特权 唯一进 ...

  2. Linux_进程管理&计划任务

    目录 目录 top打开Linux系统任务管理控制台 ps进程查询指令 kill进程关闭指令 一个小实验 一次性计划任务 周期性计划任务 top打开Linux系统任务管理控制台 快捷键: P M k q ...

  3. 07、Spark集群的进程管理

    07.Spark集群的进程管理 7.1 概述 Spark standalone集群模式涉及master和worker两个守护进程.master进程是管理节点,worker进程是工作节点.spark提供 ...

  4. CentOS进程管理

    Linux系统中的基本运行单位是进程,通过对系统系统中的进程的管理能够对系统的实时运行状态进行了解和调度.Linux中提供了用于查看.调整和停止进程的命令.本文仍然以RHEL6说明Linux系统的进程 ...

  5. boost:进程管理

    概述 Boost.Process提供了一个灵活的C++ 进程管理框架.它允许C++ developer可以像Java和.Net程序developer那样管理进程.它还提供了管理当前执行进程上下文.创建 ...

  6. .Neter玩转Linux系列之五:crontab使用详解和Linux的进程管理以及网络状态监控

    一.crontab使用详解 概述:任务调度:是指系统在某个时间执行的特定的命令或程序. 任务调度分类: (1)系统工作:有些重要的工作必须周而 复始地执行. (2)个别用户工作:个别用户可能希望执 行 ...

  7. Linux性能及调优指南(翻译)之Linux进程管理

    本文为IBM RedBook的Linux Performanceand Tuning Guidelines的1.1节的翻译原文地址:http://www.redbooks.ibm.com/redpap ...

  8. 《Linux 性能及调优指南》1.1 Linux进程管理

    https://blog.csdn.net/ljianhui/article/details/46718835 本文为IBM RedBook的Linux Performanceand Tuning G ...

  9. Linux进程管理与调度-之-目录导航【转】

    转自:http://blog.csdn.net/gatieme/article/details/51456569 版权声明:本文为博主原创文章 && 转载请著名出处 @ http:// ...

随机推荐

  1. OO第四单元总结 and 学期总结

    第四次单元总结 本单元架构设计总结 第一次作业:类图解析 本次作业仅仅需要实现官方的UmlInteraction接口,通过反射机制在Runner中实例化一个我们实现的类,来进行类图元素的分类解析,从而 ...

  2. 宝塔linux7.4.2/windows6.8 的版本中的安全随笔

    在2020/8.23宝塔官方发布了一条关于宝塔linux7.4.2和Windows6.8版本中存在的重大的安全隐患 通知来源https://www.bt.cn/bbs/thread-54644-1-1 ...

  3. 通过Dapr实现一个简单的基于.net的微服务电商系统(二)——通讯框架讲解

    首先感谢张队@geffzhang公众号转发了上一篇文章,希望广大.neter多多推广dapr,让云原生更快更好的在.net这片土地上落地生根. 目录:一.通过Dapr实现一个简单的基于.net的微服务 ...

  4. Mysql无法通过临时密码访问

    在Linux上安装Mysql: [步骤一]:将mysql的安装文件上传到Linux的服务器. [步骤二]:安装MYSQL服务端 [步骤三]:安装MYSQL客户端 我在步骤三遇到了问题,所以直接从步骤三 ...

  5. day16.网络编程1

    1 osi七层,tcp/ip 5层 1 cs架构和bs架构 2 互联网 3 osi七层.5层(5层名字记住:重点) -物理层 -网线,光纤 -数据链路层 -网卡 -网络层 -路由器 -传输层(运输层) ...

  6. 2021 DevOpsDays 东京站完美收官 | CODING 专家受邀分享最新技术资讯

    DevOpsDays 是一个全球知名的系列技术会议品牌,内容涵盖了软件开发.自动化.测试.安全.组织文化以及 IT 运营的社区会议等.DevOpsDays 由 DevOps 之父 Patrick De ...

  7. SpringBoot 启动慢?那是因为你不知道它

    前言 在 2021 年这个小学作文中的未来年份,没有想象中的汽车满天飞,也没有实现机器人满地跑.但牛逼的是我们都有一个共识: 知乎达到了人均 "谢邀~ 人在美国刚下飞机"的生活水平 ...

  8. 【Redis破障之路】三:Redis单线程架构

    众所周知,Redis是一个单线程架构的NoSQL数据库,但是是单线程模型的Redis为什么性能如此之高?这就是我们接下来要探究学习的内容. 1.Redis的单线程架构 1.1.Redis单线程简介 首 ...

  9. 1017. Convert to Base -2

    Given a number N, return a string consisting of "0"s and "1"s that represents it ...

  10. php 操作 redis 常用命令

    原文地址: https://www.cnblogs.com/zhanghanwen16/p/9510481.html 1.redis连接与认证 //连接参数:ip.端口.连接超时时间,连接成功返回tr ...