进程控制

作者: 小鲍比大爷 | 来源:发表于2019-05-24 17:38 被阅读0次
  • 进程ID是进程唯一标识,可以通过提供的getpid等函数获得进程ID等信息
  • 函数fork用来创建子进程,子进程返回0,父进程返回子进程ID,通过判断fork返回值是否为0可以用来区分子进程逻辑和父进程逻辑
  • 当今子进程和父进程通常使用写时复制实现数据段等内存区域的共享,只在相关内存区域改变时才创建相关副本进行修改
  • fork之后父进程和子进程的执行是不固定的,具体要取决于内核的调度算法,如果需要同步则需要进程间通信来完成
  • 标准输出的缓冲会在fork时复制到子进程空间中,这会导致子进程中也存在相关缓冲,导致父进程和子进程具有部分相同输出
  • fork之前打开的文件描述符,会在fork之后由父进程和子进程共享。避免冲突的方式通常有两种场景:1,fork之后进行进程同步;2,关闭各自文件描述符,继续各自的逻辑
  • 不管进程如何终止,最后都会执行内核中的一段代码。这段代码为相应进程关闭所有打开描述符,释放它所使用的存储器等
  • 防止僵尸进程出现的两种方法:1,使用wait waitpid等待子进程终止(子进程先死);2,两次fork,第二次fork的子进程由init进程收养,init进程负责子进程的善后工作(父进程先死)
  • IPC(Inter-Process Communication,进程间通信)
  • 由于fork时并不能保证执行顺序,所以通常需要使用某些方式对进程进行同步
  • exec在fork之后执行,用于替换子进程的进程空间中的数据等信息+ #! 解释器脚本的好处:1,隐藏具体实现,比如底层其实是awk;2,如果在shell中调用awk,会导致fork和wait,会导致更多开销;3,可以用除了/bin/sh之外的其他shell进行脚本编写
  • system函数可以直接调用命令,内部实际是fork+exec
  • 进程调度。nice值越小,优先级越高

相关文章

  • 第二章 进程的描述与控制2

    2.2进程控制与同步 一、进程控制 1、进程控制的基本过程: 1)进程的创建 2)进程的终止 3)进程的阻塞与唤醒...

  • 操作系统第二章第二部分

    2.2进程控制 进程控制的基本过程: ¡进程的创建 ¡进程的终止 ¡进程的阻塞与唤醒 ¡进程的挂起和激活 1.进程...

  • 二.进程(2)进程控制

    2.2 进程控制 进程控制的基本过程: 进程的创建 进程的终止 进程的阻塞与唤醒 进程的挂起和激活 关于进程的亲属...

  • 进程控制块PCB

    进程控制块 每一个进程内核中都有一个进程控制块(PCB)来维护进程相关的信息,linux内核的进程控制块时 tas...

  • APUE第9章 进程关系、进程组、会话

    9 进程关系 在第8章学习了进程的控制原语,通过各种进程原语可以对进程进行控制,包括新建进程、执行新程序、终止进程...

  • 进程管理

    进程 进程由程序、数据、进程控制块(PCB)组成。而进程控制块其实本质就是个数据结构,用来记录进程信息的。 进程的...

  • PHP 扩展知识

    pcntl扩展:(进程控制) pcntl扩展是进程控制的重要扩展,但目前Win不支持。包含进程创建、进程监控、...

  • child_process

    目录 进程 线程 Node.js的进程控制 Node.js的线程控制 进程 Process 场景 notepad....

  • 进程(二)—— 控制与通信

    1. 进程控制 进程控制的主要功能是对系统中所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转...

  • 异常控制流

    异常控制流 7.1 进程与进程的上下文切换 程序和进程的概念 进程的逻辑控制流 进程的上下文切换 进程的私有地址空...

网友评论

    本文标题:进程控制

    本文链接:https://www.haomeiwen.com/subject/gqnmzqtx.html