linux进程流程图,linux/kernel/fork.c 跪求坐等高人给予下面程序的功能模块和流程图...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

/*

*   Ok, this is the main fork-routine. It copies the system process

* information (task[nr]) and sets up the necessary registers. It

* also copies the data segment in it's entirety.

*/                                     //--fork()子程序,它复制系统进程信息,设置寄存器,复制数据段(代码段)

int copy_process(int nr,long ebp,long edi,long esi,long gs,long none,

long ebx,long ecx,long edx, long orig_eax,

long fs,long es,long ds,

long eip,long cs,long eflags,long esp,long ss)         //--复制进程

{

struct task_struct *p;

int i;

struct file *f;

p = (struct task_struct *) get_free_page();                 //--为新任务数据结构分配内存

if (!p)

return -EAGAIN;

task[nr] = p;

*p = *current;     /* NOTE! this doesn't copy the supervisor stack */

p->state = TASK_UNINTERRUPTIBLE;

p->pid = last_pid;

p->counter = p->priority;

p->signal = 0;

p->alarm = 0;

p->leader = 0;         /* process leadership doesn't inherit */

p->utime = p->stime = 0;

p->cutime = p->cstime = 0;

p->start_time = jiffies;

p->tss.back_link = 0;

p->tss.esp0 = PAGE_SIZE + (long) p;

p->tss.ss0 = 0x10;

p->tss.eip = eip;

p->tss.eflags = eflags;

p->tss.eax = 0;

p->tss.ecx = ecx;

p->tss.edx = edx;

p->tss.ebx = ebx;

p->tss.esp = esp;

p->tss.ebp = ebp;

p->tss.esi = esi;

p->tss.edi = edi;

p->tss.es = es & 0xffff;

p->tss.cs = cs & 0xffff;

p->tss.ss = ss & 0xffff;

p->tss.ds = ds & 0xffff;

p->tss.fs = fs & 0xffff;

p->tss.gs = gs & 0xffff;

p->tss.ldt = _LDT(nr);

p->tss.trace_bitmap = 0x80000000;

if (last_task_used_math == current)

__asm__("clts ; fnsave %0 ; frstor %0"::"m" (p->tss.i387));

if (copy_mem(nr,p)) {

task[nr] = NULL;

free_page((long) p);

return -EAGAIN;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值