任务分布图方法四篇

2024-09-11

任务分布图方法 篇1

1 分布式技术概述

分布式计算是计算机技术领域中的一门科学, 分布式计算将需要巨大的计算能力才能解决的问题分成许多的小的部分, 再将这些小的部分分配给许许多多的计算机进行处理, 最后将处理结果汇总得到需要解决的问题的最终结果。分布式计算就是两个或多个软件相互共享信息, 通过互联网技术在一台机或多台机上运行, 可以调用共享的所有计算机的闲置计算能力, 来处理计算量非常大, 由单个计算机或个人在能够接受的时间内无法完成的计算。分布式计算可以共享稀有资源, 均衡多台计算机上的负载, 可以将程序放在最合适运行它的计算机上。

分布式系统是由多个具有计算能力的结点组成, 如果不考虑各个节点的性能差异的情况下, 各个结点都可以执行相应的任务。分布式系统对用户是透明的, 看来起就是普通的系统, 只是运行在分布式系统上的每一个自治处理单元都有各自己的物理存储器, 而且信息传输延迟不能忽略不计, 分布式系统分为共享存储多处理剂, 分布存储多计算机两种类型。

2 分布式环境下的任务调度算法

分布式环境之下的任务调度分为任务分配及任务调度两部分。任务分配是分配应用所需求的资源, 即分配任务在什么结点上执行。分配决策必须在调度执行决策之前执行。任务调度给出任务占用资源的起止时间, 即分配任何什么时候执行。精确的判断任务集的可调度性是在分配任务之后, 在系统中各结点上的任务通过调度算法的可调节性方法来决定任务集是否可调度。

在分布式系统计算环境下, 任务调度的主要作用是均衡分布式系统中各结点的负载, 提高系统的运行效率。在分布式计算系统中, 采用与运算相适应的算法进行任务调度, 为了保证任务调度算法的性能, 在采用任务调度算法之中, 通常会建立任务调度模型。通过采用任务调度模型的大量的模拟分析, 寻找符合条件的任务调度优化算法。

分布式任务调度算法没有集中的调度主机, 对局部范围内的一些结点的负载进行均衡调节, 每个结点与其他一部分结点进行通信。分布式任务调度算法可适用大规模并行分布系统, 扩展性能好。但是分布式任务调度算法复杂、较难实现, 信息分散, 没有全局信息, 跟踪程序运行困难。分布式任务调度结构如图1所示。

在分布式环境下, 任务调度是为了保持各结点负载均衡, 提高系统的效率。根据就绪任务队列的位置、任务调度器的位置以及两者之间的关系, 现有分布式环境下的任务调度算法可分为以下4种类型:

1) 整个系统中仅有一个就绪任务队列和一个任务调度器。这种算法的优点是任务调度管理简单, 容易均衡处理各节点的负载。其缺点是不但对任务的派遣处理需要较多的额外开销, 影响运行效率。而且对维护就绪结点及运行任务调节器的结点的可靠性要求高, 一旦结点出现问题, 整个系统会处于瘫痪状态。

2) 整个系统中只有一个就绪队列, 但每个计算结点上都有任务调度器。这种算法的优点是对各结点的负载容易进行均衡处理, 而且, 一个结点出现问题系统造成的问题不大, 只是减小了计算能力。其缺点是对就绪队列操作要花费额外的系统开销, 影响系统运行效率, 而且维护就绪任务队列的结点必须具有很高的可靠性。

3) 整个系统中的每一个计算节点上都有就绪队列及任务调度器。这种算法的优点是就绪队列及任务调度器分散在每一个计算结点上, 结点出现故障时不会造成对整个系统较大的影响, 只是减少了该节点的计算能力。但该算法的缺点也是非常明显的, 因为将本结点的计算任务调度到其他结点上运行, 对结点间负载均衡问题难以控制。

4) 整个系统中的每个计算结点上都有就绪任务队列, 但只有一个任务调度器。这种算法需要很大的额外系统开销, 不具有实用价值, 在此不再多论。

3 一种分布式环境下实时任务调度算法设计

在分布式环境下的实时系统可分为静态实时系统和动态实时系统两种。静态实时系统是在任务运行之前就调度好了的, 在执行任务时, 只需要到表中查找该如何调度任务, 如何执行操作就可以了。动态调度是在运行期间根据具体的情况进行调度。动态调度要求比较严格, 大多数系统采用静态实时调度。本文所设计的实时调度算法也是采用静态实时调度。在前面已经介绍了分布式任务调度分为任务分配与任务调度两个部分。

