1、 操作系统课程设计(内存管理)操作系统课程设计(内存管理) 班级:班级: 学号:学号: 姓名:姓名: 指导老师:指导老师: 一、设计目的一、设计目的 操作系统课程主要讲述的内容是多道操作系统的原理与 技术, 与其它计算机原理、 编译原理、 汇编语言、 计算机网络、 程序设计等专业课程关系十分密切。 本课程设计的目的综合应 用学生所学知识,建立系统和完整的计算机系统概念,理解和 巩固操作系统基本理论、原理和方法,掌握操作系统开发的基 本技能。 二、设计题目二、设计题目 操作系统模拟软件的设计与开发 三、设计内容(内存部分)三、设计内容(内存部分) 模拟各种内存分配算法及回收过程,并能动态演示。结
2、合 进程调度算法,能为进程模拟分配内存,并设计一个跟踪该内 存模拟分配的进程或线程,记录内存分配的结果 四、设计的步骤(内存部分)四、设计的步骤(内存部分) 1 1总体总体设计设计: 存储管理:存储管理: 功能描述:功能描述: 存储管理负责完成对内存存储器的地址转换,采 用最优适应算法完成对内存储器进行分配与去配,解 决多用户对内存储器的共享和保护,通过软件手段, 实现对内存储器容量的扩充。 简要描述:简要描述: 可变分区管理方式预先不将内存划分成几个区 域,而将内存除操作系统占用区域外的空间看作一个 大的空闲区。 存储管理部分,系统为提供了存储管理界面,用 户可以实现内存空间的管理、内存分配
3、、内存回收和 存储保护操作。 事件流事件流 当用户请求管理内存分配时,启用该用例,系统 显示内存分配,内存回收和内存存储保护。 当用户请求 内存分配时,系统执行内存的分配;当用户内存使用 完成后,系统执行内存的回收。内存分配出现问题时, 需要执行对内存储器的保护。 用户 存储系统 用例图 存储管理 内存的分配 内存的回收 存储的保护 子用例图 内存空间的分配内存空间的分配 功能描述:功能描述: 源程序经过编译、链接、并装入内存后才能运行。 内存空间的分配即对内存空闲区的分配。 简要描述:简要描述: 可变分区管理方式预先不将内存划分成几个区 域,而将内存除操作系统占用区域外的空间看作一个 大的空
4、闲区。当作业要求装入内存时,根据作业需要 内存空间的大小查询内存内各个空闲区,当内存空间 中找到一个大于或等于该作业大小的内存空闲区时, 选择其中一个空闲区,按作业需求量划出一个分区装 入该作业。 事件流事件流 当用户请求管理内存回收时,启用该用例,系统 显示内存分配,内存回收和内存存储保护。 当用户请求 内存分配时,系统执行内存的分配;当用户内存使用 完成后,系统执行内存的回收。内存分配出现问题时, 需要执行对内存储器的保护。 作业在空闲区表中寻找一栏 空闲区表中存在空闲栏空闲区表中不存在空闲栏 主存分配失败 此栏长度略大于或等于作业长度此栏长度比作业大很多 分配空闲区给作业 已分分区表中存
5、在 一栏为空 将作业信息登记在已分分区表中 切割空闲区 已分分区表中不存在 满足作业的空闲栏 分配失败 空闲表中不存在满足 作业的空闲栏 空闲区表中存在 满足作业的空闲栏 内存空间的分配图 内存空间内存空间的回收的回收 功能描述:功能描述: 实现回收时, 将作业归还区域在已分配表中找到. 将栏目状态变为 空 .然后检查空闲区表中标志为 “未 分配”的栏目.查找是否有相邻空闲区;最后,合并空 闲区,修改空闲区表。完成内存空间回收. 简要描述:简要描述: 可变分区方式下回收内存空间时,首先将作业归 还的区域在与分配表中找到,将该栏目的状态变为 “空” ;然后,检查空闲区表中标志为“未分配”的栏 目
6、,找到是否有相邻的空闲区;最后,合并空闲区, 修改空闲区表。 事件流事件流 当用户请求管理内存分配时,启用该用例,系统 显示内存分配,内存回收和内存存储保护。 当用户请求 内存分配时,系统执行内存的分配;当用户内存使用 完成后,系统执行内存的回收。内存分配出现问题时, 需要执行对内存储器的保护。 已分分区表某一作业要归还空间 此作业不是已分配 区表中的一栏 此作业是已分配 区表中的一栏 有上临空闲区 有下临空闲区 上下临空闲区都有上下临空闲区都没有 与上下临空闲区合并 修改空闲区表 与上临空闲区合并 修改空闲区表 与下临空闲区合并 修改空闲区表 是空闲区表一栏 回收失败 不是空闲表中一栏 归还分区填入空闲区表 内存空间的回收 2.2.详细设计详细设计 VeriableIndexVeriableIndex 类类 概述:这个类封装了变量到内存地址的映射关系, variable 代表变量,index 代变量在内存中的地址。 作用:当用户的程序要运行时,系统将为用户定 义的变量分配内存空间,并把每个变量的名字与它