linux管理进程

一、程序

程序:执行特定任务的一串代码

1.是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具

2.用于描述进程要完成的功能,是控制进程执行的指令集

二、进程和线程

1.进程

进程是程序的执行实例,拥有独立的资源和状态

进程特征:

1.动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的

2.并发性:任何进程都可以同其他进程一起并发执行

3.独立性:进程是系统进行资源分配和调度的一个独立单位

4.结构性:进程由程序、数据和进程控制块三部分组成

2.线程

线程是进程中的执行路径,共享进程的资源和地址空间,多个线程可以并发执行,实现程序的并发处理。线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单位。一个进程可以有一个或多个线程,各个线程之间共享程序的内存空间(也就是所在进程的内存空间)。一个标准的线程由线程ID、当前指令指针(PC)、寄存器和堆栈组成。而进程由内存空间(代码、数据、进程空间、打开的文件)和一个或多个线程组成。

3.协程

协程(Coroutines):一种基于线程之上,但又比线程更加轻量级的存在,这种由程序员自己写的程序,管理的轻量级线程叫做『用户空间线程』,具有对内核来说不可见的特性

4.进程与线程的区别

1.线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位

2.一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线

3.进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段、数据集、堆等)及一些进程级的资源(如打开文件和信号),某进程内的线程在其他进程不可见

4.线程上下文切换比进程上下文切换要快得多

5.进程使用内存的问题

开启进程消耗硬件资源(内存、硬盘、cpu使用率),硬件资源消耗完了就会卡顿

内核功用:进程管理,内存管理,文件系统,网络功能、驱动程序、安全功能等

1.内存泄漏:Memory Leak

指程序中用malloc或new申请了一块内存,但是没有用free或delete将内存释放,导致这块内存一直处于占用状态

2.内存溢出:Memory Overflow

指程序申请了10M的空间,但是在这个空间写入10M以上字节的数据,就是溢出

3.内存不足:OOM

内存不足(out of meory):给应用分配内存太少:比如虚拟机本身可使用的内存(一般通过启动时的VM参数指定)太少。应用用的太多,并且用完没释放,浪费了。此时就会造成内存泄露或者内存溢出。

当我们出现内存不足(OOM)时常使用的解决办法:

1,限制java进程的max heap,并且降低java程序的worker数量,从而降低内存使用

2,给系统增加swap空间

4.查看进程中的线程

这里的-p是显示进程pid号

命令格式:pstree -p

5.查看当前内存占用情况

命令格式:pmap  需要查看的进程pid号

注:.so结尾的一般是功能模块

三、进程状态

1.进程的基本状态

1.创建状态:进程在创建时需要申请一个空白PCB(process control block)进程控制块,向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法完成,比如资源无法满足,就无法被调度运行,把此时进程所处状态称为创建状态

2.*就绪状态:进程已准备好,已分配到所需资源,只要分配到CPU就能够立即运行

3.*执行状态:进程处于就绪状态被调度后,进程进入执行状态

4.阻塞状态:正在执行的进程由于某些事件(I/O请求,申请缓存区失败)而暂时无法运行,进程受到阻塞,在满足需求时进入就绪状态等待系统调用

5.终止状态:进程结束、出现错误或被系统终止,进入终止状态无法再执行

2.状态之间转换六种情况

1.运行---就绪:主要是进程占用CPU的时间过长,而系统分配给该进程占用CPU的时间是有限的,在采用抢先式优先级调度算法的系统中,当有更高优先级的进程要运行时,该进程就被迫让出CPU,该进程便由执行状态转变为就绪状态

2.就绪---运行:运行的进程的时间片用完,调度就转到就绪队列中选择合适的进程分配CPU

3.运行---阻塞:正在执行的进程因发生某等待事件而无法执行,则进程由执行状态变为阻塞状态,如发生了I/O请求

4.阻塞---就绪:进程所等待的事件已经发生,就进入就绪队列

5.阻塞---运行:即使给阻塞进程分配CPU,也无法执行,操作系统在进行调度时不会从阻塞队列进行挑选,而是从就绪队列中选取

6.就绪---阻塞:就绪态根本就没有执行,谈不上进入阻塞态

1.进程更多的状态

1.运行态:running 

2.就绪态:ready

3.睡眠态:分为两种,可中断:interruptable不可中断:uninterruptable

4.停止态:stopped,暂停于内存,但不会被调度,除非手动启动

