操作系统精髓与设计原理Chap.pptx
《操作系统精髓与设计原理Chap.pptx》由会员分享,可在线阅读,更多相关《操作系统精髓与设计原理Chap.pptx(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、4.1 Why thread is introduced?ProcessResource ownership-process is allocated a virtual address space to hold the process imageScheduling/execution-follows an execution path that may be interleaved with other processes第1页/共52页单线程进程单线程进程(模型模型)用户地用户地址空间址空间进程进程控制块控制块用户用户堆栈堆栈内核内核堆栈堆栈进进程程进程控制块进程控制块用户地址空间用户
2、地址空间用户栈用户栈内核栈内核栈管理者管理者执行序列执行序列第2页/共52页实例考察实例考察文件服务器的例子文件服务器的例子,当它接受一个文件服务请求后当它接受一个文件服务请求后,由于等待磁盘传输而经常由于等待磁盘传输而经常被阻塞,假如不阻塞可继续接受新的文件服务请求并进行处理,则文件服务被阻塞,假如不阻塞可继续接受新的文件服务请求并进行处理,则文件服务器的性能和效率便可以提高。处理这些请求时要共享一个磁盘缓冲区,程序器的性能和效率便可以提高。处理这些请求时要共享一个磁盘缓冲区,程序和数据要处于同一个地址空间,和数据要处于同一个地址空间,基于同数据区的同时多请求服务基于同数据区的同时多请求服务
3、,单线程结,单线程结构的进程难以达到这一目标构的进程难以达到这一目标,需要寻求新概念、提出新机制。需要寻求新概念、提出新机制。浏览网页时,在载入图像时,将阻塞,无法响应用户的请求浏览网页时,在载入图像时,将阻塞,无法响应用户的请求随着并行技术、网络技术和软件设计技术的发展,给并发程序设计效率带来随着并行技术、网络技术和软件设计技术的发展,给并发程序设计效率带来了一系列新的问题。了一系列新的问题。第3页/共52页进程的局限性进程的局限性进程切换的开销大,频繁的进程调度将耗费大进程切换的开销大,频繁的进程调度将耗费大量处理器时间。量处理器时间。进程之间通信的代价大,每次通信均要涉及通进程之间通信的
4、代价大,每次通信均要涉及通信进程之间以及通信进程与操作系统之间的切信进程之间以及通信进程与操作系统之间的切换。换。进程之间的并发性粒度较粗,并发度不高,过进程之间的并发性粒度较粗,并发度不高,过多的进程切换和通信使得细粒度的并发得不偿多的进程切换和通信使得细粒度的并发得不偿失。失。不适合并行计算和分布并行计算的要求。对于不适合并行计算和分布并行计算的要求。对于多处理器和分布式的计算环境来说,进程之间多处理器和分布式的计算环境来说,进程之间大量频繁的通信和切换,会大大降低并行度。大量频繁的通信和切换,会大大降低并行度。不适合客户不适合客户/服务器计算的要求。对于服务器计算的要求。对于C/SC/S
5、结构结构来说,那些需要频繁输入输出并同时大量计算来说,那些需要频繁输入输出并同时大量计算的服务器进程的服务器进程(如数据库服务器、事务监督程序如数据库服务器、事务监督程序)很难体现效率。很难体现效率。第4页/共52页操操作作系系统统中中引引入入进进程程的的目目的的是是为为了了使使多多个个程程序序并并发发执执行行,以以改改善善资源使用率和提高系统效率,资源使用率和提高系统效率,操操作作系系统统中中再再引引入入线线程程,则则是是为为了了减减少少程程序序并并发发执执行行时时所所付付出出的的时时空空开开销销,使使得得并并发发粒粒度度更更细细、并发性更好。并发性更好。第5页/共52页解决问题的基本思路:
6、解决问题的基本思路:把进程的两项功能把进程的两项功能“独立分配资源独立分配资源”与与“被调度分派执行被调度分派执行”分离开来,分离开来,进程作为系统资源分配和保护的独立单位,不需要频繁地切换;进程作为系统资源分配和保护的独立单位,不需要频繁地切换;线程作为系统调度和分派的基本单位,能轻装运行,会被频繁地调度和切换,在线程作为系统调度和分派的基本单位,能轻装运行,会被频繁地调度和切换,在这种指导思想下,产生了线程的概念。这种指导思想下,产生了线程的概念。第6页/共52页传统操作系统一般只支持单线程进程,如传统操作系统一般只支持单线程进程,如MS-MS-DOSDOS支持单用户进程,进程是单线程的;
7、支持单用户进程,进程是单线程的;传统的传统的UnixUnix支持多用户进程,每个进程也是单支持多用户进程,每个进程也是单线程的。线程的。目前,很多著名的操作系统都支持多线程(结目前,很多著名的操作系统都支持多线程(结构)进程,如:构)进程,如:Solaris Solaris、Mach Mach、SVR4SVR4、OS/390OS/390、OS/2OS/2、WindowNTWindowNT、ChorusChorus等;等;JAVAJAVA的运行引擎则是单进程多线程的例子。的运行引擎则是单进程多线程的例子。许多计算机公司都推出了自己的线程接口规范,许多计算机公司都推出了自己的线程接口规范,如如So
8、laris ThreadSolaris Thread接口规范、接口规范、OS/2 ThreadOS/2 Thread接接口规范、口规范、Windows NT ThreadWindows NT Thread接口规范等;接口规范等;IEEEIEEE也推出了多线程程序设计标准也推出了多线程程序设计标准POSIX POSIX 1003.4a1003.4a,可以相信多线程技术在程序设计中,可以相信多线程技术在程序设计中将会被越来越广泛地采用。将会被越来越广泛地采用。第7页/共52页第8页/共52页生活中的例子生活中的例子1 1:假设在一个公司中,不分部门,大家一起工作。好比假设在一个公司中,不分部门,大
9、家一起工作。好比一个进程,如果因为一个资源不足,比如今天没打印纸了,一个进程,如果因为一个资源不足,比如今天没打印纸了,所有人都要休息。所有人都要休息。如果分了很多部门,哪个部分缺少资源,哪个部门休如果分了很多部门,哪个部分缺少资源,哪个部门休息,其他部门可以继续工作。息,其他部门可以继续工作。这样就提高了整体的效率。这样就提高了整体的效率。生活的例子生活的例子2 2:某大厦的装璜工程可作为一个某大厦的装璜工程可作为一个“进程进程”运行,下有许运行,下有许多工程队,如瓦工队、木工队、水电工队、油漆工队等,多工程队,如瓦工队、木工队、水电工队、油漆工队等,每个工程队作为一个每个工程队作为一个“线
10、程线程”运行。运行。“进程进程”负责采购资负责采购资源源(源料源料)和工程管理,有源料时这些工程队可以按进度和工程管理,有源料时这些工程队可以按进度齐头并进同时工作齐头并进同时工作(多线程并行执行多线程并行执行),以加快装璜进度。,以加快装璜进度。缺少源料时,如缺少水泥、木材、水管、油漆之一时,相缺少源料时,如缺少水泥、木材、水管、油漆之一时,相应工程队等待应工程队等待(线程被阻塞线程被阻塞),而可以调度其他工程队,而可以调度其他工程队(线线程程)工作。从而,提高了整个系统工作。从而,提高了整个系统(装璜工程装璜工程)的并发性,的并发性,加快了工程进度。加快了工程进度。第9页/共52页Outl
11、ine4.1 Why thread is introduced?4.2 Process and thread in the multiple thread environment4.3 How to realize the thread?4.4 Windows thread management4.5 Solaris thread and SMP management4.6 Linux process and thread management第10页/共52页4.2 Process and thread in the multiple thread environment1、Process
12、and threadDispatching is referred to as a threadResource of ownership is referred to as a process or task第11页/共52页ProcessHave a virtual address space which holds the process imageProtected access to processors,other processes,files,and I/O resources第12页/共52页ThreadAn execution state(running,ready,etc
13、.)Saved thread context when not runningHas an execution stackSome per-thread static storage for local variablesAccess to the memory and resources of its processall threads of a process share this第13页/共52页线程定义线程定义线程线程是进程中的一个实体,是被系统独立调度和分配的基本单位,故又称为轻权是进程中的一个实体,是被系统独立调度和分配的基本单位,故又称为轻权(轻型)进程(轻型)进程(Light
14、 Weight Process),它由线程控制表、存储线程上下文的,它由线程控制表、存储线程上下文的用户栈以及核心栈组成。用户栈以及核心栈组成。传统的进程称为重型进程传统的进程称为重型进程(Heavy Weight Process)。第14页/共52页线程特点线程特点线程是进程的一个实体,可作为系统独立调度和线程是进程的一个实体,可作为系统独立调度和分派的基本单位。分派的基本单位。线程自己基本不拥有系统资源,只拥有少量必不线程自己基本不拥有系统资源,只拥有少量必不可少的资源:程序计数器、一组寄存器、栈。可少的资源:程序计数器、一组寄存器、栈。它可与同属一个进程的其它线程共享进程所拥有它可与同属
15、一个进程的其它线程共享进程所拥有的全部资源。的全部资源。一个线程可以创建和撤消另一个线程;同一进程一个线程可以创建和撤消另一个线程;同一进程中的多个线程之间可以并发执行。中的多个线程之间可以并发执行。系统开销小、切换快。(进程的多个线程都在进系统开销小、切换快。(进程的多个线程都在进程的地址空间活动)程的地址空间活动)第15页/共52页第16页/共52页TCB:每个线程有一个:每个线程有一个Thread结构,即线程控制块,用于保存自己私有的结构,即线程控制块,用于保存自己私有的信息,主要由以下信息,主要由以下4个基本部分组成:个基本部分组成:一个唯一的线程标识符一个唯一的线程标识符一组寄存器:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 精髓 设计 原理 Chap
限制150内