您的位置:首页 > 其它

操作系统之进程管理(1)

2017-09-16 18:09 190 查看


进程管理(courses 1)


一、程序的并发执行


1 程序的顺序执行

  我们把一个具有独立功能的程序独占处理机直到最终结束的过程叫做程序的顺序执行。

  程序的顺序执行具有以下特点:

  1. 顺序性

  2. 封闭性

  3. 可再现性


2 多道程序系统中的程序执行环境

  这样的执行环境具有以下3个特点:

  1. 独立性

  2. 随机性

  3. 资源共享性


3 并发执行


两种情况:

第一种:多道程序系统的程序执行环境变化所引起的多道程序的并发执行。

第二种:在某道程序的几个程序段中(例如几个程序)包含着一部分可以同时执行或顺序颠倒执行的代码。

多道程序的并发执行在宏观上是同时进行的,但在微观上仍是顺序执行的。

程序的并发执行可以总结为:一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上相互重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的这种执行方式。

注意:程序的并发执行不同与程序的并行执行。程序的并行执行是指一组程序按独立的、异步的速度执行。并行执行不等于时间上的重叠。

1966年Bernstein提出了两个相邻语句可以并发执行的条件:若两个语句没有读写、写写冲突,则两个语句可以并发执行。如果满足Bernstein的3个条件,则认为并发执行不会对程序执行结果的封闭性和可再现性产生影响。


二、进程

由操作系统控制和协调并发程序之间的资源共享和竞争,避免发生预料之外的错误。

我们需要一个能够描述程序的执行过程且能用来共享资源的基本单位,这个基本单位被称为进程(或者任务)。

进程:
进程是可以并发执行的计算部分。

进程是一个独立的可以调度的活动。

进程是一个抽象实体,当它执行某个任务时,将要分配和释放各种资源。

行为的规则称为程序,程序在处理机上执行时的活动称为进程。

一个进程是一系列逐一执行的操作,而操作的确切含义则有赖于以何种详尽程度来描述进程。

可以看到,我们要注重进程是一个动态的执行过程这一概念。我们可以这样定义进程:并发执行的程序在执行过程中分配和管理资源的基本单位。

进程和程序的联系与区别:
进程是一个动态的概念,而程序则是一个静态概念。

程序是指令的有序集合,而进程强调执行过程。

进程具有并发特征(独立性和异步性),而程序没有。

进程是竞争计算机系统资源的基本单位。

不同的进程可以包含同一程序,只要该程序多对应的数据集不同。

进程的描述

进程的静态描述由三部分组成:进程控制块(PCB)、有关程序段和该程序段对其进行操作的数据结构集。

PCB

PCB集中反映一个进程的动态特征。进程的PCB是系统感知进程的唯一实体。

创建一个进程时,应首先创建其PCB,然后才能根据PCB中的信息对进程实施有效的管理和控制。当一个进程完成其功能之后,系统则释放PCB,进程也随之消亡。

PCB的内容
描述信息:(1)进程名或进程标识号;(2)用户名或用户标识号;(3)家族关系。

控制信息:(1)进程当前状态;(2)进程优先级(包括:占有CPU时间、进程优先级偏移、占据内存时间,等等);(3)程序开始地址;(4)各种计时信息;(5)通信信息。

资源管理信息:(1)占用内存大小及其管理用数据结构指针;(2)在某些复杂系统中,还有对换或覆盖用的有关信息;(3)共享程序段大小及起始地址;(4)输入输出设备的设备号,索要传送的数据长度、缓冲区地址、缓冲区长度及所用设备的有关数据结构指针等;(5)指向文件系统的指针及有关标识等。

CPU现场保护结构。

进程上下文

进程上下文实际上是进程执行过程中顺序关联的静态描述。进程上下文是一个与进程切换和处理机状态有关的概念。

进程上下文是一个抽象的概念,它包含了每个进程执行过的、执行时的以及待执行的指令和数据,在指令寄存器、堆栈(存放各调用子程序的返回点和参数等)和状态字寄存器等中的内容。

已执行过的进程指令和数据在相关寄存器与堆栈中的内容称为上文,正在执行的指令和数据在寄存器与堆栈中的内容称为正文 ,待执行的指令和数据在寄存器与堆栈中的内容称为下文。

进程的系统级上下文又分为静态与动态部分。动态部分是与寄存器上下文相关联的。

进程上下文切换

进程上下文切换发生在不同的进程之间而不是同一个进程内。

进程上下文切换过程一般包含3个部分:(1)保存被切换进程的正文部分(或当前状态)至有关存储区;(2)操作系统进程中有关调度和资源分配程序执行,并选取新的进程;(3)激活被选取的新进程。

进程空间与大小

任一进程,都有一个自己的地址空间,该空间称为进程空间 或 虚空间。进程空间的大小只与处理机的位数有关。例如,16位长处理机的进程空间大小为2^16。程序的执行都在进程空间内进行。用户程序、进程的各种控制表格等都按一定的结构排列在进程空间中。进程空间还被划分为用户空间和系统空间两大部分。用户程序在用户空间内执行,操作系统内核程序在系统空间内执行。(user
mode和kernel mode)。

进程的大小就是进程空间的大小。


三、进程状态及其转换

进程状态:
初始态

执行状态

等待状态

就绪状态

终止状态

进程状态转换:


四、进程控制

原语:一般地,把系统态下执行的某些具有特定功能的程序段称为原语。原语用来完成进程的创建、撤销以及完成进程各状态间的转换。

原语可分为两类:
一类是机器指令级的,其特点是执行期间不允许中断,在操作系统中,它是一个不可分割的基本单位(原子性);

另一类是功能级的,其特点是作为原语的程序段不允许并发执行。

用于进程控制的原语有:创建原语、撤销原语、阻塞原语、唤醒原语。

【创建原语】:

创建进程:系统创建方式(不存在资源继承关系)和父进程创建方式(有资源继承)。

参数:进程名、进程优先级、进程正文段起始地址、资源清单等。

[创建原语流程图]

【撤销原语】:

以下情况导致进程被撤销:
该进程已完成所要求的功能而正常终止;

由于某种错误导致非正常终止;

祖先进程要求撤销某个子进程。

如果被撤销的进程有自己的子进程,则撤销原语先撤销其子进程的PCB结构并释放子进程所占用的资源之后,再撤销当前进程的PCB结构并释放其资源。

[撤销原语流程图]

【阻塞原语】:

进程的执行状态变化到等待状态(一个进程期待某事件的发生,但发生尚不具备条件时),由该进程自己调用阻塞原语来阻塞自己。这里转入进程调度程序是很重要的,避免出现空转而浪费资源。

[阻塞原语流图]

【唤醒原语】:

唤醒一个进程的两种方式:(1)由系统进程唤醒;(2)由事件发生进程唤醒。

唤醒原语既可以被系统进程调用,也可被事件发生进程调用。调用唤醒原语的进程称为唤醒进程。

进程状态由 等待状态 -> 就绪状态

[唤醒原语流图]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: