进程与程序的关系:

  1.程序就是存储在磁盘上可执行的二进制文件,

  2.进程是一个正在执行的的程序,不过一个程序可能存在多个进程实例。

查看进程中的pid和获取pid(进程号)

  1.终端指令:ps  aux   查看所有的正在进行的进程,显示出用户名,进程号,cup占用比,内存占用比等

  2.终端指令:ps   aux  |  grep  pid   可过滤其他的无关的pid,可以直接查看目标pid

  3.标准c:  getpid()查看当前进程的pid   getppid()查看父进程的pid

子进程的创建(当前进程中创建子进程)

  1.fork():pid_t    fork(void);

    a.创建出子进程,程序开始时,子进程将父进程中的全局段,静态数据段,堆,栈,IO缓冲区中的数据都拷贝一份,并且会共享代码段。

    b.此函数如果创建成功会返回两个值(0和子进程的pid),这两个值没有先后顺序。如果创建失败则会返回-1。

  2.vfork()和exec联合才能使用:pid_t  vfork(void);   int   exec(const char* path,const char *arg...)  实例 exec(“路径”,“a.out”,NULL);

    a.vfork()创建出子进程,不过程序开始时,子进程之间不会拷贝父进程中全局段,静态数据段,堆,栈,IO缓冲区中的数据不会拷贝,也不会贡献代码段,此函数执行是有先后顺序的,子进程如果还未结束,父进程就不会执行。

    b.exec()通过此函数创建的子进程会替换掉父进程给的代码段,此函数不是重新创建一个新的pid,而是加载一个可执行文件。  

进程的退出和异常终止

  1.退出:

      a.return函数        b.系统函数_exit(stat)和标准C函数_Exit         c.标准exit调用_exit/_Exit      d.最后一个线程结束,直接退出

  2.异常终止:

      a.通过函数abort()       b.程序运行时,通过一些键位来取消操作     c.线程中取消运行

进程的回收

  1.wait: pid_t   wait(int* status)

    a.等待指定的子进程结束,父进程进行会收,status是子进程结束后的返回值。

    b.所有子进程在进行时,父进程会阻塞。

  2.waitpid:pid_t   waitpid(pid_t  pid,int* status,int option)

UINX标准C - 进程管理的更多相关文章

  1. python 标准类库-并行执行之subprocess-子进程管理

    标准类库-并行执行之subprocess-子进程管理 by:授客QQ:1033553122 1.使用subprocess模块 以下函数是调用子进程的推荐方法,所有使用场景它们都能处理.也可用Popen ...

  2. Linux进程管理

    一.进程管理简介 进程是正在执行的程序或命令,每一个进程都是一个运行实体,都有自己的地址空间,并占用一定的系统资源. 进程管理的作用: 1.判断服务器的健康状态 2.查看系统中的所有进程 3.杀死进程 ...

  3. linux设备驱动归纳总结(四):1.进程管理的相关概念【转】

    本文转载自;http://blog.chinaunix.net/uid-25014876-id-64866.html linux设备驱动归纳总结(四):1.进程管理的相关概念 xxxxxxxxxxxx ...

  4. boost:进程管理

    概述 Boost.Process提供了一个灵活的C++ 进程管理框架.它允许C++ developer可以像Java和.Net程序developer那样管理进程.它还提供了管理当前执行进程上下文.创建 ...

  5. Linux内核学习笔记-2.进程管理

    原创文章,转载请注明:Linux内核学习笔记-2.进程管理) By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...

  6. UNIX环境高级编程——进程管理和通信(总结)

    进程管理与通信 进程的管理 进程和程序的区别: 进程: 程序的一次执行过程   动态过程,进程的状态属性会发生变化 程序:存放在磁盘上的指令.数据的有序集合  是个文件,可直观看到 程序program ...

  7. Linux内核——进程管理与调度

    进程的管理与调度 进程管理 进程描写叙述符及任务结构 进程存放在叫做任务队列(tasklist)的双向循环链表中.链表中的每一项包括一个详细进程的全部信息,类型为task_struct,称为进程描写叙 ...

  8. Linux内核分析(四)----进程管理|网络子系统|虚拟文件系统|驱动简介

    原文:Linux内核分析(四)----进程管理|网络子系统|虚拟文件系统|驱动简介 Linux内核分析(四) 两天没有更新了,上次博文我们分析了linux的内存管理子系统,本来我不想对接下来的进程管理 ...

  9. Linux进程管理详解

    何谓进程?进程,就是正在执行的一个程序或命令,每一个进程都是一个运行实体,有自己的地址空间,并占用一定的系统资源.简而言之,进程就是运行中的程序.在Linux中,诸如ls等命令都是进程,只不过某些命令 ...

随机推荐

  1. 【转】mysql的group_concat函数,默认最大长度是1024

    mysql的group_concat函数,默认最大长度是1024 查询sql: show variables like 'group_concat_max_len'; 设置方式: 修改配置文件my.i ...

  2. C++ day01 预备知识、C++综述、教材、推荐阅读。

    C++ day01: 1.预备知识? 1)什么是编程 编程,即编订程序. 程序 = 数据 + 算法(蛋糕 = 糖.鸡蛋.奶油 + 打鸡蛋.加糖.烤) 2)编程语言 最初的编程是用二进制代码(即“机器码 ...

  3. Codeforces Round #587 (Div. 3)

    https://codeforces.com/contest/1216/problem/A A. Prefixes 题意大概就是每个偶数位置前面的ab数目要相等,很水,被自己坑了 1是没看见要输出修改 ...

  4. cannot convert from pointer to base class 'QObject' to pointer to derived class 'subClass' via virtual base 'baseClass'

    QT 编译不过的另一个问题: 1. 新建一个console工程 QT -= gui CONFIG += c++ console CONFIG -= app_bundle # The following ...

  5. ivew组件上传图片文件的功能:

    解决的问题: 1.使用view的<Upload>组件实现图片文件的上传. 2.<Upload>组件action请求地址无法到自己写的后台. 3.前台base64的图片展示. 4 ...

  6. 082、数据收集利器 cAdvisor (2019-04-30 周二)

    参考https://www.cnblogs.com/CloudMan6/p/7683190.html   cAdvisor 是google 开发的容器监控工具,下面我们开始安装和体验 cAdvisor ...

  7. sqlserver2008 必知必会技巧-- 快速索引对象

    对象资源管理器里面 -- 数据库 -- 表目录 ,然后按 f7 弹出 对象资源管理详细信息 , 里面有搜索栏 , 可以 使用 % 进行模糊查询 例如我们查包含 student的表 %student% ...

  8. vue项目1-pizza点餐系统3-路由知识点补充

    1.可以通过tag修改router-link的默认标签 <!--router-link标签默认是a标签,tag标签可以修改默认标签 --> <li><router-lin ...

  9. drf模块分析

    drf请求模块.渲染模板.解析模块.响应模块.异常模块 请求模块 drf的请求模块 1.drf的request是在wsgi的request基础上再次封装 2.wsgi的request作为drf的req ...

  10. 利用wampserve搭建本服务器

    1.官网下载安装包 注意:3.0.6版本需要下载依赖包vc依赖包 2.默认为英文 右击图标进入langue设置为中文 3.需要手动设置在现状态 右击=>选中wampsetting =>me ...