[转]线程和进程

对应用程序来说,进程就像一个大容器。在应用程序被运行后,就相当于将应用程序装进容器里了,你可以往容器里加其他东西(如:应用程序在运行时所需的变量数据、需要引用的DLL文件等),当应用程序被运行两次时,容器里的东西并不会被倒掉,系统会找一个新的进程容器来容纳它。 

进程是由进程控制块程序段数据段三部分组成。一个进程可以包含若干线程(Thread),线程可以帮助应用程序同时做几件事(比如一个线程向磁盘写入文件,另一个则接收用户的按键操作并及时做出反应,互相不干扰),在程序被运行后中,系统首先要做的就是为该程序进程建立一个默认线程,然后程序可以根据需要自行添加或删除相关的线程。
是可并发执行的程序。在一个数据集合上的运行过程,是系

搜索

统进行资源分配和调度的一个独立单位,也是称活动、路径或任务,它有两方面性质:活动性、并发性。进程可以划分为运行、阻塞、就绪三种状态,并随一定条件而相互转化:就绪--运行,运行--阻塞,阻塞--就绪。 

进程为应用程序的运行实例,是应用程序的一次动态执行。看似高深,我们可以简单地理解为:它是操作系统当前运行的执行程序。在系统当前运行的执行程序里包括:系统管理计算机个体和完成各种操作所必需的程序;用户开启、执行的额外程序,当然也包括用户不知道,而自动运行的非法程序(它们就有可能是病毒程序)。
危害较大的可执行病毒同样以“进程”形式出现在系统内部(一些病毒可能并不被进程列表显示,如“宏病毒”),那么及时查看并准确杀掉非法进程对于手工杀毒有起着关键性的作用。

进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是

死的(静态的),进程是活的(动态的)。进程可以分为系统进程和用户进程。凡是用于完成操作系统的各种

功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;用户进程就是所有由你启动的进程。进程是操作系统进行资源分配的单位。

在Windows下,进程又被细化为线程,也就是一个进程下有多个能独立运行的更小的单位。
1.进程的引入:
多道程序在执行时,需要共享系统资源,从而导致各程序在执行过程中出现相互制约的关系,程序的执行表现出间断性的特征。这些特征都是在程序的执行过程中发生的,是动态的过程,而传统的程序本身是一组指令的集合,是一个静态的概念,无法描述程序在内存中的执行情况,即我们无法从程序的字面上看出它何时执行,何时停顿,也无法看出它与其它执行程序的关系,因此,程序这个静态概念已不能如实反映程序并发执行过程的特征。为了深刻描述程序动态执行过程的性质,人们引入“进程(Process)”概念。
2.进程的概念:
进程的概念是60年代初首先由麻省理工学院的MULTICS系统和IBM公司的CTSS/360系统引入的。
进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。
进程是操作系统中最基本、重要的概念。是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所有多道程序设计操作系统都建立在进程的基础上。
操作系统引入进程的概念的原因:
从理论角度看,是对正在运行的程序过程的抽象;
从实现角度看,是一种数据结构,目的在于清晰地刻划动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序。
3.进程的特征
动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的。
并发性:任何进程都可以同其他进程一起并发执行
独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;
异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进
结构特征:进程由程序、数据和进程控制块三部分组成。
4.进程与程序的关系
程序是指令的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。
程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久的,进程是暂时的。
进程更能真实地描述并发,而程序不能;进程是由程序和数据两部分组成的。
进程具有创建其他进程的功能,而程序没有。
同一程序同时运行于若干个数据集合上,它将属于若干个不同的进程。也就是说同一程序可以对应多个进程。
在传统的操作系统中,程序并不能独立运行,作为资源分配和独立运行的基本单元都是进程。

Windows XP 常见的进程列表
[编辑本段]

1、最基本的系统进程
这些进程是系统运行的基本条件,有了这些进程,系统才能正常运行。

smss.exe Session Manager
csrss.exe系统服务器进程
winlogon.exe 管理用户登录
services.exe 包含很多系统服务
lsass.exe
管理IP安全策略以及启动ISAKMP/Oakley(IKE)和IP安全驱动程序。(系统服务)
产生会话密钥以及授予用于交互式客户/服务器验证的服务凭据(ticket)。(系统服务)
svchost.exe 包含很多系统服务
SPOOLSV.EXE 将文件加载到内存中以便迟后打印。(系统服务)
explorer.exe 资源管理器
internat.exe 托盘区的拼音图标

