欢迎来到毕设资料网! | 帮助中心 毕设资料交流与分享平台
毕设资料网
全部分类
  • 毕业设计>
  • 毕业论文>
  • 外文翻译>
  • 课程设计>
  • 实习报告>
  • 相关资料>
  • ImageVerifierCode 换一换
    首页 毕设资料网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    操作系统课程设计实验报告--内存的连续分配算法

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

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

    操作系统课程设计实验报告--内存的连续分配算法

    1、 组号 成绩 计算机操作系统 课程设计报告 题目 内存的连续分配算法 专业: 计算机科学与技术 班级: 学号姓名: 指导教师: 2016 年 12 月 26 日 一、 设计目的 掌握内存的里联系分配方式的各种算法。 二、 设计内容 本系统模拟操作系统内存分配算法的实现, 实现可重定位分区分配算法, 采用 PCB 定义结构 体来表示一个进程,定义了进程的名称和大小,进程内存起始地址和进程状态。内存分区表 用空闲分区表的形式来模拟实现。 三、 设计原理 动态分区的实现是根据进程所申请的内存大小来决定动态的由系统进行分配内存空间大小, 因此分区表里的空闲分区个数是不定的, 根据进程数和进程大小决定的

    2、。 可重定位分区算法 比动态分区算法增加了紧凑的功能。 四、 详细设计及编码 1、模块分析 该实验可分为三大部分,每一部分又由个数不同的几个函数实现。第一部分是装入 作业,第二部分是内存回收,第三部分是进行紧凑。装入作业的时候首先初始化一 个链表,根据用户输入的操作代号进行相应的操作。若用户选择装入作业首先判断 空闲分区表里有没有比作业需要的内存大的分区,若有直接分配,若没有进行紧凑 操作,再将紧凑后的空闲分区与作业大小比较,若能装的下则分配给作业,若是进 行紧凑后的空闲分区仍不能装入整个作业则通知用户内存不够。 2、流程图 2、 代码实现 #include #include #include

    3、 #include #define TURE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 #define SIZE 3 检索空闲分区链 进行紧凑形成连 续空闲区 空闲分区总 和u.size? N Y N 找到 u.size 的分 无 法 分 配, 返回 请 求 分 配 u.size 分区 修改有关的数据 结构 进行紧凑形成连 续空闲区 按动态分区方式 进行分配 Y 返回分区号及首址 /进程表 int ppNo=1; /用于递增生成进程号 int pLength=

    4、0; struct PCB int pNo; /进程号(名) int pSize; / 进程大小 int pOccupy; / 实际占用的内存 int pStartAddr; / 进程起始地址 int pState; /进程状态 ; struct PCB pList200; /空闲分区表部分/ typedef int Status; typedef struct emptyNode /空闲分区结构体 int areaSize; /空闲分区大小 int aStartAddr; /空闲分区始址 struct emptyNode *next; emptyNode,*LinkList; int Lis

    5、tDelete(struct PCB *pList,int i);/删除下标为 i 的进程 void pSort(struct PCB *pList); /内存中的进程按始址递增排序 void compact(LinkList /紧凑 ,内存中进程移动,修改进程数据 结构;空闲分区合并,修改空闲分区表数据结构 void amalgamate(LinkList /回收后进行合并空闲分区 void recycle(LinkList /回收 ,从进程表中删除进程 ,把释放 出的空间插入到空闲分区链表中 Status InitList(LinkList /构造一个新的有头节点的空链表 L Status ClearList(LinkList /将链表 L 重置为空表 Status ListInsert(LinkList /根据始址进行插入 void DeleteElem(LinkList /删除线性表中始址值为 aStartAddr 的结 点 void PrintList(LinkList L); /输出各结点的值 void creatP(struct PCB *p); /初始化进程 int search(LinkList /检索分区表 ,返回合适分区的首址 int add(LinkList /返回空闲分区总


    注意事项

    本文(操作系统课程设计实验报告--内存的连续分配算法)为本站会员(毕****文)主动上传,毕设资料网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请联系网站客服QQ:540560583,我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们
    本站所有资料均属于原创者所有,仅提供参考和学习交流之用,请勿用做其他用途,转载必究!如有侵犯您的权利请联系本站,一经查实我们会立即删除相关内容!
    copyright@ 2008-2025 毕设资料网所有
    联系QQ:540560583