简介
在计算机中,任务输入队列是指存放待处理任务的队列,在计算机中,任务的重要性是不同的,因此任务需要分类,例如在实时系统中,由于在实时系统中都存在着若干个实时进程或任务, 它们用来反应或控制某个(些)外部事件,往往带有某种程度的紧迫性1,根据紧迫性的程度把任务分成硬实时任务和软实时任务。因此操作系统根据任务的紧迫性或优先级不同,把任务加入任务不同优先级输入队列中,或者在处理任务时根据任务优先级选择哪个优先处理。这种队列,可以称做优先级队列。
不同优先级队列是指按照优先级将分成不同的队列,每一个队列对应一种优先级。优先级是指计算机在处理多个作业程序或任务时,决定各个作业程序或任务接受系统资源的优先等级的参数。
优先级队列优先队列是计算机科学中的一类抽象数据类型。优先队列中的每个元素都有各自的优先级,优先级最高的元素最先得到服务;优先级相同的元素按照其在优先队列中的顺序得到服务。优先队列往往用堆来实现。
如果我们给每个元素都分配一个数字来标记其优先级,不妨设较小的数字具有较高的优先级,这样我们就可以在一个集合中访问优先级最高的元素并对其进行查找和删除操作了。这样,我们就引入了优先级队列 这种数据结构。 优先级队列(priority queue) 是0个或多个元素的集合,每个元素都有一个优先权,对优先级队列执行的操作有(1)查找(2)插入一个新元素 (3)删除 一般情况下,查找操作用来搜索优先权最大的元素,删除操作用来删除该元素 。对于优先权相同的元素,可按先进先出次序处理或按任意优先权进行。
优先队列至少需要支持下述操作:
插入带优先级的元素(insert_with_priority)
取出具有最高优先级的元素(pull_highest_priority_element)
查看最高优先级的元素(peek):O(1) 时间复杂度
其它可选的操作:
检查优先级高的一批元素
清空优先队列
批插入一批元素
合并多个优先队列
调整一个元素的优先级
监控软件排队应用程序的系统和方法某些网络通信标准比如FDDI、BISDN和SONET出现之后,京(十亿)位计算机通信之日就到了,而且太(万亿)位通信之日也为期不远。这些高速网络环境需要新的和强有力的工具,它们根据从网络获取的信息,有助于网络设计、网络管理、网络控制功能以及网络服务。这些高速环境中一个至关重要的问题,是监控来自一个或多个高速通信通道的原始数据,以及把这种数据转换为对一个用户、对一项服务有用的“信息”,作为对一种算法(需要时必有)的一个输入,诸如此类。
迄今为止,这个问题已经被视为“实时”网络监控和性能评价条件。网络监控通常定义为对于一个系统的运行,提取、处理、收集和呈现动态信息。那么,网络性能管理分析员就使用监控信息,实时地评价网络资源的状态,通常是只有一个人面对计算机显示,分析监控信息。
管理大型联网结构的需求之一,是监控众多的不同应用程序,它们遍及一个可能包括天壤之别平台的计算机网络,负责信息传输。
在这些应用程序中,有一些是后台任务,通常这样称它们是因为它们并不呈现用户界面。对于在各种系统之间负责信息传输的后台任务,需要了解其特性信息。实际上,应用程序的操作员需要了解一项传输是否成功,以及传输是否遇到问题或瓶颈。遗憾的是,后台任务并不提供任何状态信息,因此应用程序的操作员无法判断应用程序是否工作正确无误。
对于各种各样的应用程序传输,一种广泛使用的方法是消息队列。消息队列使得分布式应用程序能够交换消息,无论硬件和软件资源如何。在消息队列系统中,发送方应用程序不必考虑传递路由,也不必了解接收方应用程序何时拾取这些消息。接收方应用程序能够在适当的时机拾取新的消息,而不必与发送方应用程序保持一种直接联系。如果需要,接收方应用程序也能够确认收到了消息。
消息可以在应用程序之间同步或异步流动。同步模式允许发送方应用程序收到接收方应用程序的回答之后再继续。消息在应用程序之间流动时,也能够以一对一的模式、一对多的模式、多对一的模式或者任何组合进行。
一般说来,一个消息应用程序包含两个部分:应用程序数据和消息标识数据。消息可以由几种参数来标识,比如消息的类型、应用程序的数据长度和消息的优先级。
已知有几种方式来监控消息应用程序及其资源。商业产品如Tivoli System公司的Tivoli和IBM公司的Omegamon都能够监控队列以及确定应用程序的状态。利用这些产品,应用程序的操作员必须持续不断地穿行在多个面板之间,以便找到采取适当措施所需的参数。在这样做时,就有一种风险——忽略了应用程序中发生的重要问题。
其它的商业产品,比如IBM公司的MQSeries和CICS,提供了若干方式来判断队列的深度和应用程序的状态。
授予Bonnell等人的5,655,081号美国专利公开了一种系统,用于在整个分布式计算环境中,使用一种智能的自主代理架构来监控和管理计算机资源和应用程序。如同上述的产品,当一个队列中包含预定数目的无应用程序标识的消息时,这种系统也能够触发一条警告消息。
不过,今日的工具都没有为操作员提供独特的界面,对于要监控的特定应用程序,汇集相关的任务状态和队列深度。相反,已知的系统都是提供整个系统中所有应用程序的信息。
所以,需要为应用程序的操作员提供一种单一的系统,它对一个应用程序和正在使用的资源,汇集了相关的所有信息。
一种计算机实施的方法,用于在运行着至少一个处理任务的消息排队传输系统中,监控上游和下游软件应用程序,本方法包括以下步骤:在一个消息排队传输系统之内,通过把一个输入队列组标识符分配给第一输入队列和分配给第二输入队列,形成第一队列组;在这个消息排队传输系统之内,通过把一个输出队列组标识符分配给第一输出队列和分配给第二输出队列,形成第二队列组;把第一队列标识符分配给第一输入队列,第二队列标识符分配给第二输入队列,第三队列标识符分配给第一输出队列,第四队列标识符分配给第二输出队列;在这个消息排队传输系统之内,把一个任务标识符分配给一个处理任务;确定第一输入队列中存放的第一消息数目,第二输入队列中存放的第二消息数目,第一输出队列中存放的第三消息数目以及第二输出队列中存放的第四消息数目;确定处理任务的活化状态;以及在一个任务监控器存储区域,汇集第一输入队列中存放的第一消息数目,第二输入队列中存放的第二消息数目,第一输出队列中存放的第三消息数目,第二输出队列中存放的第四消息数目以及处理任务的活化状态。2