2、附加的系统进程
这些进程不是必要的,你可以根据需要通过服务管理器来增加或减少
mstask.exe 允许程序在指定时间运行。(系统服务)
regsvc.exe许远程注册表操作。(系统服务)
winmgmt.exe 提供系统管理信息(系统服务)。
inetinfo.exe
通过 Internet 信息服务的管理单元提供 FTP 连接和管理。(系统服务)
tlntsvr.exe
允许远程用户登录到系统并且使用命令行运行控制台程序。(系统服务)
允许通过Internet信息服务的管理单元管理 Web 和 FTP 服务。(系统服务)

tftpd.exe
实现TFTP Internet标准。该标准不要求用户名和密码。远程安装服务
的一部分。(系统服务)
termsrv.exe
提供多会话环境允许客户端设备访问虚拟的Windows 2000 Professional 桌面会话以及运行在服务器上的基于Windows的程序。(系统服务)
dns.exe 应答对域名系统(DNS)名称的查询和更新请求。(系统服务)

3、不常用服务
以下服务很少会用到,上面的服务都对安全有害,如果不是必要的应该关掉
tcpsvcs.exe 提供在PXE可远程启动客户计算机上远程安装 Windows 2000
Professional 的能力。(系统服务)
支持以下 TCP/IP 服务Character Generator,Daytime,Discard,Echo,以及Quote of the Day。(系统服务)
ismserv.exe
允许在Windows Advanced Server站点间发送和接收消息。(系统服务)
ups.exe
管理连接到计算机的不间断电源(UPS)。(系统服务)
wins.exe
为注册和解析NetBIOS型名称的TCP/IP客户提供NetBIOS名称服务。(系统服务)
llssrv.exe License Logging Service(system service)
ntfrs.exe 在多个服务器间维护文件目录内容的文件同步。(系统服务)
RsSub.exe 控制用来远程储存数据的媒体。(系统服务)
locator.exe 管理 RPC 名称服务数据库。(系统服务)
lserver.exe 注册客户端许可证。(系统服务)
dfssvc.exe 管理分布于局域网广域网逻辑卷。(系统服务)
clipsrv.exe
支持“剪贴簿查看器”,以便可以从远程剪贴簿查阅剪贴页面。(系统服务)
msdtc.exe
并列事务,是分布于两个以上的数据库,消息队列,文件系统,或其它事务保护资源管理器。(系统服务)
faxsvc.exe 帮助您发送和接收传真。(系统服务)
cisvc.exe Indexing Service(system service)
dmadmin.exe 磁盘管理请求的系统管理服务。(系统服务)
mnmsrvc.exe
允许有权限的用户使用NetMeeting远程访问Windows桌面。(系统服务)
netdde.exe
提供动态数据交换(DDE)的网络传输和安全特性。(系统服务)
smlogsvc.exe 配置性能日志和警报。(系统服务)
rsvp.exe
为依赖质量服务(QoS)的程序和控制应用程序提供网络信号和本地通信控制
安装功能。(系统服务)
RsEng.exe
协调用来储存不常用数据的服务和管理工具。(系统服务)
RsFsa.exe 管理远程储存的文件的操作。(系统服务)
grovel.exe
扫描零备份存储(SIS)卷上的重复文件,并且将重复文件指向一个数据存
储点,以节省磁盘空间。(系统服务)
SCardSvr.exe
对插入在计算机智能卡阅读器中的智能卡进行管理和访问控制。(系统服务)
snmp.exe
包含代理程序可以监视网络设备的活动并且向网络控制工作站汇报。(系
统服务)
snmptrap.exe
接收由本地或远程SNMP代理程序产生的陷阱消息,然后将消息传递到运行在这台计算机上SNMP管理程序。(系统服务)
UtilMan.exe 从一个窗口中启动和配置辅助工具。(系统服务)
msiexec.exe
依据.MSI文件中包含的命令来安装、修复以及删除软件。(系统服务)

线程:
线程
开放分类: 编程、CPU、计算机软件

是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。
线程是程序中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为多线程.
线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈程序计数器为其执行上下文.多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定. 线程的运行中需要使用计算机的内存资源和CPU
线程的周期
新建 就绪 运行 阻塞 死亡
线程调度优先级
有线程进入了就绪状态,需要有线程调度程序来决定何时执行,根据优先级来调度.
线程组
每个线程都是一个线程组的一个成员,线程组把多个线程集成一个对象,通过线程组可以同时对其中的多个线程进行操作.在生成线程时必须将线程放在指定的线程组,也可以放在缺省的线程组中,缺省的就是生成该线程的线程所在的线程组.一旦一个线程加入了某个线程组,不能被移出这个组.
守护线程
是特殊的线程,一般用于在后台为其他线程提供服务.
原文地址:https://www.cnblogs.com/liuwen1987/p/3463917.html