1.进程的定义和特征

  1.1进程的定义

    为了使参与并发执行的每个程序(含数据)都能独立运行,在操作系统中必须为之配置一个专门的数据结构,称为进程控制块(Process Control Block,PCB)

    这样,由程序段、相关的数据段和PCB三部分便构成了进程实体(又称进程映像)。进程实体简称为进程。

      创建进程:创建进程实体中的PCB。撤销进程:撤销进程的PCB

    典型的定义:

      ①进程是程序的一次执行

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

      ③进程是具有独立功能的程序在一个数据集合上运行的过程,他是程序进行资源分配和调度的一个独立单位

  1.2进程的特征

    (1)动态性:由创建而产生,由调度而执行,由撤销而消亡

    (2)并发性:多个进程实体同存于内存中且能在一段时间内同时运行

    (3)独立性:进程实体是一个能独立运行、独立获得资源和独立接受调度的基本单位

    (4)异步性:进程按各自独立的、不可预知的速度向前推进

2.进程的基本状态和转换

  2.1进程的三种基本状态

    (1)就绪(ready)状态:进程已处于准备好运行的状态,即进程已分配到除cpu以外的所有必要资源后,只要再获得cpu,便可立即执行

    (2)执行(running)状态:进程已获得cpu,其程序正在执行。在单处理机系统中,只有一个进程处于执行状态,而在多处理机系统中,有多个进程处于执行状态。

    (3)阻塞(block)状态:正在执行的进程由于发生某事件(如I/O请求、申请缓冲区失败等)暂时无法继续执行时的状态,即进程的执行受到阻塞。此时引起进程调度,OS把处理机分配给另一个就绪进程,让受阻进程处于暂停状态,这种暂停状态就叫阻塞。

  2.2三种基本状态的转换

     

Java创建进程与撤销 进程的创建与撤销_进程控制

  2.3创建状态和终止状态

    (1)创建状态

      创建进程时因所需的资源尚不能得到满足,比如系统尚无足够的内存使进程装入其中,此时创建工作尚未完成,进程不能被调度运行,把此时进程所处的状态称为创建状态。

      创建进程的过程,creat()原语

        首先由进程申请一个空白PCB

        为该进程分配运行时所必须的资源,如代码段、数据段、栈段需要的内存

        初始化进程控制块

        把该进程转入就绪状态并插入就绪队列

    (2)终止状态

      当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统终结,或是被其他有终止权的进程终结,它将进入终止状态

      进入终止态的进程不能再执行,但在操作系统中仍然保留一个记录,其中保存状态码和一些计时统计数据供其他进程收集

      终止状态,Terminate()原语

        检索被终止进程PCB,读取进程状态

        若正处于执行状态,立即终止执行并设置调度标志为真,以指示调度新进程

        终止子孙进程

        资源归还

        等待其他进程提取相关信息

        PCB清零并将空白PCB返还系统

      

Java创建进程与撤销 进程的创建与撤销_进程控制_02

 

3.挂起操作和进程状态的转换

  挂起操作作用域某个进程时,该进程将被挂起,意味着此时该进程处于静止状态。

  如果该进程正在执行,他将暂停执行。若原本处于就绪状态,则该进程此时暂不接受调度。

  与挂起操作对应的操作是激活操作。

  3.1挂起(Suspend)操作的引入

    (1)终端用户的需要

    (2)父进程请求

    (3)负荷调节的需要

    (4)操作系统的需要

  3.2引入挂起操作后三个进程状态的转换

    (1)活动就绪→静止就绪,进程处于未被挂起的就绪状态,即活动就绪状态,表示为Readya,可接受调度。用Suspend挂起后,转为静止就绪状态,Readys,不再被调度。

    (2)活动阻塞→静止阻塞,blockeda→blockeds,静止阻塞的进程在其所期待的事件出现后,将从静止阻塞变为静止就绪readys状态。

    (3)静止就绪→活动就绪,用激活原语Active,Readys→Readya

    (4)静止阻塞→活动阻塞

 

     

Java创建进程与撤销 进程的创建与撤销_Java创建进程与撤销_03

 

  3.3引入挂起操作后五个进程状态的转换

    (1)NULL→创建

    (2)创建→活动就绪

    (3)创建→静止就绪

    (4)执行→终止

 

 4.进程管理中的数据结构

  4.1操作系统中用于管理控制的数据结构

    有内存表,设备表,文件表和进程表,进程表又称为进程控制块PCB

  4.2PCB的作用

    略

  4.3PCB中的信息

    (1)进程标识符

      外部标识符,内部标识符

    (2)处理机状态

      通用寄存器、PC、PSW、用户栈指针寄存器

    (3)进程调度信息

      进程状态、进程优先级、进程调度所需的其他信息、事件

    (4)进程控制信息

      程序和数据地址

      进程同步通信机制

      资源清单、链接指针

  4.4进程控制块的组织方式

    

Java创建进程与撤销 进程的创建与撤销_进程状态_04

    

Java创建进程与撤销 进程的创建与撤销_进程状态_05

 

     (1)线性方式:将系统中所有的PCB组织在一张线性表中,将该表的首地址存放在内存的一个专用区域。实现简单,开销小,但每次查找时需要扫描整张表,因此适合进程数目不多的系统

    (2)链接方式:把具有相同状态进程的PCB分别通过PCB中的链接字链接成一个队列,以形成就绪队列、若干个阻塞队列和空白队列等
    (3)索引方式:根据所有进程状态的不同,建立几张索引表,把各索引表在内存的首地址记录在内存的一些专用单元中。在每个索引表的表目中,记录具有相应状态的某个PCB在PCB表中的地址。