zoukankan      html  css  js  c++  java
  • APUE学习笔记 Chapter 8. Process Control

    1.进程标识
        每个进程都有一个全局唯一的Process ID。通常进程0是swapper,进程1为init.
    2.进程创建
       在进程里创建子进程可以使用fork函数,通常fork函数失败的原因有,系统中的进程过多,当前用户创建的进程过多。
       子进程会复制父进程的:数据段,栈,堆,而代码段是两者共享的。
       父进程打开的文件会dup to 子进程,共享一份文件列表条目,因此会共享文件的偏移量。
       vfork函数不会复制父进程的内存,而且保证子进程先运行直到exec或者exit.
    3.进程相关
        每个进程退出之后,系统会为该进程保存一小部分的信息,叫做process account,保存在特定的文件中,linux保存在/var/account/pacct中,因为是结束时写入的,因此是以结束时间排序的。保存信息如: 进程ID,结束状态与总CPU时间。
        僵尸进程,是指进程结束时,其父进程并没有在等待它结束的进程。
        进程可以使用wait系列函数等待其他函数结束,并获取其返回值。

    4.运行其他进程
        在进程中,可以通过调用exec调用其他程序,exec会将当前进程的text,data,heap与stack都替换成新的程序。

    5.用户ID之间的关系:

      

    6.脚本文件

    shell在运行程序时,先以二进制可执行文件的形式进行运行,如果失败,再以脚本的形式进行运行。通常以脚本程序第一行指定的程序,并以其他部分作为命令行参数作为输入。

    7.system函数

    提供了一个快捷的方式进行其他程序的运行,相当于fork+exec+wait,它内部实现了所需的错误处理与中断

    处理。

  • 相关阅读:
    docker容器,镜像常用操作
    微信小程序登录状态
    微信小程序登录流程图
    GET和POST可传递的值到底有多大?
    php发送请求
    thinkphp 导入微信小程序加密解密库
    thinkphp 随机获取一条数据
    bootstrap row 行间距
    webstorm es6 语法报错
    Laravel
  • 原文地址:https://www.cnblogs.com/liangxing/p/1814891.html
Copyright © 2011-2022 走看看