阅读背景:

并发编程-进程和线程

来源:互联网 

进程

假如有两个程序A和B,程序A在执行到一半的过程中,需要读取大量的数据输入(I/O操作),
    而此时CPU只能静静地等待任务A读取完数据才能继续执行,这样就白白浪费了CPU资源。
    是不是在程序A读取数据的过程中,让程序B去执行,当程序A读取完数据之后,让
    程序B暂停,然后让程序A继续执行?
    当然没问题,但这里有一个关键词:切换
    既然是切换,那么这就涉及到了状态的保存,状态的恢复,加上程序A与程序B所需要的系统资
    源(内存,硬盘,键盘等等)是不一样的。自然而然的就需要有一个东西去记录程序A和程序B
    分别需要什么资源,怎样去识别程序A和程序B等等,所以就有了一个叫进程的抽象

    进程定义:

    进程就是一个程序在一个数据集上的一次动态执行过程。
    进程一般由程序、数据集、进程控制块三部分组成。
    我们编写的程序用来描述进程要完成哪些功能以及如何完成;
    数据集则是程序在执行过程中所需要使用的资源;
    进程控制块用来记录进程的外部特征,描述进程的执行变化过程,系统可以利用它来控制和管理进程,它是系
    统感知进程存在的唯一标志。

    举一例说明进程:
             想象一位有一手好厨艺的计算机科学家正在为他的女儿烘制生日蛋糕。他有做生日蛋糕的食谱,厨房里有所需
             的原料:面粉、鸡蛋、糖、香草汁等。在这个比喻中,做蛋糕的食谱就是程序(即用适当形式描述的算法)计算机科学家就是处理器(cpu),假如有两个程序A和B,程序A在执行到一半的过程中,需要读取



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: