- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式课程设计报告---嵌入式文件锁应用
信息技术学院 《嵌入式操作系统》课程 综合设计报告书 姓 名: XX 班 级: B0905 学 号: XXXX 题 目: 嵌入式文件锁应用 时 间: 2012年6月 指导教师: XXX 摘 要 随着PC时代的到来,嵌入式系统技术已经成为了一个万众瞩目的焦点。目前已广泛应用于信息家电、数据网络、工业控制、医疗卫生、航空航天等众多领域。巨大的市场潜力,无穷的商机,吸引了各路英豪纷蹱踏来。 为了解决多个进程并发访问同一个文件时所面临的同步问题,Linux采用了文件加锁技术。介绍了Linux中各类文件锁的概念,详细分析了与文件锁密切相关的系统调用,并给出了一个文件锁的使用实例。fcntl函数实现。 关键字:Linux 文件锁文件描述符同步问题并发访问一、任务要求 4 二、设计方案 4 三、设计原理 4 1、函数产生背景 4 2、lock( ) 4 3 、fcntl( ) 5 四.程序流程图 6 五.VI 简介 6 六.结果与调试 7 七.总结 8 八.参考文献: 9 附录: 10 一、任务要求 在多任务操作系统环境中, 如果一个进程尝试对正在被其他进程读取的文件进行写操作, 可能会导致正在进行读操作的进程读取到一些被破坏或者不完整的数据; 如果两个进程并发对同一个文件进行写操作,可能会导致该文件遭到破坏。因此, 为了避免发生这种问题, 必须要采用某种机制来解决多个进程并发访问同一个文件时所面临的同步问题, 由此而产生了文件加锁方面的技术。 二、设计方案 通过编写在多用户共享下给文件上锁的程序,进一步熟悉 Linux 中文件 I/O 相关的应用开发,并且熟练的掌握 fcntl()函数的使用.在文件已经共享的情况下如何操作,也就是当多个用户共同使用,操作一个文件的情况,这时,Linux 通常采用的方法是给文件上锁,来避免共享的资源产生竞争的状态。 文件锁包括建议性锁和强制性锁。建议性锁要求每个上锁文件的进程都要检查是否有锁存在,并且尊重已有的锁。在一般情况下,内核和系统都不使用建议性锁。强制性锁是由内核执行的锁,当一个文件被上锁进行写入操作的时候,内核将阻止其他任何文件对其进行读写操作。采用强制性锁对性能的影响很大,每次读写操作都必须检查是否有锁存在。在 Linux 中,实现文件上锁的函数有 lock 和 fcntl,其中 flock 用于对文件施加建议性锁, fcntl 不仅可以施加建议性锁,还可以施加强制锁。同时, fcntl 还能对文件的某一记录进行上锁,也就是记录锁. 记录锁又可分为读取锁和写入锁,其中读取锁又称为共享锁,它能够使多个进程都能在文件的同一部分建立读取锁。而写入锁又称为排斥锁,在任何时刻只能有一个进程在文件的某个部分上建立写入锁。当然,在文件的同一部分不能同时建立读取锁和写入锁。 三、设计原理 1、函数产生背景: 在某文件已经共享的情况下,当多个用户共享使用与操作这个文件时,为了避免共享的资源产生竞争的状态,linux通常采用的方法是给文件上锁,即文件锁。在linux中为实现文件锁的功能而产生了lock()函数和fcntl()函数。 2、lock( ) Linux 2. 6 内核利用系统调用flock( ) 实现了共享模式强制锁, 但flock ( )只能实现对整个文件进行加锁,不能实现记录级的加锁,函数原型如下: int flock( int fd, int operat ion) ; fd 是需要加锁的文件的描述符, operation 可以为下列值: LOCK_SH: 共享锁, 多个进程可以同时拥有对文件的共享锁。 LOCK_EX: 互斥锁, 一个文件只能上一把互斥锁。 LOCK_UN: 解锁操作。 LOCK_NB: 如果进程不能获取指定的锁,函数将不阻塞,缺省时,进程将睡眠等待。 这几个控制选项可以进行组合使用或操作。 3 、fcntl( ) fcntl函数能复制一个现有的描述符、获得/设置文件描述符记录、获得/设置文件状态标志、获得/设置异步I/O所有权以及获得/设置记录锁。 在使用fcntl给文件上锁时,可以首先测试该锁是否会被已存在的锁阻止,接下来就使用F_SETFL给文件上锁。在给文件上锁时,关键是给flock结构体赋予相应的变量,再将flock传给fcntl即可。 它是非常强大的文件锁,可以实现对纪录进行加锁,函数原型如下: int fcnt l ( int fd, int cmd, struct flock * lock) ; 其中, 参数fd 表示文件描述符; 参数cmd 指定要进行的锁操作, 由于fcntl( )函数功能比较多, 这里先介
您可能关注的文档
- 调研报告QC小组活动推进ppt模版课件.ppt
- 课程课件3急性呼吸道感染.ppt
- 调研报告骨质疏松市场分析竞争分析石药阿仑膦酸钠课件.ppt
- 谌贻璞小动脉性肾硬化症的诊断和降压治疗课件.ppt
- 课时五酵母菌霉菌大型真菌课件.ppt
- 课堂新坐标(教师用书)20132014学年高中生物 第2章 第3节 第1课时 人体的内分泌系统 甲状腺调节发育与代谢同步备课课件 浙科版必修.ppt
- 课件肺隐球菌.ppt
- 豆丁精选上消化道大出血的鉴别诊断与处理原则课件.ppt
- 山东省青岛市青岛少海新城3412地块建设项目青岛市丽洲置业有限公司.doc
- 课件静脉窦血栓知识.ppt
- 市政协社情民意特邀信息员培训班领导讲话-领导讲话模板.doc
- 市肿瘤医院2011年党建工作总结.doc
- 2025年医德医风七个方面问题查摆问题清单.docx
- 国企2025年作风建设总结大会主持词+作风建设总结会议上的讲话.docx
- 关于集团公司党委2025年前三季度落实全面从严治党主体责任情况的报告+全面从严治党主体责任清单.docx
- 2025年关于在“学精神、强作风、促攻坚”大讨论中的学习心得体会.docx
- 省生态环境厅“树牢正确政绩观”专题学习会上的交流发言+在生态环境系统突出问题大整改视频会议上的讲话.docx
- 2025年省委十二届九次全精神党课讲稿辅导报告.docx
- 关于国有企业党委、税务局2025年党风廉政建设专题教育活动总结报告.docx
- 在关于深化作风建设暨落实“回头看”工作部署会议上的讲话+学习教育总结专题会上的讲话+常态化长效化研讨材料.docx
最近下载
- 《乡土中国》之(1):乡土本色.doc.docx VIP
- Q-JL J130006-2019-加速模拟大气腐蚀试验方法.pdf VIP
- 2.0m光伏支架桩基计算(1).xlsx VIP
- 广东省汕头市潮阳区潮阳实验学校2025-2026学年高二上学期9月月考语文试卷.docx VIP
- 基孔肯雅热预防防蚊灭蚊保护自身和家人健康科普课件PPT.pptx VIP
- 第一章第二节《外国绘画艺术》(教案)中职美术《艺术美术鉴赏与实践》同步精品(高教版(2023)(修订版)).docx VIP
- 2026中国农业银行广西壮族自治区分行校园招聘666人笔试备考试题及答案解析.docx
- 入党志愿书电子表格[2013年版A4].doc VIP
- 药品说明书:硫糖铝片说明书.docx VIP
- 起重作业安全知识培训课件.pptx VIP
文档评论(0)