Skip to content

2.1 什么是进程

Giovanna

About 1333 wordsAbout 4 min

2024-08-31

并发——现代操作系统最重要的特征之一

进程——操作系统最重要的抽象概念之一

并发基于进程

一、并发概述

并发:两个或多个事件在同一时间间隔内发生

并发类型

image.png

二、程序的顺序执行

1. 顺序执行的定义

顺序执行:若干程序或程序段之间必须严格按照某种先后顺序来执行

顺序执行示例

  • 程序的顺序执行

    • image.png
  • 语句的顺序执行

    • image.png

2. 程序顺序执行时的特征

  • 顺序性:处理机的操作严格按照程序所规定的顺序执行。

  • 封闭性:程序运行时独占全机资源,程序一旦开始执行,其执行结果不受外界因素影响。

  • 可再现性:只要程序执行时的环境和初始条件相同,都将获得相同的结果。

3. 前趋图

  • 有向无环图

  • 节点:程序段、进程、语句

  • 有向边:表示结点之间的前趋关系

image.png

三、程序的并发执行

1. 并发执行的定义

并发执行:两个或两个以上的程序或程序段在同一时间间隔内同时执行,即这些程序的执行时间客观上是重叠的,一个程序的执行尚未结束,另一个程序的执行已经开始。

并发执行示例

image.png

例子:有两个并发执行的进程P1和P2,共享初值为1的变量x。P1对x加1,P2对x减1。加1和减1操作的指令序列分别如下所示,试问两个操作完成后,x的值是多少?

; 加1操作
load R1,x ; 取x到寄存器R1中
inc R1
store x,R1 ; 将R1到内容存入x

; 减1操作
load R2,x ; 取x到寄存器R2中
dec R2
store x,R2 ; 将R2的内容存入x
答案

可能为0、1或2

2. 程序并发执行时的特征

  • 间断性:由于资源共享和相互合作,程序呈现“执行-暂停-执行”现象。

  • 失去封闭性:程序在并发执行时,是多个程序共享系统中的资源,因此这些资源的状态将由多个程序来改变。

  • 不可再现性:程序在并发执行时,由于失去了封闭性,多次重复执行可得到不同的结果。

3. 进程概念

引入进程的目的

为了控制多道程序能够正确地并发执行,引入进程。

典型的进程定义

  • 一个正在执行的程序。

  • 一个正在计算机上执行的程序实例。

  • 一个能够被调度到处理器上执行的实体。

  • 由一串指令的执行、当前状态和一组正在使用的系统资源表征的活动单元。

进程的表征与组成

进程执行的任意时刻,可以由下列元素(可看作进程控制块的抽象)来表征。

image.png

进程由程序代码、程序代码相关的数据及对应的进程控制块组成。

父子进程

系统中同时存在的诸进程相互独立,也相互关联。

例如,当进程创建另一进程后,父子进程就以某种形式继续保持关联。

  • UNIX中,初始化进程是其他所有进程的始祖,与其子女后裔构成一个进程组。

  • Windows中,没有进程层次的概念,进程地位相等。(父进程可以获得子进程句柄)

进程的特征

  • 动态性:最基本的特征

    • 一个正在计算机上执行的程序实例,存在生命周期。
  • 并发性:重要特性

    • 多个进程实体同存于内存中,能在一段时间内同时运行。
  • 独立性

    • 进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源与独立调度的基本单位。各进程的地址空间相互独立,除非采用进程间通信手段。
  • 异步性

    • 各进程按各自独立的、不可预知的速度向前推进

进程与程序比较

  • 进程是程序的执行过程,是一个动态的概念;程序是一组指令的有序集合,是一个静态的概念

  • 进程=进程控制块+程序段+数据段+栈

  • 引入进程的目的是使多道程序能够正确地并发执行

  • 进程具有生命周期,程序是永久的

  • 进程与程序之间不存在一一对应关系

    • 通过多次执行,一个程序可以对应多个进程。
    • 通过调用关系,一个进程也可能对应多个程序。

引入进程后带来的挑战

  • 空间开销(space overhead)

    • 为进程建立数据结构
  • 时间开销(time overhead)

    • 管理和协调、跟踪、填写和更新有关数据结构、切换进程、保护现场
  • 控制复杂性(complexity of control)

    • 协调多个进程对资源的竞争和共享
    • 预防、解决多个进程因为竞争资源而出现的故障