Unix中进程控制浅析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/g8433373/article/details/88179964

Unix fork浅析

常见控制函数

  • fork: 通过复制调用进程来建立新的进程, 是最基本的进程建立的过程
  • exec: 通过一系列系统调用, 通过用新代码覆盖旧代码的方式, 覆盖原来的地址空间,实现执行代码转换
  • wait: 提供初级进程同步的操作,让一个进程等待另一个进程结束
  • exit: 终止一个进程

fork

  • 为进程分配空闲的PCB (unix中又叫做proc结构)
  • 分配唯一的pid
  • 以一次一页的方式复制父进程地址空间
    • 子进程大部分时候做的事情和父进程不一样, 所以需要后面exec操作 将子进程的代码覆盖父进程
    • Linux使用COW(copy on write)技术, 优化了这一部分, 也就是读的时候共享地址,写的时候才是复制地址空间
  • 从父进程继承各种共享资源, 如打开的文件
  • 子进程状态设为就绪, 并且插入就绪队列
  • 对子进程返回标识符0
  • 向父进程返回子进程的pid
  • fork执行完成后,进程就一分为二

参考

[1] 操作系统原理

猜你喜欢

转载自blog.csdn.net/g8433373/article/details/88179964