一、进程的基本概述

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. [Fundamental of Power Electronics]-PART I-2.稳态变换器原理分析-2.3 Boost 变换器实例

    2.3 Boost 变换器实例 图2.13(a)所示的Boost变换器器是另一个众所周知的开关模式变换器,其能够产生幅值大于直流输入电压的直流输出电压.图2.13(b)给出了使用MOSFET和二极管的 ...

  2. 【CTF】图片隐写术 · 盲水印

    前言 盲水印同样是CTF Misc中极小的一个知识点,刚刚做到一题涉及到这个考点的题目. 感觉还挺有意思的,就顺便去了解了下盲水印技术. 数字水印 数字水印(Digital Watermark)一种应 ...

  3. Android通过Web与后台数据库交互

    2021.1.27 更新 已更新新版本博客,更新内容与原文章相比有点多,因此新开了一篇博客,请戳这里. 1 背景 开发一个App与后台数据库交互,基于MySQL+原生JDBC+Tomcat,没有使用D ...

  4. 击鼓传花联想到了Java设计模式:责任链模式

    目录 应用场景 简单示例 责任链模式 定义 意图 主要解决问题 何时使用 优缺点 击鼓传花的故事 应用场景 http web请求处理,请求过来后将经过转码.解析.参数封装.鉴权等一系列的处理(责任), ...

  5. 实现Web请求后端Api的Demo,实现是通过JQuery的AJAX实现后端请求,以及对请求到的数据的解析处理,实现登录功能

    本篇实现Web请求后端Api的Demo,实现是通过JQuery的AJAX实现后端请求,以及对请求到的数据的解析处理,实现登录功能需求描述:1. 请求后端Api接口地址2. 根据返回信息进行判断处理前端 ...

  6. 《TCP/IP网络编程》学习笔记整理

    简介 本笔记目前已包含 <TCP/IP网络编程>中的前 5 章,后续章节会在近期内补充完整. 我在整理笔记时所考虑的是:在笔记记完后,当我需要查找某个知识点时,不需要到书中去找,只需查看笔 ...

  7. Day13_74_守护线程

    守护线程 线程分为 用户线程 和 守护线程. setDeamon(boolean) 方法 :将该线程标记为守护线程或者用户线程. 线程对象.setDaemon(true); //false 表示用户线 ...

  8. Smith Numbers(分解质因数)

    Smith Numbers Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 14173   Accepted: 4838 De ...

  9. 根据数据源自定义字段实现动态导出Excel

    前言 最近遇到了一个需求,需要导出各种订单数据,可能是因为懒吧,不想重新写查询然后导出数据:就有了下边的这些操作了. 具体实现方式 1),定义一个泛型类来接收我们要导出的数据源,(需要EPPlus包) ...

  10. 【Https】Https为什么能保证安全?

    HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版. 反观HTTPS协议,它比HTTP协议相比多了以下优势(下文会详细介绍): 数据隐私性:内容经过对称加密,每个连 ...