当前位置: 首页 > news >正文

c语言系统编程之多进程

程序与进程的区别?

程序是静态的未运行的二进制文件,存储在磁盘中

进程是已经运行的二进制文件,存储在内存中

进程的内存划分图有哪几部分?

堆(存储malloc和calloc出来的空间)、栈(局部变量、环境变量、命令行参数)、数据段(全局变量、静态变量、常量)、代码段(用户代码、系统初始化的代码)

进程的状态转换?

时间片的定义:

分时操作系统分配给每个正在运行的系统的一段微观上的时间

进程的控制命令:

ps:查看当前终端的进程

ps -e: 查看当前系统的所有进程

kill 给进程pid发送一个信号(sigstop、sigcont)

killall 给进程名发送一个信号

所有进程都有其父进程,最开始的进程有init进程和system进程创建

创建进程的函数:fork(),fork函数会连续返回两个值,一个是子进程返回零,一个是父进程返回大于零。

父子进程间不一样的属性有哪些?

pid号、记录锁、挂起的信号

孤儿进程:

当父进程比子进程先死亡,子进程就会变为孤儿进程,所有孤儿进程都由init进程进行回收。(子进程比父进程先死亡可以防止孤儿进程的产生)

僵尸进程:

子进程死亡,父进程未回收子进程的资源(调用wait),子进程变为僵尸进程

wait函数的作用:

用来回收子进程的资源,wait((int)&state),根据状态码得知子进程的状态

状态码如下:

获取pid的函数有哪些?

getpid()获取当前进程的pid号

getppid()获取父进程的pid号

exit函数()的作用?

使得进程退出,从运行状态进入到僵尸态。

execl()函数的作用?

让进程重新加载其他程序文件。

http://www.lryc.cn/news/180020.html

相关文章:

  • 前端还是后端:探讨Web开发的两大街区
  • JavaScript中如何确定this的值?如何指定this的值?
  • ubuntu下源码编译方式安装opencv
  • spring boot整合常用redis客户端(Jedis、Lettuce、RedisTemplate、Redisson)常见场景解决方案
  • HarmonyOS之运行Hello World
  • postgresql数据库|wal日志的开启以及如何管理
  • 小波变换学习笔记【1】
  • 雷柏mv20鼠标使用体验
  • 【分布式云储存】Springboot微服务接入MinIO实现文件服务
  • 机器人中的数值优化|【四】L-BFGS理论推导与延伸
  • ThemeForest – Canvas 7.2.0 – 多用途 HTML5 模板
  • 本地部署 川虎 Chat
  • IntelliJ IDEA 控制台中文乱码的四种解决方法
  • 23岁准备转行嵌入式
  • http请求报错:406 Not Acceptable的解决办法
  • 信息化发展75
  • C++八股
  • Nat. Commun. | 大规模高分辨单光子成像
  • Android开源库
  • 【小程序 - 基础】页面导航、页面事件、生命周期、WXS脚本_04
  • 矩阵求导数
  • 竞赛 大数据疫情分析及可视化系统
  • 数据结构--栈
  • 期权定价模型系列【7】:Barone-Adesi-Whaley定价模型
  • 【Axure高保真原型】3D圆柱图_中继器版
  • 多个线程启动 ,等待全部执行完毕再搜集数据
  • 【VIM】VIm-plug插件
  • ssl证书 阿里的域名,腾讯云的证书
  • 力扣算法题:34、在排序数组中查找元素的第一个和最后一个位置.java版
  • [网鼎杯 2020 朱雀组]Nmap