18、UNIX 进程:概念、操作与特殊进程解析

UNIX 进程:概念、操作与特殊进程解析

1. 执行命令时发生了什么

在 UNIX 系统中执行程序时,系统会为该程序创建一个特殊的环境。这个环境包含了系统运行该程序所需的一切,就好像系统中没有其他程序在运行一样。

2. 进程分叉(Forking a Process)

每个进程都有其独特的进程上下文,包含以下内容:
- 正在运行的文本(程序指令)
- 程序使用的内存
- 当前工作目录
- 打开的文件及其在文件中的位置
- 资源限制
- 访问控制信息
- 其他各种底层信息

每次执行程序时,UNIX 系统会进行分叉操作,具体步骤如下:
1. 分配进程表槽位 :UNIX 会在进程表中为新进程分配一个槽位,进程表是 UNIX 维护的当前运行程序列表。不过,分配可能会因以下原因失败:
- 超过用户进程限制,即达到了 UNIX 系统允许用户运行的最大进程数。
- 系统没有可用的进程槽位,因为 UNIX 内核将当前运行进程的信息存储在进程表中,当表满时无法再创建新进程。
- 系统内存不足,无法为新进程的文本和数据提供空间。
2. 分配唯一进程标识符(PID) :为新进程分配一个唯一的 PID,用于后续对进程的检查和控制。
3. 复制父进程上下文 :复制请求创建新进程的父进程的上下文。
4. 返回新 PID 给父进程 :使父进程能够直接检查或控制新进程。

分叉完成后,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值