一、进程的基本概述

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. java面试-对象的创建、内存布局、访问定位

    一.对象的创建 1.虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载.解析和初始化过.如果没有,那必须先执行相应的 ...

  2. Elasticsearch核心技术与实战,性能是真牛

    Elasticsearch 是一款非常强大的开源搜索及分析引擎.结合 Kibana.Logstash和Beats,Elasticsearch 还被广泛运用在大数据近实时分析,包括日志分析.指标监控.信 ...

  3. Spring Cloud微服务限流之Sentinel+Apollo生产实践

    Sentinel概述 在基于Spring Cloud构建的微服务体系中,服务之间的调用链路会随着系统的演进变得越来越长,这无疑会增加了整个系统的不可靠因素.在并发流量比较高的情况下,由于网络调用之间存 ...

  4. SpringBoot项目打包部署

    部署方式 SpringBoot项目可以通过jar包或者war包部署在服务器上,因为jar包更适合前后端分离的项目,所以这里我们使用jar包的方式. 添加maven支持 <!-- 这个插件,可以将 ...

  5. 【笔记】《Redis设计与实现》chapter16 Sentinel

    16.1 启动并初始化Sentinel 初始化服务器 Sentinel本质上只是运行在特殊模式下的Redis服务器,启动第一步就是初始化一个普通的Redis服务器 使用Sentinel专用代码 使用r ...

  6. Day17_99_IO_FileReader文件字符输入流

    FileReader文件字符输入流 * 继承结构 Java.lang.Object - java.io.Reader; 抽象类 java.io.InputStreamReader; <转换流: ...

  7. 深入探索Android热修复技术原理读书笔记 —— 热修复技术介绍

    1.1 什么是热修复 对于广大的移动开发者而言,发版更新是最为寻常不过的事了.然而,如果你 发现刚发出去的包有紧急的BUG需要修复,那你就必须需要经过下面这样的流程: 这就是传统的更新流程,步骤十分繁 ...

  8. 分布式任务调度系统:xxl-job

    任务调度,通俗来说实际上就是"定时任务",分布式任务调度系统,翻译一下就是"分布式环境下定时任务系统". xxl-job一个分布式任务调度平台,其核心设计目标是 ...

  9. Android Linker 与 SO 加壳技术

    1. 前言 Android 系统安全愈发重要,像传统pc安全的可执行文件加固一样,应用加固是Android系统安全中非常重要的一环.目前Android 应用加固可以分为dex加固和Native加固,N ...

  10. POJ1376简单广搜

    题意:       给你一个n*m的矩阵,然后给你机器人的起点和终点,还有起点的方向,然后每次机器人有两种操作,左右旋转90度,或者是朝着原来的方向走1,2或者3步,机器人再走的过程中不能碰到格子,也 ...