进程线程,进程线程程序的区别
进程与线程
经典定义:
1.进程是可以并发执行的计算部分
进程的五个特性
1.动态性:创建时产生,由调度而执行,得不到资源而暂停执行,有撤销而消亡
2.并发性:多个进程实体同存于主存中
(引入进程的目的,程序是不能并发执行的)
3.独立性:进程实体是一个能独立运行的基本单位,也是系统中获得资源和独立调度的基本单位
4.异步性:进程按各自独立的,不可预知的速度向前推进(导致程序执行的不可再现性)
5.结构特征:进程实体是由程序段、数据段、进程控制块三部分构成,又称进程映像/进程上下文(context)
进程的基本状态
有些还存在两个额外状态:新状态和终止状态
进程控制块PCB
1.概念:是操作系统用于记录和刻画进程状态及有关信息的 数据结构 ,也是操作系统控制和管理进程的主要依据。
原语:一组系统命令
要么全部执行,要么不执行,不存在中间状态
$$进程创建
\begin{cases}
\text{系统生成时,会创建一些系统进程(用来分配系统资源和管理工作)}\
\text{用户作业,由操作系统的作业调度程序为之创建相应的进程}
\end{cases}$$
1.既可撤销具有指定标识符的过程,又可撤销一个优先级中的所有进程
2.一个进程被撤销时,必须从系统队列中移出,释放并归还所有系统资源,同时也有审查是否有子孙进程,如果有子孙进程也有一起予以撤销
1.当一个进程出现等待事件时,该进程调用阻塞原语将自己阻塞
1.必要性:解决多个进程争夺少数CPU资源的问题
2.功能:
(1)记录系统中所有进程的执行情况
(2)选择占有CPU的进程
(3)CPU分配给进程,即进行进程上下文切换
(4)回收CPU
3.进程调度算法
先来先服务/FCFS
按照进程进入就绪队列的先后次序选择占用处理器的进程
优先数调度算法
为每个进程确定一个优先数,进程调度总是让具有最高优先数的进程先使用处理器(若优先数相同则采用FCFS)
时间片轮转调度算法
CPU处理时间分成固定大小的时间片,轮流来,如果时间片用完进程还未结束,也得重新排到就绪队列的末尾等待再次调度
时间片q的选择:
q=R/N(R是系统对响应时间的要求;N是进程数)
多级反馈队列调度算法/MLFQ
设置多个就绪队列
各个队列的优先权不同(第一个队列的优先权最高,逐个降低)
各个队列的时间片大小不同(优先权越高的队列时间片越小)
当前队列的某个进程在时间片内没有完成就进入下一个队列的末尾
当某个队列为空时才会调度下一个队列
处理机在第i队为谋进程服务时,如果有新进程进入优先权较高的队列(i之前),则处理机就去处理i之前的那个新进程了,正在运行的进程被放到i队伍的末尾(可怜哈哈哈哈)
4.调度算法的选择
(1)处理器利用率(尽量让CPU处于忙碌状态)
(2)吞吐量
(3)等待时间(尽可能减少)
(4)响应时间(尽可能减少)
1.进程互斥:若干个进程要使用一个共享资源,任何时刻只允许一个进程去使用,其他要使用的进程必须等待,直到那个进程使用完后释放资源
2.进程互斥的管理办法: PV操作 管程
1.进程同步:并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消息,当一个进程没有得到另一个进程的消息时应等待,直到消息到达时才被唤醒
3.时间上的同步问题
$$进程通信
\begin{cases}
低级 \text{PV操作}\
高级 \begin{cases} 共享存储器系统\ 消息传递系统 \管道通信系统 \end{cases}
\end{cases}$$
1.基于共享数据结构的通信方式
在这种通信方式中,要求诸进程公用某些数据结构,进程通过它们交换信息。这种通信方式是低效的,只适于传递少量数据。
2.基于共享存储区的通信方式
为了传输大量数据,在存储器中划出了一块共享存储区,诸进程可通过对共享存储区中的数据进行读或写来实现通信。这种通信方式属于高级通信。
消息传递系统中,进程间的数据交换以消息为单位
1.管道,是指用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件,又称为pipe文件
2.为了协调双方的通信,管道通信机制必须提供以下三方面的协调能力:(1)互斥;(2)同步;(3)对方是否存在。
1.需要线程的目的:保持系统的并发性
2.为了减少额外开销,系统把进程的资源申请与调度执行分开,线程是调度的基本单位,进程是资源申请与拥有的基本单位
3.概念:线程(Thread)是进程中的一个实体,是可独立参与调度的基本单位
4.属性:
并发
一个线程可以创建另一个
动态性(生命周期)
TCB(进程是PCB)
同一进程内的线程共享同一地址空间
一个进程的线程对另外一个进程是不可见的
线程的通信是基于全局变量进行的
5.状态(与进程类似)
时间片轮转算法
优先权算法
1.进程作为资源的申请与拥有单位,线程作为调度的基本单位
2.线程在调度和切换上所花费的开销比进程小得多
3.进程是独立拥有资源的的一个基本单位,线程只拥有一点点运行中必要的资源
4.进程作为独立拥有资源的基本单位,线程是独立参与调度的基本单位
1.概念:死锁是多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进
2$$产生原因\begin{cases} 竞争资源\ 进程推进顺序非法(请求与释放资源顺序不当) \end{cases}$$
3.$$产生死锁必要条件 \begin{cases} 互斥条件(进程互斥使用资源) \ 占有且等待条件(得不到需要的资源就不释放占有的资源)\ 不剥夺条件(进程不能从另一进程抢夺资源)\ 循环等待条件(每个进程都在等待另一个进程所持有的资源) \end{cases}$$
4.对策:预防 避免 检测 解除
预防
(1)静态分配策略//破坏第二个必要条件
所谓静态分配是指一个进程必须在执行前就申请它所要的全部资源,并且直到它所要的资源都得到满足后才开始执行
(2)层次分配策略//破坏第四个必要条件
当一个进程获得了某一层的一个资源后,它想再申请该层中的另一个资源,必须先释放该层中的已占用资源。
避免
检测
操作系统中的每一时刻的系统状态都可以用进程—资源分配图来表示,进程—资源分配图是描述进程和资源间申请及分配关系的一种有向图,可用以检测系统是否处于死锁状态。
进程和线程是什么意思?
进程是指在系统中正在运行的一个应用程序;线程是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元。对于操 作系统而言,其调度单元是线程。一个进程至少包括一个线程,通常将该线程称为主线程。一个进程从主线程的执行开始进而创建一个或多个附加线程,就是所谓基于多线程的多任务。
最基本的系统进程列表:
smss.exe Session Manager
csrss.exe 子系统服务器进程
winlogon.exe 管理用户登录
services.exe 包含很多系统服务
lsass.exe 管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和 IP 安全驱动程序。(系统服务)
产生会话密钥以及授予用于交互式客户/服务器验证的服务凭据(ticket)。(系统服务)
svchost.exe 包含很多系统服务
svchost.exe
SPOOLSV.EXE 将文件加载到内存中以便迟后打印。(系统服务)
explorer.exe 资源管理器
internat.exe 托盘区的拼音图标
附加的系统进程(这些进程不是必要的,你可以根据需要通过服务管理器来增加或减少):
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)名称的查询和更新请求。(系统服务)
以下服务很少会用到,上面的服务都对安全有害,如果不是必要的应该关掉
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 文件中包含的命令来安装、修复以及删除软件。(系统服务)
什么是系统服务
在Windows 2000/XP/2003系统中,服务是指执行指定系统功能的程序、例程或进程,以便支持其他程序,尤其是低层(接近硬件)程序。通过网络提供服务时,服务可以在Active Directory(活动目录)中发布,从而促进了以服务为中心的管理和使用。
服务是一种应用程序类型,它在后台运行。服务应用程序通常可以在本地和通过网络为用户提供一些功能,例如客户端/服务器应用程序、Web服务器、数据库服务器以及其他基于服务器的应用程序。
2.系统服务的作用
(1)启动、停止、暂停、恢复或禁用远程和本地计算机服务。
(2)管理本地和远程计算机上的服务。
(3)设置服务失败时的故障恢复操作。例如,重新自动启动服务或重新启动计算机。
(4)为特定的硬件配置文件启用或禁用服务。
(5)查看每个服务的状态和描述。
进程和线程有什么区别?
1、功能不同
进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。
2、工作原理不同
在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
线程是独立调度和分派的基本单位。线程可以为操作系统内核调度的内核线程,如Win32线程;由用户进程自行调度的用户线程,如Linux平台的POSIX Thread;或者由内核与用户进程,如Windows 7的线程,进行混合调度。
3、作用不同
进程是操作系统中最基本、重要的概念。是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所有多道程序设计操作系统都建立在进程的基础上。
通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。
扩展资料
进程是由进程控制块,程序段,数据段三部分组成。一个进程可以包含若干线程(Thread),线程可以帮助应用程序同时做几件事(比如一个线程向磁盘写入文件,另一个则接收用户的按键操作并及时做出反应,互相不干扰)。
在程序被运行后,系统首先要做的就是为该程序进程建立一个默认线程,然后程序可以根据需要自行添加或删除相关的线程。是可并发执行的程序。
在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位,也是称活动、路径或任务,它有两方面性质:活动性、并发性。
进程可以划分为运行,阻塞,就绪三种状态,并随一定条件而相互转化,就绪运行,运行阻塞,阻塞就绪。
进程为应用程序的运行实例,是应用程序的一次动态执行。看似高深,我们可以简单地理解为:它是操作系统当前运行的执行程序。
在系统当前运行的执行程序里包括:系统管理计算机个体和完成各种操作所必需的程序;用户开启、执行的额外程序,当然也包括用户不知道,而自动运行的非法程序(它们就有可能是病毒程序)。
参考资料来源:百度百科-线程
参考资料来源:百度百科-进程