Staf学习资料.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Staf学习资料

在STAF中有三个核心服务,它们分别是handle(句柄)、variable(变量)和queue(队列)服务。这些服务提供了最基本的公共功能,并跨越了所有的服务。同时也为我们提供了一个持续构建的基础。一点也不奇怪,这些服务展现了STAF中handles、variables和queuing的能力。 ??????? Handles用来识别并封装STAF环境中的应用程序的数据。当一个应用程序希望使用STAF时,它会通过调用一个注册的API以获得一个handle(句柄)。返回的handle会特别地指向注册的应用程序。一般来说,应用程序与handles之间是1对N(多)的映射关系。一个应用程序可以有多个handle,但任意一个给定的handle只属于一个单个的应用程序。然而,STAF不支持特殊的“static”(静态)handles,而这些handles可在应用程序之间共享。每个STAF的handle都有一个与之关联的信息queue(队列)。这个队列允许应用程序接收来自于其他应用和服务的数据。它也构成了STAF中本地和面向网络的IPC(进程间通信)的基础。很多服务都是通过它的队列来向应用程序发送数据的。这些队列允许应用程序以事件驱动的方式工作,类似于许多窗口系统所使用的方法。 ??????? 通过STAF的变量(服务),STAF能够提供数据管理的功能。STAF应用程序使用的这些STAF变量的方法与编程语言使用变量的方法大致相同。在提交了一个STAF请求时,请求中的变量会被他们的值所替换。STAF变量(服务)有一个强大的功能是可以在运行的应用程序的范围之外对变量进行修改。这个功能提供了一个能力,就是可以动态地修改应用程序的特性。 ??????? 例如,设计一个程序,用来向系统施加一定百分比的负载,而此程序可能允许我们通过一个环境变量或者一个命令行参数来设定这个百分比。在这种情况下,程序一旦开始运行,改变负载百分比的唯一方法就是停止程序,修改环境变量或命令行参数,并重启程序。而使用STAF变量则可以在不停止程序的情况下修改负载百分比的值。对程序所做的唯一修改也仅仅是让程序周期性的重新评估STAF变量的值。这些STAF变量被保存在变量池中。每一个STAF handle(句柄)都具有唯一的,且为对应的应用程序所特有的变量池。STAF也会提供一个全局变量池,一个给定的STAF系统上所有句柄公用的变量池。此公共性允许我们在全局变量池中设定默认值,然后按照各个句柄的访问顺序覆盖这些默认值。 ??????? 除了handle(句柄),variable(变量)和queue(队列),STAF还提供其他几项服务。STAF通过semaphore(信号量)和resource pool(资源池)服务提供同步功能。其中,信号量服务提供两种信号量的操作:mutual exclusion (mutex--同时共享排他性,即互斥)和事件信号量。与通常由操作系统提供的信号量相比,STAF信号量具有两个优点。一,可通过网络远程使用。二,更加可视化,这意味他们也更为简单,例如,要判断谁拥有一个mutex(互斥)信号量和谁正在等待一个event(事件)信号量。而资源池服务则为管理已命名的,如machines(机器)、user identifiers(用户ID)和licenses(许可)等资源池,提供了一个管理手段。特别的是,它提供了对池内容进行管理,以及同步存取池中元素的特性。 ??????? STAF通过process(进程)服务来执行STAF系统上的进程启动、停止和查询操作。它可以对进程的执行进行详细地控制,包括明确的环境变量、工作目录、输入/输出重定向,以及有效的用户ID。进程服务也能应用户的要求,在进程结束时发送通知。这些通知通过前面描述的队列功能发送。 ??????? STAF通过file system(文件系统)服务提供文件系统功能。目前,这个服务为文件的传送和文件内容的存取提供了理论依据。STAF的未来版本会把此服务的功能扩展到文件和目录的管理中,如目录的创建和枚举,以及文件或目录的删除。 ??????? 通过log(日志)服务,STAF提供日志记录功能。在最基础的层上,此服务根据各个级别,如“FATAL”、“ERROR”、“WARING”以及“DEBUG”,提供时间戳(time-stamped)类消息的日志记录。各种更高级别的功能都建立在这个基础之上,包括本地和集中式的日志记录、程序间的日志共享、动态的level-masking(级别遮盖),以及活跃态日志的维护。动态的level-masking有其特殊的意义。级别遮盖指用户能够判断日志记录的级别,以确定把哪种级别的记录保存在日志文件中。未包含在级别遮盖中的记录级别的信息会被丢弃。事实上这个特性是动态的,意味着我们

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档