在任务分配设计时要将更多的处理任务分配到计算能力强的节点上;若某个节点的负载很大时, 不再调度其他任务到该节点。本文所设计的静态实时算法中, 为了适应系统的实时要求, 采用已有的速率单调调度算法对任务进行调度。本文所设计的分布式实时任务调度结构框图如图2所示, 它包括任务分配、任务调度两个部分。实时任务分配部分主要完成任务集的读取, 任务分配采用加权轮转调度算法将任务分配到各个结点。实时任务调度部分在系统中的每一个结点上执行, 根据各个结点能力不同调度不同的任务, 按速率单调算法进行优先级别分配, 然后按照优先级别的高低调度启动各个任务, 并执行任务。在任务分配器中的任务可抽象为包的形式存在, 各项任务以包的形式发送到任务调度部分, 在各节点上打开任务进行调度。该分布式实时任务调度算法可以简单的理解为:利用加权轮转调度算法的策略对预定义的任务集合理的分配到各个结点中, 再利用基于优先级的调度策略对各结点中的任务进行调度。

在实时任务调度过程中每个任务的处理过程可以采用下在伪代码进行描述:

4 结束语

分布式环境下的任务调度技术是计算机技术中的一个非常重要的技术, 在计算机领域应用越来广泛。分布式环境下的任务调度能使系统中各结点负载均衡, 提高系统的运行效率。本文介绍了分布式技术, 分析了分布式环境下的四种任务调度算法, 最后提出了一种分布式环境下实时任务调度算法。文中所设计的实时任务调度算法中采用的加权转调算法通常应用在网络中进行任务调度且加权转调算法在实际应用中比较成熟。任务分配阶段采用速率单调调度算法, 可以使负载均衡, 实现了分布式实时系统中任务的执行。文中所提出的该静态实时任务调度方案有效的提高了系统的利用效率。

参考文献

[1]孟宪福.分布式环境下任务调度模型研究[J].大连理工大学学报, 2006, 46 (6) :920-925.

[2]孙芳, 陈后金, 张敏.分布计算环境下任务调度双的研究[J].计算机与数字工程, 2006, 34 (2) :47-49.

[3]何琨, 赵勇, 陈阳.分布式环境下多任务调度问题的分析与求解[J].系统工程理论与实践, 2007, 27 (5) :119-125.

[4]余科军.分布式实时系统任务调度算法的设计和实现[D].四川大学, 2006.

[5]谭宜勇, 王锐, 范玉顺.分布式工作流中的自适应实时任务调度方法[J].计算机集成制造系统, 2010, 16 (9) :1887-1895.

[6]刘侃侃.一种用于异构环境中任务调度的高效算法[J].计算机系统应用, 2010, 19 (11) :102-105.

[7]余科军, 蒋毅.分布式实时系统任务调度算法的设计和实现[J].中国测试技术, 2008, 34 (6) :69-72.

任务分布图方法 篇2

关键词:分布式系统;多任务调度;进程;线程;负载均衡

中图分类号:TP316.4文献标识码:A文章编号:1007-9599 (2011) 06-0000-02

Multi-task Assignment and Process/Thread Adjustment in Distribution System

Yao Dong

(Beijing University of Posts and Telecommunications,BeiJing100083,China)

Abstract:Distributed multi-task operating system distribution and task scheduling,load balancing is difficult to achieve,which processes and threads to achieve the task execution and distribution of one of the most important concepts.How to implement a distributed system processes and threads created,and the interaction between the information is a vital part of distributed system design.On the traditional operating system processes and threads and to compare the realization of the mechanism,further discussed in the distributed operating system,how to multi-task allocation,how the different distribution among the host of the process as well as load balancing.

Keywords:Distributed system;Multi-task scheduling;Process;

Thread;Load balancing

一、引言

分布式系统是计算机发展的一个大趋势,目前云计算、云存储的概念已经逐渐落地,实际上云计算就是分布式系统的一种实现。在分布式系统中,进程(在很多操作系统中也称为任务)是十分重要的概念,是实现任务调度与执行的关键,而线程是轻量级的进程,在响应速度与执行效率上相比进程有很大的改进。在分布式系统中如何实现多任务执行,如何在分布的主机以及CPU上进行创建和分配,涉及到调度策略。另外,如何实现分布式系统中进程间以及线程间的通信,也是需要重点考虑的问题。并且关乎分布式系统执行的效率和效果。

我在对分布式操作系统的研究和学习中发现,许多传统单机操作系统的概念实际上是可以沿用的,但是由于分布式系统自身的特性决定了,这些概念的复用是需要根据分布式系统进行调整和完善的。希望通过本文对传统进程与线程的简单分析和比较,从而探讨如何在分布式环境中进行进程与线程的创建与调度,如何在分布式环境中对多任务进行负载均衡。

二、进程与线程

现代操作系统最基本的构件就是进程。进程是进行系统资源分配、调度和管理的最小独立运行单位,操作系统的各种活动都与进程有关。每个进程是由私有的虚拟地址空间、代码、数据和其它系统资源组成。进程在运行时创建的资源随着进程的终止而死亡。

