Linux5.0、进程创建总结

简介: Linux5.0、进程创建总结

个人主页:Lei宝啊

愿所有美好如期而遇


前言

前面的章节已经使用过fork,并且也已经对fork函数需要注意的问题做了解释,本次我们将其串联起来做总结。

首先,使用fork函数后,父进程会创建子进程,创建成功给父进程返回子进程pid,给子进程返回0(也就是说父进程创建子进程后返回了子进程的pid,而子进程创建成功后返回了0),创建失败给父进程返回-1,并且fork后的数据和代码共享,以及为什么能够返回两个不同的值,是因为当操作系统创建父子进程后,父子进程都要有他们各自的创建结果,这个结果最终返回都是以寄存器方式返回的,我们的父进程和子进程在进行切换的时候,本质就是进程的上下文切换,所以当他们创建后返回的值,本质也就是返回到CPU的计算器当中,然后通过计算器写到我们的变量里,这也就注定了我们写入时一定不是同一个时间点。

再一个,fork函数之后,先调度哪个进程,由调度器决定。

fork函数还需要提及的是写时拷贝,我们在进程地址空间那里详细解答了写时拷贝的原理,就是当父子进程中任意一个进程在对数据做写入时,由于他们对数据只有读权限,此时操作系统就会介入,进行写时拷贝,在内存中新开辟空间并拷贝旧的数据,接着将父子进程对这个数据的权限改为读写权限。

目录
相关文章
|
6天前
|
消息中间件 算法 Linux
【Linux】详解如何利用共享内存实现进程间通信
【Linux】详解如何利用共享内存实现进程间通信
|
6天前
|
Linux
【Linux】命名管道的创建方法&&基于命名管道的两个进程通信的实现
【Linux】命名管道的创建方法&&基于命名管道的两个进程通信的实现
|
6天前
|
Linux
【Linux】匿名管道实现简单进程池
【Linux】匿名管道实现简单进程池
|
6天前
|
Linux
【Linux】进程通信之匿名管道通信
【Linux】进程通信之匿名管道通信
|
6天前
|
存储 Linux Shell
Linux:进程等待 & 进程替换
Linux:进程等待 & 进程替换
30 9
|
6天前
|
存储 Linux C语言
Linux:进程创建 & 进程终止
Linux:进程创建 & 进程终止
29 6
|
6天前
|
Linux 数据库
linux守护进程介绍 | Linux的热拔插UDEV机制
linux守护进程介绍 | Linux的热拔插UDEV机制
linux守护进程介绍 | Linux的热拔插UDEV机制
|
6天前
|
Unix Linux 调度
linux线程与进程的区别及线程的优势
linux线程与进程的区别及线程的优势
|
6天前
|
Linux 调度 C语言