OO第06次作业指导书V2.51.pdfVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OO 第六次作业指导书 2018 版 1. 前言  作业目标 本次作业的目标是训练同学们针对线程安全问题,如何平衡线程访问控制 和共享对象之间的矛盾。 作业内容是实现一个监控程序,针对给定监控范围内的监控对象,以扫描 方式探查监控对象相关属性的变化,从而触发规定的处理动作。所谓监控范围 指计算机文件系统中的一棵目录树,监控对象则是位于监控范围内的具体文件 (注:不包含目录文件)。在测试过程中,监控范围可以通过创建子目录来扩 展,但不可以改变目录树中已经存在的任何目录名称。  作业背景知识 IFTTT 是互联网的一种应用形态,它支持以 IF X THEN Y 的方式来定义任 务,并能够在后台自动执行任务,比如: IF { has new message} THEN {drag the message to my blog} 其中IF 和THEN 为关键词,IF 后面的部分为触发器,THEN 后面部分为任 务。为了避免用词混淆,称IF***THEN***为一个监控作业(monitoring job) 。 关于IFTTT :(建议大家实验前先了解一下基本思想) IFTTT_百科:/item/ifttt?fr=aladdin 2. 输入 通过控制台启动主程序后,输入形如“IF***THEN***”的监控作业。输入 可为一个或多个监控作业,监控作业之间使用回车换行分隔。一次性输入全部 监控作业后,监控线程开始启动。在监控过程中,不可添加新的监控作业。 监控作业的基本格式为:IF 监视对象触发器THEN 任务 触发器是一个逻辑条件,触发器用来检查监控对象的属性变化,一旦发生 所关注的变化,则成功匹配触发器条件,从而“触发”THEN 后面的任务,即执 行相应的任务。其中: 监视对象由测试者设定,建议选择非系统盘的文件作为监 控对象,以免造成系统破坏。触发器内容为下文触发器部分(第五节) 中给出的 选项;任务为下文任务部分(第六节) 中给出的选项。触发器和任务的输入格式 可自定义,但需在readme 中准确说明。 可能的任务格式举例: IF /root/a.txt modified THEN record-summary //含义为:对/root/a.txt 文件进行监控,一旦该文件被修改,则执行 record- summary 。 IF [D: \test\demo.cpp] renamed THEN recover //含义为:对D: \test\demo.cpp 文件进行监控,一旦被重命名,则执行recover 。 触发器中指明监控对象的完整路径信息,相应的,监控范围自动为该监控 对象的所在位置对应的目录树。以IF [D: \test\demo.cpp] renamed THEN recover 为例,监控范围自动为 D:\test 。测试中,测试者可以在 D: \test\下创建子目录, 形成D:\test\test1 。注:不允许在D:\层次下创建任何子目录。 触发器和任务的选择范围包括下文中给出的全部选项,每个输入命令只能 选择其中之一。 程序针对输入的每个不同监控对象,创建相应的监视线程。要求同时支持 的监控对象不多于10 个。 对于同一个监控对象,可有设置多个触发器和任务组合。例如,对于输入 的两个命令“IF x tr1 THEN ts1; IF x tr2 THEN ts2” ,x 表示相同的监控对象,而 tr1 可以和tr2 不同,ts1 可以和ts2 不同。如果tr1 和tr2 相同,且ts1 和ts2 相同, 则视为相同命令,实际只处理其中一个,无需反馈提示。 如果监控对象不存在,则输出错误提示信息即可。 3. 输出 根据第六节任务部分的要求产生相应输出。结果summary 和detail 输出到特 定文件,但建议控制台即时输出相关信息。 4. 硬性规定 针对桌面操作系统的文件系统,要求如下: 1) 使用线程安全设计,设计线程安全的文件访问类和其他有可能被共享的 类,使用多线程进行检测和处理。提示:主要线程安全问题可能出现在 record-summary 和record-detail 类型的任务

文档评论(0)

189****0315 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档