操作系统原理 第二章 进程管理(1)

本文详细介绍了操作系统中进程管理的相关知识,包括进程的基本概念、进程控制块(PCB)、进程控制(创建、终止、阻塞与唤醒、挂起与激活)、进程同步以及经典进程同步问题——生产者-消费者问题。内容涵盖了进程的顺序与并发执行特性、状态转换、PCB的作用和组成、进程创建与终止的步骤,以及信号量机制在进程同步中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.1 进程的基本概念

2.1.1 进程的顺序执行及特征

1.程序的顺序执行

仅当前一操作(程序段)执行完后,才能执行后继操作。例如,在进行计算时,总须先输入用户的程序和数据,然后进行计算,最后才能打印计算结果。

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

  • 顺序性
  • 封闭性
  • 可再现性

2.1.2 前驱图

前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。图中的每个结点可用于描述一个程序段或进程,乃至一条语句;结点间的有向边则用于表示两个结点之间存在的偏序(Partial Order)前趋关系(Precedence Relation)“→”。
→={(Pi, Pj)|Pi must complete before Pj may start}, 如果(Pi, Pj)∈→,可写成Pi→Pj,称Pi是Pj的直接前趋,而称Pj是Pi的直接后继。在前趋图中,把没有前趋的结点称为初始结点(Initial Node),把没有后继的结点称为终止结点(Final Node)

每个结点还具有一个重量(Weight),用于表示该结点所含有的程序量或结点的执行时间。
在这里插入图片描述
图a具有以下前驱关系:

  P1→P2, P1→P3, P1→P4, P2→P5, P3→P5, P4→P6, P4→P7, P5→P8, P6→P8, P7→P9, P8→P9

还可以表示为:

P={P1, P2, P3, P4, P5, P6, P7, P8, P9}→={ (P1, P2), (P1, P3), (P1, P4),       
 (P2, P5), (P3, P5), (P4, P6), (P4, P7),(P5, P8), (P6, P8), (P7, P9), (P8, P9)} 

2.1.3 程序的并发执行及其特征

1.程序的并发执行
程序并发执行的前驱图
在该例中存在下述前趋关系:

  Ii→Ci,Ii→Ii+1, Ci→Pi, Ci→Ci+1,Pi→Pi+1

而Ii+1和Ci及Pi-1是重迭的,亦即在Pi-1和Ci以及Ii+1之间,可以并发执行。

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

  • 间断性
  • 失去封闭性
  • 不可再现性
例如,有两个循环程序A和B,它们共享一个变量N。程序A每执行一次时,都要做N∶=N+1操作;程序B每执行一次时, 都要执行Print(N)操作,然后再将N置成“0”。程序A和B以不同的速度运行。 
      (1) N∶=N+1在Print(N)和N∶=0之前,此时得到的N值分别为n+1, n+1, 0。
      (2) N∶=N+1在Print(N)和N∶=0之后,此时得到的N值分别为n, 0, 1。
      (3) N∶=N+1在Print(N)和N∶=0之间,此时得到的N值分别为n, n+1, 0。 

2.1.4 进程的特征与状态

1.进程的特征和定义
进程特征:
1)结构特征
2)动态性
3)并发性
4)独立性
5)异步性

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

在引入了进程实体的概念后,我们可以把传统OS中的进程定义为:“进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位”

2.进程的三种基本状态
1)就绪(Ready)状态
2)执行状态
3)阻塞状态
在这里插入图片描述
3.挂起状态

1)引入挂起状态的原因

(1)终端用户的请求
(2)父进程请求
(3)负荷调节的需要
(4)操作系统的需要

2)进程状态的转换

(1)活动就绪→静止就绪。 
(2) 活动阻塞→静止阻塞。 
(3) 静止就绪→活动就绪。 
(4) 静止阻塞→活动阻塞。 

在这里插入图片描述

2.1.5 进程控制块(PCB)

为了描述控制进程的运行,系统中存放进程的管理和控制信息的数据结构称为进程控制块(PCB Process Control Block),它是进程实体的一部分,是操作系统中最重要的记录性数据结构。它是进程管理和控制的最重要的数据结构,每一个进程均有一个PCB,在创建进程时,建立PCB,伴随进程运行的全过程,直到进程撤消而撤消。

1.进程控制块的作用

进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。

2.进程控制块中的信息

1) 进程标识符
        进程标识符用于惟一地标识一个进程。一个进程通常有两种标识符:
       (1) 内部标识符。在所有的操作系统中,都为每一个进程赋予一个惟一的数字标识符,它通常是一个进程的序号。
        设置内部标识符主要是为了方便系统使用。
       (2) 外部标识符。它由创建者提供,通常是由字母、数字组成,往往是由用户(进程)在访问该进程时使用。
       为了描述进程的家族关系, 还应设置父进程标识及子进程标识。此外,还可设置用户标识,以指示拥有该进程的用户。
        
 2) 处理机状态
        处理机状态信息主要是由处理机的各种寄存器中的内容组成的。 
         ① 通用寄存器,又称为用户可视寄存器,它们是用户程序可以访问的,用于暂存信息, 在大多数处理机中,有 8~32 个通用寄存器,在RISC结构的计算机中可超过 100 个;
         ② 指令计数器,其中存放了要访问的下一条指令的地址;
         ③ 程序状态字PSW,其中含有状态信息,如条件码、执行方式、 中断屏蔽标志等;
          ④ 用户栈指针, 指每个用户进程都有一个或若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址。栈指针指向该栈的栈顶。 

3) 进程调度信息
       在PCB中还存放一些与进程调度和进程对换有关的信息,包括:
       ① 进程状态,指明进程的当前状态, 作为进程调度和对换时的依据;
       ② 进程优先级,用于描述进程使用处理机的优先级别的一个整数, 优先级高的进程应优先获得处理机;
        ③ 进程调度所需的其它信息,它们与所采用的进程调度算法有关,比如,进程已等待CPU的时间总和、 进程已执行的时间总和等;
        ④ 事件,是指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因。 

4) 进程控制信息
        进程控制信息包括:
        ① 程序和数据的地址, 是指进程的程序和数据所在的内存或外存地(首)址,以便再调度到该进程执行时,能从PCB中找到其程序和数据;
        ② 进程同步和通信机制,指实现进程同步和进程通信时必需的机制, 如消息队列指针、信号量等,它们可能全部或部分地放在PCB中; 
        ③ 资源清单,是一张列出了除CPU以外的、进程所需的全部资源及已经分配到该进程的资源的清单;
        ④ 链接指针, 它给出了本进程(PCB)所在队列中的下一个进程的PCB的首地址。 

3.进程控制块的组织方式
1)链接方式
(PCB链接队列示意图 )
PCB链接队列示意图
2)索引方式
(按索引方式组织PCB )
在这里插入图片描述


2.2 进程控制

2.2.1 进程的创建

1.进程图(Process Graph)
(进程树)
进程树

2.引起进程创建的事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值