1.多进程如何组织?
上文中(操作系统之进程管理(1):从CPU如何执行进程说起),我们说过操作系统为每个程序提供了一个叫做PCB(Process Control Block进程控制块)的数据结构。它记录了该程序执行到什么位置,执行过的值的状态、相关寄存器的状态等信息,供CPU再次返回时恢复现场使用。简单来说,PCB就是操作系统为系统进程提供的一种记录进程信息的数据结构。
首先,进程有五种状态,PCB记录了进程处于何种状态。
运行态:该进程正在执行。
(运行态--->阻塞态):
遇到IO操作指令时,执行IO指令(如读写磁盘操作),此时进程进入阻塞态。
(运行态--->就绪态):
因为CPU是按照时间片在各进程间来回切换使进程共同推进的,因此当前进程CPU在其上的时间片过了之后,当前进程重新进入就绪态,等待下一次CPU的时间片来临。
就绪态:进程已经做好了准备,有机会得到CPU的资源,然后就开始执行变为运行态。(就绪态--->运行态)
阻塞态:进程在某些事情发生时不能被CPU调度,必须等待阻塞进程的事件完成,然后进入就绪态,才有机会得到CPU的调度执行变为运行态。如当前进程处于IO操作,此时进程不能被调度,只有IO操作完成之后,变为就绪态,才有机会被调度。(阻塞态--->就绪态)
新建态:刚刚创建的进程,操作系统还没有把它加入到可执行进程组中,通常是(PCB)进程控制块已经创建但是还没有加载到内存中的进程。
终止态:操作系统从可执行进程组中释放出的进程,或由于自身或某种原因停止运行。
多进程的组织方式?