进程的创建、终止、阻塞与唤醒
进程的创建、终止、阻塞与唤醒
进程的创建

补充图中知识
(一)PCB
1.是进程实体的一部分,是进程存在的唯一标志。系统唯有通过进程的PCB才能感知到进程的存在。
2.主要包括进程描述信息、进程控制和管理信息、资源分配清单和CPU 相关信息等。各部分的主要 说明如下:
(1)进程描述信息。进程标识符:标志各个进程,每个进程都有一个唯一的标识号。用户标识符:进程所归属的用户,用户标识符主要为共享和保护服务。
(2)进程控制和管理信息。进程当前状态:描述进程的状态信息,作为CPU 分配调度的依据。进程优先级:描述进程抢占CPU的优先级,优先级高的进程可优先获得CPU。
(3) 资源分配清单,用于说明有关内存地址空间或虚拟地址空间的状况,所打开文件的列表和所使用的输入/输出设备信息。
(4) 处理机相关信息,也称CPU 的上下文,主要指 CPU 中各寄存器的值。当进程处于执行态时,CPU 的许多信息都在寄存器中。当进程被切换时,CPU 状态信息都必须保存在相应的PCB中,以便在该进程重新执行时,能从断点继续执行。
(二)父进程与子进程的关系和特点
允许一个进程创建另一个进程,此时创建者称为父进程,被创建的进程称为子进程。子进程可以继承父进程所拥有的资源。当子进程被撤销时,应将其从父进程那里获得的资源还给父进程。此外,在撤销父进程时,通常也会同时撤销其所有的子进程。
(三)导致创建进程的操作
在操作系统中,终端用户登录系统、作业调度、系统提供服务、用户程序的应用请求等都会引起进程的创建。
进程的终止

引起进程终止的事件主要有:
①正常结束,表示进程的任务已完成并准备退出运行。②异常结束,表示进程在运行时,发生了某种异常事件,使程序无法继续运行,如存储区越界、保护错、非法指令、特权指令错、运行超时、算术运算错、I/O 故障等。③外界干预,指进程应外界的请求而终止运行,如操作员或操作系统干预、父进程请求和父进程终止。
进程的阻塞与唤醒
正在执行的进程,由于期待的某些事件未发生,如请求系统资源失败、等待某种操作的完成、新数据尚未到达或无新任务可做等,进程便通过调用阻塞原语(Block),使自己由运行态变为阻塞态。可见,阻塞是进程自身的一种主动行为,也因此只有处于运行态的进程(获得CPU),才可能将其转为阻塞态。阻塞原语的执行过程如下:
(1)找到将要被阻塞进程的标识号(PID)对应的PCB。
(2)若该进程为运行态,则保护其现场,将其状态转为阻塞态,停止运行。
(3)将该PCB插入相应事件的等待队列,将CPU资源调度给其他就绪进程。
进程唤醒的事件与时机
当被阻塞进程所期待的事件出现时,如它所期待的I/O操作已完成或其所期待的数据已到达,由有关进程(比如,释放该I/O设备的进程,或提供数据的进程)调用唤醒原语(Wakeup),将等待该事件的进程唤醒。唤醒原语的执行过程如下:
(1)在该事件的等待队列中找到相应进程的PCB。
(2)将其从等待队列中移出,并置其状态为就绪态。
(3)将该PCB插入就绪队列,等待调度程序调度。
应当注意,Block 原语和Wakeup 原语是一对作用刚好相反的原语,必须成对使用。如果在某个进程中调用了Block 原语,则必须在与之合作的或其他相关的进程中安排一条相应的Wakeup原语,以便唤醒阻塞进程;否则,阻塞进程将因不能被唤醒而永久地处于阻塞态。




