欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    位示图实验报告.docx

    • 资源ID:7347372       资源大小:100.84KB        全文页数:23页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    位示图实验报告.docx

    1、位示图实验报告合肥学院计算机科学与技术系实验报告2014 2015 学年第 一 学期课程操作系统原理实验名称编写用位示图法管理文件存储空间的分配与回收程序学生姓名 侯康康 1204013013章 涛 1204013015张德天 1204013032何天龙 1204013010专业班级12计本(3)指导教师屠 菁2014 年 11 月1实验目的(字体四号,宋体,行距1.2倍,段前段后0.5行) 1.1理解文件存储空间的分配与回收的基本概念,掌握产生文件存储空间的分配与回收的几种方法,体会位示图算法是管理文件存储空间的分配与回收的一种行之有效的方法。 1.2 通过编写程序实现位示图算法,进一步理解

    2、位示图算法的原理和执行过程,掌握位示图算法的描述和应用,进一步熟练掌握文件存储空间的分配与回收的方法。2 实验内容 2.1程序首先要给出位示图初态。分配时,参数为文件名及需要分配的块数。回收时,参数为文件名。 2.2回答信息:分配时,能够分配时,给出文件名和分配的具体块号。否则,给出无法分配的信息。显示位示图。 2.3回收时:给出回收的具体块号。显示位示图。3 实验步骤 3.1位示图说明位示图算法是利用二进制的一位来表示磁盘中的一个盘块的使用情况。在外存上建立一张位示图(bitmap),记录文件存储器的使用情况。每一位仅对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用。文件存储器上的

    3、物理块依次编号为:0、1、2、。通常可用m*n个位数来构成位示图,并使m*n等于磁盘的总块数。位示图也可描述为一个二维数组mapm*n,如图(1)所示:0123456789101112131415011000111001011101000111111000011121110001111110000315图(1)位示图 3.2概要设计 3.2.1 封装属性 在新建作业时,我们需要知道的是作业名和作业块数。所以新建一个storeclass.java,里面封装两个属性,一个是作业名id;一个是作业块数,我们定义成一位数组ye.用来记录输入作业块数输入时在位示图中的位置。 3.2.2各功能的实现 3.

    4、2.2.1 存储空间的分配算法首先要输入作业名和大小,若作业名已存在则报错;若没有,则比较空闲区中空闲块数是否大于欲分配的块数。有的话分配;没有的话报错;分配的时候该作业要记录下自己所占盘块的其实盘号和所占用的盘快数。并修改对应盘块的位示图的值。程序中对应的addpro.jsp是从add.jsp获取id(作业名)和num(块数),再进行分配操作,分配算法如下: String id=request.getParameter(id); int num=Integer.parseInt(request.getParameter(num); boolean flag=false; int n=0; i

    5、nt q=new int88; LinkedList list = new LinkedList(); q=(int)session.getAttribute(a); list=(LinkedList)session.getAttribute(list); StoreClass sc=new StoreClass(); Store s=new Store(); n=s.surplus(q); if(nnum) request.getRequestDispatcher(/error1.jsp).forward( request, response); else for(int i=0;ilist

    6、.size();i+) if(StoreClass) list.get(i).getId().equals(id) flag =true ; break; if(flag) request.getRequestDispatcher(/error2.jsp).forward(request, response); else sc.setId(id); int k=0; int temp = new int64; for (int i = 0; i 64; i+) tempi = -1; sc.setYe(temp); for (int i = 0; i = 7; i+) for (int j =

    7、 0; j = 7; j+) if (qij = 0) qij = 1; sc.getYe()k = i * 8 + j; k+; if (k = num) /跳出循环 break; if (k = num) /跳出循环 break; list.add(sc); request.getRequestDispatcher(/main.jsp).forward(request, response); 分配成功后跳转到main.jsp页面,即主界面。 3.2.2.2、回收空间算法 回收时首先要输入作业名,判断是否存在该作业,若该作业不存在则报错;回收的时候要将作业占用的内存块归还,简单来说就是将分配

    8、时的作业块收回,体现在位示图上就是状态由“1”变成“0”。程序中对应的deletepro.jsp是从delete.jsp获取id(作业名),再进回收操作,回收算法如下: String id=request.getParameter(id); boolean flag=false; int tempi = -1, tempj = -1; int q=new int88; q=(int)session.getAttribute(a); LinkedList list = new LinkedList(); list=(LinkedList)session.getAttribute(list); S

    9、toreClass store=new StoreClass(); for(int i=0;ilist.size();i+) if(StoreClass) list.get(i).getId().equals(id) store = (StoreClass) list.get(i); flag =true ; break; if(!flag) request.getRequestDispatcher(/error3.jsp).forward(request, response); else list.remove(store); for (int i = 0; i = 63; i+) /将作业

    10、占用的内存块归还,将要撤销的进程是经过查找后的“m”. if (store.getYe()i != -1) /页表存放的数字是内存块的地址 (8*i+j) tempi = store.getYe()i / 8; tempj = store.getYe()i % 8; qtempitempj = 0; request.getRequestDispatcher(/main.jsp).forward(request, response); 回收成功后跳转到main.jsp页面,即主界面。 3.2.2.3、查看位示图信息 输入作业名即可查看作业在位示图中的信息,若不存在该作业则报错;主要查看作业的页号

    11、(即作业在位示图中的位置)和块号,块号的计算公式也一并给出。程序中对应的Findpro.jsp是从Find.jsp获取id(作业名),再进行查看位示图信息操作,查看算法如下: String id=request.getParameter(id); boolean flag=false; int x = 0, y = 0; int q=new int88; q=(int)session.getAttribute(a); LinkedList list = new LinkedList(); list=(LinkedList)session.getAttribute(list); StoreCla

    12、ss store=new StoreClass(); for(int i=0;i 该作业的页表情况为 页号-块号- 详细 % for (int i = 0; i 返回主界面查看成功后可选择返回到main.jsp页面,即主界面。 3.3各算法流程图 3.3.1盘块的分配如下流程图(2):否 是否 是 图(2)分配流程图3.3.2盘块的回收如下流程图(3): 否 是 否 是 图(3)回收流程图3.3.3查看作业信息如下流程图(4) 否 是 图(4)作业流程图3.4调试分析以及运行结果3.4.1 主界面通过网页我们看到的如下所示,这是程序初始化时出现的界面图(5): 图(5)主界面3.4.2 测试添

    13、加添加数据作业名os,块数6;如图(6)添加数据作业o,块数9:如图(7) 图(6)添加数据1页面 图(7)添加数据2页面 运行结果如图(8)图(9) 图(8)添加结果1 图(9)添加结果23.4.3测试查看 查看数据作业名o;图(10) 图(10)查看数据 运行结果为图(11) 图(11)查看结果3.4.4测试删除 测试数据:作业名o如图(12) 图(12)删除作业运行结果如图(13) 图(13)删除运行结果小结:运行结果和理论结果相同并符合实验要求,结果满足位示图法基本原理。四 实验总结在做实验前,一定要将课本上的知识吃透,因为这是做实验的基础,否则,在老师讲解时就会听不懂,这将使你在做实

    14、验时的难度加大,浪费做实验的宝贵时间。如果你不清楚,在做实验时才去摸索,这将使你极大地浪费时间,使你事倍功半。做实验时,一定要亲力亲为,务必要将每个步骤,每个细节弄清楚,弄明白,实验后,还要复习,思考,这样,你的印象才深刻,记得才牢固,否则,过后不久你就会忘得一干二净,这还不如不做。做实验时,老师还会根据自己的亲身体会,将一些课本上没有的知识教给我们,拓宽我们的眼界,使我们认识到这门课程在生活中的应用是那么的广泛。实验的过程全是我们学生自己动手来完成的,这样,我们就必须要弄懂实验的原理。在这里我深深体会到理论对实践的指导作用:懂实验原理,而且体会到了实验的操作能力是靠自己亲自动手,亲自开动脑筋

    15、,亲自去请教别人才能得到提高的。我们做实验绝对不能人云亦云,要有自己的看法,这样我们就要有充分的准备,若是做了也不知道是个什么实验,那么做了也是白做。五 附录主要源代码LoginServlet.javapackage hkk.domain;import java.io.IOException;import java.util.LinkedList;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.http.HttpServlet;import javax.

    16、servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class LoginServlet extends HttpServlet private static final long serialVersionUID = -8271620964273835730L; Override protected void doGet(HttpServletRequest req, HttpServletRespo

    17、nse resp) throws ServletException, IOException this.doPost(req, resp); Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException / 跳转到登录页面 LinkedList list = new LinkedList(); int a = new int88; for (int i = 0; i = 7; i+) for (int j = 0; j =

    18、 7; j+) aij = 0; HttpSession session=req.getSession(); session.setAttribute(a, a); session.setAttribute(list, list); req.getRequestDispatcher(/main.jsp).forward(req, resp); StoreClass.javapackage hkk.domain;public class StoreClass String id; int ye = new int64; public String getId() return id; publi

    19、c void setId(String id) this.id = id; public int getYe() return ye; public void setYe(int ye) this.ye = ye; Addpro.jsp base href= My JSP AddPro.jsp starting page !- - % String id=request.getParameter(id); int num=Integer.parseInt(request.getParameter(num); boolean flag=false; int n=0; int q=new int8

    20、8; LinkedList list = new LinkedList(); q=(int)session.getAttribute(a); list=(LinkedList)session.getAttribute(list); StoreClass sc=new StoreClass(); Store s=new Store(); n=s.surplus(q); if(nnum) request.getRequestDispatcher(/error1.jsp).forward( request, response); else for(int i=0;ilist.size();i+) i

    21、f(StoreClass) list.get(i).getId().equals(id) flag =true ; break; if(flag) request.getRequestDispatcher(/error2.jsp).forward(request, response); else sc.setId(id); int k=0; int temp = new int64; for (int i = 0; i 64; i+) tempi = -1; sc.setYe(temp); for (int i = 0; i = 7; i+) for (int j = 0; j Deletepro.jsp base href= My JSP DeletePro.jsp starting page


    注意事项

    本文(位示图实验报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开