进程管理(一)-进程的概念以及进程的创建

进程

什么是进程?

程序一旦跑起来就是一个进程,进程是一个可以运行的实例。

每个进程都拥有一个自己的虚拟CPU,但是实际上只有一个CPU,其只是在各个进程之间快速的切换,这种快速切换就叫做多道程序设计

进程和程序有什么区别?

例子:一个计算机科学家给女儿做蛋糕,他有做蛋糕用的食谱,厨房中有大量的原料,比如香草、鸡蛋、面粉、糖等等。其中食谱就是程序,它就是一种方法。计算机科学家就是CPU,做蛋糕的原料就是数据。

进程就是厨师阅读食谱,并取来各种原料再到烘焙蛋糕等一系列动作的总和。
进程就是cpu获取数据,按照程序执行等一系列过程的总和,它是动态的。程序是静态的,它是类似一种方法说明书的东西。

进程的中断:现在计算机科学家的儿子跑进来说被蜜蜂蜇了(更高优先级的事情发生了),计算机科学家会先记录现在蛋糕做到哪里了(保存进程当前的状态),转而去处理儿子的伤势,当处理完儿子的伤势之后,再返回来继续做蛋糕,按照之前保存的状态继续做蛋糕

注意的是一段程序执行了两次的话算两个进程

创建进程

创建进程的原因

导致进程被创建的四种原因:

1.系统初始化

启动操作系统的时候会创建多个进程,其中有的是前台的进程,除此之外就是后台的进程,这种进程被称为守护进程,其大部分的时间都在休眠,只有在发生特定的事件的时候才被调用。比如等待接收邮件的程序。

2.正在运行的进程所调用的进程创建系统调用

已经启动的进程,可以调用系统调用,来创建一个进程来帮助它更好的干活。比如有这么一个网络应用程序,它要和大量数据打交道,那么创建一个进程来帮他把数据放到指定区域,而再让另外一个进程取走并处理,这样会更好,因为有人帮忙总比没有人帮忙好。

3.用户请求创建一个新的进程

用户在cmd窗口敲入一个命令,或者用户双击图标,都可以启动一个程序,于此同时会启动一个进程。

4.一个批处理作业初始化

这种情况主要在大型机的批处理系统中的应用,用户朝系统提交批处理作业,操作系统认为现在的资源足够可以创建一个进程的时候,它就会创建一个进程。

UNIX和Windows创建进程

UNIX创建进程

unix系统中只有一个系统调用可以用来创建新的进程,就是fork命令。

Windows创建进程

一个win32函数调用CreateProcess不但处理进程的创建,也负责把正确的程序装入新的进程。

父进程和子进程的空间

进程创建之后,父进程和子进程是有不同的地址空间的,如果某个进程在地址空间修改了一个字,那么其对其子进程来说是不可见的。

原文地址:https://www.cnblogs.com/mengxiaoleng/p/11604828.html