- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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 类型的任务
您可能关注的文档
- changzhouconcordprintedcircuitboardco.,ltd常州....ppt
- Chapter10-实时系统调度第四版.pptx
- Chapter2-厦门大学-林子雨-Spark编程基础Python版-第2章-Spark的设计与运行原理(2019年春季学期).ppt
- chinaland珠江新城.pptx
- cisco交换机配置手册-工作记录.docx
- CMAC船员就业协议.docx
- CMMI基础2009112.ppt
- corba(commonobjectrequestbrokechitecture)公共对象请求....pptx
- crp系统的增强版.ppt
- CZ16A试卷.docx
文档评论(0)