进程管理详解(1)


多道批处理系统的出现,使得多个作业可以并行的运行在CPU上,提高了资源利用率,和系统吞吐量。但是又带来了系统中各种资源的调度问题。在多道环境下,允许多个程序并发执行,此时他们将失去封闭性,并具有间断性和不可再现性,为此引入进程的概念。下面来介绍进程与进程的管理。


1. 进程的定义


为了使参与并发执行的程序能够独立运行,必须为此配置一个专门的数据结构,称为进程控制块(PCB)。系统利用PCB来描述进程的基本情况与运行态,进而控制和管理进程。相应的,由程序段,数据段和PCB三部分构成了进程实体。PCB是进程存在的唯一标志。

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


进程从创建到消亡整个生命周期,状态会不断发生变化。通常有以下五种状态

  • 运行态:进程正在处理机上运行。
  • 就绪态:进程已处于准备运行的状态。即进程获得了除处理机以外的所有需要的资源。
  • 阻塞态:进程等待某一事件而暂停运行。如等待某资源为可用(不包括处理机)。
  • 创建态:进程正在被创建,未进入就绪态。
  • 结束态:进程正在从系统中消失,可以是正常结束,也可能是其他原因中断退出运行。

进程是一个独立的运行单位,也是操作系统分配资源和调度的基本单位,进程一般由PCB,程序段和数据段组成。

  • PCB
    创建一个进程时,操作系统为该进程创建一个PCB,进程执行时,操作系统通过PCB了解进程的状态信息,进程结束时,操作系统回收其PCB,进程随之消亡。
  • 程序段
    程序段是能被进程调度程序调度到CPU执行的代码段。程序可以被多个进程共享,多个进程可以运行同一个程序。
  • 数据段
    一个进程的数据段,可以是进程对应程序加工处理的原始数据,也可以是程序运行产生的中间或最终结果。

2.进程的通信


  • 共享存储

    在通信的进程之间存在一块可直接访问的共享空间,通过对这一块空间进行读写操作实现进程之间的信息交换。在对共享空间进行读写时需要使用同步互斥工具。共享存储分为两类,一类是基于数据结构的共享,一类是基于存储区的共享。

  • 消息传递

    这种方式的数据交换是以格式化的消息为单位的,通过系统提供的发送消息和接收消息两个原语进行。

  • 管道通信

    管道是指用于连接一个读进程和一个写进程的共享文件(pipe), 管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。


3. 线程


引入进程的目的是为了提高资源利用率和系统吞吐量,而线程则减小了程序在并发执行是所付出的时空开销,提高了并发性能。

线程是一个基本的CPU执行单位,由线程ID,程序计数器,寄存器和堆栈等组成。一个线程可以创建和撤销另一个线程,同一进程中的多个线程并发执行。


线程与进程的区别

  • 调度

    进程是拥有资源(资源分配)的最小单位,线程是独立调度的基本单位。

  • 资源

    进程拥有资源,线程不拥有系统资源,但线程可以访问所属进程的资源。

  • 系统开销

    进程创建、切换、销毁所付出的开销远大于线程时的开销。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容