进程是什么,进程和程序的区别

在未被 CPU 执行之前,程序做不了任何事。如前所述,执行的程序称为进程

分时系统的用户程序(如编译器)就是进程,PC 的单个用户运行的字处理程序也是进程。系统任务,如将输出发到打印机,也可以是进程(或至少是进程的一部分)。现在,进程可以作为作业或分时系统程序,但是以后进程的概念将会更广。

进程为了完成任务,需要一定的资源,包括 CPU 时间、内存、文件、I/O 设备等。这些资源可以在进程创建时赋予,也可以在执行进程时分配。除了创建时得到的各种物理和逻辑资源外,进程还可以接受传输过来的各种初始化数据(输入)。

例如,考虑这样一个进程,它要在终端或者屏幕上显示文件状态,而且需要有一个文件名作为输入。文件名的获得和信息的终端显示,可以通过适当指令和系统调用来进行。当进程中止时,操作系统就会收回所有可再利用的资源。

需要强调的是,程序本身不是进程,程序是个被动实体(passive entity),如同存储在磁盘上的文件内容,而进程是个主动实体(active entity)。单线程进程有一个程序计数器(program counter),指定了下一个所要执行的指令。这样一个进程的执行应是顺序的。CPU 一个接着一个地执行进程的指令,直至进程完成。

再者,在任何时候,每个进程最多只能执行一条指令。因此,尽管两个进程可能与同一个程序相关联,然而这两个进程都有各自的执行顺序。多线程进程有多个程序计数器,每一个指向下一个给定线程需要执行的指令。

进程是系统的工作单元。系统由多个进程组成,其中有的是操作系统进程(执行系统代码),其他的是用户进程(执行用户代码)。所有这些进程都会并发执行,例如通过在单 CPU 上采用多路复用来实现。

操作系统负责进程管理的以下活动:
  • 在 CPU 上调度进程和线程;
  • 创建和删除用户进程和系统进程;
  • 挂起和重启进程;
  • 提供进程同步机制;
  • 提供进程通信机制;

推荐文章
Python docstring(文档字符串):给代码添加注释

dcostring是一种特殊类型的注释,可以把它放在一个函数或类定义之后,或者一个文件的开头,其功能是说明函数、类或者模块是做什么的。 docstring可以用三个引号、单引号或者双引号括起来,如下

什么是电子版?

电子版是指将文件或数据录入电脑的程序里,比如用office、PDF、CAD等做成可以存储、传输的文件。电子版文件是把纸质文档内容以计算机软件如word、Excel、PP、CAD、photoshop、H

Struts2 bean标签:创建并示例化一个JavaBean对象

bean标签也是一个十分常用的标签,它与JSP中的动作类似,主要用于创建并示例化一个JavaBean对象,对于JavaBean中的属性可以通过param标签对其赋值。 语法:  //子标签  

GNU开源精神及其发展历程

通过前面对STL各种“民间”版本的介绍我们知道,全世界所有的STL实现版本都源于Stepanov和MengLee完成的原始版本(也就是HPSTL),该版本的每一个头文件中都有一份声明,即允许任何人任意

Spring MVC的转发与重定向

重定向是将用户从当前处理请求定向到另一个视图(例如JSP)或处理请求,以前的请求(request)中存放的信息全部失效,并进入一个新的request作用域;转发是将用户对当前处理的请求转发给另一个视图

链式队列及基本操作(C语言实现)

链式队列,简称"链队列",即使用链表实现的队列存储结构。 链式队列的实现思想同顺序队列类似,只需创建两个指针(命名为top和rear)分别指向链表中队列的队头元素和队尾元素,如图1所示: 图1

Maven快照(SNAPSHOT)版本介绍

在Maven中,任何一个项目和构件都必须有自己的版本。版本的值可能是1.0.0、1.0-alpha-4、1.3-SNAPSHOT等,其中1.0.0、1.0-alpha-4是稳定的发布版本,而1.3-S

中山大学汇编语言入门视频(1-51课)

汇编语言和高级语言不太一样,尽管高级语言的功能非常强大,比如C、C++等可以实现机器语言的大部分功能,但是汇编语言更加接近硬件,能够完全控制各种接口,节省空间和时间。 参考教材:杨季文、钱培德等主编

抽象数据类型(ADT)是什么?

抽象数据类型(AbstractDataType,ADT)是将数据对象、数据对象之间的关系和数据对象的基本操作封装在一起的一种表达方式,它和工程中的应用是一致的。 在工程项目中,开始编程之前,首先列出

PHP return:函数返回值

通过前面函数的学习我们知道,函数是一个功能集合体,可以实现某些特定的功能或运算。函数运行之后的结果保留在函数内部是没有任何意义的,所以我们需要将函数的运算结果返回到调用函数的地方。 PHP中提供了r

excel中counta函数和count函数的区别是什么?

excel中counta函数和count函数的区别一、指代不同1、count:,用于Excel中对给定数据集合或者单元格区域中数据的个数进行计数。2、counta:是返回参数列表中非空的单元格个数。二

Django Meta元数据类属性解析

Model是DjangoORM的核心,它有许多特性,比如我们提到过的模型类继承,还有未讲到过的的元数据。每个Model都是一个Python类,且通常会包含四个部分,它们分别如下: 继承自djang

Python封装底层实现原理详解(通俗易懂)

事实上,Python封装特性的实现纯属“投机取巧”,之所以类对象无法直接调用以双下划线开头命名的类属性和类方法,是因为其底层实现时,Python偷偷改变了它们的名称。 前面章节中,我们定义了一个CL

word中一个汉字符是几个空格?

在Word中一个汉字字符是两个空格(半角)或一个空格(全半角)。【推荐教程:word教程】1、Word中一个汉字字符占两个空格(半角)。2、Word中一个汉字字符占一个空格(全半角)。半角的显示内码都

简述计算机网络的定义

计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。本文操作环境:w

什么是CPU调度,CPU调度完全攻略

CPU调度是多道程序操作系统的基础。通过在进程间切换CPU,操作系统可以使得计算机更加高效。 对于单处理器系统,同一时间只有一个进程可以运行;其他进程都应等待,直到CPU空闲并可调度为止。多道程序的

DVD-ROM属于什么?

DVD-ROM属于大容量只读外部存储器。DVD-ROM(只读型DVD)属于计算机数据存储只读光盘,用途类似于CD-ROM;CD-ROM的意思是“高密度光盘只读存储器”,简称只读光盘。只读光盘只能读出信

MySQL索引类型详解

索引的类型和存储引擎有关,每种存储引擎所支持的索引类型不一定完全相同。MySQL索引可以从存储方式、逻辑角度和实际使用的角度来进行分类。 存储方式区分 根据存储方式的不同,MySQL中常用的索引在物

C++ STL是什么,有什么用?

在已有C++尤其是C++模板的基础上,从本节开始,我们开始系统地学习STL标准模板库,首先来了解什么是STL,以及学习STL有什么用? STL,英文全称standardtemplatelibrary

Go语言网络爬虫条目处理管道

条目处理管道的接口拥有额外的ItemProcessors、Send、FailFast和SetFailFast方法,因此其实现类型myPipeline的基本结构是这样的: //条目处理管道的实现类型