登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

这是我的blog,^_^

Come on,everybody!

 
 
 

日志

 
 

工作管理  

2009-12-18 15:21:31|  分类: AS400 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1. 工作管理(Work Management)是在 OS/400中实现的,它的主要功能是负责处理用户提交给系统的请求。OS/400是以作业(JOB)为基本单位实施对工作的管理,作业是OS/400进行系统资源分配的单位。每个作业又可以进一步分解为一个或若干个顺序的作业步(Routing Step)。OS/400支持多种类型的作业以满足用户的各种需求。为了更合理、有效地使用系统资源,系统(System)被划分成若干个子系统(Subsystem),所有的作业在子系统的监控下运行。系统有些属性决定了整个系统的大环境,并会影响所有的子系统。系统的属性由系统值(System Value),网络属性(Network Attributes)等定义。每个子系统还要有自己的属性,这些属性在子系统描述(Subsystem Description *SBSD)中定义。在子系统中运行的每个作业也有自己的属性,作业的属性主要来自作业描述(Job Description *JOBD)和用户描述(User Profile *USRPRF)。
工作管理 - 猫矛卯茂 - 这是我的blog,^_^
2. AS/400系统有两种工作处理方式:交互式和批处理式。
   交互式的处理方式类似于交谈,在作业运行过程中需要用户和系统之间双向的交流.
   对于批处理方式的工作,用户只需要将运行所需的相关信息一次性地传递给系统即可,不再需要用户对作业的运行进行干预,系统也不会向用户要求更多的信息,用户可以去完成其它的工作。
   交互式处理响应时间短,可更好地发挥人的主观能动性,但需要的系统资源多(如终端),批处理方式周转时间长,但所需资源少一些。
3. 作业是一种环境(environment),可以在系统中完成用户的工作。在一个作业中,通过输入命令、选择菜单或调用程序,可以要求系统处理用户的请求。
    系统中的作业笼统地讲可以分为系统作业和用户作业.
  (1)系统作业又可以分为多种,每种系统作业名一般均以Q字母打头。在所有的系统作业中,只有SPOOLING作业可以被系统操作员控制,该作业类似于批处理作业,用来控制将输出队列中的脱机打印文件(Spooled file)在打印机上打印。
  (2)用户作业又可以细分为自动启动(AUTOSTART)、通讯(COMMUNICATION)、交互(INTERACTIVE)和批处理(BATCH)四种类型:
  (a)AUTOSTART作业总是与一个子系统(SUBSYSTEM)关联起来,当子系统启动时自动启动AUTOSTART作业,如完成一些相关的设置工作。
  (b)COMMUNICATION作业发生于两个或多个AS/400间连接的情况下,当一个系统中的用户在另一个系统中递交作业时使用该类型作业。
  (c)INTERACTIVE也称为终端作业(Workstation),它从用户注册(Sign on)开始,直到用户注销(Sign off)为止。
  (d)BATCH是一种脱机处理的作业,用户将自己的请求提交给系统后就无须再干预,系统将该请求暂时存放到作业队列(JOB Queue *JOBQ)中,当资源满足作业的需求时,子系统就会选择作业运行,批处理作业产生的所有输出信息都会放在打印文件中,由打印作业负责输出。
4. 系统中的每一个用户作业都有一个唯一的作业名,如000578/OL29XX/DSP01。作业名由三部分组成,作业号、用户名和作业名
    每个作业启动后都由系统分配一个唯一的作业号,如000578。
    用户名是递交或启动该作业的用户,如OL29XX。
    对于BATCH作业,递交该作业的用户可以指定一个作业名,对于INTERACTIVE作业,作业名就是用户登录的工作站的名字,如DSP01。
    当搜索一个作业时,可以用作业的限制名,例如,WRKJOB JOB(000578/OL29XX/DSP01)。若不知道作业的完整名,也可只输入用户名和作业名,例如,WRKJOB JOB(OL29XX/DSP01)。甚至只用作业名,例如,WRKJOB JOB(DSP01)。
