作者:常叽叽_655 | 来源:互联网 | 2017-07-29 05:07
在 UNIX 系统中,用户创建一个新进程的唯一方法就是调用系统调用 fork。调 用 fork 的进程称为父进程,而新创建的进程叫做子进程。系统 调用的语法格式:
pid = fork();
在从系统调用 fork 中返回时,两个进程除了返回值 pid 不同外,具有 完全一样的用户级上下文。在子进程中,pid 的值为零。在系统启动时由核心内 部地创建的进程0是唯一不通过系统调用 fork 而创建的进程。
核心为系统调用 fork 完成下列操作:
1. 为新进程在进程表中分配一个空项。
2. 为子进程赋一个唯一的进程标识号 (PID)。
3. 做一个父进程上下文的逻辑副本。由于进程的某些部分,如正文区,可能被几个 进程所共享,所以核心有时只要增加某个区的引用数即可,而不是真的将该区拷贝到一个 新的内存物理区。
4. 增加与该进程相关联的文件表和索引节点表的引用数。
5. 对父进程返回子进程的进程号,对子进程返回零。
理解系统调用 fork 的实现是十分重要的,因为子进程就象从天而降一样地开始 它的执行序列。
下面是系统调用 fork 的算法。核心首先确信有足够的资源来成功完成 fork。 如果资源不满足要求,则系统调用 fork 失败。如果资源满足要求,核心在进程 表中找一个空项,并开始构造子进程的上下文。
QUOTE:
推荐阅读
-
本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ...
[详细]
蜡笔小新 2024-12-26 18:10:02
-
本文探讨了自学编程者和计算机专业毕业生在技能、知识结构及职业发展上的不同之处,结合实际案例分析两者的优势与劣势。 ...
[详细]
蜡笔小新 2024-12-26 17:53:18
-
-
本文介绍了一种通过逐对比较线段来求解交点的简单算法。此外,还提到了一种基于排序的方法,但该方法较为复杂,尚未完全理解。文中详细描述了如何根据线段端点求交点,并判断交点是否在线段上。 ...
[详细]
蜡笔小新 2024-12-26 14:48:56
-
友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ...
[详细]
蜡笔小新 2024-12-26 14:11:47
-
本系列教程将引导您使用 Vue CLI 3 构建一个功能齐全的移动应用。我们将深入探讨项目中涉及的每一个知识点,并确保这些内容与实际工作中的需求紧密结合。 ...
[详细]
蜡笔小新 2024-12-26 13:30:37
-
本文介绍了一款用于帝国CMS的多图上传插件,该插件通过Flash技术实现批量图片上传功能,显著提升了多图上传效率。文章详细说明了插件的安装、配置和使用方法。 ...
[详细]
蜡笔小新 2024-12-26 13:30:01
-
当在Windows 10系统中遇到无法正确加载ICA文件的情况时,可以通过下载并安装Citrix Receiver,并将其设置为ICA文件的默认打开方式来解决问题。具体操作步骤包括找到ICA文件,选择合适的打开程序路径(通常是C:\Program Files (x86)\Citrix\ICA Client\wfcrun32.exe),并确保该程序被设为始终使用。 ...
[详细]
蜡笔小新 2024-12-26 12:36:21
-
本教程涵盖OpenGL基础操作及直线光栅化技术,包括点的绘制、简单图形绘制、直线绘制以及DDA和中点画线算法。通过逐步实践,帮助读者掌握OpenGL的基本使用方法。 ...
[详细]
蜡笔小新 2024-12-26 12:24:25
-
本文探讨了图数据库及其技术生态系统在知识表示和推理问题上的应用。通过理解图数据结构,尤其是属性图的特性,可以为复杂的数据关系提供高效且优雅的解决方案。我们将详细介绍属性图的基本概念、对象建模、概念建模以及自动推理的过程,并结合实际代码示例进行说明。 ...
[详细]
蜡笔小新 2024-12-26 12:11:47
-
本文介绍了如何通过编程方法获取计算机硬盘的唯一标识符(序列号),并提供了详细的代码示例和解释。此外,还涵盖了如何使用这些信息进行身份验证或注册保护。 ...
[详细]
蜡笔小新 2024-12-26 11:22:11
-
本文详细介绍了 React 中的两个重要 Hook 函数:useState 和 useEffect。通过具体示例,解释了如何使用它们来管理组件状态和处理副作用。 ...
[详细]
蜡笔小新 2024-12-26 11:09:53
-
最新发布的 libsodium 1.0.15 版本带来了若干不兼容的变更,其中包括默认密码散列算法的更改和其他重要调整。 ...
[详细]
蜡笔小新 2024-12-26 11:03:58
-
本文总结了涡喷发动机动平衡的几种有效方法,探讨了不同传感器和软件工具的应用,旨在帮助爱好者和工程师更好地理解和实现动平衡调整,确保发动机高效稳定运行。 ...
[详细]
蜡笔小新 2024-12-26 10:44:53
-
汇编语言以其独特的特性和复杂的语法结构,一直被认为是编程领域中学习难度较高的语言之一。本文将探讨汇编语言中的等号伪指令及其对初学者带来的挑战,并结合社区反馈分析其学习曲线。 ...
[详细]
蜡笔小新 2024-12-26 10:34:21
-
本文探讨了几种常见的离散型随机变量分布,包括超几何分布、几何分布、二项分布及其衍生的负二项分布和泊松分布。通过具体的模型和推导过程,详细介绍了这些分布的概率质量函数、期望和方差等关键特征。 ...
[详细]
蜡笔小新 2024-12-25 21:29:59
-
|