5.僵死态:zombie,僵尸态,结束进程,父进程结束前,子进程不关闭。解决办法:杀死父进程可以关闭僵死态的子进程。结束父进程,父进程会回收子进程的硬件资源,子进程如果出现意外关闭,父进程无感知就不会收回资源,人为关闭父进程,资源不会回收产生僵尸进程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/311343.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue2 二次封装element 组件,继承组件原属性,事件,插槽 示例

测试页面代码 这里主要记录如何封装element的el-input 并且封装后具有el-input原本的属性 事件 插槽 下面为测试页面即组件调用 <script> import CustomInput from /components/CustomInput.vue;export default {name: TestPage,components: { CustomInput },data() …

jenkins构建微信小程序并展示二维码

测试小程序的过程中&#xff0c;很多都是在回头和前端开发说一句&#xff0c;兄弟帮我打一个测试版本的测试码&#xff0c;开发有时间的情况下还好&#xff0c;就直接协助了&#xff0c;但是很多时候他们只修复了其中几个bug&#xff0c;其他需要修复的bug代码正在编写&#xf…

【蓝桥杯嵌入式】蓝桥杯嵌入式第十四届省赛程序真题,真题分析与代码讲解

&#x1f38a;【蓝桥杯嵌入式】专题正在持续更新中&#xff0c;原理图解析✨&#xff0c;各模块分析✨以及历年真题讲解✨都已更新完毕&#xff0c;欢迎大家前往订阅本专题&#x1f38f; &#x1f38f;【蓝桥杯嵌入式】蓝桥杯第十届省赛真题 &#x1f38f;【蓝桥杯嵌入式】蓝桥…

BTI功能验证与异常解析

BTI分支目标识别精讲与实践系列 思考 1、什么是代码重用攻击&#xff1f;什么是ROP攻击&#xff1f;区别与联系&#xff1f; 2、什么是JOP攻击&#xff1f;间接分支跳转指令&#xff1f; 3、JOP攻击的缓解技术&#xff1f;控制流完整性保护&#xff1f; 4、BTI下的JOP如何…

论文略读:Window Attention is Bugged: How not to Interpolate Position Embeddings

iclr 2024 reviewer 打分 6666 窗口注意力、位置嵌入以及高分辨率微调是现代Transformer X CV 时代的核心概念。论文发现&#xff0c;将这些几乎无处不在的组件简单地结合在一起&#xff0c;可能会对性能产生不利影响问题很简单&#xff1a;在使用窗口注意力时对位置嵌入进行插…

密码学 | 椭圆曲线数字签名方法 ECDSA(下)

目录 10 ECDSA 算法 11 创建签名 12 验证签名 13 ECDSA 的安全性 14 随机 k 值的重要性 15 结语 ⚠️ 原文&#xff1a;Understanding How ECDSA Protects Your Data. ⚠️ 写在前面&#xff1a;本文属于搬运博客&#xff0c;自己留着学习。同时&#xff0c;经过几…

C++设计模式|创建型 2.工厂模式

1.简单工厂思想 简单工厂模式不属于23种设计模式之⼀&#xff0c;更多的是⼀种编程习惯。它的核心思想是将产品的创建过程封装在⼀个⼯⼚类中&#xff0c;把创建对象的流程集中在这个⼯⼚类⾥⾯。卡码网将其结构描述为下图所示的情况&#xff1a; 简单⼯⼚模式包括三个主要⻆⾊…

鸿蒙端云一体化开发--调用云函数--适合小白体制

如何实现在端侧调用云函数&#xff1f; 观看前&#xff0c;友情提示&#xff1a; 不知道《如何一键创建端云一体化模板》的小白同学&#xff0c;请看&#xff1a; 鸿蒙端云一体化开发--开发云函数--适合小白体制-CSDN博客 实现方法&#xff1a; 第一步&#xff1a;添加依赖 …

3D视觉引导麻袋拆垛破包 | 某大型化工厂

客户需求 此项目为大型化工厂&#xff0c;客户现场每日有大量麻袋拆垛破包需求&#xff0c;麻袋软包由于自身易变形、码放垛型不规则、运输后松散等情况&#xff0c;无法依靠机器人示教位置完成拆垛。客户遂引入3D视觉进行自动化改造。 工作流程&#xff1a; 3D视觉对紧密贴合…

libcurl 简单使用

LibCurl是一个开源的免费的多协议数据传输开源库&#xff0c;该框架具备跨平台性&#xff0c;开源免费&#xff0c;并提供了包括HTTP、FTP、SMTP、POP3等协议的功能&#xff0c;使用libcurl可以方便地进行网络数据传输操作&#xff0c;如发送HTTP请求、下载文件、发送电子邮件等…

服务器数据恢复—V7000存储raid5数据恢复案例

服务器数据恢复环境&#xff1a; P740AIXSybaseV7000存储阵列柜&#xff0c;阵列柜上有12块SAS机械硬盘&#xff08;包括1块热备盘&#xff09;。 服务器故障&#xff1a; 管理员在日常巡检过程中发现阵列柜中有一块磁盘发生故障&#xff0c;于是更换磁盘并同步数据&#xff0…

HTTP协议安全传输教程

HTTP协议有多个版本&#xff0c;包括但不限于HTTP/0.9、HTTP/1.0、HTTP/1.1、HTTP/2和HTTP/3。这些版本各自具有不同的特点和改进&#xff0c;以适应网络技术的发展和满足不同的需求。例如&#xff0c;HTTP/1.0使用文本格式传输数据&#xff0c;简单易用且兼容性好&#xff0c;…

电路笔记 : esp32pico-d4最小系统原理图

ESP32-PICO-D4 ESP32-PICO-D4是一款基于ESP32的系统级封装(SiP)模组&#xff0c;可提供完整的Wi-Fi和蓝牙功能。该模组的外观尺寸仅(7.0000.100)mm(7.0000.100)mm(0.9400.100)mm&#xff0c;整体占用的PCB面积最小&#xff0c;已集成1个4MB串行外围设备接口(SPI) flash。 ESP3…

网络层协议——IP协议

目录 IP协议 IP协议格式 分片与组装 网段划分 特殊IP地址 IP地址的数量限制 私有IP地址和公网IP地址 路由 路由表生成算法 IP协议 IP协议全称为“网际互连协议&#xff08;Internet Protocol&#xff09;”&#xff0c;IP协议是TCP/IP体系中的网络层协议。 在应用层我…

外卖小程序实战-接单后小票机自动打印订单

1、导入小票机的sdk https://www.feieyun.com/api/API-JAVA.zip public static String addprinter(String snlist){//通过POST请求&#xff0c;发送打印信息到服务器RequestConfig requestConfig RequestConfig.custom() .setSocketTimeout(30000)//读取超时 .setConnectTi…

DePIN打猎之旅:AI算力作饵,道阻且长

出品&#xff5c;OKG Research 作者&#xff5c;Hedy Bi 香港Web3嘉年华已告一段落&#xff0c;然而Web3自由的脉搏还在跳动&#xff0c;并不断向其他行业渗透。和上一轮周期相比&#xff0c;本轮牛市开启的逻辑是由“原生创新叙事”转变成“主流认可&#xff0c;资金驱动”的…

C语言详解指针

目录 一、指针的概念 1.1内存与地址 例子&#xff1a; 二、变量的指针与指针变量 2.1、指针变量的定义及使用 1、指针变量的定义 2、指针变量的使用 2.2 指针变量的大小 2.3、指针-整数 2.4、void*指针 三、指针的运算 1、指针- 整数 2、指针-指针 3、指针的关系运…

一套3种风格经典的wordpress免费主题模板

wordpress免费企业主题 https://www.wpniu.com/themes/39.html 免费wordpress企业模板 https://www.wpniu.com/themes/43.html 免费wordpress企业主题 https://www.wpniu.com/themes/44.html

使用docker部署数据可视化平台Metabase

目前公司没有人力开发数据可视化看板&#xff0c;因此考虑自己搭建开源可视化平台MetaBase。在此记录下部署过程~ 一、镜像下载 docker pull metabase/metabase:latest 运行结果如下&#xff1a; 二、创建容器 docker run -dit --name matebase -p 3000:3000\ -v /home/loc…

Python编程之旅:深入探索强大的容器——列表

在Python编程的世界中&#xff0c;容器&#xff08;Containers&#xff09;是一种用于存储多个项目的数据结构。其中&#xff0c;列表&#xff08;List&#xff09;是最常用且功能强大的容器之一。无论是初学者还是资深开发者&#xff0c;掌握列表的使用方法和技巧都是提升Pyth…