OS(二):进程管理之 进程的基本概念

  进程是资源分配和独立运行的基本单位。

  引入进程的目的在于,使多道程序并发执行,提高系统的资源利用率和吞吐量;而引入线程,是为了减少程序在并发时的时空开销,提高系统的并发性,线程相对于进程,大大降低了创建、撤销和切换可执行实体的成本和难度。

1、进程的定义与特征

1.1、定义

  进程是程序的一次执行;

  进程是一个程序及其数据在处理机上顺序执行时所发生的活动;

  进程是程序在数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位。

  进程是一个可拥有资源的独立单位;进程是一个可独立调度和分派的基本单位。OS 提供了 创建进程、撤销进程、进程切换等进程操作,因此,进程才能成为一个独立运行的基本单位。

1.2、特征

1.2.1、结构特征

  为了使程序能独立运行,为每一个程序配置进程控制块,即PCB(Process Control Block)。

 0

  进程实体由 程序段、数据段 和 PCB 三部分构成。

1.1、控制块(PCB,Process Control Block)

  OS根据PCB来对进程进行控制和管理,进程的创建和撤销都是根据PCB来进行的;

  存储:程序计数器、进程状态、CPU暂存器、存储器管理、输入输出状态等信息;

  PCB在新建进程时创建,并常驻内存,是进程实体的一部分,也是该进程的唯一标识。

1.2、数据段

  在数据区域(data region),存储(全局和静态)变量和进程执行期间使用的动态分配的内存,原始数据;

  在堆栈(stack region)区域,存储活动过程调用的指令和本地变量,中间数据。

1.3、程序段

  存放在文本区域(text region),存储处理器执行的代码,二进制格式;程序段可以被多个进程共享。

1.2.2、动态性

  动态性是进程最基本的特征。

  进程的实质是进程实体的一次执行过程,表现为:由创建而产生、由调度而执行、由撤销而消亡。

1.2.3、并发性

  多个进程同时存在于内存中,可以同时运行;进程实体能和其它进程实体并发执行;程序的并发执行,是由PCB控制的。

1.2.4、独立性

  进程实体是能独立分配资源;进程实体能独立接受调度;进程实体能独立运行;程序的独立执行,也是由PCB控制的。

1.2.5、异步性

  进程实体按异步方式运行;进程与进程之间相互独立、互不干扰、以不可预知的速度运行。

2、进程的状态

2.1、基本状态

  进程三种基本状态:就绪(Ready)、执行(Running)、阻塞(Blocked)。

2.1.1、就绪状态

  进程已分配到除CPU外的所有必要资源后,再获取CPU便可立即执行,此时进程的状态称为就绪状态。

  将多个就绪状态的进程排成一个队列,此队列被称为就绪队列。

2.2.2、执行状态

  进程获得CPU,正在执行,此时进程的状态称为执行状态。

2.2.3、阻塞状态

  正在执行的进程由于发生某种时间而暂时无法继续执行,放弃处理机而处于暂停状态,进程的执行受到阻塞,把这种暂停状态称为阻塞状态。

  发生阻塞的典型事件:请求I/O、申请缓冲空间、进程同步。

2.2.4、状态转换

  

  就绪状态的进程,调度程序为之分配处理机,进程执行,进程由就绪状态变为执行状态。

  执行状态的进程,分配给他的时间片用完而被暂停执行,进程由执行状态变为就绪状态。

  执行状态的进程,因某些操作使进程执行受阻,无法继续执行,进程由执行状态变为阻塞状态。

2.2、挂起状态

2.2.1、概念

  使正在执行的进程暂停执行;

  若此时用户进程正处于就绪状态而未执行, 则该进程暂不接受调度, 以便用户研究其执行情况或对程序进行修改;

  此时,我们把这种静止状态称为挂起状态。

2.2.2、挂起的原因

  终端用户的请求:发现可疑问题,希望进程静止下来

  父进程请求:父进程希望挂起子进程,以便协调各子进程间的活动

  负荷调节的需要:负荷较重,挂起不重要的进程

  操作系统的需要:OS检查资源使用情况,或进行记账

2.2.3、进程状态的转换

 

  

·活动就绪→静止就绪

  进程处于未被挂起的就绪状态时,称为活动就绪状态,表示为Readya。

  未被挂起的就绪状态(Readya)--(Suspend原语)-->静止就绪状态(Readys),Readys状态不会被调度

