linux创建进程运行后出错怎么返回修改,第讲linux进程创建.pdf

这篇博客探讨了Linux操作系统中的进程创建,重点在于fork()系统调用如何实现父子进程的创建。早期的进程创建过程较为耗时,但通过写时复制(Copy-On-Write)技术的引入,大大提高了效率。当一个进程试图修改共享页面时,内核会复制页面以确保数据的一致性。此外,博客还包含了一个简单的C语言示例,展示了fork()的使用。
摘要由CSDN通过智能技术生成

第讲linux进程创建.pdf

进程及进程间通信

张其亮

Operating System 1

Create process

Linux进程树

init进程是所有进程的祖先进程,它的进程pid=1

Operating System 2

Process

Operating System 3

fork

Linux进程的创建

Linux 通过fork()创建进程,进程创建后父

子 进 程 在 系 统 中 并 发 执 行

Fork系统调用

父进程创建子进程是通过fork()系统调

用完成的。此时一个进程“分裂”成两

个进程:一个是原来的进程,一个是新

创建的进程。 如何区分原来进

程和新进程?

Operating System 4

fork

可认为有两个返回值

Operating System 5

如何fork?

Operating System 6

fork

明白为什么fork()返回2次了吗

Operating System 7

fork

早期系统

这种方式是相当费时的,特别是调用fork()后,紧接着再调用

会替代子进程整个空间的exec()函数,这时拷贝虚拟页表就显

得多余了

Operating System 8

improve

改进

1.内核把进程的代码段设置为只读,父进程和子进程都共享该段

2对于在数据段,堆,栈中的页(pages),内核使用写时复制(

copy-on-write )。在最开始,内核让父子进程共享这些段中的

页,并把这些页设置为可读。当任意一个进程要修改其中一个页

时,内核负责把该页复制,然后让要修改该页的进程中的

table entry指向复制后的页。

Operating System 9

现在系统

Operating System 10

写时复制

Operating System 11

example

#include

#include

main()

{

int val;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值