进程的概念

Posted 王大咩的图书馆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程的概念相关的知识,希望对你有一定的参考价值。

本文基于张尧学老师编写的《计算机操作系统教程(第4版)》第三章。

本文主要讲解如何引出进程这个概念。

现代操作系统的重要特点是在保证安全的前提下,程序并发执行系统所拥有的资源被共享系统的用户随机使用。采用一个什么样的概念来描述计算程序的执行过程和作为资源分配的基本单位,才能反映计算的特点了?这个概念就是进程。为理解进程的概念以及引入进程概念的必要性,下面从操作系统的特点讲起。

一、程序的并发执行

为讲清这个概念,我们先要弄清楚什么是程序,程序的执行,以及最后的程序的并发执行

1、程序

程序描述计算机索要完成的具有独立功能的,并在时间上按严格次序前后相继的计算机操作序列的集合,是一个静态的概念。

2、程序执行

程序的执行可以分为顺序执行和并发执行。

把一个具有独立功能的程序独占处理机直到最终结束的过程称为顺序执行。计算的CPU是通过时序脉冲来控制执行命令的。程序的顺序执行有以下特点:

a)顺序性

程序顺序执行时,其执行过程可看作一系列严格按照程序规定的状态转移过程,也就是每执行一条指令,系统将从上一个执行状态转移到下一个执行状态,且上一条指令的执行结束是下一条指令执行开始的充分条件。(个人理解:必须一条指令执行完了,下一条才开始);

b)封闭性

程序执行的最终结果由给定的初始条件决定,不受外界因素影响。

c)可再现性

程序执行的最终结果可再现。即,与执行速度无关,只有初始条件相同,则不论何时重复执行程序都会得到相同结果。

3、程序的并发(concurrent)执行

在许多情况下计算机需要能够同时处理多个具有独立功能的程序,其执行环境具有以下特点:

独立性:逻辑上独立,若资源充沛,每道程序都可以独立执行,执行速度与其他程序无关,起讫时间也独立;

随机性:程序和数据的输入和执行开始时间都是随机的;

资源共享性:即包括硬件也包括软件。

a)什么是程序的并发执行?

程序的并发执行时为增加计算系统的处理能力和提高资源利用率所采用的一种同时操作技术。

分为两种:一种是多道程序系统的程序执行环境变化(见上)所引起的多道程序的并发执行,(资源有限,资源的共享与竞争)多道程序的并发执行在宏观上是同时进行的,但在微观上(也就是执行级上)仍是顺序执行;一种是某道程序的几个程序段中包含着一部分可以同时执行或顺序颠倒执行的代码。

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

b)程序的并发执行带来的影响

好处:充分的利用了系统资源,从而提高系统的处理能力;另一方面,由于资源共享和竞争,改变了程序的执行速度。一般情况下,并发执行的各程序段如果共享软、硬件资源,都会造成其执行结果其执行速度影响的局面(封闭性和可再现性),为了控制和协调各程序段执行过程中的软、硬件资源的共享和竞争,必须应该有一个描述各程序段执行过程和共享资源的基本单位,即,进程。

二、进程的定义

进程是并发执行的程序在执行过程中分配和管理资源的基本单位,主要注意进程是一个动态的执行过程的概念。

进程和程序的区别和联系:

a)进程是一个动态概念,而程序是一个静态的概念。程序是指令的有序集合,没有任何执行的意义,而进程则强调执行过程,它动态被创建,并被调度执行消亡。如果把程序比作菜谱,那么进程就是按照菜谱炒菜的过程。

b)进程具有并发特点。进程具有并发特征的两个方面:独立性和异步性-----不考虑资源的情况下,各进程的执行是独立的,速度是异步的,而程序没有并发特征。

c)进程是竞争计算系统资源的基本单位,从而其并发性受到系统自己的制约,这里,制约就是对程序独立性和异步性的限制。

d)不同的进程可以包含同一程序,只要改程序所对应的数据集不同。

 

以上是关于进程的概念的主要内容,如果未能解决你的问题,请参考以下文章

进程基本概念

Linux进程概念篇

理解进程概念—2

Linux系统进程概念

Linux进程概念--操作系统与进程

Linux——进程概念进程创建僵尸进程孤儿进程环境变量程序地址空间详解