分布式操作系统多线程(共21张PPT)_第1页
分布式操作系统多线程(共21张PPT)_第2页
分布式操作系统多线程(共21张PPT)_第3页
分布式操作系统多线程(共21张PPT)_第4页
分布式操作系统多线程(共21张PPT)_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分布式操作系统一分布式系统中的进程和处理机线程与多线程在单用户多任务的计算机中

,如同在Windows

NT

中那样,除进程外,引入了一个新概

线

程(thread)。

对象、线程和进程三者构成Windows

NT

操作系统基本元成分。线种概念在

微型机多任务系统中十分重要。进程在运行中要提出访问管理程序(系统调用)的要求,例如提出I/O要求,也可能由于时钟而打断了当前进程的运行,而调度其他就绪进程运行,也就是经常会有进程开关问题。另外还有两次模式开关(用户模式→

内核模式

→用户模式)的开销。所有这些开销的总和,在一定程度上降低了并发进程所带来的利益。传统的进程概念有两个严重的局限性。首先许多应用想并发执行彼此间独立的任务,但又必须要共享一个公共的地址空

间和其他资源。但传统的进程概念对它们以上的要求难以支持,

往往把这些应用中的独立的任务串行化,效率很低。其次传统

的进程不能很好地利用多处理器系统。因为一个进程在某个时刻只能使用一个处理器。

一个应用固然可以创建多个进程,并把它们分到多个处理器上执行,但如何做到使用相同的地址空间和资源?这些促使人们引起线程机制。线程是进程内一个相对独立的、可调度的执行单元。根据线程定义可知线程有以下性质:(1)线程是进程内的一个相对独立的可执行单元。(2)线程是操作系统中的基本调度单元,因此线程中应包含有调度所需的必要信息。(4)需要时,线程可以创建其他线程。(5)进程是被分给并拥有资源的基本单元,同一进程

内的多个线程共享该进程的资源。但线程并不拥有资源,

只是使用它们。(3)由于线程是被调度的基本单元,而进程不是调度

的单元。所以每个进程在创建时,至少需要同时为该进程创建一个线程。也就是说进程中至少要有一个或一个以上线程,否则该进程无法被调度执行。(7)线程有生命期,有诞生和死亡。在生命期中有状态的变化。(6)由于共享资源(包括数据和文件),所以线程间需要通信和同步机制。采用线程机制有些什么好处呢?对于多线程机制

而言,

一个进程可以有多个线程,这些线程共享该进

程资源。这些线程驻留在相同的地址空间,共享数据

和文件。如果一个线程修改了一个数据项,其他线程

可以了解和使用此结果数据。

一个线程打开并读一个

文件时,同一进程中的其他线程也可以同时读此文件。

总而言之,这些线程运行在同一进程的相同的地址空

间内。code

data

filoscode

datafilesthreadregistersstackregistersregistersregistersthreadstackstackstacksingle-threaded

process

multithreaded

process所以我们可以看出线程的重要优点:1、在一个已有进程中创建一个新线程比创建一个全新进程所需的时间少。2、

终止一个线程比终止一个进程花费的时间3、

线程间切换比进程间切换花费的时间少。4、

线程提高了不同的执行程序间通信的效率。在大多数操作系统中,独立进程间的通信需要内核的干涉,以提供保护和通信所需要的机制。但是,由于在同一个进程中的线程共享存储空间和文件,它们无需调用内核就可以互相通信。有两种方法可以实现一个线程包:在用户空间中和在内核中。对于这两种方法还存在一些争议,可能会出现一种混合的方法,分别加以讨论用户级线程:用户线程在内核之上被支持,在用户层由一个线程库实现。该线程库为线程的创建、调度及管理提供支持,而无需内核的支持。例如,

UNIX

并不支持线程,但已经有了为它而写的各种各样的用户空间的线程包。由于内核对用户层线程没有感知,所有线程的创建和调度在用户空间完成,不需要内核的干预。缺点:如果内核是单线程的,那么任何用户级线程执行一个阻塞系统调用将引起整个进程阻塞,即便其它线程在该应用程序中是可运行的。内核级线程:由操作系统直接支持:内核负责在内核空间执行线程创建、调度和管理。线程之间的阻塞相互独立(既一个线程执行阻塞系统调用时,内核可以调度进程里的其它线程执行)。更好的支持多CPU

体系结构。缺点:创建和管理比用户线程慢。其它方案:许多研究者都在尝试结合用户线程和内核线程的长处,把两种线程结合起来,形成了三种多线程模型:多对一模型(m:1)一对一模型(1:1)多对多模型

(m:n)k

k

k

k

kernel

threaduser

thread基于线程的观点,可以把O.S.分为以下四类:(1)单进程和单线程系统在这种操作系统中只有一个进程,而且每个进程中只有一个线程。这种系统的代表是MS-DOS。

也可把单纯基于进程的操作系统看成是具有线程支,只不过每个进程中只有一个线程(进程也就是线程了)。基于线程和基于进程的操作系统(b)(2)多进程和单线程系统在这种操作系统中有多个进程操作系统。但

每个进程中只有一个线程。该系统的代表就是传统

意义上的UNIX

操作系统。以上两类是传统的操作系统,实际并没有线程概念。(3)单进程和多线程系统在这种操作系统中只有一个进程。但每个进程有多个线程。

Jave

R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论