进程调度的任务有

2024-04-29

进程调度的任务有(精选8篇)

篇1:进程调度的任务有

常用进程调度算法的分析与评价

(一)2009-10-31 22:48

进程调度是按照某种调度算法从就绪状态的进程中选择一个进程到处理机上运行。进程调度的两种方式 :

(1)非抢占调度方式

在这种调度方式中,OS一旦把处理机分配给某个就绪状态的进程后,就让该进程一直执行下去,直至该进程完成或由于该进程等待某事件发生而被阻塞时,才把处理机分配给其他进程。

(2)抢占调度方式

在这种调度方式中,进程调度程序可根据某种原则停止正在执行的进程,将已分配给当前进程的处理机收回,重新分配给另一个处于就绪状态的进程。

抢占进程调度的原则:

(1)时间片原则:各进程按系统分配给的一个时间片运行,当该时间片用完或由于该进程等待某事件发生而被阻塞时,系统就停止该进程的执行而重新进行调度。

(2)优先级原则:每个进程均赋于一个调度优先级,通常一些重要和紧急的进程赋于较高的优先级。当一个新的紧迫进程到达时,或者一个优先级高的进程从阻塞状态变成就绪状态的时,如果该进程的优先级比当前进程的优先级高,OS就停止当前进程的执行,将处理机分配给该优先级高的进程,使之执行。

(3)短进程优先原则:当新到达的作业对应的进程比正在执行的作业对应进程的运行时间明显短时,系统剥夺当前进程的执行,而将处理机分配给新的短进程,使之优先执行。进程调度算法评价依据

进程调度性能的衡量方法可以分为定性和定量两种,在定性衡量方面,首先是调度的安全性。比如,一次进程调度是否可能引起数据结构的破坏等。这要求对调度时机的选择和保存CPU现场十分小心。另外,系统开销也是衡量进程调度的一个重要指标,由于调度程序的执行涉及到多个进程的上下文切换,如果调度策略过于繁琐和复杂,将会耗去较大的系统开销。这在用户进程调度系统调用较多的情况下,将会造成响应时间大幅度增加。

进程调度的定量评价包括CPU的利用率评价、进程在就绪队列中的等待时间与执行时间之比等。实际上,由于进程进入就绪队列的随机模型很难确定,而且进程上下文切换等也将影响进程的执行效率,从而对进程调度进行解析是很困难的,一般情况下,大多利用模拟或测试系统响应时间的方法来评价进程调度的性能。

常用进程调度算法的分析与评价

(二)2009-11-01 20:22

四种常用进程调度算法的分析与评价

3.1 先来先服务算法

3.1.1 算法思想

该算法思想是按照进入就绪队列的先后次序来分配处理机。FCFS采用非剥夺调度方式,即

一旦某个进程占有处理机,就一直运行下去,直到该进程完成其工作或因等待某一事件而不能继续执行时才释放处理机。

3.1.2 算法实现原理图

该算法实现原理图如图1所示。

说明:Ready表示就绪队列,Pi表示新进入队列的进程,Finish表示进程运行完毕退出。

3.1.3 算法分析与评价

① 该算法原理简单,易于实现。

② 各进程平等竞争。

③ 由于各进程执行的时间不一样,从而导致相对不公平现象的产生。

④ 该算法有利于长进程,不利于短进程。

⑤ 该算法很少用来作为主调度策略,常常用作辅助调度算法使用

3.2最高优先权优先调度算法

3.2.1 算法思想

该算法的基本思想是进程优先权高者优先调度,是一种最常用的进程调度算法。该算法的关键是如何确定优先数。通常确定优先数的方法有两种,即静态法和动态法。

静态优先权是在创建进程时确定的,其运行特征是优先数确定之后在整个进行运行期间不再改变。确定静态优先权的依据有进程的类型、进程所使用的资源、进程的估计运行时间等因素。进程所申请的资源越多,估计的运行时间越长,进程的优先权越低。进程类型不同,优先权也不同,如系统进程的优先权高于用户进程的优先权。

动态优先权是指在创建进程时,其运行特征是根据系统资源的使用情况和进程的当前特点确定一个优先权,在进程运行过程中再根据情况的变化调整优先权。动态优先权一般根据进程占有CPU时间的长短、进程等待CPU时间的长短等因素确定。占有处理机的时间越长,则优先权越低;等待时间越长,则优先权越高。

3.3.2 算法分析与评价

① 静态优先级调度算法实现较为简单,但不能反映系统以及进程在运行过程中发生的各种变化。而动态优先级法可以满足这个方面的需要。

② 动态优先级调度算法的性能一般介于时间片轮转算法和先来先服务算法之间。

常用进程调度算法的分析与评价

(三)2009-11-01 20:23

3.3时间片轮转调度算法

3.3.1 算法思想

该算法思想是使每个进程在就绪队列中的等待时间与享受服务的时间成比例。即将CPU的处理时间分成固定大小的时间片,如果在执行的一个进程把它分给它的时间片用完了,但任务还没有完成,则它也只能停止下来,释放它所占的CPU资源,然后排在相应的就绪队列的后面去。

3.3.2 算法实现原理图

该算法实现原理图如图2所示

