Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1121670
  • 博文数量: 241
  • 博客积分: 4385
  • 博客等级: 上校
  • 技术积分: 2383
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-07 23:13
文章分类

全部博文(241)

文章存档

2013年(1)

2012年(8)

2011年(62)

2010年(109)

2009年(61)

分类: LINUX

2011-11-29 10:56:55

程序与进程的关系与比较(原文地址)
(1)程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。而进程则不同,它是程序在某个数据集上的执行。进程是一个动态的实体,它有自己的生命周期。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消。反映了一个程序在一定的数据集上运行的全部动态过程。 
(2)进程和程序并不是一一对应的,一个程序执行在不同的数据集上就成为不同的进程,可以用进程控制块来唯一地标识每个进程。而这一点正是程序无法做到的,由于程序没有和数据产生直接的联系,既使是 执行不同的数据的程序,他们的指令的集合依然是一样的,所以无法唯一地标识出这些运行于不同数据集上的程序。一般来说,一个进程 肯定有一个与之对应的程序,而且只有一个。而一个程序有可能没有与之对应的进程(因为它没有执行),也有可能有多个进程与之对应(运行在几个不同的数据集上)。 3)进程还具有并发性和交往性,这也与程序的封闭性不同。

进程与线程的关系与比较(原文地址http://liuyuru.iteye.com/blog/810639)
(1)进程  从本质上说是一个正在执行的程序,它不仅执行着自身的指令序列,拥有自己的数据空间(系统为每个进程开辟独立的地址空间),而且还占用着一定的系统资源,如CPU时间、内存空间以及一些设备的使用权等
(2)线程  线程就是某个进程内部的一个顺序控制流,它和进程一样,有一个入口、一个出口和一个顺序执行序列。与进程不同,线程不能单独运行,它必须依赖于某个进程,在进程中运行。同时,同一进程中的不同线程,虽然有各自不同的执行流,却共享着一定的数据空间和系统资源
阅读(3901) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~