分享
分销 收藏 举报 申诉 / 10
播放页_导航下方通栏广告

类型操作系统课设报告.docx

  • 上传人:二***
  • 文档编号:4595281
  • 上传时间:2024-09-30
  • 格式:DOCX
  • 页数:10
  • 大小:31.15KB
  • 下载积分:5 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    操作系统 报告
    资源描述:
    绩: 衣故华复理工骨浣信息工程岩院课程设计 题目用多线程同步方法解决读者阅览问题系别 信息工程系 专业软件工程班级软件1151 姓名/学号指导教师杨铭熙 ZJY@localhost:~/DesktopClick to view your appointr File Edit View Search Terminal Help reader4 is sitting at 4 readers is sitting at 5 reader3 logout and exit readers Entered. reader4 is reading readers registered. sitting info--- reader6issittingat1reader?issittingat2 readersissittingat3reader4issittingat4 readersissittingat5 reader4 logout and exit reader9 Entered. readers is reading reader9 registered. sitting info--- reader6issittingat1reader?issittingat2 readersissittingat3reader9issittingat4 readersissittingat5readers logout and exit readerlO Entered. reader6 is reading readerlO registered. sitting info---- reader6issittingat1 reader?issittingat2readersissittingat3 reader9issittingat4readerlO is sitting at 5 reader6 logout and exit reader? is reading ZJY@localhost:*/Desktop File Edit View Search Terminal Help readerlO Entered, readers is reading readerlO registered. sitting info reader6 is sitting at 1 reader? is sitting at 2 readers is sitting at 3 reader9 is sitting at 4 readerlO is sitting at 5 readers logout and exitreader? is reading -sitting info----reader7issittingat2 readersissittingat3reader9issittingat4 readerlO is sitting at 5reader? logout and exit readers is reading -sitting info---- readers is sitting at 3 reader9 is sitting at 4 readerlO is sitting at 5 readers logout and exit reader9 is reading-sitting info---- reader9 is sitting at 4readerlO is sitting at 5 reader9 logout and exit readerlO is reading -sitting info---- readerlO is sitting at 5 readerlO logout and exit [ZJYQlocalhost Desktop]$ |变量说明: 6.调试过程 我翻看了老师给我们的ppt资料,了解了一下多线程的使用方法。创建进程,等 待进程结束以及销毁进程,还有信号灯的使用有了基本的了解,对该课程设计的解决 有了很好的基础,于是对中的一些有关进程抢占的程序进行了调试。 从结果中我理解到了:线程的抢占,然后想到自己的课程设计题目:用多线程同 步方法解决读者阅览问题,我决定了我要用io个线程。 在第一次完成代码后,经过调试,发现在打印当前座位信息是也必须上互斥锁, 修复了打印座位信息的错误。最后得到如下逻辑: 首先创建reader函数,开始用p(sem_sit)信号灯判断座位是否被坐满,然后用 p(sem_mutex)互斥信号灯实现上锁操作,然后找座位坐下。然后v(sem_mutex)解开互 斥锁,阅读四秒,上锁,打印座位信息,当前读者离开座位,读者注销。解开互斥锁, p(sem_sit)座位资源加一。main函数初始化信号灯,sem_init(&sem_sit,0,5); 〃初始 化座位资源信号灯sem_init(&sem_mutex,0,1 );//%U始化互斥信号灯。创建10个reader 线程。 7.总结 经过了这次操作系统课程设计,使我更加理解了多线程的作用和他们抢占的意 义,而且对信号量的使用和互斥锁的作用有了更加深刻的理解。能够找到程序死锁的 原因以及可能带来死锁的因素,并能够解决死锁问题。能够将多线程同步运行,共有 资源多线程使用能够使用信号灯以及互斥锁来避免发生与时间相关的错误,将多线程 程序正确无误的持续运行。 本科生课程设计成绩评定表 班级:姓名:学号: 序号 评分项目 满分 实得分 1 学习态度认真、遵守纪律 10 2 设计分析合理性 10 3 设计方案正确性、可行性、创造性 20 4 设计结果正确性 40 5 设计报告的规范性 10 6 设计验收 10 总得分/等级 评语: 注:最终成绩以五级分制记。优(90-100分)、良(80-89分)、中(70-79分)、 及格(60-69分)、60分以下为不及格 指导教师签名: 1 .设计目的与要求11.1设计目的1 1.2设计要求1 2.设计思想及系统平台1 2.1设计思想1 2.2系统平台及使用语言1 3 .详细算法描述2 4 .源程序清单4 5. 运行结果与运行情况7 6. 调试过程9 7. 总结1()本科生课程设计成绩评定表11 1 .设计目的与要求 1.1设计目的 通过研究linux多线程同步的问题,掌握对信号灯的操作方法,以及加深理解同步算 法的思想。 1.2设计要求用多线程同步解决读者阅览问题。设阅览室有5把椅子,几把椅子可用连续 存储单元。 要求: 1)每个读者进入阅览室后,即时显示“Entered”及其线程自定义标识, 还同时显示阅览室共有几名顾客及其所坐的位置。 2)至少有10个读者,每人阅览至少3秒钟。 3)多个读者须共享操作函数代码。 2 .设计思想及系统平台 2.1设计思想 进程是指在系统中运行的一个应用程序,线程是系统分配处理器时间资源的基本单元,或者 说进程之内独立执行的一个单元。对于操作系统而言,其调度单元是线程。一个进程至少包括一 个进程,通常将线程称为主线程。一个进程从主线程的执行开始进而创建一个或多个附加线程, 就是所谓基「多线程的多任务。从而理解到我的课程设计所需要的进程数和线程在我的程序中怎 么用。首先座位是一个共享资源,而目.有一个数量限制,这里就要用到互斥信号灯的操作和判断 资源数量的信号灯。在算法上要认真仔细思考,弄清逻辑顺序,避免错误使用信号灯而带来的死 锁。 2.2系统平台及使用语言 本次课程设计是在linux的系统平台下使用C语言实现对读者阅览问题的编程, 所使用的工具有gedit编辑器、gcc编译器等。 3.详细算法描述reader 函数: 第一步:定义一个长度为5的整型数组buffer用来模拟连续的五个座位,一个座位资 源信号灯sem_sit,—个互斥信号灯sem_mutualo第二步:创建void* reader(int n)读者的函数,在函数的开始,使用sem_wait(&sem_sit) 判断是否有空的座位,如果有再使用sem_wail(&sem_mutual)5斥信号灯实现上锁, 来避免发生与时间相关的错误。 第三步:再是读者注册,用for循环遍历座位数组buffer,来寻找一个空的座位。 第四步:读者找到空座位坐下,使用sem_post(&sem_mutual)释放互斥锁。读者reading4 秒。 第五步:再使用互斥信号灯,用for信号灯打印现在的座位的入座情况。 第六步:打印完毕后,读者注销,释放座位,然后释放互斥锁,释放座位。 main函数: 第一步:定义plhread_t[10],用来储存reader进程的进程标识。 第二步:初始化 sem_sit 信号灯,sem_init(&sem_sit,0,5),初始化 sem_mutual 信号灯,sem_init(&sem_mutual,0,1); 第三步:使用for循环pthread_creat()创建10个reader进程。 第四步:使用pthreadjoin()等待所有reader结束。 main线程的处理函数流程图如下: 初始化信号灯 产生多进程等待子进程全部结束 main线程的处理函数: int main()(int i,j,pp,qq; pthread_tsem_init(&sem_sit,(),5); sem_init(&sem_mutual,0,1);for(i = 0;i < 10;i++){ pp = pthread_create(&t[i],NULL,(void *)reader,(void *)i); if(pp != 0)(printf(Mreader%derror,create again",i);i--;}) for(j = 0;j<10;j++)(qq = pthreadJoin(t[j],NULL); if(qq !=0)(printf("reader%d exit faiT'J+l); }) return 0; ) reader线程的处理函数流程图如下: 登记进入 找空座位读书 登记出来 reader线程的处理函数: void* reader(int n)(int i,l; sem_wait(&sem_sit);scm_wait(&scm_mutual); printf("reader%d Entered.\n",n+1);sleep(l); printf("reader%d registered.\n",n+1);for(i = 0;i < 5; i++)( if(buffer[i] ==-!){ buffer[i] = n; break;} Isem_post(&sem_mutual); sleep(4);prinlf("reader%d is reading\n",n+l); sem_wait(&sem_mutual);printf(usitting info\n"); for(l = 0;l < 5;l++){if(buffer[l] != -1) printf("reader%d is sitting at %d\nn,buffer[1]+1,14-1); }printf(u\n”); printf("reader%d logout and exit\n",n+l); bufferlij = -l;sem_post(&sem_niutual); sem_post(&sem_sit); ) 4.源程序清单 用户名:zjy5124 (IP: ) 源程序名:zjy.c 目标程序名:zjy 源程序清单如下: #include<stdio.h> #include<pthread.h> #includc<scmaphorc.h> int buffer[51 = (-1,-1,-1,-1,-1); sem_t sem_sit,sem_mutual; void* reader(int n)(int i,l; sem_wait(&sem_sit);sem_wait(&sem_mutual); printf("reader%d Entered.\n",n+1);sleep ⑴; printf("reader%d registered.\n",n+1);for(i = 0;i < 5; i++)( if(buffer[ij == -1)(bufferfi] = n; break;} }sem_post(&sem_mutual); sleep(4);printf("reader%d is reading\n",n+l); sem_wait(&sem_mutual);printf("silting info\n"); for(l = 0;l v5;l++){if(buffcr[l] != -1) printf("reader%d is sitting at %d\nn,buffer[1]+1,1+1);\n”); \n”); printf(" printf("reader%d logout and exit\n'',n+l);bufferfi] = -l; sem_post(&sem_mutual);sem_post(&sem_sit); ) int main()(int i,j,pp,qq; pthread_t t[10];sem_init(&sem_sit,0,5); sem_init(&sem_mutual,0,1);for(i = 0;i < 10;i++)( pp = pthread_create(&t[il,NULL,(void *)reader,(void *)i);if(pp != 0){printf("reader%derror,create again",i);i—;} }for(j = 0;j v ]0;j++){ qq = pthreadJoin(t|j],NULL);if(qq !=()){ printf("reader%d exit fail",j+l);} )return 0; } 5.运行结果与运行情况程序运行结果如下: ZJY@localhost:~/DesktopFile Edit View Search Terminal Help [ZJYQlocalhost Desktop]$ ./zjy readerl readerl reader? reader2 readers readers reader4 reader4 readers readerl readersreaderl reader2 readers reader4 readersEntered, registered. Entered, registered. Entered, registered. Entered, registered. Entered, is reading registered, sitting info is is is is issitting sitting sitting sitting sitting at 1 at 2 at 3 at 4 at 5readerl reader6reader2 reader6readers reader2 reader3 reader4 readers logout and exit Entered. is reading registered, sitting info--- is is is is issitting sitting sitting sitting sitting at 1 at 2 at 3 at 4 at 5reader2 reader? readers reader? logout and exit Entered. is reading registered, sitting info---reader6issittingat1 reader?issittingat2readersissittingat3
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:操作系统课设报告.docx
    链接地址:https://www.zixin.com.cn/doc/4595281.html
    页脚通栏广告

    Copyright ©2010-2025   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork