主题:[讨论]windows中运行的服务和进程有什么区别
zhengakke
[专家分:0] 发布于 2006-12-27 08:49:00
[em1]在windows任务管理器中有两类.exe
一类在左边的"应用程序"选卡中有显示,另一类没有.
而在类没有显示的大不分就是服务.
请问,服务和一般的进程有什么区别?
为什么,向sql2000这样的程序是以服务的形式运行,而不是一般的进程.
如何调用服务?
回复列表 (共19个回复)
11 楼
aaronwang [专家分:16870] 发布于 2007-01-10 08:44:00
没用过NT内核的东东还有什么争的.说的东东都不一样.
12 楼
tanchuhan [专家分:15140] 发布于 2007-01-10 11:19:00
[quote]没用过NT内核的东东还有什么争的.说的东东都不一样.[/quote]
NT是什么玩意?老朽没听说过.
13 楼
aaronwang [专家分:16870] 发布于 2007-01-11 09:34:00
我更正一下.
的确,用任务管理咕器看到的是服务的进程.而有的服务进程进程里面有多个服务.SVCHOST.EXE就是个例子.但并不是任务管理器看不到服务.不但能看到,如果你的权限够大,还可以把服务结束掉.当然不是全部,有些服务,管理员也无法控制的.
服务和一般的进程有什么区别?
服务和普通进程没有本质的区别.但服务一般在后台运行,一般不需要与用户进行交互.服务也可以以用户的身份启动.
有一点比较重要的,服务不需要用户登陆即可运行.但普通进程不行.这也是SQL为什么以服务运行而不以普通进程方式运行的原因.SQL安装于服务器上.而服务器大部分时间是不需要用户登陆的.
还有启动顺序的关系.大部分服务在出现用户登陆界面的时候就已经启动了.XP使用了一个延时机制.部分不是很重要的服务会延时至登陆后再启动.这也是XP为什么启动比2000快的一个原因.当然只是我们感觉.从启动到桌面显示出来的时间缩短了.其实总占用的时间是没有什么改变的.XP登陆后,桌面刚显示出来时.其实很多操作都没有效果.这也是一些相关的服务在启动的原因.
至于如何调用服务.
服务在后台运行的目的就是不需要太多的人为干预.他们会在特定事件发生的时候去做预定的事.你想调用服务只需要触发这些事件即可.别忘了WINDOWS里面可以消息满天飞啊.
14 楼
tanchuhan [专家分:15140] 发布于 2007-01-11 18:37:00
为自己的语气向楼上道歉.
15 楼
aaronwang [专家分:16870] 发布于 2007-01-12 08:43:00
客气.我也很抱歉.语气有点过激了.
16 楼
InitInstance [专家分:8720] 发布于 2007-01-16 12:16:00
没想到,这里还有人在使用WIN95,强啊,在CSDN上的一个家伙用的是WIN98,装的VC6,然后说想看Windows核心编程,于是问有没有办法~~~~~~~~~,不知道是那年代的机器??
17 楼
tanchuhan [专家分:15140] 发布于 2007-01-17 11:44:00
哈哈,楼上不知道老朽现在还是programfan最穷的人,看到其它人都富得冒油,也只有空妒嫉的份呀。
18 楼
txdog [专家分:150] 发布于 2007-02-05 09:08:00
呵呵,争吵也能学习到很多,keep going
19 楼
chx924 [专家分:0] 发布于 2008-03-03 20:59:00
看了看,由于双方过于激动,都出现了一些小小的失误
而这些小失误在对方看来就是重点打击对象
讨论是好事,辩论则要注意出发点
我来回复