查看: 10766|回复: 11
收起左侧

[已解决] 进程与服务有什么不同?

 关闭 [复制链接]
jiao轩
发表于 2010-9-4 21:19:29 | 显示全部楼层 |阅读模式
真的想不明白......求解答........谢谢
从零开始
发表于 2010-9-4 21:26:24 | 显示全部楼层
我也想知道
渡边
发表于 2010-9-4 21:38:23 | 显示全部楼层
本帖最后由 渡边 于 2010.9.4 21:41 编辑

线程与进程倒是易混淆,和服务基本就是两个完全不同的概念了,自己百度一下马上明白~(以下是进程和线程的区别,易混淆的)

描述线程与进程的区别?
线程是比进程更小的处理模块。
进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:

简而言之,一个程序至少有一个进程,一个进程至少有一个线程.
线程的划分尺度小于进程,使得多线程程序的并发性高。
另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.

线程的引入:例如,有一个Web服务器要进程的方式并发地处理来自不同用户的网页访问请求的话,可以创建父进程和多个子进程的方式来进行处理,但是创建一个进程要花费较大的系统开销和占用较多的资源。除外,这些不同的用户子进程在执行的时候涉及到进程上下文切换,上下文切换是一个复杂的过程。所以,为了减少进程切换和创建的开销,提高执行效率和节省资源,人们在操作系统中引入了"线程(thread)"的概念。
进程的作用和定义:进程是为了提高CPU的执行效率,减少因为程序等待带来的CPU空转以及其他计算机软硬件资源的浪费而提出来的。进程是为了完成用户任务所需要的程序的一次执行过程和为其分配资源的一个基本单位,是一个具有独立功能的程序段对某个数据集的一次执行活动。
线程和进程的区别:
      1、线程是进程的一部分,所以线程有的时候被称为是轻权进程或者轻量级进程。
      2、一个没有线程的进程是可以被看作单线程的,如果一个进程内拥有多个进程,进程的执行过程不是一条线(线程)的,而是多条线(线程)共同完成的。
      3、系统在运行的时候会为每个进程分配不同的内存区域,但是不会为线程分配内存(线程所使用的资源是它所属的进程的资源),线程组只能共享资源。那就是说,出了CPU之外(线程在运行的时候要占用CPU资源),计算机内部的软硬件资源的分配与线程无关,线程只能共享它所属进程的资源。
      4、与进程的控制表PCB相似,线程也有自己的控制表TCB,但是TCB中所保存的线程状态比PCB表中少多了。
      5、进程是系统所有资源分配时候的一个基本单位,拥有一个完整的虚拟空间地址,并不依赖线程而独立存在。
          进程与程序的区别:
      程序是一组指令的集合,它是静态的实体,没有执行的含义。而进程是一个动态的实体,有自己的生命周期。一般说来,一个进程肯定与一个程序相对应,并且只有一个,但是一个程序可以有多个进程,或者一个进程都没有。除此之外,进程还有并发性和交往性。简单地说,进程是程序的一部分,程序运行的时候会产生进程。
总结:
      线程是进程的一部分,进程是程序的一部分。

jiao轩
 楼主| 发表于 2010-9-4 21:42:25 | 显示全部楼层
回复 3楼 渡边  的帖子


    谢谢......但是我问的是服务与进程......
hujiwa
头像被屏蔽
发表于 2010-9-4 21:42:51 | 显示全部楼层
本帖最后由 hujiwa 于 2010.9.4 21:52 编辑

凭借主管感觉回答:

有进程未必有对应的服务,比如thunder.exe进程,但不等于有这样的服务。
有服务未必有进程,因为可以是禁止的服务嘛。

如果服务开着,且已启动,那就有进程了,可能几个服务才一个进程(这句话是我主观猜测的,不见得对)。

服务,目前我之间过系统服务和安全软件的服务,其他都没见过。也许还真没有。
渡边
发表于 2010-9-4 21:50:04 | 显示全部楼层
回复 4楼 jiao轩  的帖子

服务和进程并不是一一对应的,进程是当前系统使用中调用的程序,包括一些dll动态连接库文件,而系统服务是系统当前使用的一些规则,服务的打开与否关系到系统能否执行某些特定的功能,简单的例子就是Terminal Service这个服务,这个是用于允许多位用户控制一台计算机的,也就是用于远程维护管理等操作的,我们平时在任务管理器中看到的用户名也是这个服务管理的,如果你禁用这个服务,那别人想控制你的电脑那是不行的,你在任务管理器中也无法查看到其他用户的进程了,而且服务之间是有可能互相依靠的


   
峪飞鹰
发表于 2010-9-5 10:05:17 | 显示全部楼层
进程是所有计算机可执行程序的执行主体(主线程)的统称

服务是一种特殊的执行主体,但本质上它还是进程在执行

Windows下有svchost.exe执行的dll能提供服务,但是仍然是宿主进程svchost.exe在执行

简单的说,服务是一种执行特殊任务的进程。
lengyff
发表于 2010-9-5 12:27:59 | 显示全部楼层
确实不怎么好理解
穿越星空
发表于 2010-9-5 15:13:33 | 显示全部楼层
回复 3楼 渡边  的帖子
  楼主请勿答非所问
穿越星空
发表于 2010-9-5 15:24:01 | 显示全部楼层
  进程和服务其实感觉没什么可以比较的,因为两者风马牛不相及。
  进程是活动的、即时性的,而服务是静态的,可以将服务理解为Windows自身的程序。
  服务可以理解成一类程序的统一管理,就像现在很多的第三方软件管理器那样。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-5-5 13:59 , Processed in 0.135911 second(s), 18 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表