进程的概念、状态转换和进程控制块

xiaoxiao2021-02-28  8

1. 为什么要引入进程       通常的程序是不能并发执行的,因为并发执行会使它们具有间断性、失去封闭性,并且其结果不可再现。      为了使程序能够并发执行,并且对程序加以描述及控制,引入了进程的概念。 2. 进程的定义       进程是进程实体的运行过程,进程实体由程序段、相关的数据段和PCB三部分构成。在没有引入线程的操作系统中,进程是系统进行资源分配和调度的一个独立单位。 3. 进程的状态       (1)创建状态           当一个新进程被创建时,系统为其创建PCB,并填写必要的管理信息。但由于该进程所需的资源尚未分配,进程还没有进入主存,进程还不能被调度运行。      (2)就绪状态           当进程已经被分配到除CPU以外的所有资源时,只要再获得CPU就可以执行,这种状态称为就绪状态。      (3)执行状态           进程获得了CPU,正在执行当中。      (4)阻塞状态           正在执行的进程由于发生一些事件暂时无法继续占有CPU时,进程进入阻塞状态。      (5)挂起状态           当有终端用户的请求,或父进程的请求,或系统负荷调节的需要,或操作系统的需要时,进程进入挂起状态。      (6)终止状态           当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统终结,或是被其它拥有终止权的进程终结,进程就进入终止状态。 进程状态转换图(无挂起状态) 4. 引起进程进入各种状态的事件 4.1 进入阻塞状态      (1)请求的资源被其它进程占用。如:请求使用打印机资源,但打印机正在被其它进程使用。      (2)启动某种操作。如:启动了某项I/O设备,只有在I/O设备完成了指定的I/O操作后进程才能继续执行。      (3)新数据尚未到达。如:进程A用于输入数据,进程B用于对数据加工,如果进程A尚未输入完数据 ,则进程B阻塞。      (4)无新工作可做。如:发送数据的进程已经发送完数据,且无新的发送请求,则该发送进程阻塞。 4.2 进入挂起状态      (1)终端用户请求。如:终端用户在程序运行期间希望程序 暂停执行,进程进入挂起状态。      (2)父进程的请求。如:父进程希望挂起自己的某个子进程,以便修改子进程或协调各子进程的活动。      (3)进行负荷调节。如:当实时系统的负荷较重,系统可以把一些不重要的进程挂起。      (4)操作系统的需要。如:操作系统挂起某些进程,以便检查运行资源的使用情况 5. 进程控制块(PCB) 5.1 进程控制块的作用      进程控制块记录了操作系统所需的,用于描述进程的当前情况,以及控制进程运行的全部信息。操作系统是根据PCB来对并发执行的进程进行控制和管理的。      例子:      (1)当操作系统要调度某进程执行时,要从该进程的PCB中查看其现行状态和优先级。      (2)当调度某进程后,要根据PCB中保存的CPU状态信息,设置进程恢复运行的现场,并根据PCB中程序和数据的内存地址找到程序和数据。      (3)当进程阻塞或挂起时,要将其断点的CPU环境保存在PCB中。      (3)进程之间实现同步、通信、访问文件时,需要访问PCB。 5.2 进程控制块的内容      (1)进程标识符(PID)。进程标识符唯一地标识一个进程。      (2)CPU状态信息。由CPU的各种寄存器的内容组成。      (3)进程调度信息。包括进程状态、进程优先级、进程调度所需的其他信息、引起状态转换的事件。      (4)进程控制信息。包括程序和数据的地址、进程同步和通信所需的内容、进程所需和已有的资源清单、所在队列中指向下一个进程的链接指针。
转载请注明原文地址: https://www.6miu.com/read-250079.html

最新回复(0)