5.  作业的属性定义了作业的环境。这些属性值包括:作业使用的作业队列(JOBQ)、输出队列(OUTQ)、打印机、排队优先级、排队优先级的最高限定值、作业的库列表、作业日志纪录的等级、作业的运行优先级、使用的内存池以及时间片长度等。有若干种途径描述作业的属性,其中最重要的、最完全的属性定义是在作业描述(以下称JOBD)中,其次是在用户描述(*USRPRF)中,有时可能会参照某些系统值(System Value)。批处理作业的属性也可以在提交作业命令SBMJOB中用参数值定义。
     作业描述是一种OS/400对象(类型*JOBD),包含了作业要用到的大部分属性值。可以用命令 CRTJOBD 命令创建,CHGJOBD命令修改,DSPJOBD命令查看。每个AS/400系统上有多种作业描述。
     在AS/400系统上运行的每一个作业都对应着一个作业描述。但每一个作业描述可以有多个作业与它相关。IBM 提供的默认作业描述是 QDFTJOBD。图列出了QDFTJOBD中的部分信息,此外还有Routing data,Request Data,Initial Library List等。图中的Job Date的值为*SYSVAL,表示参照系统值QDATE。Output Queue的值为*USRPRF,表示要参照使用这个JOBD用户的User Profile中的Output Queue定义。
工作管理 - 猫矛卯茂 - 这是我的blog,^_^
      每一个在AS/400上的作业都与一个用户描述文件相关联。用户描述文件包含有关用户和用户如何运行作业的有关信息。
     用户描述中与作业属性有关的信息有:用户使用的JOBD、OUTQ、打印设备、当前库、最高排队优先级、交互式作业的初始执行程序和初始菜单等。有些信息与JOBD中有重复,这是系统会优先采用JOBD中定义的属性值。
工作管理 - 猫矛卯茂 - 这是我的blog,^_^
6.  不同类型的作业它们开始和结束的方式也会不同
    (1)Interactive job: 每当用户登录到一个工作站的时候,一个新的Interactive Job(交互式作业)就开始了,这样直到用户退出。
    (2)Batch job: 一个Batch Job(批处理作业)在它离开作业队列时开始。批处理作业的结束EOJ(End of Job)不以作业的运行结束为标志,而是指作业运行的相关结果已经从输出队列中删除或已经被从打印机上打印出来。
    (3)Autostart job: 自启动作业随着与其相关的子系统的启动和结束而开始和结束。
    (4)Communication job: 一个通信作业随着远程系统请求而开始,直到用户退出(若此作业为交互式作业)或作业结束(若此作业为批处理作业)才结束。
    (5)Spooling job: 一个打印作业随着打印机程序开始而开始,直到打印机程序结束而结束。
     所有类型的作业都要在子系统的监控下运行,直到运行结束并且没有打印输出,或运行结果已在打印机上输出完毕,该作业才会真正结束。系统人员要经常对各种作业的打印输出(Spooled file)做清理工作,不需打印时,就应将它们删掉,以减轻系统对作业的管理负担。
