进程

一 进程概述

在多道程序环境下,允许多个程序并发执行,此时它们将失去封闭性,并具有间断性及不可再现性的特征。进程的出现更好的描述和控制程序的并发执行,实现操作系统的并发性和共享性(最基本的两个特性)。

为了使得参与并发执行的程序(含数据)能独立地执行,必须为之配置一个专门的数据结构,称为进程控制块(Process Control Block, PCB)。系统利用PCB来描述进程的基本情况和运行状态,进而控制和管理进程。相应地,由程序段,相关数据段和PCB三部分构成了进程映像(进程实体)。所谓创建进程,实质上是创建进程映像中的PCB;而撤销进程,实质上是撤销进程的PCB。值得注意的是,进程映像是静态的,进程则是动态的。同时,PCB是进程存在的唯一标志!

二 进程的几种常见定义

  1. 进程是程序的一次执行过程。
  2. 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
  3. 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源(处理机,存储器和其他设备服务于某个进程的“时间”)分配和调度的一个独立单位。

三 进程的特征

进程是由多道程序的并发执行而引出的,它和程序是两个截然不同的概念。进程的基本特征是对比单个程序的顺序执行而引入,也是对进程管理提出的基本要求。

  1. 动态性。进程是程序的一次执行,他有着创建,活动,暂停,终止等过程,具有一定的生命周期,是动态地产生,变化和消亡的。动态性是进程最基本的特征。
  2. 并发性。指多个进程实体同时存在于内存中,能在一段时间内同时运行。并发性是进程的重要特征,同时也是操作系统的重要特征。引入进程的目的就是为了使程序能与其他进程的程序并发执行,以提高资源利用率。
  3. 独立性。指进程实体是一个能独立进行,独立获得资源和独立接受调度的基本单位。凡未建立PCB的程序,都不能作为一个独立的单位存于运行。
  4. 异步性。由于进程的相互制约,使得进程具有执行的间断性,即进程按各自独立的,不可预知的速度向前推进。异步性会导致执行结果的不可再现性,为此在操作系统中必须配置相应的进程同步机制。
  5. 结构性。每个进程都配置一个PCB对其进行描述。从结构上看,进程实体是程序段,数据段和进程控制块三部分组成。

四 进程的状态与转换

进程在其生命周期内,由于系统中各进程之间的相互制约关系及系统的运行环境的变化,使得进程的状态也在不断的变化(一个进程经历不同状态)。通常进程分为五种状态,前三种为进程的基本状态。

  1. 运行态:进程正在处理机上运行。在单处理机环境下,每个时刻最多只有一个进程出于运行态。
  2. 就绪态:进程获得处理机外的一切所需资源,一旦得到处理机,便可立即运行。系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,成为就绪队列。
  3. 阻塞态:又称等待态,进程正在等待某一事件而暂停运行,如等待某资源为可用(不包括处理机)或等待输入/输出完成。即使处理机空闲,该进程也不能运行。
  4. 创建态:进程正在被创建,尚未转到就绪态。创建进程通常需要多个步骤:首先申请一个空表的PCB,并向PCB中填写一些控制和管理进程的信息;然后由系统为该进程分配运行所必需的资源;最后把该进程转入就绪态。
  5. 结束态:进程正在系统中消失,可能是进程在正常结束或是其他原因中断退出运行。进程需要结束运行时,系统首先必须置该进程为结束态,然后再进一步处理资源释放和回收等工作。

注意:就绪态和阻塞态的区别,就绪态时指进程仅缺少处理机,只要获得处理机资源就立即运行;而等待态时指进程需要其他资源(除处理机)或等待某一件事。

把处理机和其他资源划分开的原因是在分时系统的时间片轮转机制中,每个进程分到的时间片是若干毫秒,即进程得到处理机的时间很短且非常频繁,进程在运行过程中实际上是频繁的转换到就绪态;而其他资源(如外设)的使用和分配或某一事件的发生(如I/O操作的完成)对应的时间相对来说很长,进程转换到等待态的次数相对较少。这样来看,就绪态和等待态是进程生命周期中两个完全不同的状态。

进程不同状态之间的转换:

就绪态->运行态:处于就绪态的进程被调度后,获得处理机资源(分派处理机时间片),于是进程由就绪态转换为运行态。

运行态->就绪态:处于运行态进程的时间片用完后,不得不让出处理机,从而进程由运行态转换为就绪态。此外,在可剥夺的操作系统中,当有更高优先级的进程就绪时,调度程序会将正在运行时的进程转换为就绪态,让更高的优先级的进程执行。

运行态->阻塞态:进程请求某一资源(如外设)的使用和分配或等待某一时间的发生(如I/O操作的完成)时,它就从运行态转换为阻塞态。进程以系统调用的形式请求操作系统提供服务,这是一种特殊的,由运行用户态程序调用操作系统内核过程的形式。

阻塞态->就绪态:进程等待的事件到来时,如I/O操作结束或中断结束时,中断处理程序必须把相应进程的状态由阻塞态转换为就绪态。                    

值得注意的是,一个进程从运行态变成阻塞态是主动的行为,而阻塞态变成就绪态是被动的行为,需要其他相关进程的协助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值