进程和线程:进程的创建和终止

本文详细探讨了进程的创建,包括创建时机、进程分类、与窗口的关系、系统调用创建进程的方式,以及在Unix和Windows系统中的实现差异。此外,还介绍了进程的终止,包括正常和异常退出,以及被其他进程杀死的情况。文中提到了不同操作系统对子进程处理的策略差异。
摘要由CSDN通过智能技术生成

进程的创建

进程创建的时机
  • 系统初始化
  • 一个进程执行了创建进程的系统调用
  • 用户请求创建一个新进程
  • 一个批处理作业初始化
进程分类
  • 前台进程:和用户交互的进程。
  • 守护进程:停留在后台处理的进程。
    (线程分类也类似,如 Java 中就将线程分为用户线程和守护线程,守护线程为用户线程提供一些基本服务以保证 Java 程序的正常执行,只有当非守护线程全部退出后,JVM 才能正常关闭)
进程与窗口的关系

每个窗口运行一个进程,通过鼠标用户可以选择一个进程并与该进程交互。

  • Unix:新进程接管创建它的进程的窗口。
  • Windows:大多数情况,一个进程被创建时并没有窗口,但可以创建一个或多个窗口。
系统调用创建进程

技术上,新进程均是由一个已存在的进程执行了一个创建进程的系统调用而创建的。

  • Unix:分两步走,先 fork,创建一个与调用进程相同的副本(子进程),此时这两个进程拥有相同的内存映像、环境字符串和打开的文件。接着执行 execve 或类似的系统调用,修改其内存映像并运行一个新的程序。

  • Windows:Win32 函数调用 CreateProcess 即处理进程的创建,也负责把正确的程序装入新的进程。

父进程和子进程的地址空间
  • Unix 和 W
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值