Linux_进程管理的基本概述
一、进程的基本概述
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_进程管理的基本概述的更多相关文章
- Linux_进程管理相关命令
一.进程管理命令 1.ps -- 进程查看命令 1️⃣:ps(process state)命令用于列出当前的进程 2️⃣:可以显示详细的进程信息,包括: 用户识别符(UID),它确定进程的特权 唯一进 ...
- Linux_进程管理&计划任务
目录 目录 top打开Linux系统任务管理控制台 ps进程查询指令 kill进程关闭指令 一个小实验 一次性计划任务 周期性计划任务 top打开Linux系统任务管理控制台 快捷键: P M k q ...
- 07、Spark集群的进程管理
07.Spark集群的进程管理 7.1 概述 Spark standalone集群模式涉及master和worker两个守护进程.master进程是管理节点,worker进程是工作节点.spark提供 ...
- CentOS进程管理
Linux系统中的基本运行单位是进程,通过对系统系统中的进程的管理能够对系统的实时运行状态进行了解和调度.Linux中提供了用于查看.调整和停止进程的命令.本文仍然以RHEL6说明Linux系统的进程 ...
- boost:进程管理
概述 Boost.Process提供了一个灵活的C++ 进程管理框架.它允许C++ developer可以像Java和.Net程序developer那样管理进程.它还提供了管理当前执行进程上下文.创建 ...
- .Neter玩转Linux系列之五:crontab使用详解和Linux的进程管理以及网络状态监控
一.crontab使用详解 概述:任务调度:是指系统在某个时间执行的特定的命令或程序. 任务调度分类: (1)系统工作:有些重要的工作必须周而 复始地执行. (2)个别用户工作:个别用户可能希望执 行 ...
- Linux性能及调优指南(翻译)之Linux进程管理
本文为IBM RedBook的Linux Performanceand Tuning Guidelines的1.1节的翻译原文地址:http://www.redbooks.ibm.com/redpap ...
- 《Linux 性能及调优指南》1.1 Linux进程管理
https://blog.csdn.net/ljianhui/article/details/46718835 本文为IBM RedBook的Linux Performanceand Tuning G ...
- Linux进程管理与调度-之-目录导航【转】
转自:http://blog.csdn.net/gatieme/article/details/51456569 版权声明:本文为博主原创文章 && 转载请著名出处 @ http:// ...
随机推荐
- 四、python学习-正则表达式
正则表达式 import re lst = re.findall(正则表达式,需要匹配的字符串) findall 把所有匹配到的字符串都搜出来,返回列表 不能把分组内容和匹配内容同时显示出来 sear ...
- leetcode 刷题(数组篇)1题 两数之和(哈希表)
题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元 ...
- Ubuntu16.04下安装virtualbox,配置及卸载
我是通过添加源的方式安装 将下边的命令添加到/etc/apt/source.list中 deb https://download.virtualbox.org/virtualbox/debian xe ...
- 「新特性」Spring Boot 全局懒加载机制了解一下
关于延迟加载 在 Spring 中,默认情况下所有定的 bean 及其依赖项目都是在应用启动时创建容器上下文是被初始化的.测试代码如下: @Slf4j @Configuration public cl ...
- day16.网络编程1
1 osi七层,tcp/ip 5层 1 cs架构和bs架构 2 互联网 3 osi七层.5层(5层名字记住:重点) -物理层 -网线,光纤 -数据链路层 -网卡 -网络层 -路由器 -传输层(运输层) ...
- java面试一日一题:java的类加载过程
问题:请讲下java的类加载机制及过程 分析:该问题主要考察对JVM加载类的机制及过程,延申出的问题是为什么使用双亲委托模型,有什么办法可以打破双亲委托吗: 回答要点: 主要从以下几点去考虑, 1.类 ...
- Azure CDN 为静态网站创建内容分发网络
一,引言 最近刚刚接触 Edi.Wang 的 Moonglade 博客系统,正好这套系统中有使用到 Azure CND (内容分发网络),那就学习学习.那么今天就尝试利用 Azure CDN 来发布静 ...
- ReentrantLock理解
原文出处:http://www.yund.tech/zdetail.html?type=1&id=ef94715a2838f06ab03b8621c23d1613 作者:jstarseven ...
- TCP:与UDP区别、三次握手、四次挥手、Socket 编程
1. TCP 基本认识 TCP 头部格式 为什么需要 TCP 协议?TCP 工作在哪一层? 什么是 TCP ? 什么是 TCP 连接? 如何唯一确定一个 TCP 连接呢? 有一个 IP 的服务器监听了 ...
- Pandas的loc,iloc与ix的用法及区别
1.先来谈一谈loc,loc这个方法就是你有啥我就用啥,你没有的我不用,pandas对象的index,columns有什么,pd.loc[index,column],index就是pd.index的其 ...