Linux编程3.3 进程-进程的终止

1、正常终止

  • 从main函数返回
  • 调用exit(标准C库函数)
  • 调用_exti或_Exit(系统调用)
  • 最后一个线程从其启动例程返回
  • 最后一个线程调用 pthread exit

2、异常终止

  • 调用abort
  • 接受到一个信号并终止
  • 最后一个线程对取消请求做处理响应

3、进程返回

  • 通常程序运行成功返回0,否则返回非0
  • 在shll中可以查看进程返回值(echo $?)

4、atexit函数

#include<stdlib.h>
int atexit(void (*function)(void));
返回:成功返回0,出错返回-1
功能:向内核登记终止函数
  • 每个启动的进程都默认登记了一个标准的终止函数
  • 终止函数在进程终止时释放进程所占用的一些资源
  • 登记的多个终止函数执行顺序是以栈的方式执行,先登记的后执行。

 示例:

 

5、进程终止方式区别

return

exit()

_exit()/Exit()

是否刷新标准I/O缓存

是否自动调用终止函数

6、进程启动和退出

   

7、查看系统中的进程

7.1、ps指令

通常可以查看到:进程的ID、进程的用户ID、进程状态和进程的Command

示例:

ps -ef

ps -aux|more 查看进程资源占用情况

7.2、ps输出的信息

  • USER            进程的属主;
  • PID              进程的ID;
  • PPID              父进程的ID;
  • %CPU             进程占用的CPU百分比;
  • %MEM            占用内存的百分比;
  • NI                  进程的NICE值,数值大,表示较少占用CPU时间;
  • VSZ               进程虚拟大小;
  • RSS                驻留中页的数量;
  • TTY                终端ID;
  • WCHAN        正在等待的进程资源;
  • START            启动进程的时间;
  • TIME              进程消耗CPU的时间;
  • COMMAND 命令的名称和参数;

7.3、进程状态

进程常见状态:

  • 运行状态
    1. 系统当前进程
    2. 就绪状态进程
    3. ps命令的STAT列为值R
  • 等待状态
    1. 等待事件性
    2. 等待系统资源
    3. ps命令的STAT列为值S
  • 停止状态
    1. ps命令的STAT列为值T
  • 僵尸状态
    1. 进程终止或结束
    2. 在进程表项中仍有记录
    3. ps命令的STAT列为值Z

8、进程调度

8.1、操作步骤

  • 第一步:处理内核中的工作
  • 第二步:处理当前进程
  • 第三步:选择进程
    1. 实时进程
    2. 普通进程
  • 第四步:进程交换

8.2、task_struct中的调度信息:

  • 策略
    1. 轮流策略
    2. 先进先出策略
  • 优先权
    1. Jiffies变量
  • 实时优先权
    1. 实时进程之间
  • 计数器

8.3、进程状态变化关系

 

9、回收方式:

              1. init进程回收 -> 僵尸进程 孤儿进程

              2. wait函数回收 -> 阻塞 等待SIGCHLD信号

              3. signal信号回收->当子进程结束,内核会发射SIGCHLD信号到对应的父进程中。

(signal信号:linux内核当中,有若干种信号,比如SIGINT,SIGCHLD,SIGALRM……,内核中,会产生或监听若干信号,若一个进程,监听了一个信号,则当发生该信号时,此进程会将当前进度暂停。     SIGINT->ctrl +c),

注:Sleep函数会被信号唤醒

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

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

相关文章

电子邮件营销的优势包括?邮件营销的利弊?

电子邮件营销的优势及特点&#xff1f;电子邮件营销策略的好处&#xff1f; 电子邮件营销不仅是一种经济高效的营销方式&#xff0c;更是企业与潜在客户之间建立长期关系的桥梁。那么&#xff0c;电子邮件营销的优势具体有哪些呢&#xff1f;接下来&#xff0c;让蜂邮EDM来探讨…

【Web安全靶场】upload-labs-master 1-21

