动态管理输入/输出(i/o)连接的方法和装置的制作方法

文档序号:6405960阅读:254来源:国知局
专利名称:动态管理输入/输出(i/o)连接的方法和装置的制作方法
技术领域
本发明总的来说涉及数据处理系统中的I/O管理,特别是在主计算机系统中,主处理机级的I/O连接的动态管理。
在一个或多个主操作系统(在全部或部分中央处理机组(CPC)下运行)和一套外围设备之间经过一个通道子系统(CSS)进行通信的先有技术系统已经为人所知。此处所用“设备”一词是指这样一些部件,不管是否可直接寻址,例如控制单元、外部高速缓冲存储器、通信装置、像直接存取存储器(DASD)那样的数据存储单元、磁带录音机,等等。
以上所提到的系统一般采用一个或多个控制单元(CUs)去控制在一个给定的CPC和一个特定的外设之间的通道上的数据传输。已经开发了各种I/O管理方案,使其应用于这些系统中,以便对I/O子系统进行维护和重新配置。用户可以在设备CU控制台输入维护和重新配置请求。以下将引用这种类型的管理方案,作为一种基于控制单元的I/O管理方案。
采用基于控制单元的I/O管理技术的数据处理系统的一个实例,在序号为251,969的共同未决专利申请中有过描述,该专利申请的申请日为1988年9月26日,并转让给本发明的同一受让人。这里将引用序号为251,969的专利申请作为参考。
在参考专利申请中描述了在工作期间用于自动重新配置一个数据处理系统的方法和装置,这样在维护期间设备可以从系统中移去,系统自动完成自身的重新配置,以便继续工作。
按照参考专利申请中的描述,当数据处理系统启动时,每个CPC和每台设备之间各种通路的手动方式的定义被输入进主系统和通道子系统。保持在主机和子系统级的配置表包括数据定义和通道标识、开关(如果用到的话)、CUs以及各种设备。包括在这些表中的部分之间的关系,有效地规定了每个CPC和每台外设之间所有的I/O通路。
有时启动之后,会产生一个登记过程,其中每台主机向每台设备CU发出信息,通知CU CPC是设备用户。应该注意,参考专利申请中的设备CU并不认识与一个特定的CPC相连的任何其它设备,这可以和以后的本发明进行比较。
登记过程完成之后和设备脱机之前,所包括的特定的设备CUS将通知有关的CPCs配置变化不确定。事实上,参考专利申请中对CUs使用“自底向上”(从系统层次角度来看)的通知方案,经一台设备和任何受影响的通道之间的通路,通知CPCs停止请求。
还应该注意,参考专利申请中所说的停止方案是主机驱动,也就是设备CU等待从CPCs来的登记信息,该信息最终又送到CPCs。如果从未供给登记信息,例如,如果设备开始时为脱机状态并将变为联机(或发生故障),则CU对到主机的连接情况一无所知。这种故障会使参考专利申请中所说的方案不能很好地实行,因为对将要使用计算机I/O配置的硬件和软件来说,必须识别计算机I/O配置。
识别系统的I/O配置经常是个很复杂的问题。也就是说,对它下定义是困难的。并且需要先进的设计。定义的困难主要是由于在大规模的计算站中I/O是十分复杂的,那里有许多需要并行共享或可能存取I/O资源的处理机和应用计算机。在定义I/O配置时,必须考虑许多因素。这些因素有逻辑约束,如必须存取哪些I/O单元,I/O单元的速度,共享I/O协议和互锁的总开销,以及一个I/O单元所能支持的逻辑对话数。还必须考虑物理系统的约束,例如离处理机的距离,可接近性(电缆和维护人员),以及I/O单元在地面上的重量分布。
由于正确定义I/O配置要付出很大努力,所以其它与I/O定义有关的工作也就变得复杂了。可能只有一个,即主要的I/O定义。当物理配置或I/O的逻辑需要变化时,定义也必须改变。如果还有次要的,即必须根据主要的定义更新的其它工作要用到I/O定义,那么改变I/O定义就需要付出更大的努力(也更易于出错),以及为了完成相应的改变需要进行更好的设计。
因此,这就希望能够从数据处理系统的主机级询问通道子系统,动态地确定与一个处理机相连的全部I/O连接。这种信息能使主机产生一个从主机到相连的设备间的所有通路的主机视图(自顶向下观察)。除了提供一个集中的与给定处理机相连的CUs视图外,应该自动获得在给定的处理机影响之下的附近设备的布局图。这种信息对于其它I/O管理任务来说是有用的,例如动态管理连接,分析数据通信量,编排I/O恢复的作业,等等。
此外,如果一个特定的CU没有被通知它与主机连接,那么在主机级动态产生一个I/O连接数据库(也就是在没有用户干预的情况下产生一个当前校正系统I/O配置)的能力将消除在一个主机驱动登记系统中出现的问题。主机能自动地实时产生一份最新的I/O布局图。
由于系统用户的数据处理需求量增加,则与数据处理系统相连并受其支持的外围设备的数量也增加了。需要各种不同外设的多种数据处理应用增加了全系统联接的必要性。结果,将要被识别的、存储的以及管理的连接(以及最终通路)数增加了。每个CU存储和处理通知可能受到配置改变等影响的多个主处理机的所有需要数据的能力,从资源观点来看,比每台主处理机处理I/O管理的能力受到更多的限制。
因此还希望,如果不是一个以设备控制单元为基础的I/O管理方案,那么就应该设计出一个集中的以主机为基础的I/O管理方案,对与任何来自主机的连接进行动态管理。特别是当设备变得为数众多而又广泛分布时,它将取消必须进入I/O管理的CU级的请求。此外,集中的以主机为基础的管理方案,将无需协调操作员在系统操作台上与维护人员在控制单元或外设上的动作。
在通道子系统和外设之间的数据通路中采用开关更增加了目前计算机系统中管理I/O的复杂性。通过增加可用的逻辑连接数,而同时减少所需的物理连接数,采用开关进一步提高了设备的连接能力和灵活性。然而,随着这种连接能力和灵活性的提高,I/O管理的任务增加了,因为能与CPC连接的设备数目上升了,并且能与一台设备连接的CPCs的数目增加了。
此外,空间和其它实际场地限制经常要求外设离主机资源越来越远,于是设计一套集中的I/O管理方案变得更加重要。而先有技术的数据处理系统由于受与连接电缆长度有关的约束,需要将外设保持在一个距CPC大约400英尺的范围内;先有技术光纤数据链路的应用将范围扩大了,外设与CPC的距离可超过一英里。
所有上述因素使得人们更加希望(虽然不是必需的)能够从集中点开始和控制I/O连接,最好是从数据处理系统中的主机级。
上面谈到了实行集中动态I/O连接管理的客观需要。在完整地实现集中管理功能之前,新的问题需要提出来。
在一个采用开关(或者甚至是嵌套开关)而使连接选择增加的计算机I/O配置中,可交换的I/O资源可能被无意中从与一个系统或需要这些资源的程序的实际连接中移去。I/O资源丢失会引起程序或系统丢失数据和/或失去功能完整性,引起故障。
从I/O连接的系统逻辑来看,还没有现成的使物理交换操作集中的交换产品。由于具有更多共享设备、更复杂系统和更自动化操作环境的更大规模的I/O配置,所以与系统操作协调的现存交换系统所需人力更加密集,且更加低效。目前的交换系统不能防止系统发生故障而停止。交换系统需要在系统中供给交换功能更大的集中性,在系统中这种交换功能起作用从而减少易于产生的故障、人工的和/或多余的努力。
系统集中交换(System Integroted Switching该术语以后要用到)是指一种方法,通过它能够得到逻辑有效性变化,以便反映物理连接变化。当正在运行的I/O向一台设备发出请求时,只要操作系统、控制I/O的子系统或者其它程序指出到达这设备的特指通路可供该设备的I/O使用,那么,这条通路就成为逻辑可用的。只要有实行I/O操作的装置,就可以物理地连接一条通路。
希望逻辑有效性以这种方式变化,即当系统受到物理变化不利影响时,该系统能阻碍物理变化。粗略地讲,系统的一个部件(例如一个多处理机环境中的任何主处理机)会说“不,不要做这种变化,这将把我所需要的一些东西移走。”利用系统集中交换,计算机系统设备将具有这样的能力,它通过禁止所需的I/O通路的物理变化,保持其数据和/或功能的完整性。
此外,资源一经物理连接而无需操作员额外动作,这种系统就会使用资源,因为按照系统的逻辑有效性观点,物理的I/O连接是自动反映出来的。
具有系统集中交换能力和动态产生一个I/O连接数据库能力的集中操作I/O连接管理系统,目前还不为人所知。
为了实现这一系统,必须能够对开关(以及与它们相关的开关控制器,这是控制开关状态的硬件)提供直接主机存取,根据先有技术,对普通系统操作来说,这些开关状态是“透明的”(这在以后定义)。
动态开关在这里定义为这样的开关,当需要时,它们接通,当它们不再需要时就断开。接通和断开定义符以对程序来说透明的方式操作开关。以这种方式操作开关的技术在共同未决专利申请《开关及其进行动态连接协议》(IBM文件号P09-88-011)中有过描述,该申请以P.J.布朗等人的名义于1989年10月30日递交,此处引用作为参考。
在商业用计算机系统中,主处理机(如果在一台处理机上有多于一个操作系统,每个操作系统)如同能“看见”其它设备(例如磁盘,等等)一样“看见”开关,然而,主机既不能将开关作为开关来认识,也不能认识哪个开关位于给定的通向其它设备的通路上。因此,对于一个主机来说,开关是“透明的”。
在已知的系统中,一台主机能与在一条分开的链路上的开关控制器进行通信,而不必经过开关。人们还知道,直接通过开关和处于开关外边的一个控制单元,主机能够与开关控制器进行通信。缺少对开关控制器直接存取(通过开关本身)限制了主机控制和管理作为I/O通路部件的开关的能力。这一点特别是在多处理机环境中是正确的,在那种环境中,当例如一个开关(或几个端口)从服务中取走时,整个系统需要保持连接。
为了实现集中动态I/O连接管理系统,主处理机必须将开关作为开关来认识,了解开关安放的通路,以及前面提到的对开关控制器直接进行存取。
识别与通道相连的开关的存在的方法,识别通道与开关相连的地址的方法,询问通道子系统收集开关存在和地址信息的方法,所有这些在本发明中都得到了应用,并且将在以后详细说明。
希望能够获得前面说过的直接主机存取能力,与各种方法结合使主机将开关作为开关来认识,等等,希望能够影响所要求的集中控制、管理和连接的类型,以便实现动态I/O连接管理。这样的结合将有助于实现开关的遥控功能,将在主机级实现开关故障状态的记录,便于开关恢复,识别I/O配置中的资源,并且为通过与多于一个处理机相连的开关控制单元/设备进行处理机间通信提供一个方法。因此,希望能够在集中操作I/O连接管理器中获得前面提到过的开关存取特性。
最后,一个进行分布式应用(即一种应用方式,它在分开的计算机上运行,具有同等的效果,例如,此处设想的动态I/O连接管理器)的用户需要保证在另一个用户发出一条命令或一组命令之前,执行完一条命令或一组命令。
该应用在任何一个时刻只让一个用户进行存取,而拒绝所有其它的用户,直到第一个用户全部完成其任务(一条或多条命令的任务)。不是靠手工过程的方法在多个用户之间通信,以保持它们动作的同步,而是希望如果该应用承担保证总开销和可靠性,则应用环境的状态在某个时刻仅由一个用户控制。这个特征(以后称之为浮点主互锁Floating Master Inter Lock)能使集中动态I/O连接管理器在多个主处理机上同时运行,确保关键数据,例如存在每个前面提到的动态开关控制单元等中的数据的完整性。
因此,本发明的目的是实现集中的(以主机为基础的)动态I/O连接管理。
本发明的另一目的是能够实现对一个计算机系统的通道子系统自动询问,这样每台主机能动态确定与之相连的全部I/O配置以及确定连接。
本发明的第三个目的是提供一个计算机系统,其中实际的交换操作从系统逻辑的I/O连接来看是集中的,即提供了一个能够完成系统集中交换的计算机系统。
本发明的第四个目的是实现对开关(以及与它们相关的控制器)的直接主机存取,这些开关对普通的计算机系统操作是透明的,因此每个新的连接管理器能够通过一个以开关为基础的登记协议,都能确定在其它主机上的管理器的存在。
本发明的第五个目的是在一个多用户环境中以这样一种方式实现动态I/O连接管理,即它能保证在另一个用户发出一条命令或一组命令之前,由一个用户(一个新的I/O管理器)执行完一条命令或一组命令,并且在计算机系统的主机级承担这一功能的总开销和可靠性。
本发明包括以下(a)、(b)两项的结合(a)一个计算机系统包括至少一台主机(处理机和操作系统),一个通道子系统和至少一个开关(与关连的开关控制器一起),该开关用于通过所说的通道子系统,将一个I/O设备(与关连的I/O设备控制单元一起)交换连接到一个主机;(b)动态管理所述计算机系统中来自每一主机的连接的新装置。
根据本发明的较佳实施例,每台主机对每个动态I/O连接管理器负责。换句话说,管理器的功能集中于整个计算机系统的主机级。
此外,根据本发明的较佳实施例,为了便于实现集中动态I/O连接管理,计算机系统和每个新颖的管理器包括(a)第一装置,位于每个开关之中,用于对与给定开关关连的开关控制器进行直接主机存取;(b)第二装置,包括在每个主机级管理器中,用于自动地和动态地确定每台主机当前I/O配置和连接;(c)第三装置,包括在每台主机级的管理器中,用于完成系统集中交换;以及(d)第四装置,包括在每台主机级的管理器中,用于保证在一个多用户环境中I/O连接数据库的完整性,其中每个用户通过共同使用一个浮动主互锁能进入多部分命令和处理。
本发明的另一个实施例例如可以实现集中I/O连接管理,而不需要有前面说过的、用于完成系统集中交换的装置。本领域的技术人员在不限制本发明的范围和精神的情况下可以对前面说过的部件做其它组合,以满足特殊应用的需要。
本发明的特征在于能实时地、在没有用户干预的条件下产生I/O连接数据库。本发明的特征还在于能从一个中心点(系统的主机级)管理I/O配置,如前所述,这适应I/O配置的物理分布,并且不需要用户为系统维护而在本地外设级输入重新配置等参数。此外,本发明的特征还在于能在一个多用户环境中保持系统的一致性,通过利用系统集中交换实现“安全”交换,以及通过利用新颖的互锁机构保证I/O连接数据库的完整性。
对于本领域的技术人员来说,通过阅读下面对本发明的实施例的具体、详尽的描述并参照附图(附图中同样的标号代表各个附图中本发明相同的特征),就可以对有关本发明上述的一切以及其它目的和特征有个清楚明了的了解。


