赞
踩
一、fork()函数原理
int main()
{
int pc;
pc=fork();
}
通过fork()语句创建子进程,其实就是将父进程的内容复制到子进程中,包括堆栈段、数据段等(包括把pc的值赋给子进程,所以子进程执行的入口不再是main(),而是pc=fork()这句话,当然,fork()这句指令是不执行的,子进程将fork()返回值赋给pc。而函数的返回值默认是0,所以在不执行fork()函数的情况下,子进程的pc=0)
二、子进程和父进程执行次序
1、(子进程先执行的情况)如果时间片很短,在父进程执行fork()语句时,时间片就用完了,由于fork()是原语,必须先将fork()执行完毕,才能切换时间片。当fork()语句执行完毕,父进程进入就绪队列,在这之前,子进程已经进入Ready队列。在就绪队列中,父进程在子进程之后,如果这个系统的调度算法是先来先服务,子进程就会在父进程之前执
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。