upload-labs-master 其他靶场见专栏… 文章目录 upload-labs-masterPass-01-js前端校验Pass-02-MIME校验Pass-03-其他后缀绕过黑名单Pass-04-.hatccess绕过Pass-05-点空格点代码逻辑绕过Pass-06-大小写绕过Pass-07-空格绕过Pass-08-点号绕过Pass-09-::$DATA绕过Pass-10-点空格…

【Redis】Redis持久化模式AOF

目录 引言 AOF持久化模式​编辑​编辑 AOF与RDB的混合持久化(4.x后的新特性) AOF的优缺点 修复破损aof文件 到底用RDB还是AOF 引言 AOF就相当于上面的日志形式。是追加式备份。所有发生的写操作&#xff0c;新增啊&#xff0c;修改啊&#xff0c;删除啊&#xff0c;这些命…

pdf电子准考证查询下载系统(实证效果可照片)V1.0

CSDNpdf电子准考证查询下载系统(实证效果可照片)V1.0 使用场景: 教育机构比如学校用pdf准考证查询下载系统(实证效果可照片,最适合准考证打印); 也可自定义图片及坐标用于各种优秀党员三好学生等荣誉证书、聘书授权代理pdf电子证书查询与下载。 推荐Linux PHP5.5-7.3使用使…

第七篇 - 人工智能与机器学习技术VS量测(Measurement)- 我为什么要翻译介绍美国人工智能科技巨头IAB公司 - 它是如何赋能数字化营销生态的?

IAB平台&#xff0c;使命和功能 IAB成立于1996年&#xff0c;总部位于纽约市。 作为美国的人工智能科技巨头社会媒体和营销专业平台公司&#xff0c;互动广告局&#xff08;IAB- the Interactive Advertising Bureau&#xff09;自1996年成立以来&#xff0c;先后为700多家媒…

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:鼠标光标控制)

控制鼠标光标的显示样式。 说明&#xff1a; 从API Version 11开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 cursorControl setCursor setCursor(value: PointerStyle): void 方法语句中可使用的全局接口&#xff0c;调用此接口可以更…

增肌_锻炼

目录 练第一步 有氧运动关节活动度 第二步 脊柱侧弯吃 练 https://www.bilibili.com/video/BV14v4y1G7A3 第一步 有氧运动 有氧运动锻炼心肺 最大心率保持在50% - 60% 关节活动度 髋关节活动 亚足背屈   绕肩&#xff0c;肩环绕肩   第二步 高频的中等强度&#xf…

ubuntu_定制文件系统[2]-清理日志log

1.问题现象 系统长时间运行, 产生大量的系统日志 ubuntu/debian 系统日志如下 /var/log$ du -sh * 31M syslog # syslog日志 61M syslog.1 2.5G journal/ # systemd service日志 当日志文件过大, 硬盘空间占用100%时, 导致各种异常 命令按tab补全无响应服务/进程启动异常服务…

Google Play上架:自查封号政策解析(高风险行为之不允许破坏Google Play生态系统中用户信任度的应用或应用内容)

本文章提供给近期被封号的开发者们&#xff0c;希望能带来帮助&#xff0c;有其他的自查方向后续也会发布出来。 ——————————————————————————————————————— 用户数据设备和网络滥用 用户数据 设备和网络滥用

redis 缓存击穿问题(互斥锁,逻辑过期)

1、缓存击穿问题 缓存击穿问题:一个被高并发访问并且缓存重建业务较复杂的key突然失效了&#xff0c;无数的请求访问会在瞬间给数据库带来巨大的冲击。 场景:假设线程1在查询缓存之后&#xff0c;本来应该去查询数据库&#xff0c;然后把这个数据重新加…

堆以及堆的实现

文章目录 堆的概念堆的实现HeapPushHeapPop HeapTop HeapSize HeapEmpty堆的应用 堆的概念 堆是一颗完全二叉树每个结点的值都小于子结点的值&#xff0c;这颗二叉树为小根堆每个结点的值都大于子结点的值&#xff0c;这颗二叉树为大根堆堆的定义如下&#xff1a;n个元素的序列…

