1.进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。 2.正在进行的一个过程或者说一个任务,每一个进程在内存中使用的数据彼此是物理级别的隔离 3.进程的概念起源于操做系统,是操做系统最核心的概念,也是操做系统提供的最古老也是最重要的抽象概念之一。操做系统的其余全部内容都是围绕进程的概念展开的。
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操做系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。linux
狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed)。nginx
广义定义:进程是一个具备必定独立功能的程序关于某个数据集合的一次运行活动。它是操做系统动态执行的基本单元,在传统的操做系统中,进程既是基本的分配单元,也是基本的执行单元。web
程序是指令和数据的有序集合,其自己没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念shell
程序是指令和数据的有序集合,其自己没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念windows
注意:同一个程序执行两次,就会在操做系统中出现两个进程,因此咱们能够同时运行一个软件,分别作不一样的事情也不会混乱。并发
但凡是硬件,都须要有操做系统去管理,只要有操做系统,就有进程的概念,就须要有建立进程的方式,一些操做系统只为一个应用程序设计,好比微波炉中的控制器,一旦启动微波炉,全部的进程都已经存在。异步
而对于通用系统(跑不少应用程序),须要有系统运行过程当中建立或撤销进程的能力,主要分为4中形式建立新的进程操作系统
不管哪种,新进程的建立都是由一个已经存在的进程执行了一个用于建立进程的系统调用而建立的:线程
1. 在UNIX中该系统调用是:fork,fork会建立一个与父进程如出一辙的副本,两者有相同的存储映像、一样的环境字符串和一样的打开文件(在shell解释器进程中,执行一个命令就会建立一个子进程)
2. 在windows中该系统调用是:CreateProcess,CreateProcess既处理进程的建立,也负责把正确的程序装入新进程。设计
进程执行时的间断性,决定了进程可能具备多种状态。事实上,运行中的进程可能具备如下三种基本状态。
就绪状态(Ready):
进程已得到除处理器外的所需资源,等待分配处理器资源;只要分配了处理器进程就可执行。就绪进程能够按多个优先级来划分队列。例如,当一个进程因为时间片用完而进入就绪状态时,排入低优先级队列;当进程由I/O操做完成而进入就绪状态时,排入高优先级队列。
运行状态(Running):
进程占用处理器资源;处于此状态的进程的数目小于等于处理器的数目。在没有其余进程能够执行时(如全部进程都在阻塞状态),一般会自动执行系统的空闲进程。
阻塞状态(Blocked):
因为进程等待某种条件(如I/O操做或进程同步),在条件知足以前没法继续执行。该事件发生前即便把处理器资源分配给该进程,也没法运行。
# 尽可能减小阻塞状态能够提高咱们程序运行的效率
多个不一样的进程能够包含相同的程序:一个程序在不一样的数据集里就构成不一样的进程,能获得不一样的结果;可是执行过程当中,程序不能发生改变。