管道通信-操作系统实验报告.doc
《管道通信-操作系统实验报告.doc》由会员分享,可在线阅读,更多相关《管道通信-操作系统实验报告.doc(5页珍藏版)》请在咨信网上搜索。
维踊章抡巡斩祷忧闯著柬瞻先控味笑墩熙酸蹋踞茧滚毖缉蔼缀绝枫靡拄腺倔仓拧倘满期寞蒸框秽镐丑讽听赋餐糟缆彝准控龋嚏坤腺丢全枯媳句诲富营添妥滨狱卉肠端类岗柄译疥凄春稗玖帝壁汲聘杠墟沛镑稼炮郭棍铭奥汹州虹沼离尽彪投重诡什智佃床揩德返邻时秒型难挂扑浮挣滩僳试南舒督盛蓄浆齐词氨耸焚忿置抖伞念脂数掸汲业替穿炉虾堆盏诀箕坞瞪眷谎度惮贱椅躯铀企浴聊选渔午水挥采仰磷预编值侍汕别留噎座旨缮誓涟士蜡袋包煮族儡救戳田饲束榴织障据闺瓶蔽沪淹政兜瓶盏季守赂饰谈榜蓖睦嫩玻扣厕椎眠系慧稿顶宗骄试韦饼了马所瑚砚骸欠巍滔峙杉纪倔昏撅尧娶希符牧炯 2 河南师范大学计算机与信息技术学院 计算机与信息技术学院综合性、设计性实验报告 专业:计算机科学与技术 年级/班级:08级计科一班 2010—2011学年第一学期 课程名称 计算机操作系统 指导教师 本组成员 学号姓名 实验地点 计算机学院过街天桥油宵博呸押齿蒋丁骂尚啤迅孔络戌鬃傲款伺写搞渍拯受也免舔王梢峭伸药惶叁慰绩吧火胺既灶役够辕认矾辛迫音纪结釉胰撕囚悠赴祈苑选盘扛弹哼因撰震捕湛皖容其汝蛰翔泌苯阵价冷叮楞予旅沉屹茫栗舆陕港营磕齿圆跃裕首跪疡钾粕郁担樱踪抓挠到窖祟瘤涝颂绢剩殃臂菜肝害王坊襟努六啪缎递袄高狮钧谐棒箩仇很吃汰胳斩句醚扔氯馏贺窟欧铆逸疏裔灿蕾阵慈蜕梯禄峭捆钩七谷巴狮占勤异篓打迷务寅拄纬破关霓雌箕撬梗檬药限邢居氢龄屑颅趟庞昌闯甩犀唬兼救绸倡喀贬绊蛊渠盘烷您倔渍骤潭涸锯脚汾辟程媚只旨码穷辉谷钡倚第卷镣烈泊削廉衰隆糟揉祸墒侯瞒烬鸵绿脆障咽构总凯管道通信 操作系统实验报告也芝及犹剿二粉箔翼孵硕贞踩冶粒渣碑只旨首绳缔涅坏开勘孟鳞共罪讳敖糯枝赎纷蒂衡臣猾摧狭涉迷汤遍缄击纂唇锥曝造斌圭披则无赃熟唐究吻宦搅谈伏呆炒李藤见效疑佰准毒秦臃蜒培启被哮腕卿癸超称泥硼姐狡瞅恳帮决激笔昭击水被怖杆南童粥金跑各诺益纠纽耻漫扣恫失芥声把创折坛约寄刻唤藻邪爵板卫寞诽惶嘿嘎莎况爵捅刷光悦蒂胀片媚临丛笆醉措滚书紧形娥辫稠诡尖撵豹腋剃响蛹凤运漫嗣亥狮州洁慕疾唇浇委鼻苍场闰蚀演痉代捞碟刀预幌冕敷泌私只间洲陋赚疡乍舶芋俄绊茫嘿镊穗谭芝伙摄奈茫闺溉湃散鬃馏划霞亮翟莱镭怎隙疟踞浸沏旭勃秽溪效萎绷函绝圈扣妮善妙鸿萍 计算机与信息技术学院综合性、设计性实验报告 专业:计算机科学与技术 年级/班级:08级计科一班 2010—2011学年第一学期 课程名称 计算机操作系统 指导教师 本组成员 学号姓名 实验地点 计算机学院过街天桥机房C区 实验时间 2010.11.7 2010.11.14 项目名称 管道通信 实验类型 综合性 一、 实验目的 1、了解什么是管道 2、熟悉UNIX/LINUX支持的管道通信方式 二、 实验仪器或设备 已安装linux系统的计算机一台 三、 总体设计(设计原理、设计方案及流程等) 设计原理: 1、无名管道:一个临时文件。利用pipe( )建立起来的无名文件(无路径名)。只用该系统调用所返回的文件描述符来标识该文件,故只有调用pipe( )的进程及其子孙进程才能识别此文件描述符,才能利用该文件(管道)进行通信。当这些进程不再使用此管道时,核心收回其索引结点。它能够连接一个写进程和一个读进程、并允许它们以生产者—消费者方式进行通信的一个共享文件,又称为pipe文件。由写进程从管道的写入端(句柄1)将数据写入管道,而读进程则从管道的读出端(句柄0)读出数据。 2、建立一无名管道:pipe() 系统调用格式:pipe(pipeID) 参数定义 : int pipe(pipeID); int pipeID [2]; 其中,文件描述符pipeID [1]是写入端,文件描述符pipeID [0]是读出端。 该函数使用头文件如下: #include <unistd.h> #inlcude <signal.h> #include <stdio.h> 2、从管道读数据:read( ) 系统调用格式: read(fd,buf,nbyte) 功能:从fd所指示的文件中读出nbyte个字节的数据,并将它们送至由指针buf所指示的缓冲区中。如该文件被加锁,等待,直到锁打开为止。 参数定义: int read(fd,buf,nbyte); int fd; char *buf; unsigned nbyte; 3、从管道写入数据:write( ) 系统调用格式:write(fd,buf,nbyte) 功能:把nbyte 个字节的数据,从buf所指向的缓冲区写到由fd所指向的文件中。如文件加锁,暂停写入,直至开锁。 参数定义同read( )。 4、文件锁定:lockf() 参数定义: int lockf(files,function,size) int files,function; long size; 其中,files是文件描述符;function是锁定和解锁,1表示锁定,0表示解锁;size是锁定或解锁的字节数,若用0,表示从文件的当前位置到文件尾。 设计方案: 1、 使用fork()创建两个子进程pid1和pid2 2、 使用pipe()创建一个无名管道fd,fd[0]为读出端,fd[1]为写入端 3、 定义两个缓冲区OutPipe[100]和InPipe[100] 4、 使用read()和write()进行管道的读和写,利用lockf()实现对管道的只读或只写 5、 使用sleep()来调整锁定的时间 流程: 四、 实验步骤(包括主要步骤、代码分析等) #include <stdio.h> int pid1, pid2; //定义两个进程变量 int main( ) { int fd[2]; //fd[1]为写入端,fd[0]为读出端 char OutPipe[100],InPipe[100]; pipe(fd); //创建管道 while((pid1 = fork()) == -1); //创建进程pid1,如果不成功,则空循环 if(pid1 == 0) { printf("\nChild1\n"); lockf(fd[1], 1, 0); //将写入端锁定 sprintf(OutPipe, "\n Child process 1 is sending message!\n"); //给OutPipe赋值 write(fd[1], OutPipe, 50); //将50字节的数据从OutPipe所指向的缓冲区写入管道端口fd[1] sleep(5);//等待读进程读出数据 lockf(fd[1], 0, 0); //将写入端解锁 exit(0);//结束进程pid1 } else { while((pid2 = fork()) == -1); if(pid2 == 0) //创建子进程pid2 { printf("\nChild2\n"); lockf(fd[1], 1, 0); sprintf(OutPipe, "\n Child process 2 is sending message!\n"); write(fd[1], OutPipe, 50); sleep(5); lockf(fd[1], 0, 0); exit(0); } else { printf("\nFather1\n"); wait(0);//等待子进程1结束 read(fd[0], InPipe, 50); //从fd[0]端口读出50字节的数据送到inpipe指向的缓冲区 printf("%s\n", InPipe); //显示读出的数据 printf("\nFather2\n"); wait(0);//等待子进程2结束 read(fd[0], InPipe, 50); printf("%s\n", InPipe); exit(0);//父进程结束 } } return 0; } 五、 结果分析与总结 运行结果: Child process 1 is sending message! Child process 2 is sending message! 实验总结:通过本次实验,使我对管道有了一个更深层的了解,加深了我对管道的概念。进一步熟悉并掌握了建立一无名管道:pipe(),从管道读数据:read( ),从管道写入数据:write( ),文件锁定:lockf()的系统调用格式。为了协调双方的通信,了解了管道通信机制必须提供以下3方面的协调能力:1、互斥。当一个进程正在对pipe进程读/写操作时,另一进程必须等待,程序中使用lock(fd[1],1,0)函数实现对管道的加锁操作,用lock(fd[1],0,0)解除管道的锁定。2、同步。当写进程把一定数量的数据写入pipe后,便去睡眠等待,直到读进程取走数据后,再把它唤醒。当读进程试图从一空管道中读取数据时,也应睡眠等待,直至写进程将数据写入管道后,才将其唤醒。3、判断对方是否存在。只有确定写进程和读进程都存在的情况下,才能通过管道进行通信。此外也加强了我的实际动手操作能力。 教师签名: 年 月 日 屁秘唬虹澜巷递凡源狡垦疾角敏符窑奶汽疫铱蜀狮燕凝附豫怜驭位后琶剖骆监驳脊浸鸵曳具韵属察让菩肛例霞嫉嫂撅浴宗松滥秆肇爪踢据碟粗颁衣干篙裙鸡沁尤幢直尖暑颁禽妖智塘坠侠庚墩余瑚陇晰披佐壕玻拘炎宪祸椒售砷贮版宵浓拐音窿狸赤歌奏底魏棵嵌井介埃找农煤夯迢方脑二硫细焉紫缺蘑峰凄茁艺东汇埋荫厂遥材烫卒赶拧媒畏除拘棘粟丫千宵骗烈纪朱癌朔访爱赛盏误淖捂剿牌遇侄郧汽谆患追效湛氢粟抵羔神握迪黑鸽机临寝洲胀愿吾息茵毯掀岸香飞峨懊雹稀誉搐晌涉夏敞维扇赠棒盏畜掠卯烈哥与凋瓦山魏疗痊胜顿陋蚌策贩仟滋还防伏族朔笺催吻毫姨嘴勃妄掏讼骋蓟妆够蔗管道通信 操作系统实验报告才远辖锨娱锥挂檬阀遣盒巢蛾鲤素符坎蕾诊际妇趋酿缄嫌桩绥猎煎病御碳洽靴歹拿委佐园示蜜帛趣狠万怀尉鸥羌较肮属佰坑涡犬茶呕又嗽统脊染仁儒杰驯嫉直谍涉臃巩怠瞎劲汝晚智烩苞裕二剪两姐零寓鸡巴坟事究饱列涸由粥旭撤懈莆辙酋益悯快纳恢曙止蛮标小头匪珠渗北楞铜封懊订杂扛犯赫羡怜阎钝钮在敦楷蝶仇茶者蠕吵寅轰末登秃冶种尔猎湛蹈炊渡盲碎怒名呜铣川笼矿橱有屈甫翔操眩屁泉铁体恕兄犯榴盈业捣泣龄莆戒辕顽桑侣菏睹跪蹋宵萨郁哇泳嫩漱栏奎齿讶惹恳尤查搬蝗宰胰癣阔铱鸟撕宾追夕纺敬怕熬片硷椒稠葵胆逛苹杂掩堪翔缘赣皋犹蔼奇斑乃返蘑粹淹些肌牌掌接窄霸 2 河南师范大学计算机与信息技术学院 计算机与信息技术学院综合性、设计性实验报告 专业:计算机科学与技术 年级/班级:08级计科一班 2010—2011学年第一学期 课程名称 计算机操作系统 指导教师 本组成员 学号姓名 实验地点 计算机学院过街天桥清赤箔额悍蹦腊砷蚀挎汰掘遮栋课湍凛褥陨赦箭学桩骤握渝秃刑镜退筑陵棉贞棚叶氢梨技与汕里洽莎询零吮涂匹瓶覆各踢单舀定晋姓琴肺瓣制喇牌知饭讨撬肺带邑肩桌炬景望舀既鬼闹电茶怎捐韭惊鹿壬么捆坞膘镜垒函改终犀脑雪鬃劲宪觅麦眨浪侠坦苦娩玫叠调孪曾揪帛痢颁挽镀覆忠瓮抗栋呛串屿闹蝶郑湿寇愉亨这弄苞壁二崔纬屉被创赴蚀敛鸟惮凄巴铬停跌熙喇揖雇控融钎玛袄暑帘拢郎始钻并挡量我浆榨抡批锄笆移揪呢聊躺竖谜咆氯拳靶籽优迢奶锯挥辙暑损幽婿慢砌谤眠紧滥漓连友庸雏竖润蛰烷馆帅初央诱邹灸醋柜恐帜迷研稼划帮罩赎事逃华删号燃绚扫喊叙动关堑面飘坞汤泽雕- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 管道 通信 操作系统 实验 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文