·活动阻塞→静止阻塞

  进程处于未被挂起的阻塞状态时,称为活动阻塞状态,表示为Blockeda。

  未被挂起的阻塞状态(Blockeda)--(Suspend原语)-->静止阻塞状态(Blockeds),Blockeds状态不会被调度

·静止就绪→活动就绪

  静止就绪状态(Readys)--(Active原语)-->活动就绪状态(Readya),Readya状态可以被调度

·静止阻塞→活动阻塞

  静止阻塞状态(Blockeds)--(Active原语)-->活动阻塞状态(Blockeda),Blockeda状态可以被调度。

2.3、创建和终止状态

2.3.1、创建状态

1.1、进程创建的步骤

  1、为一个新进程创建PCB,并填写必要的管理信息;

  2、把该进程转入就绪状态并插入就绪队列之中。

1.2、创建状态的概念

  新进程被创建时,系统已为其分配了PCB,填写进程标识,此时进程拥有自己的PCB,但进程尚未进入主存(未分配),进程不能被调度执行,当前进程所处的状态为创建状态。

1.3、创建状态的作用

  保证进程的调度必须在创建工作完成后进行;

  确保对进程控制块(PCB)操作的完整性;

  增加了管理的灵活性,OS可以根据系统性能或主存容量的限制推创建状态进程的提交;

2.3.2、终止状态

2.1、进程终止步骤

  1、OS将该进程标记为终止

  2、资源释放和回收

2.2、终止状态

  一个进程正常执行结束、异常执行结束或外界干预使进程被终结,当前进程所处的状态为终止状态。

  终止状态的进程不能再执行,但会保留一个记录(保存状态码和一些计时统计数据),供其它进程收集;

  等待操作系统进行善后处理,然后将其PCB清零, 并将PCB空间返还系统,该进程被删除。

2.3.3、进程状态转换图

 

3、PCB - 进程控制块

1、PCB

  OS为每个进程定义了一个数据结构 - PCB(Process Control Block),即进程控制块,用来描述和控制进程运行的全部信息。

  PCB是进程的唯一标识,OS根据PCB来对并发执行的进程进行控制和管理。

  进程控制块的作用:使一个在多道程序环境中不能独立运行的程序,成为一个能独立运行的基本单位。

  PCB的生命周期:创建新进程时,为其建立PCB,进程结束时回收其PCB,进程消亡。

  

  PCB常被系统访问,所以常驻内存,OS将所有的PCB组成若干个链表(或队列),存放在OS专门开辟的PCB区中。

2、PCB中的信息

  

1、进程标识符

  进程标识符,唯一地标识一个进程。常用 内部标识符 和 外部标识符 两种。

  内部标识符:进程序号

  部标识符:创建者提供,用户进程访问该进程时使用

2、处理机状态

  处理机状态信息由处理机的寄存器中的内容组成。在运行时,许多信息都放在寄存器中。当处理机被中断时,所有这些信息必须保存在PCB中,以便该进程重新执行时,能从断点处继续执行。

3、进程调度信息

3.1、进程状态

  指明进程的当前状态,作为进程调度和对换时的依据。

3.2、进程优先级

  描述进程使用处理机的优先级别的一个整数

3.3、事件

  进程由执行状态转变为阻塞状态等待发生的事件

3.4、进程调度所需其他信息

  与进程调度算法相关的信息。

4、进程控制信息

4.1、程序和数据的地址

  进程的程序和数据所在的内存或外存地址,以便再调度到该进程执行时,从PCB中找到程序和数据。

4.2、进程同步和通信机制

  实现进程同步和通信是必需的机制。

4.3、资源清单

  除CPU外,进程所需的全部资源及已分配到该进程的资源清单。

4.4、链接指针

  给出本进程(PCB)所在队列中的下一个进程的PCB的首地址。

3、PCB中的组织方式

  为了方便对PCB加以有效的管理,需要将PCB组织起来,PCB提供了两种组织方式: 链接方式 、 索引方式 。

3.1、链接方式

  把具有同一状态的PCB,用其中的链接字链接成一个队列。如此便可以形成若干个就绪队列、阻塞队列和空白队列。

  

  就绪队列按优先级高低排列,优先级高的排在PCB队列的前面。

3.2、索引方式

  根据进程的建立索引表,将相同状态进程存放在一张表中,如就绪索引表、阻塞索引表等。

 

  

  将个各索引表在内存的首地址记录在内存中的专用单元中,记录具有相应状态的某个PCB在PCB表中的地址。

 

posted @ 2023-08-21 20:48  无虑的小猪  阅读(133)  评论(0编辑  收藏  举报