如题所述
下面所述步骤中,由调度程序为进程分配CPU不是创建进程所必需的。
创建进程的解释
进程创建是操作系统执行程序的需要或者用户或进程要求创建一个新的进程。进程创建首先是在进程表中为进程建立一个进程控制块PCB,采用fork()系统调用将复制执行进程的PCB块,U区和内存图像到新的进程。
主要内容包括:进程创建原语、fork()系统调用的编程举例和UNIX·V6的fork()源码分析。
进程借助创建原语实现创建一个新进程。首先为被创建进程在进程表集中区建立一个PCB--UNIX系统,还要为进程创建U区和内存映像,从进程表索取一个空白PCB表目,记录它的下标。
然后,把调用者提供的所有参数(见PCB块的内容),操作系统分配给新进程的PID和调用者的PID,就绪状态和CPU记账数据填入该PCB块;最后,把此PCB块分别列置到就绪队列RQ和进程隶属关系族群中。
UNIX系统使用fork函数创建新进程时,为子进程复制EP进程的内存映像并不是主要目标。这时,若用execl执行一个新程序,则子进程的正文段将全部更换,而数据段也将更新。
为了避免操作系统崩溃,pid<0是必须考虑的情况,创建进程失败称为异常。在UNIX系统程序中,不能有考虑不到的异常情况,这是编程能力的高低区别。
新创建的子进程和EP进程有各相互独立的数据段,EP进程和子进程对同一个变量所做的任何改变都是独立的,不会放映到另一个进程的存储器中。因此,value在子进程中的值为20,而在EP进程中的值则为10。
温馨提示:答案为网友推荐,仅供参考