说明:Ready表示就绪队列,Pi表示新进入队列的进程,Finish表示进程运行完毕退出。Not Finish表示分配给某进程的时间片已用完但任务还没有完成,从而插入到Ready队列尾部。

3.3.3 算法分析与评价

① 时间片的长度选择比较困难

时间片的长度选择比较困难是因为时间片长度的选择直接关系到系统开销和进程的响应时间。如果时间片长度过短→导致调度程序剥夺处理器的次数增加→进程的上下文切换的次数增加→系统的开销也加重;如果时间片长度过长,长到能使就绪队列中所需要执行时间最长的进程执行完

毕→轮转法就变成了FCFS算法→FCFS短处不足就显示出来了。

又因为CPU的整个执行时间=各进程执行时间之和+系统开销(各进程切换所花费的CPU时间之和,假定存储开销忽略不计)。即。因此,时间片的长短通常需要由以下因素确定:↙系统的响应时间。

↙就绪队列中的进程数。

↙进程的切换时间。

↙ 计算机的处理能力,计算机的速度越高,时间片就可越短。

② 时间片长度选择的动态性

以上仅仅作了静态分析,通常情况下,就绪队列里地进程个数是不断变化的。因此,每一次的调度都需要计算新一轮的时间片长度,不能用固定的时间片长度来进行所有进程的轮转执行。③ 该算法的扩充——多级反馈轮转法

在上面的算法中,未对就绪队列中的进程加以条件分析(即进入就绪队列的因素),由于进入就绪队列的原因不一样,要求占用处理机的紧急程度也不一样。主要因素有:↙分给该进程的时间片用完,但进程还未完成。

↙ 分给其时间片未用完,而发生了I/O等请求后由阻塞态转变成就绪态。

↙新的进程进入。

因此,根据紧急程度的不一样,建立多个就绪队列,同时赋予不同的的优先级,优先权高的就绪队列优先执行,同一就绪队列中,优先级相同,按照先来先服务进行调度,运行一个给定的时间片,如果没有执行完成则转入到相应的就绪队列中去(运行一次,优先级降低一个等级,等待一个时间片,则优先级升高一个等级)。其实现原理图如图3所示。

3.4 短进程优先调度算法

3.4.1 算法思想

该算法的基本思想是从就绪队列(内存)中选择一个估计运行时间最短的进程,将处理机分配给它。

3.4.2 算法分析与评价

① 该算法能有效降低作业的平均等待时间,提高系统吞吐量。

② 对长进程不利,甚至导致长期得不到处理。

③ 该算法完全未考虑进程的紧迫程度。

④ 进程的长短通常由某种策略估计提供,不能做到真正的短进程优先。

4结语

综述所述,本文从算法思想、算法的实现原理、算法的优缺点等几个方面对先来先服务算法、时间片轮转算法、最高优先权优先调度算法、短进程优先调度算法等四种进程调度算法进行详细地论述。(转自《计算机与信息技术》)

篇2:进程调度的任务有

实验类型:实验名称:实验地点:

学生姓名:班 级:

操作系统 实验报告

必 修 实验日期:2014年4月18日进程调度 二实验楼504 李帅帅 指导教师:张 磊 计科一班 计算机科学与技术系

天津大学仁爱学院——计算机科学与技术系——李帅帅

实验报告内容:

1)实验目的

用c语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。

2)实验器材和设备

硬 件: 二实验楼504计算机

开发工具: Microsoft Visual C++ 6.0

3)实验任务

本实验模拟单处理器系统的进程调度,加深对进程的概念及进程调度算法的理解。用c语言编写和调试一个进程调度的算法程序,有一些简单的界面,能够运行,仿真操作系统中进程调度的原理和过程。通过对调度算法的模拟,进一步理解进程的基本概念,加深对进程运行状态和进程调度

4)实验原理

无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。

基本状态:1.等待态:等待某个事件的完成;

2.就绪态:等待系统分配处理器以便运行; 3.运行态:占有处理器正在运行。

运行态→等待态 往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。

等待态→就绪态 则是等待的条件已满足,只需分配到处理器后就能运行。运行态→就绪态 不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态。例如时间片用完,或有更高优先级的进程来抢占处理器等。

就绪态→运行态 系统按某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态

5)实验过程描述

a)打开Microsoft Visual C++ 6.0,创建工程。

b)根据要求用 c语言代码实现应用程序,并调试完成。c)运行程序,根据提示输入相应的字符。

d)输入实验测试内容,并观察执行窗口显示的过程。

天津大学仁爱学院——计算机科学与技术系——李帅帅

q=(struct pcb *)malloc(sizeof(pcb));

cin>>q->name;

cin>>q->needtime;

q->cputime=0;

q->priority=P_TIME-q->needtime;

q->process=ready;

q->next=NULL;

if(i==0)

{

p=q;

t->next=q;

}

else

{

q->next=t->next;

t=q;

q=p;

}

i++;} return p;}

