用fork创建新进程,它要做哪些工作?
用fork创建新进程的主要工作有: (1)在进程表proc[]中为子进程找一个空闲的表项,用来存放子进程的proc结构; (2)为子进程分配一个唯一的标识号; (3)把父进程proc中的字段复制到子进程的proc中,并把p_pid置为分配到的进程标识号,把p_ppid置为父进程的标识号,把p_stat置为“创建”状态; (4)按父进程中p_size所示的长度为子进程申请分配内存。若有足够的内存,则把父进程的user结构、栈和用户数据区全部复制到子进程的空间中;若无足够的内存,则在磁盘对换区中分配存储空间,然后复制到对换区中,置子进程状态为“就绪”状态。