Solaris的线程技术.ppt_第1页
Solaris的线程技术.ppt_第2页
Solaris的线程技术.ppt_第3页
Solaris的线程技术.ppt_第4页
Solaris的线程技术.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、成员:韩元庆201012924黄俊景201012923,Solaris线程技术, 1.Solaris概述2 .进程和进程3 .线程和进程4.1线程结构4.2线程同步4.3线程属性5 .进程并发性问题Solaris是Sun Microsystems开发的计算机操作系统,是UNIX操作系统Solaris现在是一种混合开源软件,2005年6月14日,Sun公司使用CDDL许可证打开正在开发的Solaris 11源代码。 此开放版本为OpenSolaris。 2 .进程和程序、进程概念和程序概念的最大区别在于: (1)进程是动态的,程序是静态的。 (2)过程具有一定的生命周期,但程序是指令的集合,其本

2、身没有“运动”的意义。 没有建立进程的进程不能作为一个独立的单元获得操作系统的批准。 (3)一个进程只能对应于一个进程,一个进程可以对应于多个进程。 过程和程序的关系类似于戏剧和剧本的关系。 3 .线程和进程,它是进程中相对独立的可调度执行单元。 因为线程是操作系统的基本调度单元,所以线程中必须包含调度所需的信息。 因为线程是调度的基本单元,而进程不是调度的单元,所以每个进程在创建时必须至少同时为该进程创建一个线程。 也就是说,进程至少需要一个或多个线程。 否则,无法安排进程的执行。 进程是分配给资源并拥有的基本单元,同一进程中的多个线程共享该进程的资源。 但是,线程没有资源,只能使用。 线程

3、有生命周期,有出生和死亡。 生命之间有状态的变化。 4.1 Solaris线程的结构。 Solaris包含许多用户级线程库,可用于创建、终止和转换快速轻量的线程。 Solaris核心线程池很小,而较小的核心线程池确保线程之间的一致性。 核心线程由核心调度,而核心线程是轻进程(lwps ),因此可以确保较小的资源开销和运行时的快速响应。 另外,Solaris将在库程序中调度线程,LWP从线程执行队列中检索可执行线程,并且LWP将停止执行线程的线程将挂起其他线程,直到阻止同步对象在提供基于优先级的抢占调度并阻止系统的所有调用后,添加新的LWPS以确保创建和执行新线程。 4.2线程同步和线程使用是重

4、要的,因为在一个过程中多个线程主要协作。 线程同步用于使线程共享数据、转换和控制线程的执行以及确保内存完整性。 如果操作与同步对象相关联,则在同步时线程转换在用户级别实现,因此速度很快。 1、“关键区域”(CCriticalSection )当多个线程访问一个专用共享资源时,可以使用关键区域对象。 具有关键区域的线程可以访问受保护的资源和代码段,而其他线程如果想要访问,则具有关键区域的线程将挂起,直到放弃关键区域为止。 具体应用方式: (1)、定义临界域对象ccriticalsectiong _ critical section; (2)、在访问共享资源(代码或变量)前,重要区域对象,g_Cr

5、iticalSection.Lock (); (3)、如果访问共享资源,则为临界区域对象,g_CriticalSection.Unlock (); 线程同步的四种常见方法,2、“事件”(CEvent )事件机制使一个线程能够在处理一个任务后主动启动,以便另一个线程执行该任务。 例如,在一些网络应用中,一个线程(例如,a )负责监听通信端口,另一个线程b负责更新用户数据,并且如果使用事件机制,则线程a将用户数据更新到线程b中每个Cevent对象每个Cevent类对象有两种类型:手动事件和自动事件。3、互斥(CMutex )互斥对象和关键区域对象非常相似,但允许在进程之间使用,而关键区域限制在同一

6、进程的各个线程之间使用,但节省了资源,效率更高。 4 .信号量(CSemphore )如果需要限制可以使用共享资源的线程数的计数器,则可以使用信号量对象。 CSemaphore类对象保留当前正在访问指定资源的线程的计数值。 此计数值是当前可以使用该资源的线程数。 当此计数达到零时,对此CSemaphore类对象控制的所有资源的访问尝试都将排队等待,直到超时或计数值不再为零。 4.3个线程的属性对于多线程OS通常包括多个线程,每个线程是利用CPU作为基本单元来具有最小开销的实体。 线程具有以下属性: 1 )轻量实体线程中的实体基本上没有系统资源,只是必不可少的,有可以独立执行的资源。 例如,各个