传统的UNIX进程概念在开发分布式系统应用时已力不从心,这些问题的最好解决之道就是线程,线程推广了进程的概念使一个进程可以包含多个活动。如今,由于线程概念的普及,在UNIX系统中已经普遍实现了线程机制,开发并发应用的程序员现在也可以广泛接触到线程的函数库了。

在传统的Unix模型中,当一个进程需要由另一个实体来执行某件事情时,它就fork一个子进程,让子进程去进行处理。尽管这种模式已经成功使用了很多年,但是仍然暴露出以下问题:

fork开销很大。内存映像需要从父进程拷贝到子进程,所有描述字要在子进程中复制一份,等等。当前的系统实现使用一种称为写时拷贝(copy-on-write)的技术,可以避免父进程数据一开始就向子进程拷贝,直到子进程确实需要自己的拷贝为止。尽管有这种优化技术,但fork的开销仍然很大。

Fork子进程后,需要用进程间通信(IPC)在父子进程间传递信息。Fork之前由父进程准备好的数据很容易传递,因为子进程是从父进程的数据空间及所有描述字的一个拷贝开始的,但是从子进程返回信息给父进程却颇费周折。

线程有助于解决这两个问题。线程有时称为轻权进程,因为线程比进程“权轻”。也就是说,创建线程可能比创建进程快10-100倍:

在一个已存在的进程中创建一个线程比创建一个新进程开销更小。创建新的进程需要进行内存的拷贝操作,这就额外的增加了系统负担,而线程则不需要这个拷贝过程。不过由于现在的操作系统的实现是仅仅当内存需要改变的时候才拷贝改动的部分,所以这里的影响相对还是比较小的。

线程通常用在需要比较好的同步操作的场合。例如,某个问题可以分解为多个几乎对等同步处理的任务的话,则是用线程是很好的选择。进程则适合应用在不需要严格的同步的场合。

线程之间共享数据很方便,因为不同的线程本来就是共享同样的存储空间。而不同进程之间共享数据则需要使用一些IPC机制,例如管道、共享内存、套接字等等。

三、分布式操作系统中进程与线程的创建与调度

事实上,当前使用的操作系统都是把任务分割为进程和线程,分时运行在一个处理器中。这种类似的任务处理方式也可以在很多高性能的应用程序中可以看到,例如数据库引擎、科学计算程序、工作站的工程工具和多媒体程序等。

为了增加处理能力,多数操作系统、应用程序都设计为可以在双处理器和多处理器环境中运行,这样可以利用对称多处理器(SMP)结构将进程和线程放到处理器池中进行运算。通过在一个单芯片中执行两个逻辑CPU,超级线程技术在当前的操作系统和高性能应用中进行进程和线程级的并行处理。多CPU之间进行进程分配的思路与分布式操作系统中进程与线程的创建和调度类似。

在分布式操作系统中,一个新进程的创建分为三个步骤:

1.选择一个目标主机。

2.创建一个执行环境。

3.在执行环境中创建线程。

这三个步骤,除选择目标主机以外,其他两项都与传统的操作系统实现机制相同。需要注意的是,不论分布式操作系统的控制权是如何实现的,作为服务器的主机,必须存放各主机中进程的信息,或者在每个主机上有备份。各目标主机间的通信,以进程级的通信为基础,不同进程间的线程通信,也是通过其主线程进行的。

四、分布式操作系统中进程、线程与多任务分配

一个进程中的所有线程都在该进程的虚拟地址空间中,使用该进程的全局变量和系统资源。操作系统给每个线程分配不同的CPU时间片,在某一个时刻,CPU只执行一个时间片内的线程,多个时间片中的相应线程在CPU内轮流执行,由于每个时间片时间很短,所以仿佛各个线程在计算机中是并行处理的。操作系统是根据线程的优先级来安排CPU的时间,优先级高的线程优先运行,优先级低的线程则继续等待。

在分布式操作系统中,多个应用程序同时运行可以采用两种方式进行:

1.协作式多任务方式。协作这个用语意味着多个应用程序之间必须相互协调,依次实现对操作系统的控制。它们并不是真正的多任务执行,因为其中还有多任务共享系统资源的问题。为了让操作系统把控制权从一个程序转换到另一个程序,当前活动的程序就必须周期地检查一个消息队列。

2.带优先权的多任务方式,称为抢先式多任务。在这种方式下,操作系统可以在需要时中断当前的任务,再按照任务队列中各个任务的优先级别来进行任务的调度。

