操作系统(Linux)---fork()函数解析与进程

          我在一个二本类院校,对于linux是不在课程范围的,属于个人爱好吧。自己学习了一些,操作系统上学期开了,老师很水,就期末最后两天学了整本书。

上学期去图书馆借了一本《linux内核设计与实现》当时看的是第二版,但是没有看完,其实收获还是挺多的。

         说回正题,前两天有个好朋友给我讲他们操作系统还有实验课,当时我就懵了,确实差距大。于是让他把实验课题发给我,我想看看。很多只有做过实验,才能深刻体会。


编制一段程序,使用系统调用fork( )创建两个子进程,这样在此程序运行时,在系统中就有一个父进程和两个进程在活动。每一个进程在屏幕上显示一个字符,其中父进程显示字符A进程分别显示字符 B和字符C。试观察、记录并分析屏幕上进程调度的情况。

设计思路:

进程的出生:

随着一句fork,一个新进程呱呱落地,但它这时只是老进程的一个克隆

调用fork创建的子进程,将共享父进程的代码空间,复制父进程数据空间,此时子进程会获得父进程的所有变量的一份拷贝。

系统调用 fork(),在fork函数调用完,如果创建成功就会返回两个进程,一个是father进程和一个新的进程son1(fork的一次调用两次返回)。

fork()返回值意义如下:

=0:在子进程中,表示当前进程是子进程。

>0:在父进程中,返回值为子进程的id值(唯一标识号)。

-1:创建失败。

再在返回的father进程里面调用fork()创建一个新的进程son2.

然后分别在进程打印A,B,C,然后实验一下。


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值