7、线程需要表示要执行的指令序列的程序计数器、预约局部变量、少数状态残奥仪表、回复地址等寄存器和堆栈。 2 )独立调度和分配的基本单位。 在多线程OS中,线程是可以独立执行的基本单位,因此也是独立的调度和分配的基本单位。 线程“轻”,因此线程切换非常快,开销小。 3 )可以同时执行。 既可以在一个进程中的多个线程之间同时运行,也可以在一个进程中的所有线程上同时运行,同样,不同进程的线程也可以同时运行。 4 )共享进程资源。 同一进程中的每个线程都可以共享该进程拥有的资源。 这首先意味着所有线程具有相同的地址空间(进程的地址空间)。 也就是说,线程可以访问该地址空间中的所有虚拟地址,并且还可以访问进

8、程拥有的打开文件、计时器、信号量机制等。 读者和写入者的问题主题是,多个读取过程可以同时共享资源,但是在写入过程和不能共享的写入过程之间是排他的,需要在访问时独占资源。 这需要设置一个全局变量来计数读取进程,并在第一个读取进程开始访问时执行p操作来阻止写入进程。在最后一个读取进程结束访问时执行v操作,然后写入如果存在正在读取的读取进程,则写入进程将等待,其他读取进程可以同时运行。使用readnum计数读者,将初始值设为0 mutex是互斥操作变量readnum的信号量(因为readnum是共享变量,是临界资源,必须互斥操作),将mutex的初始值设为1.write,将其读取=1写入(write

9、 ); v (多重); 读取文件p (多重); 读取=读取-1:读取=0写入; v (多重); 结束,写入程序p2:写入(begin p ); 写入文件v (write ) end,在上述算法中,当读取进程在读取中阻塞了一个写入请求进程时,如果还有继续请求读取的进程,则写入者读取过多,等待无限久,写入进程称为“饥饿”现象,即某个进程读取文件时,某个进程写入,新的读取进程被拒绝,现有的读取进程完成读取操作后,立即开始写入进程, 在没有写入过程时操作读取过程t信号量Sn限制系统最多有n个过程,初始值为n .该改进的算法如下:读取过程Pi(i=l,2n): begin P(s ); p (秒); V

10、(S ); 读取文件; 写入程序进程pj (j=1,2 k ):beginp (s ); I :1待办事项(sn )。 写入文件; 为什么要这样做呢? end是基于信号量机制的改善和实现方案来解决过程的同步问题的最有效的方法,其基本思想是将共享变量和对它们的操作集中在一个模块(过程)中,操作系统由这样的模块构成易于维护和修改、易于保证流程执行准确性的共享变量的说明define本管路内部定义、外部可调用函数名表use本管路外部定义、内部可调用函数名表为了保证共享变量的数据完整性, 管理流程应该排他使用.因为管理流程通常用于管理资源,所以管理流程包括与流程等待队列对应的等待和唤醒操作.管理流程人口

11、有称为人口等待队列的等待队列进入管理流程的一个流程启动另一个流程在管理进程内,可能存在称为紧急等待队列的多个等待进程(等待使用该管理进程),以执行唤醒操作,其优先级高于人口等待队列,释放使用权限,如果紧急等待队列不为空,则调用第一个等待人员并通常沿F1管道管路内部有自己的待机机构。管路可以说明特殊的条件量:varc:eondition。 实际上,指向等待条件的PCB队列的指针。 可以对条件类型变量执行wait和signal操作:wait(c )。如果紧急等待队列不为空,则调用第一个等待者。 否则,释放管理员的使用权。 执行本操作的进程位于c队列的末尾如果signal(c):队列为空,则继续原来

12、的进程,否则调用队列的第一个等待者,自己进入紧急等待队列的末尾(enter、leave、signal、wait r控制读者使用的资源,w控制写入者使用的资源,read _ account 3360整合器(integer )确定当前写入者是否使用该资源; 定义开始读取、结束读取、开始写入、结束写入。 使用监视器. enter、监视器. leave、监视器. wait、监视器.信号; 程序开始_读取(); 写入监视器,写入监视器; 读取帐户; 监控信号; 程序结束_读取(); read_account-; 读取帐户=0,监视信号(w ); 程序开始_写入(); 读取帐户0或写入监视器. wait (w )。 写真-真; 程序结束_写入(); 写入=假; 国际空间监视器;的名称: 埃尔斯监视器.信号(w ); 读者进程: while (真)

温馨提示

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

评论

0/150

提交评论