从计算机用户的角度看应用程序、进程、线程

2013-08-05 18:26:46

最近看操作系统的书,对于应用程序、进程、线程的概念一致停留在书本上的文字,而不知道其真正的含义。下面是从网上看了一些文章后的理解,以浏览器的使用为例,给出了从计算机用户的角度应如何看待从计算机用户的角度看应用程序、进程、线程的,初步认识,还望高手指教。

程序与进程比较:

比如你从网上下载一个IE浏览器,安装在电脑的D盘,那么D盘的Internet Explorer.exe就是一个程序,是二进制文件;当你双击该.exe时,会打开一个浏览器,此时操作系统就会创建一个进程,知道关机或者退出浏览器,该进程被撤销,进程的生命结束;但.exe文件是一直存在的,不管你是否打开浏览器,是否打开计算机,一旦安装好,就是一直存在计算机的硬盘上的,这就是用户感觉到的程序与进程的区别;

子进程与线程比较:

打开IE浏览器后,要在google搜索框中输入关键字,如果输入法的进程没有启动,就会启动诸如搜狗输入法之类的输入法进程,此时的搜狗输入法就是IE浏览器的一个子进程;再比如,你通过浏览器打开一个pdf文件(在搜索的时候会直接给出pdf文件的连接的情况,点击就会打开的),那么IE就去调用Acrobat去打开, 这时Acrobat是一个独立的进程, 就是IE的子进程.而IE自己本身同时用同一个进程开了2个网页, 并且同时在跑两个网页上的脚本, 这两个网页的执行就是IE自己通过两个线程实现的.值得注意的是, 线程仍然是IE的内容, 而子进程Acrobat严格来说就不属于IE了, 是另外一个程序.之所以是IE的子进程, 只是受IE调用而启动的而已.

这说明了子进程与线程的区别,同时说明一个应用程序可以关联多个进程(因为调用了子进程)。

一个应用程序并非对应一个进程:

在上面子进程与线程的比较中可以看出,一个应用程序可能与一个以上的进程关联,而不是一个(在浏览器中搜索或打开pdf时,就关联了浏览器进程、输入法进程和pdf阅读器进程)。通过windows的任务管理器也可以看出,应用程序与进程并非一一对应的。

原文地址:https://www.cnblogs.com/youngforever/p/3238912.html