2.2 进程的描述

进程的定义和特征

  • 几种典型定义

    • 进程是程序的一次执行
    • 进程是一个程序及其数据在处理机上顺序执行时所发生的活动
    • 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位
  • 进程定义:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位

  • 进程控制块(PCB)

    • 专门的数据结构,与进程一一对应
    • 系统利用PCB来描述进程的基本情况和活动过程,进而控制和管理进程
  • 进程的特征

    • 动态性(最基本的特征)

      • 进程由创建而产生,由调度而执行,由撤消而消亡
      • 进程实体有一定的生命期
      • 程序则只是一组有序指令的集合,并存放于某种介质上,其本身并不具有活动的含义,因而是静态的
    • 并发性

      • 指多个进程实体同存于内存中,且能在一段时间内同时运行。引入进程的目的也正是为了使其进程实体能和其它进程实体并发执行

      • 程序(没有建立PCB)是不能参与并发执行的

    • 独立性:进程实体是一个能独立运行独立获得资源独立接受调度的基本单位(凡未建立PCB的程序都不能作为一个独立的单位参与运行)

    • 异步性:指进程是按异步方式运行的,即按各自独立的不可预知的速度向前推进

  • 进程和程序的区别

    • 进程是程序的一个实例,是程序的一次执行
    • 进程是活动的,程序是静态的
    • 程序是进程的代码部分
    • 进程在内存中,程序在外存中
  • 多个进程在并发执行时共享系统资源—>在运行过程中呈现间断性—>生命周期内可能具有多种状态

进程的基本状态及转换

  • 就绪状态

    • 进程已处于准备好运行的状态
    • 进程已分配到除CPU以外的所有必要资源
    • 如果系统中有许多处于就绪状态的进程,通常将它们按一定的策略(如优先级策略) 排成一个就绪队列
  • 执行状态:已获得CPU,正在执行的状态

    • 单处理机系统——只有一个进程处于执行状态
    • 单处理机系统——有多个进程处于执行状态
  • 阻塞状态

    • 指正在执行的进程由于发生某事件(如I/O请求、申请缓冲区失败等)暂时无法继续执行时的状态,亦即进程的执行受到阻塞
    • 此时引起进程调度,OS把处理机分配给另一个就绪进程,而让受阻进程处于暂停状态,一般将这种暂停状态称为阻塞状态
    • 通常系统将处于阻塞状态的进程也排成一个队列,称该队列为阻塞队列
  • 三种基本状态的转换

在这里插入图片描述

进程管理中的数据结构

  • 进程控制块PCB:为了便于系统描述和管理进程的运行,在操作系统的核心为每个进程专门定义了一个数据结构

    • 进程实体的一部分
    • 记录了操作系统所需的,用于描述进程的当前情况以及管理进程运行的全部信息
    • 是操作系统中最重要的记录型数据结构
  • PCB的作用

    • 作为独立运行基本单位的标志:当一个程序(含数据)配置了PCB后,就表示它已是一个能在多道程序环境下独立运行的、合法的基本单位。因此,当系统创建一个新进程时,就为它建立了一个PCB。进程结束时又回收其PCB,进程于是也随之消亡。系统是通过PCB感知进程的存在的
    • 能实现间断性运行方式:当进程因阻塞而暂停运行时,它必须保留自己运行时的CPU现场信息,再次被调度运行时,还需要恢复其CPU现场信息。有了PCB系统就可将CPU现场信息保存在被中断进程的PCB中,供该进程再次被调度执行时恢复CPU现场时使用
    • 提供进程管理所需的信息
    • 提供进程调度所需要的信息
    • 实现与其他进程的同步与通信:因为在PCB中还具有用于实现进程通信的区域或通信队列指针等
  • PCB的信息

    • 进程标识符:用于唯一地标识一个进程

      • 外部标识符:为了方便用户对进程的访问,它是由创建者提供的,通常由字母、数字组成

      • 内部标识符:每一个进程一个唯一的数字标识符,它通常是一个进程的序号

    • 处理机状态:处理机状态信息也称为处理机的上下文,主要是由处理机的各种寄存器(通用寄存器,指令寄存器,程序状态字,用户栈指针)中的内容组成的

      • 处理机处于执行状态时,正在处理的许多信息都是放在寄存器
      • 当进程被切换时,处理机状态信息都必须保存中相应的PCB
    • 进程调度信息:进程状态、进程优先级、进程调度所需的其它信息、事件

    • 进程控制信息:程序和数据的地址、进程同步和通信机制、资源清单、链接指针

  • 进程控制块的组织方式

    • 在一个操作系统中,通常有数十个、乃至数千个进程,对应就有这么多的PCB。为了能对它们加以有效的管理,应该用适当的方式将这些PCB组织起来

    • 线性方式

      • 即将系统中所有的PCB都组织在一张线性表中,将该表的首址存放在一个内存的一个专用区域中

      • 实现简单、开销小

      • 适合进程数目不多的系统
        在这里插入图片描述

    • 链接方式

      • 即把具有相同状态进程的PCB分别通过PCB中的链接字链接成一个队列

    在这里插入图片描述

    • 索引方式

      • 即系统根据所有进程状态的不同,建立几张索引表,并把各索引表在内存的首地址记录在内存的一些专用单元中
      • 在每个索引表的数目中,记录有相应状态的某个PCB在PCB表中的地址
        在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CL3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值