进程的管理之进程创建笔记

2019-07-14 10:15发布

进程的控制:    操作系统不直接控制进程代码,而是通过控制进程控制块(pcb)来控制进程。进程控制块(pcb)是一个包含进程的所有信息的数据结构,里面包含了进程所需内存的大小,在内存中的基址,执行需要的时间中断时的现场信息等。   
操作系统专门有一组进程控制块用来控制进程。当创建一个进程时,就给进程分配一个空闲的进程控制块,并初始化进程控制块的信息。 进程的创建:      当一个进程需要被装入内存的时候,操作系统会先从进程控制块队列中查找一个空闲的PCB,然后初始化PCB的信息,再将进程从外存调入内存。具体的操作过程为: 1:系统调用create()原语初始化一个进程并将pcb放入就绪队列中。等到时间片到达,从就绪队列中进入执行阶段, 2:此时若执行完毕则操作系统调用destory()原语操作释放一个进程,回收pcb进程控制块。 3:若执行过程等待事件的出现,则操作系统调用block()原语操作将进程控制块放入动态阻塞队列,等待事件的出现。 4:若事件出现则调用wakeup()原语将控制块再次放入就绪队列等待执行。在动态阻塞过程中如果内存空间不足,则需要将动态阻塞队列的中进程放入外存中,这时操作系统执行suspend()原语将进程挂起,Pcb进入静态阻塞队列状态。如果在动态阻塞过程中时间出现则调用active()原理唤醒进程加入到就绪队列。 5:在静态阻塞过程中等待事件出现,则调用active()原语将pcb放入动态阻塞队列,然后再进入就绪队列。注意是经过两个过程,而不是直接进入就绪队列中。因为此时操作系统还要处理一些过程,所以不能直接加入就绪队列执行。 ***********************以上是进程在内存中的六种状态的过程。