工作管理 - 猫矛卯茂 - 这是我的blog,^_^
7. 子系统是在考虑到AS/400系统中存在着多种类型的作业,不同种类的作业对系统资源的要求不同,如交互式作业要求较快的响应时间,批处理作业可能要求较多的CPU时间等,将所有的系统资源分成多个配置不同的环境,管理员可以在这些环境之间调整资源的分配,以达到充分利用、灵活调节的目的。因此我们可以认为子系统是专门为了运行某一类作业而配置的环境。每个作业在其开始时都被指派给一个适合此作业运行的子系统。一个子系统所提供的操作环境在子系统描述(Subsystem Description *SBSD)中定义。可以用WRKSBS命令查看系统上活动的子系统。
8. 与作业相同,子系统本身并不是对象,但子系统描述(Subsystem Description)是一种对象(*SBSD)。子系统描述定义了子系统中拥有的资源,特别是存储器资源,和在子系统中运行的作业类型以及最大作业数等特征。与作业不同,每一个子系统描述仅对应一个子系统,因此我们可以用子系统描述对象的名字来区分不同的子系统。
    子系统描述中含有子系统可以管理的最大并发作业个数;内存池的个数及大小;作业的来源(Work Entries 如来自哪些终端,哪些作业队列);作业的运行属性(如作业分配的内存池ID,运行优先级,时间片长度,从何程序开始执行)等。作业的运行属性实际上是在一个类型为*CLS(class)的对象中描述的,子系统描述中定义了许多叫Routing Entry的项,每个Routing Entry指向一个Class。每个作业可以在自己的作业描述(*JOBD)中设置一个称为Routing data的参数值,来确定使用子系统描述中的某个Routing Entry,从而获得该作业的运行属性。
9.  OS/400通过内存池(Storage pool)使用内存。内存池是对内存的一个逻辑的动态的划分,在子系统描述中定义它们的个数和大小。当启动一个子系统时,系统根据子系统描述中定义的内存池为其分配相应的内存。每个子系统最多可以定义10个内存池。整个内存最多可划分的内存池个数是有限制的,如在OS/400 V3.2中最多允许将内存划分成16个内存池,OS/400 V4以上版本则允许更多一些,可达六十个以上。
      AS/400内存池有两种类型:共享池(Shared pool)和私有池(Private pool)。共享池允许若干个子系统共用,私有池只允许一个子系统使用。典型的共享池有*MACHINE、*BASE、*INTERACT和*SPOOL。一般地,*MACHINE供系统作业使用;*INTERACT供交互式作业使用;*SPOOL用于打印作业;*BASE用于各种类型的作业,以批处理作业为主。每天在IPL时,系统会根据系统值QMCHPOOL为*MACHINE分配内存,然后将其余的内存全部分配给*BASE。每激活一个子系统,系统就要从*BASE池中为子系统分配所需内存;当一个子系统结束时,该子系统占用的内存就被回收到*BASE池中。*BASE池不能为空,有一个系统值QBASPOOL定义了*BASE池的最小尺寸。当*BASE尺寸达到这个值后,系统就不会为新启动的子系统再分配内存空间。
     每个作业只能在一个内存池中运行,由于每个子系统所管理的作业类型相近,内存池固定,因此可以实现在相同池中运行相同类型的作业。作业发生缺页时,偷页也只能在同一池中进行,因此不会出现不同类型的作业发生内存冲突的现象,从而使系统对作业的管理做到有理、有序、简单。有了内存池的概念,可使用户对作业使用内存有一定的控制权,例如通过对作业描述中的Routing Data定义和子系统描述中的Routing Entry、Storage pools定义使一个重要的作业独占一块充足的内存,以保证该作业的运行及时、可靠。
     AS/400的这种内存池管理策略可能会出现各内存池之间忙闲不均的情况。因此OS/400允许为每个内存池规定同时所允许存放的最多作业个数ACTLVL(Activity Level)。使用 WRKSYSSTS(Work with System Status) 命令,结合F11功能键,操作员可以看到当前内存中划分的内存池的大小、缺页率、作业的状态转换等信息。当发现性能有问题时,如某一内存池的缺页率偏高,或作业状态转换到Ineligible 次数太多,可以在这个命令中修改内存池的大小(Pool Size)或ACTLVL(Max Active)来改善性能。如果操作员经常疏于这项工作,可以指定系统值QPFRADJ为'2'或'3',让系统根据情况动态地调整这些内存池的大小或ACTLVL
