我将使用ABRAHAM SILBERSCHATZ,PETER BAER GALVIN和GREG GAGNE撰写的《操作系统概念》一书中的大量文字以及我对事物的理解。
处理
任何应用程序都以文本(或代码)的形式驻留在计算机中。
我们强调,程序本身不是过程。程序是被动实体,例如包含磁盘上存储的指令列表的文件(通常称为可执行文件)。
启动应用程序时,我们将创建执行实例。该执行实例称为流程。编辑:(根据我的解释,类似于类和类的实例,类的实例是一个过程。)
谷歌浏览器就是其中一个例子。启动Google Chrome时,会产生3个过程:
• 浏览器进程负责管理用户界面以及磁盘和网络I / O。启动Chrome后,会创建一个新的浏览器进程。仅创建一个浏览器进程。
• 渲染器进程包含用于渲染网页的逻辑。因此,它们包含用于处理HTML,Javascript,图像等的逻辑。通常,将为在新选项卡中打开的每个网站创建一个新的渲染器进程,因此几个渲染器进程可能会同时处于活动状态。
• 为使用中的每种类型的插件(例如Flash或QuickTime)创建一个插件过程。插件进程包含插件代码以及使插件能够与关联的渲染器进程和浏览器进程通信的其他代码。
线
为了回答这个问题,我认为您应该首先知道什么是处理器。处理器是实际执行计算的硬件。编辑:(计算如加两个数字,对数组排序,基本上执行已编写的代码)
现在转到线程的定义。
线程是CPU利用率的基本单位 ; 它包括线程ID,程序计数器,寄存器集和堆栈。
编辑:来自英特尔网站的线程的定义:
线程(或执行线程)是可通过单个CPU内核传递或处理的基本指令顺序序列的软件术语。
因此,如果Chrome应用程序中的Renderer进程对数字数组进行排序,则排序将在执行线程上进行。(关于线程的语法对我来说似乎很混乱)
我对事物的解释
流程是一个执行实例。线程是通过CPU访问执行计算的实际工作者。当一个进程正在运行多个线程时,该进程将提供公共内存。
编辑:
我发现有助于提供更多上下文的其他信息
所有现代计算机都有多个线程。计算机中的线程数取决于计算机中的内核数。
并发计算:
从维基百科:
并发计算是一种计算形式,其中在重叠的时间段内同时执行多个计算,而不是依次执行(一个计算在下一个开始之前完成)。这是系统的属性(可以是单个程序,计算机或网络),并且每个计算(“过程”)都有单独的执行点或“控制线程”。
因此,我可以编写一个计算4个数字之和的程序:
(1 + 3) + (4 + 5)
在用于计算该总和的程序中(这将是一个在执行线程上运行的进程),我可以派生另一个进程,该进程可以在不同的线程上运行以进行计算(4 + 5)并将结果返回到原始进程,而原始过程将计算(1 + 3)的总和。