正在加载图片...
系统调用fork的算法 算法:fork 统级机上下文层; 输入:无 /*虚设上下文层中含有使子进程能识 输出:父进程是子进程的PID 别自己的薮据,并使子进程被调度时 对子进程是0 从这里开始运行; 检查可用的内核资源; f(正在执行的进程是父进程) 取一个空闲的进程表象和唯一的PD{ 号 将子进程的状态设置为“就绪”状态 检察用户没有过多的运行进程 将子进程的状态设为“创建”状态:ctum(子进程的PID)弹*从系统到用 将父进程的进程表象的数据拷贝到子户* 进程表象中; 当前目录的索引节点和改变的根目录ls*正在执行的进程是子进程* (如果可以)的引用数加1 在内存中作父进程上下文的拷贝(u区初始化u区的计时域; 正文、数据、栈); eturn(0)/*到用户* 在子进程的系统级上下文中压入虚设 系算法:fork 输入:无 输出:父进程是子进程的PID 对子进程是0 { 检查可用的内核资源; 取一个空闲的进程表象和唯一的PID 号; 检察用户没有过多的运行进程; 将子进程的状态设为“创建”状态; 将父进程的进程表象的数据拷贝到子 进程表象中; 当前目录的索引节点和改变的根目录 (如果可以)的引用数加1; 在内存中作父进程上下文的拷贝(u区 、正文、数据、栈); 在子进程的系统级上下文中压入虚设 系 统级机上下文层; /*虚设上下文层中含有使子进程能识 别自己的数据,并使子进程被调度时 从这里开始运行; */ if(正在执行的进程是父进程) { 将子进程的状态设置为“就绪”状态 ; return(子进程的PID);/*从系统到用 户*/ } else/*正在执行的进程是子进程*/ { 初始化u区的计时域; return(0);/*到用户*/ } } 系统调用fork的算法
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有