开展庆2024年“三八”国际妇女节系列纪念活动怎样向媒体投稿?

为了向媒体投稿,庆祝2024年“三八”国际妇女节系列纪念活动,你可以遵循以下步骤: 策划与准备: 确定纪念活动的主题和目标,例如提升女性权益、表彰女性成就、促进性别平等。 策划一系列活动,如研讨会、表彰仪式、展览、讲座等,确保内容丰富多样。 准备相关的背景资料、活动介…

Linux Watchdog 机制是什么

当涉及到Linux操作系统的稳定性和可靠性时&#xff0c;Linux Watchdog机制是一个至关重要的议题。该机制旨在监控系统状态&#xff0c;确保在出现问题时采取适当的措施以维持系统的正常运行。本文将深入探讨Linux Watchdog机制的工作原理、应用范围以及如何配置和使用该机制来提…

WebGIS开发0基础必看教程:WebGIS中的要素(Feature)

1.前言 在GIS中元素一般分为点元素&#xff0c;线元素&#xff0c;面元素以及symbol元素&#xff08;特殊的点元素&#xff09;等。与此对应&#xff0c;图层可以分为点图层&#xff0c;线图层&#xff0c;面图层以及标注图层等。从第9章到第10章&#xff0c;我给大家讲解了什…

力扣大厂热门面试算法题 - 动态规划

爬梯子、跳跃游戏、最小路径和、杨辉三角、接雨水。每题做详细思路梳理&#xff0c;配套Python&Java双语代码&#xff0c; 2024.03.05 可通过leetcode所有测试用例。 目录 70. 爬楼梯 解题思路 完整代码 Python Java 55. 跳跃游戏 解题思路 完整代码 Python 代码…

kafka高水位和leader epoch

什么是高水位&#xff1f; 高水位表示分区下副本消息到哪里是算正常提交的。比如如下图&#xff1a;leader副本写到8了&#xff0c;follower副本也写到8&#xff0c;那么这个8就代表要求的副本都写入了。消息到8这里才算提交成功&#xff0c;后面的15写入了也不算提交成功&…

【Leetcode 2673】使二叉树所有路径值相等的最小代价 —— 贪心法

2673. 使二叉树所有路径值相等的最小代价 给你一个整数n表示一棵 满二叉树 里面节点的数目&#xff0c;节点编号从1到n。根节点编号为1&#xff0c;树中每个非叶子节点i都有两个孩子&#xff0c;分别是左孩子2 * i和右孩子2 * i 1。 树中每个节点都有一个值&#xff0c;用下…

Vscode C/C++ 编译问题

1.最近开始在VScode上编写程序&#xff0c;遇到了以下的坑 This may occur if the process’s executable was changed after the process wasstarted, such as when installing an update. Try re-launching the application orrestarting the machine. 2.原因 这个不是由vs…

技术上的判断令你如何确定现货黄金卖出时机?

要讨论现货黄金卖出时机&#xff0c;我们首先要搞清楚一个问题&#xff0c;就是开仓和平仓的问题&#xff0c;如果投资者已经成了市场中的多头&#xff0c;那他寻找的卖出时机就是要找多头平仓的时机&#xff0c;如果投资者还没开仓&#xff0c;正在寻找市场中的开仓机会&#…

【RS】最新欧空局Sentinel-2卫星数据下载(哨兵1、2、3、5P、6系列)

之前分享过Sentinel2数据下载的方法&#xff0c;但是有粉丝反应欧空局的网站更新了&#xff0c;之前的网站已经不能用了。所以自己抽空研究了一下新版的欧空局网站&#xff0c;今天就和大家分享一下如何使用新版的欧空局网站下载哨兵系列的卫星数据&#xff0c;本文以Sentinel2…