操作系统实验报告———资源分配.pdf

操作系统实验报告———资源分配.pdf

ID:59071828

大小:722.65 KB

页数:18页

时间:2020-09-14

操作系统实验报告———资源分配.pdf_第1页
操作系统实验报告———资源分配.pdf_第2页
操作系统实验报告———资源分配.pdf_第3页
操作系统实验报告———资源分配.pdf_第4页
操作系统实验报告———资源分配.pdf_第5页
资源描述:

《操作系统实验报告———资源分配.pdf》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、.石家庄经济学院实习报告(学院)系:信息工程学院专业:计算机科学与技术姓名:江丹班级:专接本2班学号:511109030201指导教师:张有华2012年6月25日...操作系统课程实习报告学号:511109030201姓名:江丹起迄日期:2012/6/17~2012/6/25指导教师:张有华实习地点:206室实习题目:本实习中共有两个实习题。第一题:用银行家算法实现资源分配。要求:(1)设计一个3个并发进程共享10个同类资源的系统,进程可动态地申请资源和释放资源,系统按各进程的申请动态地分配资源。(2)设计用银行家算法和随机分配算法,实现资源分配的两个资源分配程序,应具有显

2、示或打印各进程依次要求申请的资源数以及依次分配资源的情况。(3)确定一组各进程依次申请资源数的序列,在相同的情况下分别运行上述两种资源分配程序,观察运行结果。第二题:用按序分配策略实现资源分配。要求:(1)设计一个3个进程共享10个资源的系统,进程可动态地申请资源和释放资源,系统按各进程的申请动态地分配资源。(2)设计用按序分配算法实现资源分配的资源分配程序,应具有显示或打印各进程依次要求申请的资源号以及依次分配资源地情况。(3)确定两组各进程依次要求申请的资源号,要求其中的一组中各进程按序地申请资源,另一组中各进程申请资源不受序号限制,分别运行上述设计的资源分配程序,观察

3、运行结果。1实习内容运用随机分配算法、银行家算法、按需分配策略进行资源分配,检查各种算法资源分配的安全性。2实习目的多个进程动态地共享系统的资源可能会产生死锁现象。死锁的产生,必须同时满足四个条件,第一个是互斥条件,即一个资源每次只能由一个进程占用;第二个为等待条件,即一个进程请求资源不能满足时,它必须等待,但它仍继续保持已得到的所有其它资源;第三个是非出让条件,任何一个进程不能抢占另一个进程已经获得且未释放的资源;第四个为循环等待条件,系统中存在若干个循环等待的进程,即其中每一个进程分别等待它前...一个进程所持有的资源。防止死锁的机构只须确保上述四个条件之一不出现,则系

4、统就不会发生死锁。在实习中假定系统中任一资源在每一时刻只能则由一个进程使用,任何进程不能抢占它进程正在使用的资源,当进程得不到资源时必须等待。因此只要资源分配策略能保证进程不出现循环等待,则系统就不会发生死锁。本实习要求学生编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适当的算法,有效地防止和避免死锁的发生。3实习步骤第一步:首先先看书,理解银行家算法、随机分配算法及按需分配算法原理,确定整体的代码思路,确定流程图。第二步:分析并修改流程图,检查其中的逻辑错误。第三步:从细节上分析,各部分功能的代码实现。第四步:运行并查看结果,这里主要查看各个资源

5、对资源的占有和申请情况。以及按照自己随机的输入三组数字,选择各种算法,检验其分配的安全性,会不会产生死锁。第一题的设计思路及运行结果:3.1~3.7部分3.1需求分析本次实验是在预输入三个进程的基础上初始化,通过选择算法,来检测各种算法的分配的安全性。3.2数据结构设计与说明定义进程结构体:typedefstructpcbwork{intpid;charstate[10];intcur_count;//当前申请量intdem_count;//资源需求总量intalr_count;//已占资源量intneed_count;//还需要的资源量structPCB*next;}pc

6、b;定义系统资源结构体:typedefstructsys_res{intcur_count_sum;//当前申请总量...intsys_res_sum;//系统资源量structsys_res*next;}res;3.3算法设计第一部分:初始化三个进程//初始化当前各个资源申请量printf("请输入各个进程的当前申请量");printf("进程号t当前申请量t最大资源需求");while(i<=2){p=(pcb*)malloc(sizeof(structpcbwork));scanf("%dt%dt%d%c",&p->pid,&p->cur_count,

7、&p->dem_count);p->next=NULL;if(head==NULL)head=p;elseq->next=p;q=p;i++;}第二部分:检测系统资源量够不够进程申请if(res1.sys_res_sum>=sum){res1.cur_count_sum=sum;printf("系统资源量满足进程申请资源总量!!!");}elseprintf("输入数据有错,请重新输入!!!");p=head;i=0;while(i<=2){p->alr_count=0;p->need_count=p->dem_c

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。