图1是本发明的一个系统配置的示意图。
图2是图1所示系统的高级框图。
图3是图1所示系统的高级框图,在每台所示的主机和各种经开关与之相连的设备之间增添了开关。
图4以文氏图的形式画出了与先有技术的能在设备级局部实现I/O管理命令的域相比较的以主机为基础的I/O连接管理命令(功能)的域的概貌。图4还画出了由动态I/O连接管理系统的最佳实施例实现的新颖功能,以及这些功能和I/O连接命令域之间的关系。
图5画出了两个示范系统的I/O连接数据库中的部件。
图6以示意图的形式画出了由新颖的I/O连接管理器管理的实际配置的说明性实例,一同在图中出现的还有控制语句,用来描述图中所示的实际连接。
图7表示与开关域有关的几个I/O管理器域。
图8表示用于解释I/O管理系统连接数据库的主机和开关的一种可能的连接。
图9表示允许主机对一个开关设备进行访问的两个先有技术计算机系统配置,以及本发明的允许主机直接对一个开关设备进行访问的计算机系统配置。
图10表示用于实现本发明的动态I/O连接数据库发生器特征的数据结构。该数据结构以实体属性关系数据模型表示。
图11表示系统集中交换实现的功能的流程图。
图12表示图11的“分布”式功能的工作流程图。
图13、14和15表示一个过程,其中每个实现系统集中交换的计算机程序能够确定哪一条通路受到交换操作的影响。
图16~19表示本发明的浮动主互锁特征。
在图1所示的多主机系统环境中最好地体现了本发明。图1画出了与多个外围数据存储子系统13相连的多个主系统10。此外,众所周知主系统10还与多个其它外围子系统13A相连。每个主系统10包括多条通道CH11,经通路12分别与外围子系统13、13A相连。每个主系统10可以有一个或多个与每个子系统13、13A相连的通道路径连接部分11。
一些子系统与多个主系统10相连。为了便于在各个主系统10和不同的子系统、特别是数据存储子系统之间进行数据通信,可以采用所谓的通道路径分组。这种通道路径分组在美国专利4,207,609和4,396,984中有过说明,此处引用作为参考。在可能包括几条通道路径CH11的任何通道路径组中,主系统可以请求一个外围动作,例如在一个给定的子系统13中的数据存储。子系统13可以在路径组中另一条通道路径上对该请求作出响应。这种被存储子系统部分控制的动态路径如专利4,207,609中所述。动态路径可扩展到多个子系统13,如专利4,207,609中所述。
每个子系统13包括一个控制单元,也称作存储控制单元14。每个控制单元14包括多个通道连接部分15,它们以电的和逻辑的方式与各个主系统10的通道路径11相连。控制单元14的目的是将选择的主系统10与多个数据存储设备中的任何一个互连,如图中所示。多个设备16~19与控制单元14相连,与各个主系统10进行数据通信。
每个控制单元14的结构可类似于IBM3880型控制单元。每条存储通路22~25包括一个微处理器和关联的电路,用于在设备16~19和各个主系统10之间进行数据传输。各个控制单元14中的控制器32和33提供控制单元14的总控制,包括诊断电路形式的维护过程。各个控制单元14中的一对表34、35包括一种连接数组结构,如共同未决专利申请089,151号中所描述的那样,该专利于1987年8月25日申请,并转让给本发明的相同受让人;一对表34、35还包括对应于美国专利4,207,609中的动态路径存储器25′的路径组信息。双向箭头36代表控制单元14之间的电和逻辑上的互连,再现美国专利4,207,609中的通信。控制单元14的内部包括连接部分15、存储通路22~25、控制器32和33,以及表34和35,所有这些都以电和逻辑的方式互连,如IBM3880存储控制器那样。
控制单元14和设备16~19之间的电和逻辑上的连接可以采用一种所谓的串连接方式,其特征是利用串控制器,它与串中的各个设备相连。作为一个实例,数字27~30代表控制单元14和设备16~19之间的各个串连接。每个这样的连接都包括一个控制器(图中未画出,例如用于IBM3380存储单元的控制器),用于通过控制单元14对设备16~19进行控制和数据传输。这样,几台设备可以与两个子系统13相连,也就是说实现了交叉连接。
控制单元14可以在设备16~19和各个通道路径组之间提供动态通路选择。存储通路23和24可以访问通过各个串连接27~30而与之相连的任何设备16~19。
根据共同未决申请251,969号中描述的发明,外围子系统13发出的命令请求送给待命的主系统10,使子系统部分停顿,便于进行维护或其它有关过程。停顿使例如上述设备16~19那样的资源对任何主系统10不适用。在主处理机语言中,停顿等同于使设备脱机。当完成维护过程后,子系统13向待命的主系统10发出恢复命令请求,指出停顿的设备可以恢复正常工作。
如前所述,希望从计算机系统的主机级进行动态管理I/O子系统连接,这与先有技术中的“自底向上”法不同。
沿通路12至少再加上一个开关,根据图1可以对本发明进行最好的说明,即在每个外设和一条通道之间提供可交换连接的系统能使人最清楚地理解本发明。
图2是代表图1所示系统的高级框图。图2画出了三个带有四个操作系统(主机210、211、212和213)的中央处理机组(CPC201、CPC202和CPC203),这些操作系统经通道子系统(图中未画出)与多台CUs设备和其它设备互连。图中画出了二十六台CUs直接与主机相连。
参照图2应该注意到,重新配置需要重新布电缆,就增加、删除或服务于CUS而言,这种配置可能是破碎的。此外,考虑到电缆长度的限制以及协调每台主机和CU的操作者动作的可能性,图2所示的CUS全部处于与每个CPC相距大约400英尺的范围内。
图3是类似于图2的高级框图,只是增加了开关,这些开关位于每台主机和通过开关与主机相连的各个设备之间。
图3中,还是带有四台主机310、311、312和313的CPCs301、302和303与像CU350那样的十九个CUS相连。然而,在图3中开关370和375用来减少图2中所需要的实际连接数目,实现系统重新配置以及通过开关提供CPC设备共享。如前所述,采用开关和光纤提高了设备连接的可能性、配置的灵活性,以及分离系统部件的能力,然而完成I/O管理的复杂性也增加了。正是如图3所示这样的系统,使得本发明具有极大的实用性。也正是根据图3,以后将描述本发明的最佳实施例。
图4以文氏图的形式画出了与先有技术的能在设备级局部实现I/O管理命令的域相比较的以主机为基础的I/O连接管理命令(功能)的域的概貌。图4还画出了新颖的动态I/O连接管理器(以后称之为管理器)的最佳部件,以及这些功能和I/O连接管理命令域之间的关系。
图4的右手部分(线A-A的右侧)表示存在从一个计算机系统的局部级发出的执行交换、显示和实用功能命令,如共同未决申请251,969号中所述。
参照图4可以看出,根据先有技术从局部级发出的交换命令是“强制”。也就是说,前面所指的系统集中交换能力在局部交换系统或以控制单元为基础的I/O管理系统中并不存在。线A-A右侧的阴影部分表示能够集中执行的显示和实用命令并没有被局部执行。例如,已知的以局部为基础的I/O管理器不可能显示关于通道的信息或指示开关向与之相连的主机报告错误。
另一方面,线A-A左侧表示此处说明的管理器的灵活性。本发明允许(a)选择执行从主机为基础的管理系统发出的“强制”或“安全”交换命令(系统集中交换);(b)直接访问开关控制器的能力(所有基于主机的交换命令和至少某些显示和实用命令,例如显示一个开关端口的状态或给一个开关端口命名等,都表示为直接访问功能);以及(c)所有基于主机的命令被表示需要某级互锁和动态I/O连接数据库代。管理器的最佳实施例能完成在图4左侧各个基于主机命令类型的交叉部分表示的所有功能。
每个管理器的主要功能是从一个如图3那样的计算机系统的主机级控制交换、显示和实用功能(即,执行图4所示的命令类型)。
每个管理器最好具有直接访问开关控制器,动态生成I/O连接数据库,执行“安全”交换,以及使用浮点主功能执行集中互锁的能力。然而,如以后将要说明的那样,管理器并不需要具备所有这些能力,却也能达到前面提到过的本发明的许多目的。
在对全部工作情况,即对包括应用本发明所有原则的管理器在内的计算机系统的功能概况作总结之后,将详细说明管理器的每个所要求的特征。
每个管理器用来控制从单个主机过来的一个或多个开关。本发明试图采用管理器命令控制系统资源的连接。例如,根据本发明的一个实施例,当通道和设备控制单元与一个开关相连时,“连接”命令可用来允许在一个通道端口和一个CU端口之间进行通信。管理系统将构造出一个或多个开关命令的通道程序来执行管理系统命令。
为了对输入管理器命令末端用户(例如操作员)作出响应而产生正确的开关命令,管理器必须访问当前的配置数据。动态I/O连接数据库代和对开关的直接访问将在以后作更详细的描述,但是目前应该注意,管理器必须对主机通道子系统的某些配置数据进行检索,还必须对一个或多个开关的连接数据进行检索。管理器确定开关控制器,当启动管理器时,该控制器可以用主操作系统访问。确定每个开关控制器的设备数之后,管理器可以读开关端口的当前连接。
因此,管理器“数据库”实际上是主机CSS“所知道的”和开关“所知道的”内容的一种组合,如图5所示。
图5中,“SYS1”和“SYS2”是主机操作系统。“A”和“B”是具有存储配置数据的开关。以“
”画出的图形包围SYS1的数据库。以“·”画出的图形包围SYS2的数据库。
应该注意的是,根据本发明所有从每个CSS中收集的数据对主机收集数据来说是特定的。此外,从开关收集的所有数据在多个管理系统的范围内是共同的。也就是说,每个管理系统从同样的开关得到同样的数据。
对具有相同开关数据的所有管理器来说,每个管理器必须访问相同的开关组。如果开关对主机不适用,那么主机将不访问那个开关的数据。这一点将在以后通过参照开关和管理系统的“域”予以解释。
根据本发明的较佳实施例,多个管理系统纳入一个共同的开关是允许的。数据库完整性通过使用开关“键”而得以保证,这将在以后给予更详细的说明。
数据库不需要保存。根据本发明的一个实施例,当管理器开始使用基于主机的指令和通向开关控制器的I/O接口时,动态产生数据库。数据库事实上可以是一种在虚拟存储器中产生和保留的控制块结构。
对任何单个的管理系统来说,不需要外部数据,即,不需要用户向管理器输入,以产生数据库。每个管理器对数据的要求,可以通过使用CSS和可直接访问的开关数据而得到满足。因此,根据本发明,管理系统使用“自定义数据库”。
现在参照图6来看一看定义成主机或通道子系统的可能的配置和数据部分的一个例子。举例仅仅是为了说明方便的缘故。
图6的上面部分是实际布局的略图,并表示开关是如何放在通道和CVs之间的。下面部分是控制语句的例子,能够用来描述图6所示的实际连接。这些控制话句指出,实际的布局如何才能转送到CSS和主机。
主机和开关域的概念是解释本发明的有用工具。如果一台主机和一个开关实际连接,那么该开关就被说成是在主机管理器的域中。例如,参照图7,A和B在SYS1的域中,而SYS1的域仅包含A和B。所有的包含一个特定开关的管理器的域,都在那个开关的域中。例如,在图7中,SYS1和SYS2在A的域中,而A的域仅包含SYS1和SYS2。
如果在一个管理器的域中的所有开关的域都相同,并且仅仅包含一个管理器,那么该管理器被说成是具有一个排他的域。例如,图7中SYSO具有排他域S和T。
如果在一个管理器的域中的所有开关的域都相同,并且包含一个以上的管理器,那么所有的管理器被说成是具有等价的域。例如,图7中SYSI和SYS2的域是等价的,并且A和B的域是等价的。
最后,如果在一个管理器的域中的所有开关的域不相同,那么开关的域被说成是不相交的。例如,图7中SYS3的域和SYS4的域是不相交的。同样,X、Y和Z的域也是不相交的。
现在参照图8,它表示四个操作系统(A~D)的一种可能的配置,其中每个系统包括一个管理器,以及四个开关(1~4)、每个开关具有不相交的域。如同以后所采用的那样,作为向一个或多个开关发出命令的命令源管理器被当作主管理器。如果命令改变连接,那么主管理器应用现存的系统硬件和软件,在管理器之间传输数据和命令,这一特征此处定义为“系统内通信”。经系统内通信从主管理器接受命令的任何管理器以后定义为次管理器。连接变化可能影响也可能不影响有次管理器存在的主机。
管理器数据库产生以后,参照图8所示的系统配置可以得到以下定义定义的操作系统 定义的开关A B C D 1 2 3 4A是 是 是 是 是 是 是 是每个操作 B是 是 是 否 是 否 是 否系统的数 C是 是 是 是 是 是 否 是据库 D是 否 是 是 否 是 否 是“是”表示主管理器知晓输入。并不意味主管理器能够与次管理器进行通信,这功能依赖于具有前面说过的系统内部通信能力的每个管理器。
用户可以编造和保存使用一个或多个管理器命令的程序,当这些命令被执行时,产生一个特定的管理行动。例如,用户可以写一个应用管理器命令的程序,目的是为了产生一个报告或将包括一个打印工具(即允许实际连接)的打印机控制单元与操作员选择的处理机逻辑相连。
本发明的最佳实施例的特点是能够指定端口的逻辑名,提供在一个理性的水平管理系统的能力,而不需要用户熟悉端口和开关。此外,本发明的最佳实施例能够使用由典型的操作系统,如IBM的MVS/ESA提供的“变化通路”功能,经过每个管理器,在向一个或多个将要移去连接的开关发送命令之前,请求受影响的设备通路变为脱机。管理器也能在向增加连接的开关发送命令之后,请求受影响的设备通路变为联机。将开关端口移至设备通路和使连接中发生的变化与一个适当的变化命令关联的过程此处称为“逻辑实际协调”。
通过参照图10~15,本领域的技术人员能够清楚地了解到,使用变化通路功能,在资源切换之前,每个管理器有办法请求许可。这再一次成为本发明的系统集中交换能力(以后要详细说明),可以用来“保护”关键资源。
本领域的技术人员可以很容易地懂得,管理器可以设计用来在多个操作环境中运行。例如,具有或不具有进行交互主机通信能力,等。根据本发明的一个实施例,最小的操作配置将允许管理器通过系统操作员控制台接口接受命令,将允许管理器在其主处理机上完成逻辑实际协调,但是将不包括与其它管理器进行通信的能力。
对一个管理器来说,在全功能方式下运行并通过系统内通信特征与其它系统进行通信是可能的,由于在受到影响的系统中发生了某些事件,与一个或多个这样的系统失去通信也是可能的。应该注意的是,系统内通信特征应用新颖的基于开关的记录方案(以后说明),与现存的系统硬件和软件一起,在管理器之间传输数据和命令。根据本发明的最佳实施例,管理器能在这样的降级操作环境中运行。
通过启动不被与一个给定开关相连的其它主机允许的主机,管理器命令可以使连接发生变化。因此,提供上述系统内通信能力,以便能够实行系统集中交换。应该回想一下,系统集中交换能力是指在多个主机运行的管理器,能够允许或禁止在相同的或不同的管理器主机中触发交换操作。使用系统内通信,所有交换命令向被广播给所有已知的管理器主机。当收到系统内通信命令时,每个管理器必须检查命令,判断是否命令影响了它的资源,如果是的话,则该资源自由。这是通过检查主机数据库和应用变化通路功能实现的。然后,每台管理主机必须回答“开关正确”,意思是所有变化是成功的,或回答“开关不正确”,意思是一个或多个所需要的变化不成功。事实上,这时实行多系统逻辑实际协调。
为了对本发明有个全面的了解,跨越主机的命令的串行化概念、跨越主机的过程的串行化概念、等同对等同操作的概念、以及“返回”、“不返回”、强制交换(“强制”)的概念需要解释一下。
命令的串行化是指当一个管理器命令出现的时候,所有其它命令被排斥。这种情况不仅发生在管理系统主机中,而且也发生在次管理器主机中。应用系统内通信特征提供的通信,过程的“开始”当主管理器通知已知的次管理器主机。这能使次管理器排斥可能在任何过程开始之前就产生的任何命令。当管理系统命令结束时,发生“结束”信息,使次管理主机能接受以后的命令。
除了在单个命令基础上的串行化之外,在每个管理器中还有一个在过程上串行化的规定,该过程包括一个或多个管理系统末端用户命令。如同命令串行化一样,这是指当一个管理器过程进行时,所有由另外的用户在任何管理器(主的或次管理器)输入的其它命令被排斥。应用系统内通信特征提供的通信,过程的“开始”由主管理系统传达至已知的次管理器主机。这能使次管理器排斥可能在任何过程开始之前就产生的任何命令。管理系统过程中的最后的命令显然使管理器主机能接受从另外的命令源发出的后续命令。如果另一个用户必须进入一个用户正在进行的过程,那么本发明为新用户提供了恢复控制的便利条件。根据本发明,这个便利条件(以后参照“UNLOCK”和“GETLOCK”命令予以详细说明)确保命令串行化不中断,并且保证通知最初的用户,新用户已经恢复控制。
通过使用本发明的浮动主互锁能力,能够对跨越主机的命令和过程进行串行化,这将在以后详细说明。
根据本发明的最佳实施例,运行这个管理器的每台主机具有与每个运行这个管理器的其它主机相同的功能。也就是说,没有带有所有从属于它的次管理器的单个主管理系统。这便是每个管理器的等同对等同特征。不论哪台主机是管理器的命令源,主管理器主机都是可改变的。
然而,根据本发明的最佳实施例,管理器对开关的所有访问都被串行化了。这就保证在所有要求的重新配置发生之前,另一个管理器执行造成重新配置的交换命令并且重写这些命令。即,主管理器主机控制(相对其它管理器)所有开关,必须控制执行管理器命令,直到管理器命令结束,这之后,任何管理器主机都能对前面提到过的一个或多个开关进行访问。应该注意的是,管理系统可以不必与每个开关进行通信去执行给定的命令。
由于多设备通路和多系统能够受到一个交换操作的影响,而这又试图引起使用多变化通路功能,所以就存在着这样一种可能性,即至少一个变化是成功的,而同时又有至少一个变化是不成功的。在这种情况下,管理器必须能返回使用变化通路功能之前的状态。即,必须不做成功的变化。这一过程叫做“返回”。
返回是在“最佳努力”的基础上完成的。根据本发明的一个实施例,它的意思是指一旦返回开始,命令被认为完成。命令过程不用等候返回完成。这是因为返回实质上是一种恢复操作,而返回失败的恢复过程会变得不可管理。
对多开关命令来说,一个或多个开关无论在什么时候只要不能执行更新命令(由于争用或设备故障),所有开关就复位到命令执行之前所处的状态。这叫“开关返回”。当一个或多个开关更新失败时,也执行逻辑物理协调返回。
虽然如以上所说那样,但有时也会存在这种现象,终端用户/操作员并不希望返回使用变化通路功能之前的状态。即,操作员可能希望不去管成功的变化,以及/或者成功的开关改变。这一过程叫“不返回”,根据本发明的最佳实施例,这是用户的一种选择。
最后,为了完成对本发明概貌的了解,应该注意的是可能希望使一些交换操作变为无条件的,而不必理会资源的丢失,例如,当用后备系统恢复一个发生故障的主系统时。在这种情况下,本发明的一个实施例提供一个“强制”选择,它能作为管理器命令的一个参量。当命令中指定强制选择时,既不执行逻辑物理协调返回,也不执行开关返回。
在对本发明的操作原则有了大概的了解之后,现在来说明本发明的最佳特征,即从计算机系统的主机级直接访问开关控制器的能力;动态产生I/O连接数据库的能力;实行“安全”交换的能力;以及应用浮动主互锁功能进行集中互锁的能力。
首先来看管理器直接访问开关控制器的能力。值得回忆的是,对不能同主机进行通信的程序来说,开关通常是透明的,以及需要提供对交换功能进行遥控的装置。
还应该回忆的是动态开关操作,使用连接和断开定义符,当需要的时候连接,不需要的时候就断开。这种结构对程序来说是透明的。为了控制开关、报告错误及状态等,本发明需要一个动态开关控制单元。动态开关控制单元接收主程序(例如管理器)发出的命令,操作开关硬件,以及通过一般用于设备控制单元而不是开关的程序接口操作,向主机发送状态和错误信息。
描述能在程序接口的开关上进行的操作之前,应该看一看图9。图9画出了两个先有技术的计算机系统配置,它允许一台主机访问一个开关,图中还画出了本发明的计算机系统配置,它允许主机直接访问开关。
图9中的第一个配置(在图的上部)是主机通过CU和围绕开关的数据通路访问开关控制器。具体地说,主机901经通路903和CU904访问开关控制器902,与开关905完全无关。这叫机外,不用交换CU实现主机访问开关设备的方法。
图9中间部分的配置是机外,交换CU实现主机访问开关设备的方法。具体地说,主机910经开关925、CU926和数据通路927、928和929与开关控制器920相连。
最后,图9的剩余部分的配置是本发明的新颖的机内交换CU方法,实现主机对开关装置的访问。具体地说,主机950直接经开关965、新颖的动态开关控制单元970以及数据通路975和976与开关控制器960相连。
根据本发明的最佳实施例,在程序接口上实现的新功能包括采用报告错误状态的接口,识别开关及其端口的接口,以及识别与端口(邻近的端口)进行通信的控制单元或通道的接口。
动态开关控制单元970具有一个独特的标识符,它能存于固有的磁盘中。该标识符能被程序接口上的主机读出。从开关发出的关于邻近部件的信息可以用于系统故障隔离。
根据本发明的实施例,端口被分配物理地址,该物理地址取自接线板和插接板。这些物理地址再被编成编程中用的逻辑地址。备用端口各自都有它们自己的物理地址。每个地址都能编为故障端口的逻辑地址。这样,当启用备用端口时,由于程序是逻辑寻址的,所以程序不必修改。
此外,根据本发明的最佳实施例,开关控制是通过防止一定的动态连接发生的命令而得以完成的。在本发明的另一个实施例中,命令具有三种形式分块、专用连接和分割。这些命令可以局部输入,或者在能够使用管理系统、例如实行系统集中交换的主机级输入。
分块能用来防止所有的存取都集中在一个端口上。这种方法可以用来将一个发生故障的通道或控制单元与系统的其余部分隔离。
分割能用来将一组端口与另一组端口隔离。这种方法可用于防止处于测试状态的操作系统对一个生产系统的I/O设备的影响。分割对端口是特定的,以致分割部分可以完全区分开来,或者它们可以共享一些共同的端口(能使它们共享共同的I/O)。
专用连接用来提供一条长期存在的通路。这允许一个控制单元与一条通道通信,当进行操作时,该控制单元并不控制接通和断开连接。这一功能由协议转换器使用。这一功能还能用来在一个开关至另一个开关之间形成一条通路。
根据本发明,在开关处设一主机数据缓冲器,以便允许住留在与该开关相连的不同主机中的主机程序(特别在管理器中)有一个共同通信区域。每个管理器在该区域中进行登记便于完成前面说过的系统内通信功能。由于信息在主机的外部,所以当主机崩溃或断电时,信息不会丢失。缓冲器由非易失介质支持,以便在开关接通电源和切断电源的整个周期信息不丢失。读写该缓冲器的命令用来对主机进行存储。
如果主机程序将控制一个开关,本发明的最佳实施例使动态开关控制器进入局部操作员警戒方式。当启动时,这使局部操作员得到警告,他应该试图修改任何开关控制参量(分块、分割和专用连接)。
如前所述,在开关处有“键”机构,以便从多处理器和局部操作员控制台进行控制。键机构是一个计数器,它能被读出或测试和/或被增加量。由局部操作员使连接参量发生变化时,也使计数器增加。测试键和增量命令必须在由主程序引起的所有连接变化之前,其中键提供了计数器值相等的量。这保证一个没有其它主程序或局部操作员的程序改变了控制参量,因为该程序读出的是以变化为基础的信息。当在处理器上使用类似的键计数器控制功能时,这是和知道的将键计数器功能用于开关本身的第一个应用。
管理器应用键计数器机构确保适合的配置数据被处理,并且允许该管理器检测来自其它源点,例如局部操作员发出的干预。
本发明还提供了一种功能用于在处理机发生故障的情况下,通过中断发生故障的处理机与动态开关控制单元之间的通信,控制开关配置。
最后,本发明的最佳实施例还能访问存储在开关级的端口状态信息和错误信息。在例如必须报告错误的特定条件的情况下,开关能够开始与主机通信。当多处理机工作(以及每个处理机请求一个报告)时,先有技术的确定向何处报告的问题是通过向一个主要的异步错误报告单元进行异步错误报告来解决的。报告通路可建立在主机程序装置上。一旦这样的一条通路建立起来,它便在动态开关控制单元(磁盘上的)中维持,并且当开关断电时予以保存。当电源接通后,该通路恢复。也可以建立备用的错误报告通路。用这种方式能保证向不同主处理机报告的一致性。
总而言之,由每个主机的管理器直接访问开关控制器的做法便于从集中点(即,通过管理系统从计算机系统的整个主机级)进行直接、协调的开关控制。应用上述动态开关控制单元,能够使主机对开关(以及它们相关联的开关控制器)进行直接访问,开关对一般计算机系统来说是透明的,并且开关操作以致于每个管理器通过上述基于开关的登记协议,能确定其它在另外的主机上工作的管理器的存在。因此,达到了本发明的主要目的。
除了对开关控制器进行直接访问之外,本发明的最佳实施例还能动态产生I/O连接数据库。应该回忆起来的是,本发明的一个目的是询问一个计算机系统的通道子系统,以致于每台主机能动态确定与其相连的全部I/O配置并确定连接。现在详细说明这一特征。
首先是两个定义。“动态I/O连接数据库”此处定义为一种方法,计算机程序利用它确定没有预先规定定义的当前I/O配置。
“数据库”此处定义用来描述数据结构,该数据结构包括用于程序检索的I/O配置描述。这对程序来说是非常重要的数据集合。数据不是为了一般的系统范围的应用,也不是通过系统服务进行一般存取的。
I/O指令通常需要CPC干预,来控制通道子系统操作。CPC在通道子系统中解释I/O指令应用和执行其功能。本发明的最佳实施例应用I/O指令,该指令使程序直接与通道子系统通信,控制通道子系统工作。通过利用这些指令,许多与I/O有关的功能和信息,例如自描述、配置信息、I/O通路信息等,都能在没有CPC干预的情况下实现。
这样,本发明在没有任何用户努力的情况下,建立了通用的、正确的I/O连接数据库。本发明建立这一数据库是通过使用建立的系统接口。用户不必提供额外的输入源,也不必要求额外的处理过程将输入转变为本发明能用的形式。因此,用户工作较少,出现使多I/O连接数据库不同步的错误和疏漏的机会也较少。
此外,通过系统内通信特征,数据库产生机构(最好是一个程序)与其它机构动态地保持一致。其它管理器的标识也保留在I/O连接数据库中。
动态I/O连接数据库发生器的独特特征在于不需要特定用户生成配置输入;该发生器利用现存的、有效的系统接口建立其数据库;发生器动态确定配置中交换单元的数目;发生器动态确定每个交换单元的设备地址;以及发生器动态确定能够与其建立通信的发生器的数目。它还确定发生器和每个程序知道的交换单元之间的关系。
为了实现动态I/O连接数据库发生器,应用以下概念、功能和服务1.一种可供发生器用于从通道子系统得到关于上述定义的I/O配置信息。
2.一种机构,其中所有通道、交换单元和控制单元都有唯一的(实际的)标识符。
3.通过这些机构每个通道,交换单元和控制单元将(a)通过命令装置提供这个标识符;
(b)从它的“邻近”单元请求标识符作为它自己的标识符;
(c)对它的“邻近”单元有关自身标识符的请求作出响应,以及(d)通过命令装置提供“邻近”单元的标识符。
4.一种机构,其中一条通道能够确定它是否与一个交换单元相连,或是否直接与一个控制单元相连。
5.如果通道与一个交换单元相连(a)一种机构,其中一条通道可以确定交换单元中的接口的唯一标识,交换单元中通道被附上它的“链路地址”;
(b)一种机构,其中一条通道可以确定交换单元接口的唯一的标识,该接口对交换命令作出响应。
步骤5(b)的标识以后可以作为交换控制单元接口,因为正是该交换单元接口,其中与之相连的控制单元为交换单元设备图象提供I/O服务。
现存的协议使一条通道或一个控制单元在起始期间获得一个唯一的链路地址,这期间将允许该通道或控制单元通过一个使用该链路地址的动态开关进行通信,以确定动态开关连接。协议还提供了一种方法,通过该方法,一条通道或一个控制单元当动态开关不存在或通过动态开关的连接固定(专用)时,能获得一个唯一的链路地址。这些协议消除了对唯一的地址进行人工指定的需要,而允许动态重新配置。
一个功能是提供一种方法,通过该方法,一个未标识的单元(通道或控制单元)获得其被赋值的链路地址。每当一个单元未被标识并试图开始时,就发出一个信号。由接收信号的单元采取的动作取决于接收单元是标识的还是未标识的。如果接吸单元是标识的,采取的动作取决于接收单元是否是一条通道,一个动态开关控制单元,或者一个与动态开关控制单元不同的控制单元。由一条标识的通道或一个动态开关控制单元(一个动态开关控制单元总是被标识的)接收的信号引起将被发送的响应信号。用于响应中的目的链路地址是提供给通道或动态开关的、用于从中收到信号的未标识单元的链路地址。用于响应中的源链路地址是通道或动态开关的链路地址。由一个标识的或未被标识控制单元接收的信号引起将被发送的拒绝信号。发出一个信号和接收一个响应的未标识单元采用包括在响应的目的链路地址信息组中的链路地址作为其指定的链路地址,并且变为标识的。可以由一条通道或一个控制单元发出信号。动态开关控制单元不发信号。
动态I/O连接数据库发生器可以由一个程序和一个数据结构来实现。程序检索I/O数据,确定数据中的相互关系,然后将数据存储在数据结构之中。根数本发明的最佳实施例,实现动态I/O连接数据库发生器的数据结构存储在虚拟控制块中,这些块可以,例如经图10所示的实体属性关系数据方式而关联,实体间的相互关系描述如下图10中主机上有一通道路径ID(CHPID);由通路使用CHPID;并且CHPID与一个端口相连。
图10中由主机访问一个设备,并且设备经通路是可访问的。
图10中主机具有CHPID;主机访问设备,并且主机知道开关的状况。
就通路而言,图10中的通路使用CHPID;通路用来访问设备,并且通路通向端口。
图10中表示的端口与CHPID相连;此外,端口由通路使用并在开关上。
最后,图10中的开关状况为主机所知,并且开关具有端口。
图10方式所反应的数据结构提供为管理器,动态管理I/O连接所需的信息。
根据本发明的一个实施例,动态I/O连接数据库发生器(或它的程序实施)决定下面的信息并执行下面的步骤1.首先,集中CHPIP信息。具体说是CHPID数;CHPID的实际标识符;所连接单元(交换单元或控制单元)的实际标识符;所连接单元接口的实际标识符;交换控制单元接口(以后作为交换控制单元接口地址)的实际标识符;以及交换单元的逻辑标识符。
2.其次,通过处理所有CHPID信息和对不同的逻辑交换单元标识符计数,发生器确定逻辑交换单元的数目。
3.再次,发生器得到子通道信息,具体说是子通道数;设备数;以及子通道的通路装配屏蔽。对每一条定义用来访问设备的通道路径(IBM370/XA中为8条)而言,发生器确定通道路径标识符以及与控制单元接口相连的交换单元接口。正是该控制单元与设备相连,并且该控制单元由通道路经访问。这在以后作为控制单元接口地址。
4.发生器然后确定逻辑交换单元的设备数。对每个逻辑交换单元来说,发生器得到使用那个逻辑交换单元的CHPLD;从CHPID信息,发生器得到交换控制单元接口地址。对每个直到找到交换设备数或没有子通道之前都能从那个CHPID进行访问的子通道来说,(a)发产器得到连有CU的交换单元接口,即,控制单元接口地址,以及(b)如果交换控制单元接口地址与控制单元接口地址相同,那么子通道是用于交换设备的子通道。于是,交换设备数便找到了。如果没有子通道,并且交换设备单元数没有找到,那么交换单元没有被定义成该系统的设备。
5.下一步,发生器对每个交换单元执行I/O以便确定交换单元唯一的标识符;可交换的接口的数目;与每个可交换的接口相连的“邻近”单元的唯一的标识符;以及每个可交换的接口的状态,即,任何特定的硬件条件,任何特定的连接状态(例如,分块的、分割的和专用的开关状态)以及其它能够与之通信的接口。
6.再下一步,发生器使CHPID对交换单元定义有效。这是通过以下几步做到的(a)得到每个交换单元的唯一标识符,确定不同的唯一标识符的总数(这是“唯一”的交换单元唯一标识符的真正数目);(b)得到每个与交换单元相连的CHPID的“邻近”单元的唯一标识符;(c)确定找到的第一逻辑开关数的唯一标识符;(d)将所有具有相同唯一标识符(没有接口标识符部分)的CHPIDs与相同的逻辑开关数联系;(e)如果发现任何CHPIDs与一个具有唯一标识符的交换单元相连,而该标识符与相同交换单元中的另外的CHPIDs不同,那么改变CHPID的关系,以表示它是与其它CHPID相关联的逻辑开关数相关联的;以及(f)如果“唯一”交换单元唯一标识符少于逻辑开关数,那么逻辑开关数必须去掉;如果“唯一”交换单元唯一标识符多于逻辑开关数,那久逻辑开关数必须加上。
7.最后,每个发生器(每个主机一个发生器)将其自己“记录”在每个交换单元中,该交换单元是通过将一个唯一标识符存储在与交换单元相关联的存储装置中找到的。通过向交换单元送入“读出”命令,可利用这一信息。这样,每个发生器可以确定哪些发生器知道每个交换单元的状况。
根据本发明的最佳实施例,不论何时只要发生器决定它不再共享一个给定的开关,则该发生器就能删除其唯一标识符。
以上所描述的是适用于作为新颖的管理系统部分的一个动态I/O连接数据库发生器的实例。图10所示的数据结构被管理器采用,以满足用户请求,即确定受一个给定命令(例如分块,等)影响的I/O部件。
依靠通过CSS的有用数据和对开关的直接访问,动态产生数据结构,即不需预先规定定义。于是,达到了本发明另一个主要目的。
本发明其余两个特征,系统集中交换和浮点主互锁,现在将要详细给予描述。
系统集中交换解决了这样的问题,即I/O交换无意中由于和所需的I/O资源的实际连接丢失而造成程序和/或系统发生故障。系统集中交换使管理系统“安全地”实现其功能。
应该回忆的是,系统集中交换此处定义为一种方法,通过该方法使逻辑有效性发生变化,以反映实际连接的变化。
现在描述一种方法,在一个实施例中,该方法是由一个计算机程序实现的,该方法是以这样一种方式去控制实际的输入/输出交换单元,即,使它们的逻辑有效性状态与它们的实际连接状态保持同步。这一功能的主要好处是防止计算机系统、程序和用户出现有害的物理变化。
系统集中交换体现了以下概念并运用了以下功能和服务,通常适用于较大的(即中型及主干)计算机操作系统中(1)一个计算机硬件输入/输出(I/O)配置,包括通道、外设和交换单元。任何位于一条通道和一个具有可交换的接口或端口的设备之间的实际通路中的实际设备,此处称为交换单元。交换单元可以是独立的设备,专门用来提供从多通道至多控制单元接口的可交换的存取,或者交换单元可以仅仅是具有可交换接口的控制单元。
(2)作为通道设备关系组的通路的概念。本领域的技术人员懂得,一个单独的计算机操作系统、子系统或程序,能够被提供一条或多条通向设备的通路。只要至少有一条通路还是可用的,任何设备对I/O操作来说就是可用的。
(3)逻辑有效性和实际连接的概念。只要操作系统,控制I/O的子系统,或其它程序,当正在运行的I/O请求一台设备时,指出通向该设备的特定通路可以为那个I/O所用,该通路就是逻辑有效的。只要存在执行I/O操作的装置,通路就被实际连接。在实际通路中可以有几个单元。所有单元必须有电源,必须实际连接(即,设置电缆),以及,如果它们是可交换的,则使其实现(即进行实际交换,使能够连接),以便I/O完成操作。
(4)使程序确定通路当前逻辑状态的机构。
(5)使程序从交换单元确定通路当前实际状态的机构。
(6)控制通路逻辑有效性并返回请求状态(不管是否立即成功)的机构。如前所述,在一些系统中,该功能是一个变化命令,以后将被作为该功能的名字。变化脱机成功之后,通路不再适用于被系统选择去完成I/O对设备的请求。变化联机成功之后,通路适用于选择。当系统决定需要那条通路去访问该设备时,变化脱机命令是不成功的。
(7)使程序控制一个可交换的单元、以便改变相连资源的实际连接状态的机构。这些机构由程序控制,对一个从程序外部开始的命令或指令做出响应,例如,操作员想改变实际连接,使某一通道访问设备,即执行“连接”命令。
(8)使多个程序互相通信的机构。这些程序可以在分开的实际计算机图象上执行。这样的机构以前讨论过了,即,系统内通信功能使应用系统集中交换能力的管理器能互相通信。
本发明的一个最佳实施例包括这样一种机构,如果从两处或多处,例如从管理器、操作员或其它部分发出变化通路命令,该机构能消除干扰的可能性。干扰命令的一个实例是,操作员规定一条通路将要变为脱机,而管理器紧跟一条变化联机命令。为了消除当发布抵触变化命令时出现干扰的可能性,对每个可能发出变化通路命令的源头来说,分开的变化通路状态位被逻辑组合。除非所有的可能发出变化通路命令的部分都处于变化启动状态,则通路脱机。
通过采用数据结构和程序,实现系统集中交换。
数据结构描述输入/输出配置中的实体关系。I/O配置可以包括1.程序运行的系统(主系统);
2.由通道路径标识符(CHPIDS)标识的通道;
3.设备;
4.通路(即通向设备的通道);
5.交换单元;以及6.交换单元上的端口(即,可连接的接口)。
动态连接数据库的产生前面已经说过了,它可以用于产生一个数据结构,该数据结构使一个程序能够被写入,以致于对一个在开关上的给定的端口来说,程序能确定使用那个端口的I/O配置的通路。
前面参照图10所示的实体属性关系数据方式,数据结构存在于包括在由操作系统、任何控制I/O的子系统和硬件使用的I/O配置描述中的数据。每个程序都在一个独立的操作系统下运行(例如,作为每个管理器的部分),因此数据结构包括主操作系统的I/O配置。
应该注意的是,在此介绍的自动动态I/O连接数据库发生器的系统集中交换能够独立完成。例如,手动输入数据能提供完成系统集中交换的必要数据结构。然而,本发明的最佳实施例(就管理器而论)将动态I/O连接数据库发生器与系统集中交换结合在一起。
此处定义的系统集中交换方法可以被本领域的技术人员以计算机程序的形式运用。该方法在图11-15中以流程图形式画出。该程序可以在每个计算机带有一个程序的一个或多个计算机上执行(即运行)。该程序可以接受命令(通过用户在主机级输入),这些命令控制程序能够访问的交换单元。通过I/O操作访问交换单元。
系统集中交换的一个独特特征是它将以使用变化的实际通路的逻辑通路的逻辑有效性的变化,来调整引起实际有效性变化的交换单元的变化。
本发明使用的条件必须适用于将要完成的实际交换操作。重要的条件是1.每当一条可用的通路将变为不可用时,交换操作就不能实际进行,除非所有程序都成功地完成了与交换操作等效的逻辑操作。
2.仅仅改变所有程序撤销连接请求批准。当试图增加可用通路可能没有成功时,那么则不认为增加连接对系统的完整性是不利的。
3.假定来自任一程序的缺省响应是“不,不要交换”,即程序不能确定交换操作没有不利影响。因此,在一定时间内不能对请求做出响应、协调逻辑和实际操作的任一程序可以被认为拒绝交换操作。
4.如前所述的“放弃”过程,如果所有系统不能成功地适应实际交换操作引起的通路的丢失,那么“放弃”过程将去掉交换操作的逻辑效果。于是,系统返回试图进行交换的命令之前所处的状态,所以看起来所有系统好像没有试图进行过交换操作。
5.如前所述的“开关放弃”过程,它将所有交换单元和所有主机返回至交换命令之前所处的状态。也就是说,去掉了交换操作的实际效果和逻辑效果。
下面将要展示的流程图中没有说明的是,在一个单独的交换命令期间,程序可以控制一个以上的交换单元。所有开关必须成功地完成实际变化,否则将执行开关放弃。
6.流程图中还没有说明的是,程序将提供给用户用程序命令控制实际I/O配置的灵活选择(a)“不变化”选择,它指示程序不发布协调系统的逻辑有效性的系统命令(例如,变化)。这种选择回避了系统集中交换的所有功能,因此程序的作用为“普通的”交换系统。
(b)“强制”选择,它指示程序越过一个或多个程序部分的否认响应,即“不表决”。强制选择还指示程序回避如前所述的“开关放弃”。当发布开关命令去调整存在否认响应的原因时,这一功能是有用的。
(c)“放弃”选择,它指示程序在对移去连接做出否认响应之后,不分配“放弃”。这一选择在以前的管理器概述中讨论过,能够使系统免于使用无效的通路,以致于后面重复的交换命令将不会遇到正在使用的新通路,这些通路在前面的重复命令中能被移去。
图11是系统集中交换实现的全部功能的流程图。假设一个计算机程序的执行过程,图11可以被设想为表示主程序的流程,其中只有当所有的程序部改变了相应的逻辑有效性时,实际的连接才发生改变。也就是说,所有的程序已作出判断它们的主系统没有受到实际变化的不利影响。这在图11的框1111中表示为“可以交换”。这一方法将改变逻辑通路的状态,因此,它们与交换命令引起的实际通路改变同步。
为了执行由操作员或其它程序发出的交换命令,程序必须确定(1)必须改变的端口(也在图11的框1111中表示),以及(2)将产生的对那些端口的连接变化(框1112)。
这不是唯一的,所有交换程序都必须这样做。所有的连接变化命令总是可以简化为(1)不允许在两个或两个以上端口间构成现存的实际连接(包括不允许所有的实际连接都出自一个端口),这种情况下发出“移去”命令(框1113);允许在两个或两个以上端口间的实际连接,这种情况下发出“增加”命令(框1114);或者不允许和允许二者兼有,这种情况下发出“移去”和“增加”命令。
现在来看图11的流程图的每步过程。如果命令没有移去任何现存的连接,那么框1112之后取通路1115。由于之前在1111设定“可以交换”,所以框1120之后取通路1116。在框1125改变连接(数据库更新)。如果没有增加另外的连接(如在框1150中决定的那样),程序经通路1130返回。如果连接增加了,那么在框1114发出“增加”命令,其方法以后将参照图12说明。这之后,程序经通路1135和1130返回。
如果连接被移去(回过来看框1112),那么取通路1180,在框1113发出“移去”命令(其方法参照图12)。在框1187,如果所有系统批准该变化(例如,如果每个管理器批准该变化),那么取通路1190,至框1120,接下来再到框1125,等等,如上所述(由于保持设定“可以变换”)。然而,如果不是所有系统都批准变化那样一种情况,那么在框1195发出“放弃”命令,在框1197设定“不可以交换”,并且程序经通路1199和框1120返回。
描述完以流程图形式表示的系统集中交换的全部功能之后,参照图12详细介绍“发出命令”功能。
图12表示程序能够“发出”特定的实际变化命令的方法,因此交换操作与程序运行的所有系统状态保持集中。这样,可能受实际变化影响的所有系统可以为交换操作的不利影响而进行测试。
这部分程序基本上为所有程序部分中的“选择的一致性”而进行测试。只有当所有系统都能适应的时候,实际交换操作才是在实际级执行的命令。
图12的框1210表示将命令发送到每个系统,接下来是设定计时器(在框1211)。
在框1212,程序等待响应和计时器计时。如果存在一个系统响应(框1213),那么记录该响应(“是”表决或“否”表决),以便后来在框1220做分析用。如果还有其它系统要报告(框1225)以及如果计时器没计时,那么程序环返回框1212。
计时器计时或所有系统响应记录之后,在框1220对系统“表决”进行分析。如果所有系统返回“是表决”,即,不反对移去资源连接,都么在框1275设定“是表决”,这之后发出程序返回的命令。任何否定的表决(或不报告系统)将在框1280设定“否表决”,这之后发出程序返回的命令。
图13和14表示每个程序(根据本发明的最佳实施例构造的)执行的过程,在该过程中确定哪条通路受交换操作的影响。
该程序部分中列出了一个或多个端口,以及这些端口将要发出的连接变化。
通过利用以图10所示数据模型的形式存储的信息,程序设置采用开关端口的通路。找到一条通路之后,程序设置CHPID和设备,它们包括一条通路,并且是变化命令的操作者。如果程序不“知道”开关或端口,那么实际的交换操作不会影响任何已知的通路。
根据本发明的一个最佳实施例,执行系统集中交换的每个系统遵循图13所示的流程图。
作为开始,在框1301设定“是表决”。如果所讨论的那个开关不为系统所知(在框1302确定),那么处理器此后返回,如前所述,实际的交换操作不影响任何已知的通路。
如果开关为系统所知,并且如果请求是“放弃”(在框1305确定),那么变化类型是“联机”,使通路可用(请看框1310)。在这种情况下,前面列出的通路可用(框1315),并且这些通路在框1320是变为联机。然后程序返回。
如果请求不是“放弃”,那么从框1305出发取通路1325,并且在框1330进行检查,确定是否命令移去了任何现存的连接。如果是的话,那么变化类型是“脱机”,使通路不适用(框1350)。如果没有连接被移去,那么变化类型是“联机”(框1355)。变化类型设定之后,在框1375建立受影响的一列通路,这将参照图14很快予以说明。最后,一列通路(联机还是脱机取决于框1350或1355的设定)被变化,并且程序返回。
图14的流程图用于执行“建立一列通路”的功能。
在框1401,程序确定下一个变化状态的端口。如果在框1402确定该端口没有影响任何通路,那么程序检查任何其它受影响的端口(在框1403),如果没有的话,程序便返回。
如果被分析的端口影响了一条通路,那么程序确定(在框1405)包括该通路的CHPID和设备,并将该通路加到通路清单中去。根据参照图13所描述的程序部分,加到通路清单中的每条通路都是可变化的。如果在框1410确定有更多的通路受到影响,那么程序环回到框1405。否则,程序返回,除非有更多的受影响的端口需要分析(框1403)。
最后,图15表示程序的执行过程,每个程序以确定实际交换命令的效果这样的方式,协调通路的逻辑状态和实际状态。企图变化特定的通路(如果清单中存在框1502中确定的任何通路的话,则在框1501变化该通路)使之可用或不可用。如果任何变化通路的企图不成功(框1505),那么记录“否表决”(在框1510),以便表示系统不能适应实际的变化。假定执行变化命令的系统通过系统中的程序控制那条通路的使用。
参照图10~15进行的描述是使本领域的技术人员能够实现系统集中交换能力(最好是以计算机程序的形式)的细节,以便利用新颖的管理器进行“安全”交换。包括系统集中交换功能(包括在上述管理器的最佳实施例中)的一个I/O连接管理器将产生一个计算机系统,其中实际交换操作从I/O连接的系统逻辑角度来看是集中(协调)的。因此,实现了本发明的另一个主要目的。
本发明的其它主要目的是在一个多用户环境中以这样一种方式能够实行动态I/O连接管理,该方式保证在另一用户能发出一个命令或一组命令之前,一个用户(比如新颖的I/O管理器)执行完一个命令或一组命令,并且该方式还能在主机级承担该功能的总开销和可靠性。通过浮动主互锁功能可以达到这一目的,这将参照图16~19在以下说明。
“浮动主部分”(Floating Master)此处定义为一种方法,它能被具有多个部分(或图象)(如管理器)的计算机程序采用,将多个部分互锁,以便只要一个单独部分需要或想要开始,它就能保持开始,这之后,任何其它部分能开始或保持开始。
所有采用这一方法的程序部分可以作为等同者开始。那种状态一直保持,直到用户向一个程序输入一条命令为止。然后,那一部分变为主部分,而所有其它部分成为从部分,必须按照主部分的指示去做。当用户完成其任务,主部分恢复其等同状态,这之后,任何程序部分都能变成新的主部分。
本发明的这一部分对任何具有多部分的程序都是特别有用的,该程序有进入多部分命令和多命令过程的几个用户,其中程序的每一部分在一条命令和一个过程期间必须不受干扰(以其它程序部分影响系统状态的形式)。
浮动主互锁提供了一种互锁机构,其中在一个多用户分布式应用上开始多部分过程的用户,被保证在该分布式应用控制下的系统状态,仅在单个用户的控制之下显示和/或改变。浮动主互锁还提供在互锁机构中恢复原有状态的方法,以致于(a)不会出现禁止所有用户访问的死锁现象;(b)多系统环境中出现的任何故障不会禁止其它用户访问;以及(c)多系统环境中出现的任何故障不允许多用户同时访问。
本发明使用的“锁定”概念是指程序存储区既可是空白的(指无位置锁定),也可包含一个描述锁定状态和锁定所有者的值。
每个程序图象必须保持该锁定存储,并且遵守协议,该协议在执行程序过程中的某段时间修改或检验锁定状态。
为了实现浮动主互锁,必须保存以下数据项(a)“current user”,它是当前正在进行处理的用户(例如用户ID和系统ID)的唯一标识符。
(b)“previous user”,它是上次进行处理的用户的唯一标识符。
(c)“timestamp”,它是代表当前用户的上次应用交互作用时间。
以下命令结构可用于(以及用于)包含浮动主互锁的本发明的最佳实施例,去改变锁定状态。
(a)“LOCK”用于开始一条或多条命令的执行过程。该命令以“process-lock”开始。
(b)“UNLOCK”用于发出一条或多条命令的执行过程完成的信号。该命令以“process-lock”结束。
(c)“START”用于开始一条单独的命令。该命令以“command-lock”开始。
(d)“END”用于发出一条单独命令结束的信号。该命令以“command-lock”结束。
(e)“GETLOCK”用于从另一用户取锁定。该命令以任何“process-lock”和一定情况下的任何“command-lock”结束,它由一个新所有者保持和以“process-lock”开始。
(f)“SET TIMEOUT”用于在用“GETLOCK”取“Command-Iock”锁定之前,建立所需要的经过时间的量。
参照图16~19,可以非常清楚地了解浮动主互锁功能。图16表示处理级和命令级的锁定。图16中的符号说明指出了图16(以及图17~19)的说明用户命令项、程序响应、以及设定处理级和命令级锁定的时间域的各种符号。
在图16~19的每张图中,程序1和程序2分别对具有新颖互锁能力(例如管理器)的设备的第一和第二用户的响应。
图16表示一个用户将一条命令输入(在1601)一个执行浮动主互锁协议的程序。
用户给程序的第一命令将形成处理级锁定(在1602)和命令级锁定(在1603)。如果处理级锁定没有成功地在所有程序部分中得到,那么在曾得到过锁定的每个程序部分,程序必须UNLOCK。于是,两个或多个企图同时锁定的用户将放弃各自的锁定企图。
当保持命令级锁定的期间,程序可以实行其正常功能,保证程序的所有其它部分将不允许另外的用户引用该程序。
当命令完成时,命令级锁定结束,但是处理级锁定继续(参见图16中的1620),直到用户明确地将UNLOCK命令输入程序(在1605表示)。在处理级锁定保持期间,该用户保证其它用户拒绝引用该程序,并被告知第一用户正在处理。
图16~19还指出系统响应是在每条命令输入完成之后。
图17表示在多命令和多用户存在的环境中应用的互锁装置。第一用户输入两条命令(在1701和1702)。第二用户企图在process-lock期间(在1705)先输入一条命令,命令被拒绝,指示process-lock正在起作用,并且它就是锁定所有者。然后,在command-lock期间,命令被拒绝(在1710),指示command-lock正在起作用,并且它就是锁定所有者。最后,当没有锁定保持(在1725),接受第二用户的命令,并且第二用户变成新的主用户。
由于当前用户是系统ID和用户ID的结合,所以如果第二用户在与运行程序1的系统相同的系统输入命令,第二用户将得到同样的响应。
图18表示当第二用户输入GETLOCK,而process-lock由程序1保持时,浮动主互锁的最佳实施例的工作情况。图18表示当只有process-lock保持时(例如,图18中的1810),第二用户是如何能够在任何时候从现行用户中接过锁定的。
最后,图19表示当发布GETLOCK命令(由用户2)、保持Command-lock(由用户1)时,浮动主互锁的最佳工作情况。
图19表示由用户2“敌对接收”(hostile takeouer)。就是说,当Command-lock保持时,但由于系统故障或其它极端条件,当前用户必须改变。
GETLOCK是仅有的命令,根据本发明的最佳实施例,当Command-lock保持时,它不被立即拒绝。从上次完成程序动作算起,在预定的时间量未到之前程序将不会成功地执行GETLOCK。这段时间的量可以用SET TIMEOUT命令改变。
根据本发明的最佳实施例,除了保存“current user”,“previous user”和“timestamp”信息外,管理器还保存用户及通过GETLOCK命令,以process-lock结束的任何用户的系统ID。这种用户以后被称作“被冲撞”(“bumped”)用户。被管理器保存的附加信息在所有的管理器中维持不变(例如,通过连接的清单)并且提供给变为联机的每个管理器。当一个被冲撞用户接下来将任何命令输入进管理器时,命令被拒绝,并指出先前被该用户保持的process-lock终止。这就保证如果另一用户在第一用户发出的两条命令之间执行GETLOCK和UNLOCK,也能通知第一用户,即使在系统发生故障和重新开始时也是这样。
此外,根据本发明的最佳实施例,除了保存上述数据之外,每当从开关读出数据去建立数据库时,管理器也保存与开关相关联的管理器域中的键计数器值。通过保存这一信息,管理器可以通知每个用户,从用户的上次命令以来,键计数器是否发生了变化。
针对“敌对接收”企图而言,浮动主互锁将企图在所有其它程序部分上行使LOCK功能。当检测到“敌对接收”条件时,每个程序部分将存储先前的用户。企图接收的程序必须在除先前锁定的所有者部分之外的所有程序部分锁定,否则它必须去掉其GETLOCK企图,该企图会导致所有程序部分将先前的用户状态恢复成当前的用户状态。这样做能避免两个程序为新的所有关系而发生冲突,避免二者“接替发生”,(succeeding)还允许“停止”条件存在于(即,一种暂时的条件,其中程序允许在没有干预行动的情况下,使暂停消逝,以致于看起来发生了故障,而实际还在进行处理)第一当前用户系统,以致于第一用户能在无故障情况下停止处理的地方开始进行处理。
上述浮动主互锁能够在从主机级管理I/O连接的多主机环境中,保证数据的完整性。如果管理器一直在仅有一个单独的主处理机上运行(在一个单独用户的单独操作系统之下),那么就不需要浮动主互锁。然而,对管理系统的更一般的情况来说,也就是有多个用户,以及通过所有的管理系统部分用相同的正在处理的数据进行主机间的相互通信,那么为确保数据的完整性,浮动主互锁就是必不可少的了。
前面的描述提供了动态I/O连接管理系统的细节,它在一个计数机系统的主机级工作。新颖的连接管理器的各种最佳特征,特别是系统集中交换、浮动主互锁、动态I/O连接数据库发生器,以及对开关控制器直接进行访问的装置,将所有这些都结合在一起,就构成了达到所有前面说过的目的的装置。
本领域的技术人员容易懂得,此处所描述的新颖的连接管理器并不需要所有上述特征去实现其所述功能(例如,如果只有一个单独的用户,一个单独的连接管理系统的主机部分存在,那么就不需要浮动主互锁)。
此外,本领域的技术人员还容易懂得,以上描述的每个特征当应用于管理I/O连接时有新颖性(例如,上述动态I/O连接数据库的产生和互锁能力,显然可以用于I/O连接管理以外的地方)。因此,这些新颖的特征不限于作为连接管理系统部分本身的应用。
最后,本领域的技术人员将认识到,前面对新颖的方法和装置的描述仅仅是为了说明的目的,并不打算将其毫无保留地说出,或将发明局限于已公开的明确的形式,很显然,根据以上原理,对本发明作各种修改和变化都是可能的。
此处给出的实施例是为了最清楚地解释本发明的原理和它的实际应用,使本领域的其它技术人员能在不同的实施例中更好地应用本发明,以及通过各种修改以满足所设想的特殊使用需要。
虽然参照最佳实施例对本发明进行了具体展示和描述,但是本领域的技术人员将懂得,可以在形式和细节上做各种修改,而不会偏离本发明的精神和范围。
权利要求
1.构成一个计算机系统的数据处理装置,包括至少一个主处理机/操作系统,一个通道子系统,以及至少一个开关连同与之相关联的开关控制器,用于使至少一个I/O设备连同与之相并联的I/O设备控制单元,通过所说的通道子系统,可交换地与一台主机连接,其特征在于用于在所说的计算机系统中从至少一台主机出发动态地管理I/O连接的装置。
2.权利要求1所说的装置的特征还在于设置在每个开关中的第一装置,用于对与一个给定开关相关联的开关控制器进行直接主机访问。
3.权利要求1所说的装置的特征还在于包括在每个用于从每台主机动态管理I/O连接的所说装置中的第二装置,用于自动地和动态地确定对应的那台主机的I/O配置连接。
4.权利要求1所说的装置的特征还在于包括在每个用于从每台主机动态管理I/O连接的所说装置中的第三装置,用于完成系统集中交换。
5.权利要求1所说的装置的特征还在于包括在每个用于从每台主机动态管理I/O连接的所说装置中的第四装置,用于保证在多用户环境中I/O连接数据库的完整性,其中每个用户可以同时输入多部分命令和处理过程。
6.权利要求1所说的装置,其特征在于(a)设置在每个开关中的第一装置,用于对与一个给定开关相关联的开关控制器进行直接主机访问;(b)包括在每个用于从每台主机动态管理I/O连接的所说装置中的第二装置,用于自动地和动态地确定那台主机的当前I/O配置和连接;(c)包括在每个用于从每台主机动态管理I/O连接的所说装置中的第三装置,用于完成系统集中交换;以及(d)包括在每个用于从每台主机动态管理I/O连接的所说装置中的第四装置,用于保证在多用户环境中I/O连接数据库的完整性,其中每个用户可以同时输入多部分命令和处理过程。
7.权利要求6所说的装置,其特征在于所说的第四装置通过采用浮动主互锁实现。
8.在一个计算机系统中用于管理I/O连接的方法,该计算机系统包括至少一个主处理机/操作系统,一个通道子系统,以及至少一个开关设备连同与之相关联的开关控制器,用于使至少一个I/O设备连同与之相关联的I/O设备控制单元,通过所说的通道子系统,可交换地与一台主机连接,其特征在于以下特征(a)相对于每台主机,标识在所说计算机系统中与给定的主机通道子系统相连的任何存在的开关;(b)为一个给定的主机通道子系统,给每条与开关相连的通道标识一个开关附属地址,并给每个与开关相连的控制单元的可连接接口,标识一个开关附属地址;(c)为一个给定的主机通道子系统,给每条与开关相连的通道标识一个逻辑开关标识符;(d)标识设置在每个开关中的动态开关控制装置的地址,其中所说的动态开关控制装置对由每个开关控制器保持的开关连接数据提供直接主机访问;(e)通过每台主机,汇集在步骤(a)~(b)中标识的信息;(f)在每台主机,从步骤(e)汇集的信息中确定被给定主机用来访问每个开关控制器的开关设备数目;以及。(g)通过每台主机,利用在步骤(f)中确定的信息,直接存取开关连接数据。
9.权利要求8所说的方法,其特征在于所说的汇集的步骤通过询问通道子系统完成。
10.权利要求8所说的方法,其特征在于从步骤(e)汇集的数据中,在给定主机中自动地和动态地确定那台主机的I/O配置连接的步骤。
11.权利要求8所说的方法,其特征在于完成系统集中交换的步骤。
12.权利要求8所说的方法,其特征在于执行浮动主互锁的步骤,以保证在多用户环境中I/O连接数据库的完整性,其中每个用户可以同时输入多部分命令和处理过程。
13.在一个计算机系统中用于管理I/O连接的方法,该计算系统包括至少一个主处理机/操作系统,一个通道子系统和及至少一个开关设备连同与之相关联的开关控制器,用于使至少一个I/O设备连同与之相关联的I/O设备控制单元,通过所说的通道子系统,可交换地与一台主机连接,作为对一个交换命令的响应,该交换命令改变所说主机与所说I/O设备的连接状态,其特征在于自动确定假设所说命令由所说开关执行的话,通过实际连接的变化,什么逻辑有效性将被去掉的步骤。
14.权利要求13所说的方法,其特征在于自动确定将要去掉的逻辑有效性是否为任何其它系统资源所需要的步骤。
15.权利要求14所说的方法,其特征在于在所述逻辑有效性不被其它系统资源需要的情况下,取消所述逻辑有效性的步骤。
16.权利要求15所说的方法,其特征在于只有当如果所说命令由所说开关执行,所说去掉逻辑有效性的步骤去掉通过实际连接的变化将要被去掉的所有逻辑有效性时,改变隐含在所说的交换命令中的实际连接的步骤。
17.权利要求15所说的方法,其特征在于如果所说命令由所说开关执行,所说去掉的步骤没有去掉通过实际连接的变化将要去掉的所有逻辑有效性时,增加被去掉的逻辑有效性的步骤。
18.在一个计算机系统中用于管理I/O连接的方法,该计算机系统包括至少一个主处理机/操作系统,一个通道子系统,以及至少一个开关设备连同与之相关联的开关控制器,用于使至少一个I/O设备连同与之相关联的I/O设备控制单元,通过所说的通道子系统,可交换地与一台主机连接,作为对一个交换命令的响应,该交换命令改变所说主机与所说I/O设备的连接状态,其特征在于以下步骤(a)自动确定假设所说命令由所说开关执行的话,通过实际连接的变化,什么逻辑有效性将增加;(b)改变隐含在所说交换命令中的实际连接;以及(c)增加所说的逻辑有效性。
19.在一个计算机系统中用于动态产生一个I/O连接数据库的方法,该计算机系统包括至少一个主处理机/操作系统,一个通道子系统,以及至少一个开关设备连同与之相关联的开关控制器,用于使至少一个I/O设备连同与之相关联的I/O设备控制单元,通过所说的通道子系统,可交换地与一台主机连接,其特征在于以下步骤(a)相对于每台主机,标识在所说计算机系统中与给定的主机通道子系统相连的任何存在的开关;(b)为一个给定的主机通道子系统,给每条与开关相连的通道标识一个开关附属地址,和为每个与开关相连的控制单元的可连接接口,标识一个开关附属地址;(c)为一个给定的主机通道子系统,给每条与开关相连的通道标识一个逻辑开关标识符;(d)标识设置在每个开关中的动态开关控制装置的地址,其中所说的动态开关控制装置对由每个开关控制器保持的开关连接数据进行直接主机访问;(e)通过每台主机,汇集在步骤(a)~(d)中标识的信息;以及(f)从步骤(e)汇集的数据中,在给定主机中自动地和动态地确定那台主机的I/O配置连接。
20.权利要求19所说的方法,其特征在于在每台主机上从步骤(e)汇集的信息中确定由给定主机用来访问每个开关控制器的开关设备数目的步骤。
21.在一个计算机系统中用管理I/O连接的方法,该计算机系统包括多个主处理机/操作系统,一个通道子系统,以及至少一个能够被所说的多个主处理机/操作系统共享的开关设备,连同与之相关联的开关控制器,用于使至少一个I/O设备连同与之相关联的I/O设备控制单元,通过所说的通道子系统,可交换地与一台主机连接,其特征在于以下步骤(a)确定能够被所说的多个主处理机/操作系统共享的每个开关设备的设备数目;以及(b)在存储共享一个给定开关的每个主机的由所说设备数目标识的唯一标识符,由此得到所有共享给定开关的每个主机的标识。
22.权利要求21所说的方法,其特征在于删除一个给定主机的唯一标识符的步骤。
23.权利要求8以说的方法,其特征在于在存储装置中存储每个共享一个给定开关的主机的由所说设备数目标识的唯一标识符的步骤,由此得到所有共享给定开关的每个主机的标识。
24.权利要求8所说的方法,其特征在于每次从开关中读出数据时,在每个主机的域中保存与开关相关联的键计数器值的步骤。
25.在冲突的命令之间消除干扰可能性的方法,该命令控制一个计算机系统中给定通路的逻辑有效性,计算机系统中所说命令能够从多个命令源发出,其特征在于以下步骤(a)将一个通路状态位与所说的多个命令源的每一个相关联;并且(b)逻辑组合所说的通路状态位,以控制所说设备通路的逻辑有效性。
26.权利要求25所说的方法,其特征在于如果所有可能的所说命令源指定联机状态,那么所说设备通路置于联机状态。
27.权利要求25所说的方法,其特征在于如果任一可能的所说命令源指定脱机状态,那么所说设备通路置于脱机状态。
28.权利要求25所说的方法,其特征在于利用VARY PATH命令去控制一条给定通路的逻辑有效性。
29.用于支持分布式应用的处理过程的计算机系统中的一种方法,该方法保证在应用的任何其它用户能够发出一个将被该应用接受的命令之前,执行完应用的第一用户发出的一个第一命令,其特征在于以下步骤(a)只允许一个用户在任何单独的时刻访问所说的应用;(b)拒绝所有其它用户,直至第一用户完成其任务。
30.用于支持分布式应用的处理过程的计算机系统中的一种方法,该系统中至少一个应用是在一个计算机程序的多个部分中体现的,该方法互锁所说的程序部分,以致于一个单独的部分能完成给定任务的处理过程,而不受所说程序的其它部分的干扰,其特征在于以下步骤(a)将所有程序部分开始置于一种等同状态;(b)将一个用户命令输入进所说程序的一部分,这之后该部分变成所有程序部分的主部分;(c)完成预定的任务之后,使所说程序的所说的一部分送回到所说的等同状态,于是任何其它程序部分可以成为新的主部分。
31.用于支持分布式应用的处理过程的计算机系统中的一种方法,该系统中至少一个应用是在一个计算机程序的多个部分中体现的,并且至少一个所说的计算机程序具有能够输入多部分命令和多命令处理过程的多个用户,利用该方法每个这样的程序部分被确保至少在一个命令和/或处理过程期间,没有其它相同的程序部分将接受从任何其它用户发出的命令,其特征在于以下步骤(a)将所有所说的程序部分置于一种等同状态;(b)保持可被每个给定程序部分存取的一个程序锁定值,不论何时建立锁定,它都指出锁定状态,锁定类型和锁定的所有者;(c)将一个用户命令输入进所说程序的一部分;(d)作为对所说用户命令的响应,设置处理级型锁定和命令级型锁定,除非另一程序部分拥有这两种锁定类型的任一种。
32.权利要求31所说的方法,其特征在于以每当另一程序部分拥有所说两种锁定类型的任一种时不做任何通过步骤(d)部分得到的锁定以防止死锁的步骤。
33.权利要求31所说的方法,其特征在于以下步骤(a)当使命令级锁定最初建立的命令完成其预定任务时,结束命令级锁定;(b)保持与完成命令相关联的处理级锁定,直到最初建立处理级锁定的用户明确地解除处理级锁定;以及(c)当处理级锁定建立时,拒绝所有其它用户。
34.权利要求33所说的方法,其特征在于作为对从最初设置处理级锁定的用户发出的一个明确命令的响应,解除处理级锁定的步骤。
35.权利要求33所说的方法,其特征在于作为对从第二用户发出的GETLOCK型命令的响应,结束由第一用户设定的处理级锁定的步骤。
36.权利要求35所说的方法,其特征在于以仅在先前完成的程序动作之后经过一段预定的时间,作为对从第二用户发出的GETLOCK型命令的响应,结束由第一用户设定的命令级锁定的步骤。
37.权利要求35所说的方法,其特征在于拒绝由任何其处理级锁定通过GETLOCK型命令被终止的用户输入第一命令的步骤。
全文摘要
本发明涉及数据处理系统中的I/O管理,特别是主处理机级的I/O连接的动态管理。包括设置在每个开关中的第一装置,用于开关控制器进行直接主机访问;用于动态管理I/O连接、确定I/O配置的第二装置;用于动态管理I/O连接、完成系统集中交换的第三装置;以及用于动态管理I/O连接、保证在多用户环境中I/O连接数据库完整性的第四装置,其中每个用户可以同时输入多个命令和处理过程。
文档编号G06F13/14GK1052201SQ9010926
公开日1991年6月12日 申请日期1990年11月20日 优先权日1989年11月28日
发明者克里斯托弗·约翰·白雷, 迈克尔·查里斯·考克斯, 理查德·克维克拉, 莱恩·马利耶, 威廉·罗伯特·弗姆, 加利·艾伦·费舍尔, 罗伯特·约翰·加莱弗, 卡尔·海尔姆斯·约翰·霍普, 彼得·依格纳修斯·卡尼亚, 劳雷恩·约瑟芬·瓦尔利 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1