10.  系统在安装时,已经建立了一些子系统描述,如负责交互式作业的子系统QINTER,负责批处理作业的子系统QBATCH,负责打印作业的子系统QSPL等。每次在做IPL(Initial Program Load 启动系统)时,可根据当天要处理的作业情况启动所需的子系统,也可以根据某一时刻的作业情况,随时启动一个子系统(STRSBS)或停止一个子系统(ENDSBS)。当一个子系统被终止时,它所监控的所有作业也都被终止。
     系统值QCTLSBSD定义了系统在IPL时最先启动的控制子系统,QCTLSBSD可以取两个值:QBASE或QCTL。然后由这个控制子系统中的自启动作业(Autostart JOB)将其它子系统启动起来。在系统作初始化时根据QCTLSBSD的取值不同,系统将会启动不同的子系统。
     若QCTLSBSD取值为QBASE,系统启动三个子系统QBASE、QSYSWRK和QSPL,其中QSYSWRK运行系统作业,QSPL运行Spooling类型的作业,其它作业都在QBASE中运行。这种配置的优点是简单,缺点是划分不够详细,效率不高。这种配置是缺省值。
     如果QCTLSBSD取值为QCTL,系统将启动QCTL、QSYSWRK、QINTER、QBATCH、QSPL、QCMN和QSERVER共7个子系统。其中QCTL为控制子系统,处理控制台作业。QSYSWRK执行某些这特定系统功能。QINTER为处理交互式作业的子系统,QBATCH处理批处理作业,QSPL处理脱机打印作业。这种配置的优点是划分详细,每个子系统均适应系统中一种类型的作业,管理员可以灵活地安排资源,缺点是较为复杂,管理员需要做很多工作。有些特殊的任务必须在控制台上完成,且不允许有其它类型的作业存在,如备份整个系统,整理硬盘等,这时要终止除QCTL之外的所有子系统,这种状态被称为Restricted state。
     用户也可以用CL命令CRTSBSD定义自己的子系统描述,必要时用STRSBS命令将其激活,用ENDSBS命令结束它。操作员可以随时用WRKSBS命令监控当前所有启动的子系统情况,用WRKSBSJOB命令对子系统中的作业进行管理。
11.  AS/400有很多类型的队列(Queue),其中对普通用户和系统操作人员来说,最常用到的队列有:消息队列(Message Queue *MSGQ)、作业队列(JOB Queue *JOBQ)、输出队列(Output Queue *OUTQ)。他们都是OS/400中的对象。此外,AS/400应用开发人员还需了解程序通信用的数据队列(Data Queue),作业消息队列(Job Message Queue)等。消息队列用于存放等待处理的消息,作业队列用于存放等待子系统进行处理的作业,输出队列则用于存放等待打印的数据(Spooled file)。
      作业队列(Job Queue)是一种对象(类型为*JOBQ),系统中存在多个作业队列,每一个作业队列包含一组等待处理的批作业。作业队列中的每一个作业都有一个优先级(job queue priority)与之关联,优先级从1到9,1是最高级别,9是最低级别。系统在处理作业时,按优先级由高到低的顺序进行处理,若优先级相同,在依照先进先出的原则
     可以规定作业队列中最多允许同时在子系统中运行的作业个数(MAXACT),或该队列中相同优先级的作业允许并发执行的最大个数(MAXPTYn,n=1-9)。当一个子系统管理几个作业队列时,作业队列之间的优先顺序由作业队列在子系统中的顺序号(Sequential Number SEQNBR)决定。在队列中的作业可根据需要将其挂起(Hold),延迟一段时间后再将其释放(Release)。因此一个在作业队列中等待处理的作业何时会被子系统选中,取决于子系统定义的最大并发作业数MAXJOBS,作业队列的MAXACT,作业的状态(Status)及作业的优先级Priority及作业队列之间的SEQNBR。
      一旦作业被子系统选中,子系统的监控程序(Monitor)就会根据作业描述中的Routing Data,在子系统描述中找到与之匹配的Routing Entry,根据这个Routing Entry为作业分配相应的内存池和Class,从而使作业获得运行属性,参与对CPU的竞争。
12. 交互式与批作业工作流程对比:
工作管理 - 猫矛卯茂 - 这是我的blog,^_^

  评论这张
 
阅读(416)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018