欢迎来到天天文库
浏览记录
ID:21608472
大小:159.50 KB
页数:7页
时间:2018-10-23
《多核架构的并行程序设计技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、五邑大学研究生考试高级程序设计课程2014〜2015年度第1学期多核架构的并行程序设计技术计算机学院学号姓名2111405001任课教师:白明成绩评定:多核架构的并行程序设计技术1多线程的概念线程(thread)是进程上下文(contex)屮执行的代码序列,又被称为轻量级进程(lightweightprocess),是操作系统中比进程更小的可执行单元。在支持多线程的系统中,进程成为资源分配和保护的实体,而线程是被调度执行的基本单元。进程的资源包括进程的地址空间,打开的文件和I/O等资源。属于同一个进程的线程共亨该进程的代码段和数据段,打开的文件,信号等。除了共
2、享资源,每个线程还包含各自的线程ID,线程执行状态,CPU寄存器状态和栈。程迸程m多线程的进程多线程机制的优点包括以下儿个方而:1.创建一个线程比创建一个进程的代价要小。由于线程共享进程的资源,所以进程被创建时不谣要再分配内存空间等资源,因而创建线程所谣的时间也更少。2.线程的切换比进程间的切换代价小。线程作为执行单元,当从同一进程的一个线程切换到另一线程吋,需要载入的信息比进程切换时要少,所以切换速度更快。3.充分利用多处理器。同一进程的线程可以在多个处理器并行运行,该进程的运行速度可以显著提商,而单线程的进程却只能在一个处理器上运行,不能充分利用多个处理器
3、。4.数据共享。对于同一进程的线程來说,他们共享同一块地址空间,可以访问相同的数据。数据共享使得线程之间的通信比进程间的通信更高效,更容易。5.快速响应特性。对于交互程序来说,多线程设计的优势是,当执行一些耗时或者可能被阻塞的操作时,其他部分仍然保持运行和响应。另外多线程编程可以使程序更加模块化,简化程序逻辑。2用户级线程川户级线程库是川于川户级线程管理的例程包,支持线程的创建、终止,以及调度线程的执行并保存和恢复线程的上下文,这些操作都在用户空间进行,无需内核的支持,所以用广级线程的创建和管理等操作更快。对于那些核本身不支持多线程的操作系统,通过用户级线程库
4、可以使用户获得多线程编程的好处。内核仍然以进程为单位进行调度,当内核调度一个进程运行时,用户级线程库调度该进程的一个线程执行,如果时间片允许,进程的其他线程也可能被执行,该进程的多个线程共亨该进程的运行吋间片,因而用户级线程的并行性会受到一定的限制。3内核级线程内核级线程的所有管理操作都是巾操作系统P、j核完成的。核保存线程的状态和上下文信息,当一个线程执行了引起阻塞的系统调用时,内核4以调度该进程的其他线程执行。在多处理器系统上,内核可以分派属于同一进程的多个线程在多个处理器上运行,提高进程执行的并行度。由于需要内核完成线程的创建,调度和管理,所以和用户级线
5、程相比这些操作要慢的多,但是仍然比进程的创建和管理操作要快。4多线程的映射模型对于实现了川户级线程和内核级线程的操作系统,用户级线程和内核级线程之间的可以有不同的映射方式。多对一模型:多对一模型把多个用户级线程映射到一个内核级线程。线程的管理在用户空间实现,所以效率商。当一个线程因调用系统调用被阻塞时,整个进程被阻塞。另外,用户级线程线程不能在多处理器上并发执行。不支持内核级线程的操作系统使用多对一模型。一对一模型:一对一模型把每个川户级线程影射到一个内核级线程。该模型允许进程的多个进程再多处理器上并行运行,当一个线程阻塞吋,其他线程仍然可以运行。该模型的缺点
6、是当创建一个用户线程时,需要创建对应得内核级线程。由于内核资源的有限性,系统能够限制系统屮线程。多对多模型:多对多模型将m个用户级线程影射到n个内核级线程,m^no内核级线程的数目依据应川程序的类型(要求高并发)、机器体系结构(多处理器或单处理器)或者当前系统资源的约束来确定。蛍然多对一模型对创建用户级线程的数目没有限制,但这些线程在同一时刻只能有一个被执行。一对一模型可以获得高并发性,但因耗费资源而线程数会受到限制。多对多模型具有多对一和一对一两种模型的优势,用户可以创建所需要的用户级线程,通过分配适当数目的内核级线程获得并发执行的优势并节楫系统资源。多对多
7、映射多线程编程的个问题:1)耑要重复创建和销毁线程,比如一个网络服务器根据用户的请求不断地创建线程,然后销毁线程,长吋间重复这一过程要耗费大量的处理器吋间;2)如果为每个请求建立一个线程而对线程数目没有限制的话,人呈创建的线程可能会耗尽系统资源。线程池是一组被创建的线程的集合,当一个进程需要线程时,如果线程池中还有付用的线程,就从中収出一个投入使用。当线程池中没有可川的线程时,创建线程的请求必须等待,保护系统资源不被耗尽。线程池中的线程数0可以依据系统的内存,处理器数0,要处理的任务的数H来确定,或者动态地依据系统当前的资源和系统负載进行调整。5线程的同步虽然
8、多线程能给我们带來好处,但是也有不少问
此文档下载收益归作者所有