用于在计算环境中执行线程的方法和系统技术方案

技术编号:8130997 阅读:207 留言:0更新日期:2012-12-27 03:09
本发明专利技术涉及用于在计算环境中执行线程的方法和系统。公开了一种用于以非抢占式方式执行进程的常规可中断线程的技术,包括:响应于与针对第一线程的第一消息相关联的第一条目到达运行队列的开端,由第一线程接收第一唤醒信号。响应于接收唤醒信号,由第一线程等待全局锁。响应于第一线程接收全局锁,由第一线程从关联的消息队列获取第一消息并处理获取的第一消息。响应于完成对第一消息的处理,第一线程向第二线程发送第二唤醒信号,该第二线程的关联条目是运行队列中的下一个。最后,在发送第二唤醒信号之后,第一线程释放全局锁。

【技术实现步骤摘要】

本专利技术总体上涉及线程,并且特别地,涉及用于在计算环境中执行线程的技木。
技术介绍
术语“公用计算”用于指代这样的计算模型,其中处理、存储和网络资源、软件以及数据根据需要可用于客户计算机系统和其他客户端设备(例如,移动电话或媒体播放器),非常类似于熟悉的居民设施服务,比如水和电。在一些实现中,被分配用于由客户端设备访问和使用的特定计算资源(例如,服务器、存储驱动等等)由设施计算提供方与其客户之间的服务协议指定。在通常称为“云计算”的其他实现中,潜在的信息技术(IT)基础设施对于公用计算客户是透明的。 云计算通过对远程计算网站(例如,通过互联网或私有公司网络)的简单访问而被支持,并且通常所采取的形式是云消费者通过web浏览器可以访问和使用的基于web的资源、工具或应用,如同该资源、工具或应用是安装在云消费者的计算机系统上的本地程序。通常,期望商业云实现满足服务质量(QoS)要求,QoS要求可以在服务级别协议(SLA)中被指定。在典型的云实现中,云消费者消耗作为服务的计算资源且仅为使用的资源付费。公用计算的采用已由对虚拟化的广泛使用而得到支持,虚拟化是创建操作系统、服务器、存储设备、网络资源等计算资源的虚拟(并非真实)版本。例如,虚拟机(VM),也称为逻辑分区(LPAR),是实现执行类似物理机的指令的物理机(例如,计算机系统)的软件。虚拟机可以分类为系统虚拟机或进程虚拟机。系统虚拟机提供支持执行完整的操作系统的完整的系统平台,比如Windows、Linux、AIX、Android等等,以及其相关的应用。另一方面,进程虚拟机通常设计用于运行单个程序以及支持单个进程。在这两种情况下,运行在VM上的任何应用软件被限制于VM提供的资源和抽象。因此,共同IT基础设施提供的实际资源可以通过部署多个VM被有效管理和利用,可能与多个不同的公用计算消费者相关。实际IT资源的虚拟化和VM的管理通常由称为VM监视器(VMM)或管理器的软件提供。在各种实现中,VMM可以运行在裸硬件(类型I或本机VMM)上或者运行在操作系统(类型2或托管的VMM)上。在典型的虚拟化计算环境中,VM可以互相通信以及与利用常规网络协议的公用计算环境的IT基础设施中的物理实体通信。如本领域所知,常规网络协议通常前提是公知的7层开放系统互连(OSI)模型,其包括(按升序)物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。VM能够与其他网络实体通信,就像通过对常规物理层连接的虚拟网络连接的替代,VM是物理网络元件一祥。UNIX 操作系统(OS)被设计用于移动的、多任务和多用户OS。UNIX的特征在于使用普通文本用于存储数据;分级的文件系统;将设备和某些类型的进程间通信(IPCs)作为文件对待;以及使用大量软件工具。UNIX包括多种公用和主控制程序,即UNIX内核。UNIX内核提供服务以启动和停止程序,处理文件系统和大多数程序共享的其他共同的低级别任务,以及如果多个程序试图同时访问同一资源或设备,调度对硬件的访问以避免冲突。由于UNIX公认的安全、移动性和功能性,已开发了大量相似的操作系统,包括Linux 、Minix 、Mac OS 、FreeBSD 、NetBSD 、OpenBSD 、AIX 、Solaris 和 HP/UX 。所有这些操作系统,与UNIX —起,在此处称为“UNIX类”操作系统。UNIX类操作系统可以安装在很多种硬件上,例如,移动电话、平板电脑、视频游戏控制台、联网器件、主机以及超级计算机。在计算机科学中,执行线程(线程)通常是可被OS调度的最小处理单元。线程通常产生于计算机程序分叉为两个或更多同时运行的任务。线程和进程的实现在OS之间可以不同,但是在大多数情况下线程被包括在进程中。多个线程可以存在于同一进程中并且共享资源(例如,存储器),不同的进程不共享相同的资源。在单处理器系统上,通过时分复用(即,处理器在执行的不同线程之间切換)实现多线程。在多处理器或多核系统中,多个线程可以同时运行在不同处理器或处理器核上。很多现代OS用进程调度器直接支持时间片和多处理器线程。OS的内核允许程序员通过系统调用接ロ操作线程。·用于UNIX的移动操作系统接ロ(POSIX)是ー系列相关标准的名称,这些标准定义用于与Unix类型操作系统兼容的软件的应用编程接ロ(API)以及外壳和公用接ロ。POSIX线程(P线程)是指符合线程的POSIX标准的线程(即,POSIX lc(IEEE 1003. lc-1995),其定义用于创建和操作线程的API)。POSIX API的实现在很多UNIX类符合POSIX的OS上可用,例如,FreeBSD , NetBSD , GNU/Linux , Mac OS XTM 以及 Solaris 。
技术实现思路
一种用于以非抢占方式执行进程的常规可中断线程的技术,包括响应于与针对第一线程的第一消息相关联的第一条目到达运行队列的开端,由第一线程接收第一唤醒信号。响应于接收该唤醒信号,第一线程等待全局锁。响应于第一线程接收全局锁,第一线程从相关联的消息队列中获取第一消息并且处理获取的第一消息。响应于完成第一消息的处理,第一线程向第二线程发送第二唤醒信号,该第二线程的相关联条目是运行队列中的下ー个。最后,在发送第二唤醒信号之后,第一线程释放全局锁。附图说明图I是根据一个实施方式的数据处理环境的高级框图;图2所示为根据一个实施方式在图I的示范数据处理环境中虚拟和物理资源的分层;图3是根据一个实施方式的数据处理系统的高级框图;图4是根据一个实施方式配置的部署物理网络交換机的数据处理环境的一部分的闻级框图;图5是根据一个实施方式配置的物理网络交換机的有关部分的框图;图6是运行根据ー个实施方式配置的物理网络交換机的操作系统(OS)调度器的示范方法的高级逻辑流程图;图7是在根据ー个实施方式配置的物理网络交換机中执行线程间通信的示范方法的高级逻辑流程图;以及图8是在根据ー个实施方式配置的物理网络交換机中执行线程的示范方法的高级逻辑流程图。具体实施例方式根据本公开,公开了ー种技术,其支持在例如Linux的UNIX类操作系统上运行旧有软件(即,旧有裸金属OS)的技木。在各种情况下,在UNIX类操作系统之上运行旧有软件支持对某些旧有代码的复用(reuse),同时通过访问多核、多处理器OS提高可扩展性。虽然这里的讨论涉及针对在实现在虚拟化计算环境中的物理网络交換机中在UNIX类操作系统之上运行旧有软件,但是可以想到,这里公开的技术广泛适用于虚拟化的和非虚拟化的计算环境以及可以实现在除物理网络交換机之外的设备中。如这里所使用的,“主干线程”(stem thread)是指旧有专有用户空间线程,这些线程以串行方式按照消息被发布到主干消息队列(由旧有软件提供的)的顺序非抢占式地(即不可中断的)运行。旧有软件还实现主干分派器,其负责处理主干消息以及调度主干线程。如这里所用,术语“P线程”(pthread)本身是指这样的Unix类OS线程,其按照优先级类中的非特定顺序抢占式(即,可中断的)运行,并且通常完全由UNIX类操作系统的OS调度器来控制。此外,如这里 所用,“主干线程”是已被转换为与P线程类似的主干线程。为了保证应用代码的兼容性,对主干本文档来自技高网
...

【技术保护点】
一种以非抢占式方式执行进程的常规可中断线程的方法,包括:响应于与针对第一线程的第一消息相关联的第一条目到达运行队列的开端,由所述第一线程接收第一唤醒信号;响应于接收所述唤醒信号,由所述第一线程等待全局锁;响应于所述第一线程接收所述全局锁,由所述第一线程从关联的消息队列获取所述第一消息;由所述第一线程处理获取的所述第一消息;响应于完成对所述第一消息的所述处理,由所述第一线程向第二线程发送第二唤醒信号,所述第二线程的关联条目是所述运行队列中的下一个;以及在所述第二唤醒信号的所述发送之后,由所述第一线程释放所述全局锁。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:D·G·卡玛斯N·格霍施DR·鲁N·穆克赫杰V·潘迪
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

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

1