进程的描述

程序和进程

在学习操作系统时看到了操作系统的定义

1.进程是程序的一次执行
2.进程实体由代码段,相关数据段和PCB三部分构成
3.进程是操作系统资源分配的基本单位

程序和进程有什么关系?
我们知道在windows中运行xxxx.exe后该程序就会变成进程,我们发现,这些可执行文件与进程之间并不是一对一的关系,程序是可以多开的,比如说我们的PC中只装了一个QQ,但我们却可以同时登录多个QQ,打开任务管理器可以看到多个QQ进程在这里插入图片描述
从这里我们可以看出程序和进程是多对一的关系,结合上面进程的定义二可以知道,进程比程序多了一个PCB。
PCB的定义

为了处理进程并发,操作系统中配置了一个专门的数据结构,称为进程控制块(PCB)。系统利用PCB来描述进程的基本情况和活动过程,进而控制和管理进程。

往简单来说,程序有了PCB才能称为进程,所谓的创建进程,实质上就是创建进程实体中的PCB,而撤销进程,实质上就是撤销进程的PCB。上面的两个QQ进程就是因为一份代码数据,但是创建了两个PCB那就是两个不同的进程。

进程的特征

进程和程序之间除了PCB差异外,进程还具有一些程序没有的特征

  • 动态性:程序只是一组指令,它是没有活动的含义的,是静态的。而进程就是进程实体的执行过程,因而它是动态的,表现在“由创建产生,由调度执行,由撤销消亡”,进程是“活的”。
  • 并发性:程序是不能并发的,能并发执行的是进程。多个进程实体同时存在内存中,且能在一段时间内同时运行叫并发。
  • 独立性:独立性是指进程实体是一个能独立运行的,独立获取资源和接受调度的基本单位。
  • 异步性:指进程按异步方式运行,进程因为调度的原因可能会执行得“走走停停”,不知道什么时候执行完毕。

进程的状态

进程接受OS的调度,在并发时运行过程中会出现间断性的运行,所以进程在生命周期内可能具有多种状态,一般来说,进程会处在以下几种状态之一:

  • 就绪(Ready):进程处于准备好运行的状态,此时的进程除了CPU外,所有运行的资源都有了,只要CPU交给它就可以立即执行,系统中如果有多个进程处于如此状态,那么OS会把这些进程按照某种策略排成一个队列,该队列就是就绪队列。
  • 执行(Running):进程已经获得CPU,就是指程序正在被执行的状态,对单处理机系统来说,某一时刻只有一个进程处于这个状态。
  • 阻塞(Block):这是指正在执行的进程由于发生某些事件(如IO请求,申请资源失败)暂时没有办法执行的状态,就叫进程的执行收到阻塞。这时进程调度发生作用,把被阻塞的进程占用的处理机回收并分配给另一个就绪进程。通常多个阻塞进程也有一个阻塞队列。

一般进程状态分析看上面几个就够了,但也有部分资料为了方便描述进程还会添加以下几个状态

  • 创建:创建进程是一个比较复杂的过程,一般要通过多个步骤才能够完成:如首先由进程申请一个PCB,并向PCB中填写用于控制和管理进程的信息,然后为进程分配资源。
  • 终止状态:OS对进程进行某些善后处理后,将进程的PCB清零并把PCB空间返还系统。

挂起操作:一种方便系统和用户分析进程的操作,该操作作用于某个进程时,该进程会被挂起。如果进程正在执行,它将会暂停执行,如果进程处于就绪状态,则该进程暂时不接受调度,与挂起操作对应的操作是激活操作。

PCB的作用

进程实体中的PCB可谓是非常重要的一种数据结构了,那它有什么重要的作用?

  1. 作为独立运行基本单位的标志,当程序配置PCB后,就表示这个程序在OS中已经是合法的基本单位了,可以获得OS提供的服务,当进程被创建时会被配置PCB,进程被回收时PCB也被回收。PCB在OS这个社会中获得公共服务的“身份证”,系统是通过PCB来感知进程的。
  2. 实现间断性运行,在进程因为某些原因阻塞交出CPU时,进程需要保存运行时的状态,比如寄存器状态,程序计数器等信息,等到重新进入运行状态后接着上一次运行,有了PCB后,这些信息就可以保存在这里面。
  3. 提供进程管理需要的信息:在程序调度过程中,会用上PCB中记录的程序和数据地址指针,PCB中的资源清单可以查到该进程需要的全部信息,在调用OS功能时,比如说申请IO服务也需要PCB中的信息。
  4. 提供进程调度所需要的信息:进程在进行调度时需要了解进程的其它信息,比如说调度优先级,进程的等待时间和已执行时间。
  5. 与其它进程进行同步和通信:在多进程协调时需要保存进程同步信号量,通信时有用于进行通信的区域和通信队列指针。

PCB中保存的信息

  1. 进程标识符:进程的id,唯一地标识一个进程。
  2. 处理机状态:也就是处理机的上下文,主要是处理机中的各种寄存器内容,包括通用寄存器,指令计数器,程序状态字,用户栈指针,
  3. 进程调度信息:包括进程状态,进程优先级,进程调度所需的其它信息,具体跟使用的调度算法有关。
  4. 事件:阻塞原因
  5. 进程控制信息:程序和数据的地址,进程同步和通信机制,资源清单,链接指针(进程所在队列中的下一个进程)

PCB组织

进程PCB本来是一种数据结构,数据结构间的组织也是一种数据结构,一般分为线性和链式组织,具体可以参考数组和队列。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值