版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
4.1
Why
thread
is
introduced?Process
Resource
ownership
-
process
isallocated
a
virtual
address
space
tohold
the
process
image
Scheduling/execution-
follows
anexecution
path
that
may
beinterleaved
with
other
processes第1页/共52页实例考察文件服务器的例子,当它接受一个文件服务请求后,由于等待磁盘传输而经常被阻塞,假如不阻塞可
继续接受新的文件服务请求并进
行处理,则文件服务器的性能和
效率便可以提高。处理这些请求
时要共享一个磁盘缓冲区,程序
和数据要处于同一个地址空间,基于同数据区的同时多请求服务,单线程结构的进程难以达到这一
目标,需要寻第求3求页/共新52页概念、提出新机制。
进程的局限性
进程切换的开销大,频繁的进程调度将耗费大量处理器时间。
进程之间通信的代价大,每次通信均要涉及通信进程之间以及通信进程与操作系统之间的切换。
进程之间的并发性粒度较粗,并发度不高,过多的进程切换和通信使得细粒度的并发得不偿失。
不适合并行计算和分布并行计算的要求。对于多处理器和分布式的计算环境来说,进程之间大量频繁的通信和切换,会大大降低并行度。
不适合客户/服务器计算的要求。对于C/S结构来说,那些需要频繁输入输出并同时大量计算的服务器进程(如数据库服务器、事务监督程序)很难体现效率。第4页/共52页
操作系统中引入进程的目的是为了使多个程序并发执行,以改善资源使用率和提高系统效率,
操作系统中再引入线程,则是为了减少程序并发执行时所付出的时空开销,使得并发粒度更细、并发性更好。
第5页/共52页解决问题的基本思路:把进程的两项功能--"独立分配资源”与"被调度分派执行”分离开来,进程作为系统资源分配和保护的独立单位,不需要频繁地切换;线程作为系统调度和分派的基本单位,能轻第6页装/共52运页
行,会被频繁地调度和切换,在这种指导思想下,产生了线程的概念。
传统操作系统一般只支持单线程进程,如MS-DOS支持单用户进程,进程是单线程的;
传统的Unix支持多用户进程,每个进程也是单线程的。
目前,很多著名的操作系统都支持多线程(结构)进程,如:Solaris、Mach、SVR4.OS/390、OS/2、WindowNT、Chorus等;JAVA的运行引擎则是单进程多线程的例子。
许多计算机公司都推出了自己的线程接口规范,如SolarisThread接口规范、OS/2Thread接
口规范、WindowsNTThread接口规范等;IEEE也推出了多线程程序设计标准POSIX1003.4a,可以相信多线程技术在程序设计中将会被越来越广泛地采用。
第7页/共52页第8页/共52页生活中的例子1:假设在一个公司中,不分部门,大家一起工作。好比一个进程,如果因为一个资源不足,比如今天没打印纸了,所有人都要休息。如果分了很多部门,哪个部分缺少资源,哪个部门休息,其他部门可以继续工作。这样就提高了整体的效率。生活的例子2:某大厦的装璜工程可作为一个"进程”运行,下有许多工程队,如瓦工队、木工队、水电工队、油漆工队等,每个工程队作为一个"线程”运行。"进程”负责采购资源(源料)和工程管理,有源料时这些工程队可以按进度齐头并进同时工作(多线程并行执行),以加快装璜进度。缺少源料时,如缺少水泥、木材、水管、油漆之一时,相应工程队等待(线程被阻塞),而可以调度其他工程队(线程)工作。从而,提高了整个系统(装璜工程)的并发性,加快了工程进度。
第9页/共52页OutlineWhy
thread
is
introduced?Process
and
thread
in
the
multiple
threaenvironmentHow
to
realize
the
thread?Windows
thread
managementSolaris
thread
and
SMP
managementLinux
process
and
thread
management第10页/共52页4.2
Process
and
thread
in
the
multiple
threadenvironment1.Processandthread Dispatchingisreferredtoasathread Resourceofownershipisreferredtoasaprocessortask第11页/共52页Process
Have
a
virtual
address
spacewhich
holds
the
process
image
Protected
access
to
processors,other
processes,
files,
and
I/Oresources第12页/共52页ThreadAn
execution
state
(running,
ready,
etc.)Saved
thread
context
when
not
runningHas
an
execution
stackSome
per-thread
static
storage
for
local
v
Access
to
the
memory
and
resources
of
itsprocessall
threads
of
a
process
share
this第13页/共52页线程定义
线程是进程中的一个实体,是被系统独立调度和分配的基本单位,故又称为轻权(轻型)进程(LightWeightProcess),它由线程控制表、存储线程上下文的用
户栈以及核心栈组成。{传统的进程称为重型进程(HeavyWeightProcess)。}第14页/共52页线程特点
线程是进程的一个实体,可作为系统独立调度和分派的基本单位。
线程自己基本不拥有系统资源,只拥有少量必不可少的资源:程序计数器、一组寄存器、栈。
它可与同属一个进程的其它线程共享进程所拥有的全部资源。
一个线程可以创建和撤消另一个线程;同一进程中的多个线程之间可以并发执行。
系统开销小、切换快。(进程的多个线程都在进程的地址空间活动)第15页/共52页第16页/共52页 TCB:每个线程有一个Thread结构,即线程控制块,用于保存自己私有的信息,主要由以下4个基本部分组成:一个唯一的线程标识符一组寄存器:程序计数器、状态寄存器、通用寄存器两个栈指针:一个指向核心栈(核心态下运行时),一个指
向用户栈(用户态下运行时)。
第17页/共52页一个私有存储区:存放私有数据和其它与该线程相关的统计Benefits
of
ThreadsTakes
less
time
to
create
a
new
thread
than
a
processLess
time
to
terminate
a
thread
than
a
processLess
time
to
switch
between
two
threads
within
the
same
process
Since
threads
within
the
same
process
share
memory
and
files,
thcommunicate
with
each
other
without
invoking
the
kernel第18页/共52页线程与进程的比较
调度:在同一个进程内线程切换不会产生进程切换,由一个进程内的线程切换到另一个进程内的线程时,将会引起进程切换。
并发性:在引入线程的系统中,进程之间可并发,同一进程内
的各线程之间也能并发执行。
第19页/共52页因而系统具有更好的并发性。
拥有资源:进程是拥有资源的独立单位,线程一般不拥有系统资源,但它可以访问隶属进程的资源。即一个进程的所有资源可供进程内的所有线程共享。
第20页/共52页
系统开销:进程的创建和撤消的开销要远大于线程创建和撤消的开销,进程切换时,当前进程的CPU环境要保存,新进程的CPU环境要设置,线程切换时只须保存和设置少量寄存器,并不涉及存储管理方面的操作,因此进程切换的开销远大于线程切换的开销。
由于它们拥有相同的地址空间,它们之间的同一进程内的各第21页线/共52程页线程的适用范围
服务器中的文件管理和进程通信控制;LAN中的一个文件服务器,在一段时间内需要处理几个文件请求因此有效的方法是:为每一个请求创建一个线程。在一个SMP机器上:多个线程可以同时在不同的处理器上运行。前后台处理;第22页/共52页在表处理进程中,一个线程显示菜异步处理;考虑一个应用:由几个独立部分(如打印、显示、计算)组成,这几个部分不需要顺
序执行,则每个部分可以以
线程方式实现。
当一个线程因I/O阻塞时,可以切换到同一应用的另一个线程。
第23页/共52页2.ThreadStatesThread
StatesRunningReadyBlockedOperations
associated
with
a
change
in
threadSpawnScheduleBlockedUnblockedFinish第24页/共52页
Suspending
a
process
involves
suspending
athreads
of
the
process
since
all
threads
shsame
address
space
Termination
of
a
process,
terminates
all
twithin
the
process第25页/共52页OutlineWhy
thread
is
introduced?Process
and
thread
in
the
multiple
threaenvironmentHow
to
realize
the
thread?Windows
thread
managementSolaris
thread
and
SMP
managementLinux
process
and
thread
management第26页/共52页4.3
How
to
realize
the
thread?1、User-LevelThreads2、Kernel-LevelThreads3.CombinedApproaches第27页/共52页1.User-LevelThreadse
of
The
kernel
isnot
aware
ofthe
existencthreads
The
kernelschedule
theprocess
as
aunit
All
thr第e28a页/d共52页management
isdone
by
the
任何应用程序均需通过线程库进行程序设计,再与线程库连接后运行来实现多线程。
线程库是一个ULT管理的例行程序包,实质上线程库是线程的运行支撑环境。
第29页/共52页进程开始只有一个线程,它可以孵化新线程,通过过程调用把控制权传送给"孵化”过程,由线程库为新线程创建一个TCB,并置为就绪态,按一定的调度算法把控制权传递给进程中处于就绪态的一个线程。当控制权传送到线程库时,当前线程的现场信息应被保存,而当线程库调度一个线程执行时,要恢复它的现场第30页/共52页第31页/共52页Advantage
The
thread
switching
does
not
require
kernel
moprivilegeScheduling
can
be
application
specificULTs
can
run
on
any
OS第32页/共52页DisadvantageMany
System
calls
are
blockingCannot
take
advantage
of
multiprocessing第33页/共52页2.Kernel-LevelThreadsis
W2K,
Linux,and
OS/2
areexamples
of
thapproach
Kernelmaintainscontext
informa第t34i页/o共5n2页forthe
process
and优点第35页/共52页多处理器上,内核能同时调度同一进程中多个线程并行执行。进程中的一个线程被阻塞了,内核能调度同一进程的其它线程占有处理器运行。内核线程数据结构和堆栈很小,KLT切换快,内核自身也可用多线程技术实现,能提高系统的执行速度和效率。
缺点第36页/共52页应用程序线程在用户态运行,而线程调度和管理在内核实现,在同一进程中,控制权从一个线程传送到另一个线程时需要用户态-内核态-用户态的模式切换3.CombinedApproachesExample
is
Solaris
Thread
creation
done
in
theuser
space
Bulk(most)
of
scheduling
andsynchronization
of
threadsdone
in
the
user
space
Some
ULTs
are
mapped
ontosome
KLT第3s7页/共52页第38页/共52页4.4
Windows
2000Process
Object(类型)第39页/共52页
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辽宁鞍山市海城市高级中学2026-2027学年高二上学期开学考试历史试题(文字版含答案)
- 中学党支部工作总结报告
- 斯陀园获奖课件
- 数字化医疗时代社区健康赋权创新路径
- 医院实习生岗前培训
- 万达绩效考核指标体系
- 3-6岁儿童学习与发展指南解析(社会领域)
- 护理教育评估与反馈
- 汽车零部件质量管理体系汇报
- IEC 62281-2024 中文版 运输途中原电池和蓄电池组的安全要求(国际运输安全标准)
- 【新教材】2026秋人教PEP版六年级上册英语Unit 1 Amazing places Part A Let's learn 教案
- 新生儿脑出血外科治疗
- 领取现金协议书样本
- 2026-2030中国心律管理系统行业市场发展趋势与前景展望战略分析研究报告
- 2026中级注册安全工程师《安全生产技术基础》培训课件
- 2025年海口市秀英区广播电视台(融媒体中心)人员招聘考试试题及答案解析
- 2026年浙江绍兴市轨道交通集团有限公司招聘笔试参考题库含答案解析
- 部编语文一年级(下册)课外阅读练习试题
- 2026年4月自考13740环境行为与心理学试题
- 2025年安徽省初级注册安全工程师其他安全考试真题(附答案)
- 2026年特种设备超声波二级开卷测试卷完整版附答案详解
评论
0/150
提交评论