void display(pcb * p){ cout<<“name”<<“ ”<<“cputime”<<“needtime”<<“ ”<<“priority”<<“ ”

<<“state”<

cout<

name;

cout<<“ ”;

cout<

cputime;

cout<<“ ”;

cout<

needtime;

cout<<“ ”;

cout<

priority;

cout<<“ ”;

switch(p->process)

{

case ready:cout<<“ready”<

case execute:cout<<“execute”<

case block:cout<<“block”<

case finish:cout<<“finish”<

}

天津大学仁爱学院——计算机科学与技术系——李帅帅

void priority_cal(){ pcb * p;system(“cls”);p=get_process();int cpu=0;system(“cls”);while(!process_finish(p)){

cpu++;

cout<<“cuptime:”<

cpuexe(p);

display(p);

Sleep(1000);} printf(“All processes have finished,press any key to exit”);getch();}

void display_menu(){ cout<<“nCHOOSE THE ALGORITHM:”<

pcb *get_process_round(){ pcb *q;pcb *t;pcb *p;int i=0;t=(struct pcb *)malloc(sizeof(pcb));p=(struct pcb *)malloc(sizeof(pcb));cout<<“input name and time”<q=(struct pcb *)malloc(sizeof(pcb));

cin>>q->name;

cin>>q->needtime;

q->cputime=0;

天津大学仁爱学院——计算机科学与技术系——李帅帅

{

} } return t;}

void set_state(pcb *p){ while(p){

if(p->needtime==0)

{

p->process=finish;//如果所需执行时间为0,则设置运行状态为结束

}

if(p->process==execute)

{

p->process=ready;//如果未执行状态则设置为就绪

}

p->next;} }//设置队列中进程执行状态 void display_round(pcb *p){ cout<<“NAME”<<“ ”<<“CPUTIME”<<“ ”<<“NEEDTIME”<<“ ”<<“COUNT”<<“ ”<<“ROUND”

<<“ ”<<“STATE”<

cout<

name;

cout<<“ ”;

cout<

cputime;

cout<<“ ”;

cout<

needtime;

cout<<“ ”;

cout<

count;

cout<<“ ”;

cout<

round;

cout<<“ ”;

switch(p->process)

{

case ready:cout<<“ready”<

case execute:cout<<“execute”<

case finish:cout<<“finish”<

天津大学仁爱学院——计算机科学与技术系——李帅帅

篇3:进程调度的任务有

1 Linux进程调度原理

1.1 进程调度时机

在Linux中, 进程调度时机与进程的调度方式和引起进程调度的原因有关。在linux中进程被调度发生切换一般分两步完成:一是通过时钟中断触发更新检查机制, 看是否需要发生进程切换;二是利用schedule () 函数来完成进程的切换。

利用schedule () 完成进程切换有两种情况:一是当前进程因缺乏资源而被阻塞, 主动调用schedule () ;二是当前进程用完了它的时间片, 或者被唤醒的进程的优先权比当前进程的优先权高, 再或者是系统调用sched_setscheduler () 函数, 就会被动调用schedule () 。

1.2 进程调度依据

进程一旦被创建, 其所有相关信息被放在进程对应的数据结构task_struct中, 当调度程序运行时, 会根据task_struct结构中的policy、priority、counter和rt_priority四个成员[2]来确定要调度的进程。

policy表示进程的调度策略, 目前主要有以下五种[3]:SCHED_NORMAL、SCHED_FIFO、SCHED_RR、SCHED_BATCH和SCHED_IDLE。SCHED_NORMAL用于普通进程, SCHED_FIFO是用于实时调度的先入先出调度算法, SCHED_RR是实时调度的轮流调度算法, SCHED_BATCH用于非交互的处理器消耗型进程, SCHED_IDLE是在系统负载很低时使用。

priority设置进程的静态优先级。

counter用来记录当前时间片内该进程还允许运行的时钟数, 它是进程调度的主要依据, 其值在不断的减少, 被当做是动态优先级。

rt_priority表示实时进程的优先级, 它的取值范围1-99, 对普通进程而言, 它的值是0。

Linux用goodness () 函数计算处于就绪状态的进程的优先级[4], 该函数根据以上四项, 结合其他一些因素, 给每个进程赋予一个权值, 调度程序把这个权值作为选择进程的唯一依据。

2 Linux进程调度算法

2.1 进程调度相关的主要数据结构

2.2 结构体task_struct

Linux内核是通过进程描述符即结构体task_struct来管理进程的, 该结构体包含了进程所需要的所要信息, 进程的调度信息也包含其中, 主要有以下几个。

(1) state。结构体成员变量state表示进程的状态。一个进程可能有7种状态:TASK-RUNNING, TASK-INTERRUPTIBLE, TASK-UNINTERRUPTIBLE, TASK-STOPPED, TASK-TRACED, EXIT-ZOMBIE和EXIT-DEAD。在进程调度的过程中, 进程的状态是发生变化的。

(2) prio、static-prio和policy。这三个变量分别表示进程的静态优先级、动态优先级和调度策略, 系统根据三个变量值和counter成员值计算进程的优先级。

(3) sleep-avg。该变量表示进程的平均等待时间。它是进程动态优先级计算分关键因子, 它的值越大, 计算出来的优先级越高, 其值在0到NS_MAX_SLEEP_AVG之间变化。

(4) s l ee p-cr e d it。该变量表示进程的交互程度。其值在-CREDIT_LIMIT和CREDIT_LIMIT+1之间变化, 初值是0, 而后根据不同的条件发生变换, 其值加1或减1, 该值一旦超过CREDIT_LIMIT, 表示该进程是交互进程, 所以, 它是区别CPU繁忙型和I/O繁忙型作业的重要因素。

(5) array。该变量指向当前处理器的active就绪进程序列。

3 就绪队列struct-runqueue

在linux2.6支持多核cpu, 系统为每个CPU分配了一个就绪队列, 每个CPU就绪队列由结构体struct-runqueue来描述, 该结构体有一个prio_array结构体数组, 该数组中有个两个prio_array结构体, 分别对应active和expired两个就绪数组。active指向时间片没有用完, 还可以被调度的就绪进程;expired指向时间片已经用完的就绪进程, 当active中的task为空时, 交换两个数组的指针值。

prio_array结构体的定义如下[5]。

其中, nr-active表示该prio-array机构体上挂着多少个任务;bitmap表示优先级位图, 用于快速定位优先级最高的进程, 其初始值为0, 当一个优先级为N的进程变为运行态时, bitmap中的第N为变1;queue是一个指针数据, 每个数组标记一个链表头, 每个链表挂一串具有相同优先级的进程。

进程调度时, 系统首先找到bitmap成员第一个为1的位置, 假设bitmap第6位是1, 然后访问struct list_head queue[MAX_PRIO]数组的第6个成员, 找到优先级为6的task链表的表头, 最后, 取下该表头的第一个task, 将其调度。

3.1 调度函数schedule () 的作用

Linux系统中, 进程的调度主要是由schedule () 函数实现的, 它的主要作用是选择一个优先级最高的进程代替当前的进程运行。Schedule () 函数的工作流程大概包括:清理当前运行的进程、修改内核中的某些数据结构、选择下一个要运行的进程、设置新进程运行的环境、完成进程的切换。

schedule () 函数先执行以下代码:

代码执行时, 调用sched-find-first-bit () 函数, 找到当前处理器就绪队列的active进程数组中优先级最高的非空就绪进程链表, 选择链表中的第一个进程为将要运行的进程, 如果当前进程和将要运行的进程不是同一个进程, schedule () 函数调用context_switch () 完成进程的切换。

3.2 算法存在的问题

在多处理器系统中, 存在多个就绪进程队列runqueue, 每个处理器对应一个。系统调度过程中, 每个处理器上的任务不是固定不变的, 随着时间的变化, 每个处理器上的负载发生变化, 可能会出现有些处理器超载运行而有些处理器闲置的情况。为提升系统的整体性能, 在Linux中会把负载较重CPU上的任务转移到相对较空闲的CPU上, 进行负载平衡。

在Linux中, 由于处理器负载不均衡而进行的负载平衡操作, 会使预取到重载处理器高速缓存 (cache) 中的指令和数据失效[6], 造成缓存效率下降, 进而影响整个计算机系统的性能。本文针对缓存失效问题提出了改进的方法。

3.3 调度算法的改进

(1) 负载转移目标的选择。先利用Linux系统支持的用户锁定机制futex[7], 把共享资源多的进程关联起来, 利用转移函数确定任务的目标端时, 利用该锁将关联的进程分配到同一个处理器执行。

(2) 修改task_struct结构。在task_struct中添加一个整型的字段cpuid, 表示对一个进程来说, 最适合运行的cpu。task_struct结构如下。

(3) 修改Futex内容。系统利用futex将共享资源多的进程关联起来, 利用该锁在唤醒某一进程时, 需要将CPU的编号一起发给被阻塞的进程。修改后的函数futex_wake核心代码[8]如下。

负载平衡时, 利用move-task () 函数进行任务转移, 在该函数中, 增加判断cpuid的操作, 作为任务转移时选择需平衡操作的cpu特征值。

通过上述的改进方法, 使共享资源多的进程尽量被分配到同一处理器上运行, 从而在一定程度上提高了缓存的利用率。

4 结语

本文分析了Linux系统的调度原理和调度策略, 详细分析和阐述了结构体task_struct中同调度密切相关的成员的作用、调度函数schedule () 的调度过程。并针对系统调度过程中出现的缓存失效问题给出解决的办法和改进的算法。

参考文献

[1]贺炎, 刘曙霞.Linux的进程调度策略[J].电子科技, 2004, 5:31-34.

[2]陈佳闻.Linux进程调度策略的分析[J].山东农业大学学报 (自然科学版) , 2012, 43 (2) :279-282.

[3]Linux进程管理之task_struct结构体 (上) [EB/OL], http://blog.csdn.net/npy_lp/article/details/7292568 2014, 9, 10.

[4]张立, 王茜竹, 王朝霞, 练有品.Linux内核的进程调度原理及改进算法研究[J].后勤工程学院学报, 2006, 3:44-48.

[5]Linux如何实现 (1) 调度[EB/OL]http://www.linuxidc.com/Linux/2013-03/81434.htm 2014, 9, 9.

[6]Youhui Zhang, Ziqiang Qian, Weimin Zheng.A Software-Controlled Cache Coherence Optimization for Snoopy-based SMP System[J].Computational Intelligence and Natural Computing, 2009.CINC&apos;09.International Conference, 2009:155-157.

[7]H.Franke, R.Russell, and M.Kirkwood.Fuss, Futexes and Furwocks:Fast User level Locking[J].In Proceedings of the Ottawa Linux Symposium, Ottawa, Canada, 2002:479-495.

篇4:进程调度的任务有

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

中图分类号: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

篇5:调度中心工作的基本任务及职责

第一条 调度室是统一组织协调安全、建设、生产、洗选、装车、煤质、检修、后勤保障等环节的指挥中心,对各环节实行综合调度。

第二条 调度工作的基本任务是以安全生产为中心,指挥各生产系统正常运行,组织和协调生产准备工作,全面、均衡地完成各项生产计划,随时掌握安全生产情况,综合平衡,及时反映和解决生产中的矛盾和薄弱环节,使整个生产过程均衡、有序地进行。凡涉及影响安全生产的问题,有权对同级业务部门进行统一调度,行使调度职权。

第三条 调度室按照中煤陕西公司下达的月度建设生产作业计划,编制本矿月度计划。

第四条 对各安全生产重点环节实施监督检查,协调解决存在的问题,并及时向领导汇报和通知相关部门。

第五条 贯彻“安全第一”的生产方针,监督重点安全隐患的整改,接收和上报各类安全事故,按照领导的指示做好应急处置。

第六条

调度工作要做到坚持原则,实事求是,有令必行,有禁必止,下级必须服从上级,根据生产需要和领导指示,有权调动人力、物力以及车辆,各单位必须坚决服从命令。

第七条 认真做好上情下达,下情上报工作。对上级主管部门及本单位的通知、通报、指示、指令、决议及时下达,并严格检查贯彻执行情况。

第八条 根据工作需要,督促和检查计划、生产、安全措施和领导指示的落实情况。

调 度 中 心 安 全 责 任 制

第一条 调度室在组织日常生产中,要严格按照《煤矿安全规程》、《作业规程》、《操作规程》和施工组织措施指挥生产,严禁违章指挥。

第二条 全面负责调度中心安全工作,努力实现双零目标。第三条 制定各类安全措施,严格执行安全生产法规/制度。

第四条 做好项目部各类工程的检查指导工作,并定期检查,及时消除事故隐患。第五条 及时填写各类报表,并做好报送资料工作。

第六条 对发现的隐患及时下达隐患整改通知书,确保安全生产。

第七条 安全调度任务是认真贯彻落实党和国家有关安全方面的方针政策;落实上级有关安全工作指示精神;按时汇报安全动态及重大隐患的处理情况;协助有关部门制定安全防范措施,力争安全生产目标的实现。

第八条 调度室值班调度员有权向下询问安全生产情况,被询问单位的当日值班领导有责任汇报所询问的内容,随叫随到,有问必答,不得借口不进行汇报。

第九条 调度室要严格监督各单位对三大规程的的执行情况,必须按照先安全后生产,不安全不生产的原则,处理好安全与生产之间的矛盾。对有争议的问题,必须采取应急措施,并立即向值班领导汇报,按批示严格执行。调度室对安全状况不好或不符合规程规定、安全措施不力的作业行为有权命令停止作业。

第十条 调度室在参与制定作业计划时,要认真审查生产条件是否符合安全生产要求,坚持不安全不生产的原则,坚决克服盲目追求生产而忽视安全的行为,正确处理安全与生产的关系。

第十一条 在组织、处理、抢救重大事故时,调度员有权按照领导指示,调动所需人力、物力,分秒必争进行抢救工作。在重大事故发生后,要按事故汇报应急程序立即通知值班领导、主管领导和有关部门,并汇报上级调度。

第十二条 下发的调度通知、通报、调度令是传达领导紧急指示,进行紧急工作部署的重要手段,属于紧急公文,具有正式文件的效力,各单位必须严格执行。

第十三条 加强培训,提高调度人员业务技术水平,使调度人员具有较高的安全生产知识和处理安全生产问题的能力。

第十四条 全面贯彻执行党和国家安全生产的方针政策,认真贯彻执行上级公司和矿里制定的各项安全生产命令、指示、指令、规程和条例。

第十五条 调度室应参加月度安全生产例会,并贯彻执行会议的决定。

第十六条 调度室必须建立伤亡事故、非伤亡事故、因事故停产、因安全不好停产的逐级汇报制度。调度值班员要做好原始记录,认真执行好交接班制度。

第十七条 调度要建立月非伤亡事故分项统计分析制度,视安全情况,不定期发布调度安全通报。第十八条 调度室对人身事故和停产、停电、停风、停热及通信中断等非人身事故要立即汇报公司总调。

第十九条 季节性及夏季“三防”、冬季防寒防冻调度工作,要在各级领导和“三防”指挥部的统一安排下进行。

调度中心副主任岗位责任

一、在组织日常生产中,要严格按照《煤矿安全规程》、《作业规程》、《操作规程》和施工组织措施指挥生产,严禁违章指挥。

二、在部门经理的领导下,对项目工程进行协调组织指挥。并主持调度中心日常工作。

三、组织工程环节的协调,强化薄弱环节,行使调度职权,组织人力物力,控制事故。

四、负责组织工程项目部各类会议,对会议有关安排和决议负责检查督促。

五、负责组织各类协调平衡会议,对影响安全生产及施工的问题要及时进行协调平衡。

六、负责对项目部领导及上级部门的指示、指令、通知,组织实施工作,同时负责向项目部领导及上级部门请示汇报工作。

七、负责有关停电、停水及设备检修等事宜的审批工作。

八、负责协调平衡基层反映的有关问题。

九、组织协调煤矿建设期间生产安全事故应急救援工作。

十、负责调度中心内部业务建设管理工作,达到规范化、标准化。

十一、负责项目施工信息管理和数据统计处理工作。

十二、负责项目部干部值班﹑现场检查的管理考核工作。

十三、完成项目部领导交办的其它工作。

调度中心调度员岗位责任

第一条 在组织日常生产中,要严格按照《煤矿安全规程》、《作业规程》、《操作规程》和施工组织措施指挥生产,严禁违章指挥。

第二条

协助主任领导,从事施工现场的生产管理,平衡协调各施工单位工种之间的作业关系。

第三条 准确掌握当日当班次的工作计划与施工进度。第四条 了解不同标高段位的岩石变化情况,依据实际监督和检查情况循化作业中出现的问题,一般的就地解决,把握不准的汇报领导。

第五条

如实记载当班调度日志,包括各施工单位进度、作业人数、作业内容、工程质量及其它事宜。

第六条 协调影响施工作业的相关问题,如风、水、电等及时让现场问题得到解决。第七条

调度和指挥车辆,签发和下达发车命令,记录和统计月度车辆使用情况,并向主任汇报。第八条 遇到特殊情况及时汇报工地值班长和上级领导,可能情况下及时处理现场紧急事宜,如撤人、停电、抢险、救人等。第九条

篇6:进程调度的任务有

上篇介绍的任务与进程显示工具tlist,其主要作用是为管理任务和进程提供信息.所谓"管理",不外乎是中止某个任务或进程,或改变它们的优先权.命令行形式的任务与进程管理工具,只有中止进程功能,没有改变优先权的功能.程序名是Kill.EXE.kill的意思为杀死!即可以用它来"杀死"一个现存的任务或进程!听起来是不是有点恐怖啊?为了不致觉得吓人,我改用"中止"这个名称.中止也好杀死也罢,都有一个惟谁试问拿谁开刀的问题:你要中止哪个任务或哪个进程?它的名字如何得到?从什么地方得到线索?要改变某一个任务或进程的优先权,你凭的是什么?这又得先了解原来的优先权级别,这一切信息,都必须由上篇介绍的任务与进程显示工具为你提供.所以,以下都假设你已经用过tlist,并且得到了相应的进程名字或PID.

Kill.EXE,其完整的语法及用法如下:

kill [/f] {process_id | pattern}

命令:Kill

参数:

/f : 进行强制中止。

process_id: 指定所中止的任务或进程的PID.例如:

已知wnvirq32.EXEd的PID是204,在命令行环境中执行:

kill 204

返回:process #204 killed,也就是先告诉要中止进程的PID,然后中止它.

pattern: 指定所中止的任务、进程或运行窗口标题的名字, 可以使用完整名字或统配符,

假设已知atsvc.exe 是一个进程名字,则执行:kill atsvc 则返回process #180 [atsvc.exe] killed,180是PID号.这个参数也可以像dos命令那样使用统配符,如下面的命令:

Kill *help

会将所有名字中包含有help字符的任务、进程和窗口中止

Process Viewer 这个"杀死"任务或进程的工具,除了Kill.exe外,还有一个for windows的版本,名子是:Process Viewer,这就是上篇我们提到的那个程序了,名字的中文含义有"进程观察"的意思,乍看起来显得中立且温文雅尔,只是第三个按钮的标题是Kill Process,这一看,又不像"善哉"之辈了.

篇7:进程调度的任务有

1、按“Windows +X”组合键,选择进入“运行”;

2、输入“msconfig”(不包括引号,可直接复制),按回车键;

3、进入“系统配置”,选择“服务”,勾选左下角“隐藏所有Microsoft服务“,再点击”全部禁用“,点击”应用“;

4、再点击“服务“边上的”启动“选项,点击”打开任务管理器“;

5、在列出的启动项上,点击右键,选择“禁用“,禁用全部启动项;

6、关闭“任务管理器“,再”系统配置“界面下点击”确定“,根据提示重启电脑,

Windows8任务管理器关闭普通进程提示拒绝访问的解决方法

篇8:进程调度的任务有

ERP系统集成了先进的信息技术与管理思想, 为企业合理调配资源、最大化创造社会财富提供了坚实的基础。伴随着企业的不断发展壮大, ERP系统的规模及复杂性可能成倍增加, 而在信息化的背景下, 企业的各种业务也越来越多依赖于系统的运行。如何提高系统性能, 以更高的效率和更强的能力响应市场供求关系的变化便成为ERP系统实施与运维过程中需要重点考虑的问题。伴随着业务的发展, 系统将产生一批热点资源, 针对这些资源进行操作的进程将频繁产生或者以较大的数量并发产生, 这将导致与热点资源相关的网络节点成为系统瓶颈。那么, 如何在保证正常业务不受影响的前提下, 通过有效的进程调度策略达到系统负载均衡便具有重要的研究价值。

Stankovi提出的基于神经网络的全局动态物理负载均衡算法、Bryant提出的动态局部物理分布的次优算法以及Barak提出的全局动态负载均衡算法, 所针对的都是资源的复制与扩散问题。Hac提出了一种综合考虑文件与进程的负载均衡算法, 但复杂度较高, 无法适用于动态的实时环境。Hurley的方案仅以响应时间最小作为目标函数, 算法所考虑的因素局限性较强。在大型ERP系统中, 如若不进行良好规划, 负载不均衡现象更易出现, 所以有必要对系统实施负载均衡处理以提高其性能。均衡操作可以在不同的系统层次上进行, 如物理硬件层、网络传输层与应用层等。本文的研究目标是在已有的系统配置下, 不改变端系统和网络的底层硬件设施, 仅通过对应用程序进程进行合理调度, 从而使整个系统的运行性能达到更高水准, 因此, 重点研究应用层上的负载均衡算法。

1 问题模型及描述

负载均衡策略的指导思想是通过对应用程序进行适当调配, 达到对资源的优化利用, 以及实施并行运算, 来提高系统吞吐量, 缩短任务响应时间。其算法一般分为集中式和分布式两大类。在集中式算法中, 系统一般设置一个全局的汇聚节点, 存储整个网络的有关信息, 并负责监控其他各节点的负载情况, 再根据一定的策略发起全局的均衡操作。此类算法实现简单, 较适合中小规模的应用系统。但由于汇聚节点需要知道全局信息, 随着节点数的增加, 算法性能受端系统处理能力与网络带宽的影响增大, 从而使汇聚节点本身成为整个系统的瓶颈。而在分布式算法中, 无需设置全局性的汇聚节点, 各节点独立计算自身的负载信息, 并按照某种既定策略触发均衡操作, 所以避免了集中式算法在大规模应用的情况下复杂度较高和易发生单点失效的不足。根据上述分析, 提出了一种基于进程调度的动态负载均衡算法 (Load Balancing Algorithm based on Process Scheduling, LBAPS) , 该算法采用分布式策略, 所有节点均可在重载发生时发出均衡操作请求, 在进程调度层面与系统中其他节点协同完成均衡操作, 从而用较少的操作代价达到系统资源的优化配置。

1.1 模型定义

ERP系统网络可以表示为一个二维空间的完全图G= (V, E) , 其中, V是顶点集合, 表示系统中的网络节点, E V×V是边集合, 表示网络节点之间的链路。对于集合V中的每个元素v, 将在其上运行的进程分为两大类, 一类是正在执行的进程, 另一类是等待队列中的进程。Rp (v) 表示第一类进程所要耗费的系统资源, Qp (v) 表示等待队列的长度, 针对这2个指标均设置相应的阈值Rmax (v) 和Qmax (v) 以判断节点是否处于过载状态。

为了细致描述整个系统的负载状况, 这里将参与应用的ERP节点抽象为5种类型, 分别定义如下:

定义1:空载节点集SN={v/Rp (v) =0∧Qp (v) =0}。

定义2:轻载节点集SL={v/Rp (v)

定义3:当前过载节点集SN O={v/Rp (v) ≥Rmax (v) ∧Qp (v)

定义4:将来过载节点集SFO={v/Rp (v)

定义5:过载节点集SO={v/Rp (v) ≥Rmax (v) ∧Qp (v) ≥Qmax (v) }。

对于处理单元的颗粒度, 这里将其规定为若干进程合集的一个常数值UP, 假设前提是系统处于正常运转状态, 安全防范措施到位, 从而排除出现干扰或者恶意进程的可能性。另外, 还假设进程调度的过程可以平滑地进行, 当进程被调度到新的系统节点时, 其对资源的访问不受影响。

1.2 目标函数

LBAPS算法的出发点是通过合理的进程调度, 将进程从相对过载的节点迁移到相对轻载或者空载节点, 那么可以近似认为在某一个时间区间内, 系统的总负载量与平均负载量保持不变, 则从全局负载均衡的观点出发, 定义算法的目标函数如下:

式中, xv表示节点v的负载量, 表示系统负载量的算术平均值, 其表达式如下:

式中, |V|表示系统中参与应用的节点数。

2 LBAPS算法设计

2.1 进程调度规则

作为一种动态算法, LBAPS必须能够实时监控系统中各节点上负载的动态变化情况, 以及时调整进程分配, 合理优化节点上的资源利用, 要避免对正常的工作进程产生影响, 或者说要尽可能将影响降到最小。同时作为一种分布式算法, 系统中不存在任何集中引导节点, 每个节点均处于平等地位, 能够独立运行算法, 发起负载均衡操作, 所以为了避免由于算法的无规则运行以及进程的频繁往复迁移造成整个网络的拥塞与抖动, 定义如下进程调度规则。

规则1—过载节点发起调度规则

IF (v∈SO) &&IF (SN≠Φ||SL≠Φ) , v发起进程调度请求。

规则2—相对过载节点等待发起调度规则:

IF (v∈SNO∪SFO) &&IF (SN≠Φ||SL≠Φ) , IF (SO==Φ) v, 发起进程调度请求。

ELSE, 等待一个时间片。

以上两2个规则, 其总的前提是系统中存在轻载或空载节点。当出现过载节点时, 由过载节点直接发起均衡请求;当出现相对过载节点时, 它们将等待系统中的过载节点完成操作后再发起进程调度请求。本文为了方便描述, 忽略了对节点间交互动作的描述, 而在实际应用中, 所有集合信息与执行状态的获取可通过在线消息机制来实现。

2.2 负载均衡过程

如上所述, 负载均衡操作由系统中的过载节点与相对过载节点发起, 进程调度的方向为从 (相对) 过载节点向轻载或空载节点迁移, 结束条件为经过计算得到了目标函数F (V) 的近似最小值, 或者系统中不存在 (相对) 过载节点或不存在轻载节点与空载节点。算法伪代码如下:

其中, L为一预设常量, 其含义是在L次连续的计算中, 均不能优化目标函数的取值, 则在此情况下, 算法认为在当前网络环境下, 已无法通过进程调度策略对节点v进行负载均衡操作。

从上述伪代码可以看出, LBA-PS的执行过程主要包括内外两重循环。假设系统包含n个网络节点, 则外循环遍历所有过载节点与相对过载节点的复杂度为O (n) , 内循环虽然每次都随机地选取轻载或空载节点, 但显然其复杂度亦为O (n) 。故对于节点规模为n的系统, LBAPS算法的时间复杂度为O (n2) 。

3 实验及结论

本实验比较的是无负载均衡和启用LBAPS负载均衡2种模式下瓶颈节点占节点总数百分比的差异, 所谓瓶颈节点即定义3、4、5中所描述的集合元素。首先, 在二维平面上产生一定数量的节点, 为每个节点产生Rp (v) 和Qp (v) 。其中Rp (v) 抽象为并发进程数, 取值范围是[5];Qp (v) 抽象为顺序进程数, 取值范围是[20, 40]。同时, 每个节点还将一次性地产生各自的Rmax (v) 和Qmax (v) , 取值范围分别是[1,2]和[4]。其次, 按一定的频度为每个节点产生△Rp (v) 和△Qp (v) , 用来更新节点的Rp (v) 和Qp (v) , 2个△值的取值范围分别为[-2, 2]和[-10, 10]。图1中, 在每个节点规模下均产生10次△值, 之后通过执行LBAPS来比较瓶颈节点率的不同;图2中, 将节点规模固定为50, 通过△值产生次数的不同来比较2种模式下系统性能的差异。从图中不难看出, 实施了LBAPS策略后, 系统的整体性能显著提高。

4 结语

从进程调度的应用场景出发, 讨论了ERP系统负载均衡问题, 提出了一种动态的分布式负载均衡算法LBAPS。该算法不设置全局唯一的汇聚节点, 避免了集中式算法复杂度高以及易产生单点失效的问题。理论分析及仿真实验结果表明, 算法能够以较低的时间复杂度达到显著的负载均衡效果, 故而较适合应用在大规模节点的业务场景中。在接下来的工作中, 首先需要进一步研究进程迁移的代价问题, 避免因进程迁移带来额外的系统负担, 从而抵消甚至超过均衡操作所带来的收益;其次, 需要研究处理单元的颗粒度问题, 过大的颗粒度可能在系统中造成新的过载节点, 而过小的颗粒度又会在节点间产生频繁的进程迁移动作, 同时也增加了系统的通信开销;第三, 需要对文中所提出的节点状态模型进行更加细致深入的探讨, 从而使得抽象的模型更能反映现实应用的本质;第四, 还要研究进行资源迁移或者复制的有效机制, 使进程迁移能够平滑地进行, 从而减少对上层应用产生的影响。

摘要:针对ERP系统负载均衡问题展开研究, 提出了一种基于进程调度的分布式动态负载均衡算法LBAPS。通过对参与应用的节点进行合理分类, 算法制定了进程调度的若干规则, 系统节点在这些规则基础上协同进行均衡操作。理论分析指出, 算法运行的时间复杂度为节点规模的平方阶。仿真实验结果表明, 相对无负载均衡的系统, 本算法可以带来显著的优化效果。

关键词:ERP系统,进程调度,负载均衡,动态

参考文献

[1]Stankovic J A, Sidhu I S.An adaptive bidding algorithm for process, clusters and distributed groups[A].Proceedings of International Conference on Distributed Computing Systems[C], New York, NY, USA:IEEE, 1984:49-59.

[2]Bryant R M, Finkel R A.A stable distributed scheduling algorithm[A].Proceedings of International Wire and Cable Symposium[C], Los Alamitos, California, USA:Comput Soc Press, 1981:314-323.

[3]Barak A, Shiloh A.A distributed load-balancing policy for a multicomputer[J].Software:Practice and Experience, 1985, 15 (9) :901-913.

[4]Hac A.A distributed algorithm for performance improvement through file replication, file migration and process migration[J].IEEE Transactions on Software Engineering, 1989, 15 (11) :1459-1470.

[5]Hurley R T.File migration and file replication:a symbiotic relationship[J].IEEE Transactions on Parallel and Distributed Systems, 1996, 7 (6) :578-586.

[6]Wu Ming, Sun Xian-he.A General Self-adaptive Task Scheduling System for Non-dedicated Heterogeneous Computing[A].Proc.Of the IEEE International Conference on Cluster Computing[C].IEEE Press, 2003:354-361.

[7]梁根, 秦勇, 郭小雪, 等.基于动态多处理节点的分布式系统任务调度[J].计算机工程, 2009, 35 (9) :31-36.

上一篇:中共会址参观报告下一篇:开出生证明