信息处理装置及信息处理方法制造方法及图纸

技术编号:8275209 阅读:165 留言:0更新日期:2013-01-31 12:18
想要针对队列移除数据的线程首先确认所访问的队列中是否有能移除的数据,如果有数据,则将其移除(S22的Y、S24)。而如果没有数据,则线程将含有自己的线程的识别信息的线程信息推入同一队列后,释放处理器,并转为待机状态(S22的N、S28、S30)。之后,若队列中有线程信息,则想要推入数据的线程判断为有等待数据的线程,将该线程信息移除后,提供数据,再次开始处理。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及信息处理技术、具体涉及处理多个线程(thread)的。
技术介绍
近年的信息处理装置具备多线程技术,该多线程技术实现可同时执行多个处理的多任务环境,并且这些处理能在处理内部生成多个线程进行并行处理。处理在执行时被分配固有的资源和地址空间,无法访问其它处理的区域。与此不同,线程为处理内部生成的执行单位,各线程可对处理内的区域自由地相互访问。线程为操作系统分配CPU (CentralProcessing Unit :中央处理单元)的执行时间的基本执行单位。在这样并行处理多个线程的环境中,通过在共有存储器内设置队列,使得能生成请求要消费的数据和资源的线程的等待队列,可在保持处理器和线程的独立性的同时实现·排他控制。
技术实现思路
〔专利技术所要解决的课题〕一般来说,某线程试图从队列中取出数据时,如果队列中不存在数据,则该线程成为忙循环(busy loop)状态,直到由其它线程保存新数据。在此期间,CPU资源被浪费,因此,存在如下问题,即,这种状态越出现,整体的处理效率就越下降。此外,在上述那样的技术中,线程请求访问数据和资源时,首先需要操作队列,进入等待队列。但为了保障保存在队列中的等待队列的数据的匹配性,需要在队列的操作中设置控制机构。因此,最终线程实现对数据和资源的访问需要多个手续。本专利技术是鉴于这样的课题而研发的,其目的在于提供一种可防止因线程访问队列而导致的处理效率下降的信息处理技术。本专利技术的目的还在于提供一种可提高线程对数据和资源的访问的处理效率的信息处理技术。〔用于解决课题的手段〕本专利技术的一个方案涉及信息处理装置。该信息处理装置包括保存由各个数据的队列构成的数据用队列的存储器,和对将所生成的数据加入到数据用队列中的数据生成线程和将数据从数据用队列中取出的数据消费线程的至少任一者进行处理的一个以上的处理器;处理器在数据消费线程的处理中,当数据用队列中不存在应取出的数据时,向该数据用队列中加入数据消费线程的识别信息,在数据生成线程的处理中,在将数据加入数据用队列中时,若该数据用队列中有数据消费线程的识别信息,则改变数据的存储位置,以使得该数据消费线程能够取得它。本专利技术的另一个方案涉及信息处理方法。该信息处理方法包括在由处理器执行的第I线程的处理中,在尝试从保存于存储器的队列取出数据时,若应取出的数据不存在,则将第I线程的识别信息加入该队列的步骤;在由处理器执行的第2线程的处理中,在向队列加入数据时,若该队列中有第I线程的识别信息,则将数据提供给该第I线程的步骤。本专利技术的另一个方案涉及信息处理装置。该信息处理装置包括处理器,对访问需要同步管理的对象的线程进行处理;存储器,保存具有链接列表构造的队列,该队列表示请求访问对象的线程的等待队列,该链接列表将各线程的识别信息用指向队列中的下一线程的识别信息的指针连结;作为指向链接列表中的第一个线程的识别信息的指针的头指针被附加了关于对象的当前状态的信息;线程请求访问对象时,在参照被附加于头指针的关于对象的当前状态的信息,判断可否访问,若不能访问,则将线程的识别信息加入队列。本专利技术的另一方案涉及信息处理方法。该信息处理方法包括当需要访问需进行同步管理的对象时,参照存储于存储器中的具有链接列表构造的队列的步骤,该队列表示请求访问该对象的线程的等待队列,该链接列表将各线程的识别信息用指向队列中的下一个线程的识别信息的指针连结;取得作为指向链接列表中的第一个线程的识别信息指针的头指针所被附加的、关于对象的当前状态的信息,判断是否可以访问的步骤;以及无法访问时,将线程的识别信息加入队列的步骤。·此外,将以上构成要素的任意组合、本专利技术的表现形式在方法、装置、系统、计算机程序、记录有计算机程序的记录介质等间变换后的实施方式,作为本专利技术的方案也是有效的。〔专利技术效果〕通过本专利技术,可实现与排他控制相关的处理效率下降较少的信息处理。附图说明图I是表示本实施方式中的信息处理装置的结构的图。图2是示意性地表示本实施方式中存储在队列中的等待队列的数据结构例的图。图3是表示向本实施方式中处于无元素状态的队列中推入(push)元素的操作方式的图。图4是表示向本实施方式中存有元素的状态的队列中推入新元素的操作方式的图。图5是表示从本实施方式中存有多个元素的状态的队列中移除(pop)元素的操作方式的图。图6是表示从本实施方式中只存有一个元素的状态的队列中移除该元素的操作方式的图。图7是表示本实施方式中线程操作队列的步骤的流程图。图8是表示在本实施方式中,假定队列中没有要移除的数据时的基本处理的流程图。图9是表示在本实施方式中,假定队列中没有要移除的数据时的基本处理的流程图。图10是表示本实施方式中将线程的等待队列编入数据队列和包队列这两者中的流程图。图11是表示本实施方式中将线程的等待队列编入数据队列和包队列这两者中的流程图。图12是示意性地表示本实施方式中为实现信号量(semaphore)功能而存储于队列的链接列表的结构及其操作方式的图。图13是表示本实施方式中资源与请求数相比不足时操作链接列表的方式的图。图14是表示本实施方式中在有等待获得资源的线程的情况下释放资源时的链接列表的操作方式的图。图15是表示本实施方式中请求资源时的处理步骤的流程图。图16是表示本实施方式中释放资源时的处理步骤的流程图。图17是表示本实施方式中,在由其它线程获得了 Wlock (写锁)的期间,产生请求 Rlock (读锁)的线程时的链接列表的操作方式的图。图18是表示本实施方式中获得了 Wlock的线程解除Wlock时的链接列表的操作方式的图。具体实施例方式图I表示本实施方式中的信息处理装置的结构。信息处理装置10包括处理单元12a、…、12η和共有存储器14,它们连接于主总线20。处理单元12a、…、12η分别包括处理器16a、…、16η,以及本地存储器18a、…、18η。处理单兀12a、…、12η可以分别包括处理器16a、…、16η,以及本地存储器18a、…、18η以外的构成部件,此处省略图不。信息处理装置10中,为实现各种功能而生成的多个线程在处理单元12a、…、12η中被并行处理。共有存储器14中存储用于处理线程的程序及各种数据,处理器16a、…、16η将所需数据从共有存储器14读出到属于自己的处理单元的本地存储器18a、…、18η后,开始进行线程处理。当分配给开始的线程的时间片(time slice)期满时,以及根据处理内容而变为待机状态时等,处理器16a、…、16η将处理对象切换成其它线程。此外,在之后的说明中,为方便理解,有时将处理的主体称作“线程”,但从硬件意义上讲,是指“对线程进行处理的处理器”。决定线程处理的顺序及CPU时间的分配的调度(scheduling)可由OS提供的调度器执行,也可以由用户级的调度器执行。这样的调度处理也作为一个线程,由处理器16a、...、16n中的一者执行。在本实施方式中,如后述的那样存在两种情况根据队列的状态,处理中的线程释放处理器并转为待机状态的情况,和通过其它线程的处理,已成为待机状态的线程变得能开始进行处理的情况。因此,在这样的情况下预先准备实现线程的状态转移的处理,使得能够按照来自线程的请求而执行。这样的处理可以由OS提供,也可由用户级来准本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:永田章人
申请(专利权)人:索尼电脑娱乐公司
类型:
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1