操作系统第二章—进程的描述与控制

2.1前驱图和程序执行

2.1.1前驱图

前驱图是一个有向无循环图,记为DAG,可用于描述程序/进程之间执行的前后关系

注意:前驱图中不允许有循环

2.1.2程序顺序执行

程序的顺序执行:在计算机系统中只有一个程序在运行,这个程序独占系统中所有资源,其执行不受外界影响,一道程序执行完后另一道才开始。

特点

顺序性:处理机严格按照程序规定的顺序执行

封闭性:程序在封闭环境下运行,独占全机资源,一旦开始不受外界影响

可再现性:(程序的结果与运行时间无关,只与初始条件有关)只要环境和初始条件相同,都可获得同样结果

2.1.3 程序并发执

程序的并发执:若干程序同时在系统中执行,这些程序的执行的执行在时间上是重叠的,一个程序的执行尚未结束,另一个程序的执行已经开始。

特点:间断性(程序在并发执行时,由于它们共享资源或为完成某一项任务而合作,致使在并发程序之间存在相互制约的关系)、失去程序的封闭性(程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行失去了封闭性。)、不可再现性(程序在并发执行时,由于失去了封闭性,也导致失去了可再现性。)

2.2进程的描述

2.2.1进程的定义与特征

进程的定义:进程是程序的执行过程,是系统进行资源分配和调度的一个独立单位

特征

(1)动态性: 进程具有生命周期。它由系统“创建”而诞生,被“调度”而执行,因得不到资源而暂停,最后因被“撤销”而消亡。

(2)并发性:不同进程的动作在时间上可以重叠,即系统内的多个进程是可以并发执行的。

(3)独立性:进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调动的基本单位。在今天既有进程又有线程的操作系统中,进程仍是一个拥有资源的独立单位,但不再是一个可执行的实体,系统独立运行的基本单位变成线程了。

(4)异步性:进程按各自独立的、不可预知的速度向前推进。不可预知的原因是并发执行。

2.2.2进程的基本状态与转换

就绪状态(Ready):当进程已分配到除CPU以外的所有需要的资源,只要能获得处理机(CPU)的资源,便可立即执行。

有的系统为了暂时缓和内存的紧张状态,或为了调节系统负荷引入了挂起状态。即暂时将一部分进程,将他们临时从内存中换出至外存,使他们暂时和系统脱离联系。这样进程的就绪状态可以细分为:活动就绪状态(未被挂起)、静止就绪状态(被挂起);阻塞状态细分为:活动阻塞状态(未被挂起)、静止阻塞状态(被挂起)

执行状态(Running):当进程已获得处理机资源,其程序正在处理机上执行。

阻塞状态(Blocked)或等待状态:正在执行的进程,由于等待某件事件发生而无法执行时,便放弃处理机资源而处于暂停的状态。

在不少系统中,增加了两种基本状态:(1)新状态:进程刚被创建,并分配资源时;(2)终止状态:在进程结束后不会立即撤销进程,相应的进程会暂时留在系统中,以便收集进程的相关信息。

2.2.3挂起操作和进程状态的转换

挂起和阻塞的区别

对系统资源占用不同:虽然都释放了CPU,但阻塞的进程仍处于内存中,而挂起的进程通过“对换”技术被换出到外存(磁盘)中。

发生时机不同:阻塞一般在进程等待资源(IO资源、信号量等)时发生;而挂起是由于用户和系统的需要,例如,终端用户需要暂停程序研究其执行情况或对其进行修改、OS为了提高内存利用率需要将暂时不能运行的进程(处于就绪或阻塞队列的进程)调出到磁盘

恢复时机不同:阻塞要在等待的资源得到满足(例如获得了锁)后,才会进入就绪状态,等待被调度而执行;被挂起的进程由将其挂起的对象(如用户、系统)在时机符合时(调试结束、被调度进程选中需要重新执行)将其主动激活

挂起操作的目的

  • 终端用户的需要: 修改、检查进程

  • 父进程的需要:修改、协调子进程

  • 对换的需要:缓和内存

  • 负荷调节的需要:保证实时任务的执行

2.2.4进程管理中的数据结构

操作系统中用于管理控制的数据结构

为了便于实现对进程的管理,将其抽象成各种数据结构;

为了协调诸多用户对系统中共享资源的使用,必须记录和查询各种资源的使用及各类进行运行情况的信息。

对于每个资源和进程都设置一个数据结构,用于表征其实体,称为资源信息表或进程信息表(标识、描述、状态等信息)

PCB作用

为了便于系统描述和管理进程,OS为每一个进程专门定义了一个数据结构——PCB。

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

PCB的作用是使一个在多道程序环境下不能独立运行的程序(含数据)成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。

(1)作为独立运行基本单位的标志。系统创建一个新进程时,为它建立一个PCB。进程结束时回收其PCB,进程于是也随之消亡。PCB已成为进程存在于系统中的唯一标志。

(2)能实现间断性运行方式。当进程因阻塞而暂停执行时,可将进程的CPU现场信息保留在被中断进程的PCB中,供该进程再次被调用时恢复现场使用。

(3)提供进程管理所需要的信息。当调度程序调度到某进程执行时,可根据PCB中的程序和数据首地址,去访问程序和数据。

(4)提供进程调度所需要的信息。PCB中需要记录进程的状态、优先级、等待时间等信息,以供调度程序参考。

(5)实现与其他进程的同步与通信。PCB中需要设置用于同步的信号量、实现进程通信的区域以及通信队列指针等。
PCB中的信息

(1)进程标识符

(2)处理机状态

(3)进程调度信息

(4)进程控制信息

PCB的组织方式

(1)线性方式:所有的PCB都组织在一张线性表中,把该表的首地址存放在内存的一个专用区域中。

(2)链接方式:同一状态进程的PCB组成一个链表,不同状态对应多个不同的链表,从而形成各种队列。分为就绪链表、阻塞链表。

(3)索引方式:对具有相同状态的进程,分别设置各自的PCB索引表,表明PCB在PCB表中的地址。

2.2.5.进程和程序的区别

1)程序是指令的有序集合,其本身没有任何运行的含义,它是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态概念。

2)程序的存在是永久的,而进程则是有生命期的,它因创建而产生,因调度而执行,因得不到资源而暂停,因撤消而消亡。

3)程序仅是指令的有序集合,而进程则由程序段、相关数据段、进程控制块(PCB)组成。

4)进程与程序之间不是一一对应。

2.3进程控制

进程控制是进程管理中最基本的功能,它可用于创建一个新进程;终止一个无法运行下去的进程;转换进程的运行状态;进程控制一般由OS的内核中的原语来实现

2.3.1进程的创建

2.3.2进程的终止

2.3.3进程的阻塞与唤醒

2.3.4进程的挂起与激活

猜你喜欢

转载自blog.csdn.net/CYwxh0125/article/details/129567851