抢先式多任务执行实际上就是抢先式多线程执行,每个线程有一个优先级值。优先级最低的保留给系统使用。其余的分成四类:空闲、正常、高、和实时。注意这些范围是有重叠的。这样做可使调度更灵活,例如,允许某些后台任务比某些前台任务更重要,尽管在通常情况下,前台任务的优先级应该更高。使用实时优先级时要非常当心。如果你把一个任务的优先级设得太高,也可能无法实现多任务执行功能。这是因为一个任务的优先级太高了,它就完全不允许系统中有其他任务运行。

VMM(虚拟机管理程序)负责在分时抢先的环境里调度各个进程和线程,具体包括以下服务:生成线程、管理线程、撤消线程和线程调度。VMM中有两个调度程序:主调度程序和时间片调度程序。主调度程序负责确定最高优先级的线程。只有最高优先级的线程才会运行,其他优先级较低的都被封锁;时间片调度程序负责为所有具有最高优先级的可运行任务分配时间片。

系统运行过程中,线程的优先级可由系统或设备驱动程序改变。例如,一旦中断产生,则处理这个中断的线程优先级临时提高,以便它立即得到时间来处理该中断。完成后,优先级可以再降低。

五、结束语

在分布式操作系统中,实现多任务分配与传统操作系统的实现机制类似,不同的是,需要在不同主机的进程间进行分配,同时还涉及到多线程的情况。但是,基本的思路是以进程为基础,进程的负荷平衡就能够保证线程负荷均衡。具体进程内部的任务分担可以由进程自己实现,机制可以参考传统操作系统的实现。

参考文献:

[1]W.Richard Stevens.Stephen A.Rago.UNIX环境高级编程[M].北京:人民邮电出版社,2006:242-504

[2]W.Richard Stevens.UNIX网络编程:第2卷,进程间通信[M].北京:人民邮电出版社,2010:141-241

[3]W.Richard Stevens.UNIX网络编程.卷1,套接字联网API[M].北京:人民邮电出版社,2010:423-611

[4]何炎祥.分布式操作系统[M].北京:高等教育出版社,2005:343-436

[5]何炎祥,熊前兴.操作系统原理[M].北京:华中科技大学出版社,2001:125-244

[6]佚名.Windows系统进程全解剖[EB/OL].[2009-12-29].http://www.qqread.com/meetwindows/j486113.html

交接任务的方法散文 篇3

无论是一个任务,还是一个任务的多个分支,都使用这一个方法。

交接方法有三个阶段:发布阶段、实现阶段、提交阶段,一共有五件事。

发布阶段的三件事,一,发布为完成这个任务提供的酬劳;二,发布结果评判方法;三,交给一个工作对象。定义结果评判方法即设置任务的内容,可能包括任务的完成时间、必须达成或必须禁止的`内容。工作对象可能是团队也可能是个人,它必须是单独的,不能存在多个工作对象。对于具体的一个任务,不可用任何形式和名义来安排多个工作对象,否则就存在欺诈的可能性;但是可以安排多个相同任务,这样就必须对每个任务依据规则进行验收。

实现阶段的一件事,任务被接收后实现任务的全部权力唯独被接收者掌握,如果发布者违反了这个规则,他必须完全给予接收者酬劳;如果接收者违反了这个规则,他完全失去获得酬劳的资格。权力对应责任,责任对应福报。

提交阶段的一件事,任务发布者必须按照发布阶段中给出的结果评判方法验收工作成果,如果达成则必须给予提交结果的接收者酬劳。尊重法。

社会调查研究与方法任务1 篇4

开放教育专科

《社会调查研究与方法》任务1

社会调查研究课题选题

社会调查研究课题必须根据理论和实际的需要以及现实可行性而定。

从理论方面看,课题应有助于促进当前理论和科学的发展,最好是学科核心领域的前沿性专题和公认的重大理论问题。具体来说,我们可以从这样几个角度来考虑:提出新的创造性理论;重新验证已被证明的理论的正确性; 对某一理论作补充论证; 证明某一理论的新的适用性;质疑,否定或部分否定原有理论; 对社会实践进行理论上的总结和解答,等等。从实际的需要看,调查研究课题要紧密结合社会发展的客观需要,能够解决社会实际问题,对社会实践有较大的促进作用,或者对社会长期可持续发展能够产生一定影响。课题最好与当前社会发展和变化中出现的重大问题或新闻热点相关,即重点考虑时代要求解决的实际问题。有些问题虽然不是现实问题,却能适应当前人们的某种迫切需求,也是有实用价值的课题。

从可行性看,一是要选择调查研究可以解答的课题;二是要根据调查研究者的主客观条件来选题。总之,调查研究课题应根据调查研究者的现实力量、各方面条件的成熟程度、社会配合、社会环境的种种因素来确定。

选题还应该考虑先从简单、具体开始。在选题时,最好能够有专家指导。

上一篇:罐式煅烧炉下一篇:指挥保障