3.1有名信号量实现读写互斥-中科大移动云计算系统实验室.doc

3.1有名信号量实现读写互斥-中科大移动云计算系统实验室.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.1有名信号量实现读写互斥-中科大移动云计算系统实验室.doc

基于内存的Nosql分布式数据库技术研究项目 共享内存读写进程互斥读写同一条记录分析报告 Version:1.0.2 2013-1-30 By 中科大移动云计算系统实验室 DOCUMENT HISTORY Ed.VersionAuthorChange11.0.0牛立国Initial21.0.1牛立国Revision31.0.2牛立国Revision  TOC \o 1-3 \h \z \u  HYPERLINK \l _Toc10407 一、 测试平台  PAGEREF _Toc10407 3  HYPERLINK \l _Toc28381 二、 测试目的  PAGEREF _Toc28381 3  HYPERLINK \l _Toc14429 三、 测试方案与测试结果分析  PAGEREF _Toc14429 3  HYPERLINK \l _Toc28708 3.1 有名信号量实现读写互斥  PAGEREF _Toc28708 3  HYPERLINK \l _Toc4582 3.1.1 核心代码  PAGEREF _Toc4582 3  HYPERLINK \l _Toc32656 3.1.2 测试方法  PAGEREF _Toc32656 4  HYPERLINK \l _Toc29492 3.1.3 测试数据  PAGEREF _Toc29492 4  HYPERLINK \l _Toc523 3.1.4 数据分析  PAGEREF _Toc523 5  HYPERLINK \l _Toc31021 3.2 时间片对测试的影响  PAGEREF _Toc31021 6  HYPERLINK \l _Toc17928 3.2.1核心代码  PAGEREF _Toc17928 6  HYPERLINK \l _Toc12584 3.2.2测试方法  PAGEREF _Toc12584 6  HYPERLINK \l _Toc352 3.2.3 测试数据  PAGEREF _Toc352 6  HYPERLINK \l _Toc2010 3.2.4 数据分析  PAGEREF _Toc2010 8  HYPERLINK \l _Toc19257 3.3共享内存文件实现读写互斥  PAGEREF _Toc19257 8  HYPERLINK \l _Toc2087 3.3.2 测试方法  PAGEREF _Toc2087 8  HYPERLINK \l _Toc23017 3.3.3 测试数据  PAGEREF _Toc23017 9  HYPERLINK \l _Toc12781 3.3.4 数据分析  PAGEREF _Toc12781 9  HYPERLINK \l _Toc19767 四、 附录  PAGEREF _Toc19767 9  测试平台 系统测试运行在X86平台上,具体配置如下: Linux单机,CPU是一块2核X86芯片,每个核有两个超线程。Fedora13,x86_64, GCC 4.45。6G内存。 测试目的 通过有名信号量控制读写进程对同一条记录的互斥操作,并分析测试数据结果;用文件锁的方式来实现读写进程的同步与互斥。 测试方案与测试结果分析 3.1 有名信号量实现读写互斥 3.1.1 核心代码 读进程: /* db initialize */ Char *name = “abc”; //设置有名信号量 Getnamed( name , semlockp , 1); //获取有名信号量 /*****entry section********/ sem_wait(semlockp); /*********critical section**************/ rc=GetRecords(id,key,record,1); //读操作 /**********remainder section*************/ sem_post(semlockp); 写进程: /* db initialize */ Char *name = “abc”; //设置有名信号量 Getnamed( name , semlockp , 1); //获取有名信号量 /**********entry section*************/ sem_wait(s

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档