进程与程序的关系:

  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. (转)Maven的pom.xml文件配置使用

    转载:http://www.cnblogs.com/GarfieldTom/p/3707160.html <project xmlns="http://maven.apache.org ...

  2. python 有参数的装饰器

    怎么样为装饰器加参数 import time current_user = {'user':None} def auth(engine = "file") def deco(fun ...

  3. Akka系列(二):Akka中的Actor系统

    前言......... Actor模型作为Akka中最核心的概念,所以Actor在Akka中的组织结构是至关重要,本文主要介绍Akka中Actor系统. 1.Actor系统 Actor作为一种封装状态 ...

  4. tail命令 查看文件尾部 输出文件后n行,默认查看文件的后10行

    tail命令 查看文件尾部  用于查看日志 默认查看文件的后10行 -n 3 数字   也可以忽略-n 直接加数字 tail 3 查看文件后3行 [root@localhost ~]# tail /e ...

  5. [转帖] 国产x86-海光禅定 2018年营收过亿?

    中科曙光:全年业绩稳健,海光芯片营收过亿 X86服务器市场Intel占据绝对优势:X86处理器已经成为全球最广泛使用的处理器架构之一,尤其是在PC和服务器领域,其中在处理器市场的份额高达90%以上.中 ...

  6. webpack的介绍

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA5EAAAGpCAIAAACbBiUBAAAgAElEQVR4Aey9CVwb553/L04JcSPuw5

  7. PAT B1021 个位数统计 (15)

    AC代码 #include <cstdio> #include <iostream> #include <cstring> using namespace std; ...

  8. Python 入门之 内置模块 -- datetime模块

    Python 入门之 内置模块 -- datetime模块 1.datetime模块 from datetime import datetime (1)datetime.now() 获取当前时间和日期 ...

  9. php文件上传php.ini配置参数

    php文件上传服务器端配置参数 file_uploads = On,支持HTTP上传uoload_tmp_dir = ,临时文件保存目录upload_max_filesize = 2M,允许上传文件的 ...

  10. JavaScript concat() 方法

    昨天接触了一个项目,我的tbody变量是一个数组,然后数据返回的是数组里面包含对象,我刚开始没看懂这个concat的作用,然后百度一下javascript中的用法,以此记录concat的方法: dat ...