内存管理实验平台的设计与实现

 摘要:操作系统内存管理这一块由于内容抽象、概念众多而成为课程重难点。传统教学中内存管理重理论、轻实践而导致学生消极学习,且对相关内容掌握程度不高。内存管理实验平台能够通过算法演示提高学生的学习兴趣,增强他们对算法的掌握程度。学生在算法操作过程中还可以收到平台的反馈,这将助力于他们自主练习、自主纠错,进而掌握连续内存分配、离散内存分配两种管理方式。

本课题主要是用C#语言结合SQL Server数据库进行开发的一个内存管理实验平台系统。主要实现了对用户的管理、管理员日志查看、学生进行固定分区、动态分区、基本分页、请求分页等实验功能,通过这些功能的实现,管理员可以更好的管理学生,学生也可以更好掌握操作系统内存管理这一块课程难点。

 关键词:操作系统;数据库;内存管理;C#

1.绪论

  1.1.引言

  1.1.1.课题背景

操作系统内存管理知识点主要分为:固定分区、动态分区、基本分页、请求分页等存储方式,由于内容抽象、概念众多而成为课程重难点。传统教学中内存管理重理论、轻实践而导致学生消极学习,且对相关内容掌握程度不高。内存管理实验平台能够通过算法演示提高学生的学习兴趣,增强他们对算法的掌握程度。学生在算法操作过程中还可以收到平台的反馈,这将助力于他们自主练习、自主纠错,进而掌握连续内存分配、离散内存分配两种管理方式。

 1.1.2.开发意义

内存管理这一模块知识点是操作系统科目里面的重难点,也是每个计算机专业学生必须学习的一部分内容,随着我国教育水平的不断发展,通过网络平台学习也成为了大多数学生喜欢的一种学习方式。希望通过本设计的制作,能将在学校学到的知识点运用到本次项目的开发中,在此过程中发现自己在学习中的不足,不断完善自己。

本课题根据内存管理实验平台的实际需要而制作,随着计算机和信息科技的飞速发展,人们很快进入了网络时代。网络与人们的生活有着密不可分的关系,它已融入人类社会传统工作、学习和生活中。在之前,学生对于操作系统内存管理的学习过程中只能通过想象来理解内存在计算机中的存储,过程枯燥乏味,许多学生对于操作系统内存管理这一知识模块掌握薄弱,导致有些学生消极学习,对此相关内容知识掌握程度不高,甚至出现了逃课的现象。本系统根据学生内存管理实验平台的实际需要而制作,大大提高了学生对内存管理这一知识点的兴趣。本系统还有日志查看以及管理学生等功能,在一定程度上降低了管理成本,提高了执行力,通过了解关于操作系统内存管理的知识点,对本项目进行完善,使其更加符合实际情况。内存管理平台系统还可以大大节约时间,人力,财力资源。

 1.2.国内外研究现状

李娜指出“以学生为中心”的理念,提出了在学习通上面进行在线教学模式,可以有效解决高校在疫情期间面临的一些问题,在大规模疫情期间,保证并提升教学质量和教学效率,探索和实践OS在线教学策略是必要的[1]。她提出从教学理念、资源、方法和授课队伍等方面来提高教学的品质和效率。操作系统这门课程是计算机类专业学生在学校必修的一门重要课程,它作为一门原理性的课程,有一些特征:比如说内容多、不容易被理解,是一门理论比较强、实践也比较高的一门课。在疫情期间,学校一般采用线上线下混合教学。

如今的计算机技术发展瞬息万变,社会信息化使得计算机技术与人类社会已密不可分,且快速产生了大量数据。内存管理在这些数据的管理中起着非常重要的作用。随着信息技术快速的发展,内存管理已经成为不可或缺的战略资源,对于企业来说,数据储存和使用数据的技术和其他部门的某些行业的研究和调查的热门话题,特别是近几年,世界发生了翻天覆地的变化,数据存储有这么多新术语、新的产品、新的趋势等。在这种令人眼花缭乱的情况下,把握事物的本质是技术研究的首要任务。关于分布式存储技术,我认为有必要了解一些新兴的存储技术,以便更好地理解计算机存储技术对于生活方方面面的影响。

陈玉玲与徐涛表示由于当今社会对数据的需求越来越大,计算机的存储能力快速增长,存储系统的网络平台已经成为了一个重要的研究方向。因此,我们对存储设备的要求也越来越高。除了存储能力之外,我们对访问、传输、控制、兼容、扩展等方面也有着较高的要求。因此,存储网络平台的整体性能将直接关系到整个系统能否正常、有效地运行。网络存储(Network Storage)是诸多数据存储技术中的一类,网络存储架构大致可以分为三种:直连式存储DAS、网络附加存储NAS、存储区域网SAN[2]。因此,开发一种既有经济效益又有管理性的高技术是发展的必然趋势。

从传统的分布式计算向集中存储/服务器计算架构的转变是企业面临的重大变革。随着集中存储/服务器的趋势,存储层次结构和虚拟化也在不断发展,以满足集中存储的需求。这些技术的结合提供了一个新的平台。只有不断完善存储管理,才能在新的技术浪潮中不落伍。

在国外,三星和Myhtic致力于计算机存储和计算的集成。在最近的Hotchips中,三星公布了其hbm-pim提案。Myhtic的内存模拟和计算人工智能芯片的集成取得了进一步的进展,存储计算的新时代即将到来。PIM(内存处理)被认为是人工智能创新的核心。存储和计算有机地结合并采用直接计算存储单元,大大消除了过载带来的传输数据。如果在芯片上运行,可以提高数据传输效率,并且传输速度是人工智能的数十甚至数百倍,降低了成本。

对于内存计算的发展,存储技术首席执行官王绍迪表示,他的乐观有三个原因。首先,计算能力和计算数据每年成倍增长,但摩尔定律到达极限近在咫尺,每一代的芯片的性能却增加了10-20%。其次,冯·诺依曼体系结构的计算能力受到内存墙的限制,只有解决记忆墙问题,我们才能进一步增强记忆墙。在所有的解决方案中,内存计算是最简单、最有效的。

苹果首席执行官杨悦[3]认为,在技术进步的今天,我们迎来了一个与世界万物相连的人工智能时代。随着智能化产品所涵盖的范围不断扩大,其种类也将呈现出几何倍数的增加。随着内存技术的成熟,内存计算产品的应用方向和形态将发生变化。中间产品和早期产品更有可能出现在终端需要低能耗和高能源效率的场景中。值得关注的是,从外围连接的AI设备市场体系将会如同雨后春笋般飞速增长,假如我们没有预测错的话,因为智能城市、智能生态等在我们生活中已经随处可见,应用场景也会随着AI体系的快速发展变得多样化。从长远来看,存储产品的应用领域也许会扩展到超强计算能力的范围内。

2019年,Anakhi Hazarika[4]等人综述了异构计算系统中的内存管理技术。他们提出当今数据科学家面临的一个主要问题是如何扩大处理基础设施,以应对大数据和高性能计算(HPC)工作量的挑战。随着当今的HPC领域,需要连接多个图形处理单元(GPU),与CPU一起完成大规模并行计算。处理器与片上或片外内存之间的数据移动造成了系统整体性能的主要瓶颈。CPU/GPU需要处理计算机内存中的所有数据,因此数据向/从内存移动的速度和内存的大小影响计算机速度。在处理单元访问内存时,内存管理单元(MMU)控制计算机主存的数据流,影响系统性能和功耗。动态随机访问存储器(DRAM)体系结构的改变、以内存为中心的硬件加速器在异构系统中的集成和处理内存(PIM)是所有可用的共享资源管理技术中为最大化系统吞吐量而采用的技术。本调查研究对各种DRAM设计及其性能进行了分析。作者还重点讨论了不同硬件加速器和PIM系统的结构、功能和性能,以减少内存访问时间。还讨论了对现有技术进行增强的一些见解和潜在方向。高速处理场景下对快速、可重构、自适应内存管理方案的需求促使我们跟踪这一趋势。

2022年Ghasemi Alemeh[5]提出了数据流是一种并行的通用计算模型,它与执行它的底层多核/多核架构无关。最先进的框架允许快速开发数据流应用程序,通过设计时探索提供内存、通信和计算优化。但是,框架在生成代码时通常不会考虑缓存行为。一个普遍接受的想法是更大的多级缓存可以提高应用程序的性能。这项工作在广泛的实验活动中评估了这样的假设,该活动采用了与内核数量和缓存参数(大小、共享、控制器)相关的不同多核配置。结果表明,越大并不总是越好,更多内核和更大缓存的可预见未来并不能保证数据流应用程序的无软件性能更好。此外,这项工作调查了数据流应用程序采用两种内存管理策略:写时复制(CoW)和非临时内存传输(NTM)。针对最先进应用程序的实验结果表明,NTM和CoW有助于将执行时间减少到-5.3%和-15.8%到15.8%[6]。具体来说,CoW在22种不同的缓存配置中显示出高达-21.8%的能耗改善,平均为-16.8%。

 1.3.目标及主要内容

本次毕业设计的通过对用户以及管理员需求的详细分析,以及对各种技术的考虑,实现了一个学生在线实验内存管理平台的系统,管理员可以删除、修改、增加学生信息,以便于更好的管理学生,大大节省了管理资源,可以通过日志查看功能查看哪些学生做了实验,哪些学生没有完成实验,学生可以在此平台上进行操作系统内存管理的实验,深入学习操作系统内存管理的算法,明白这些算法的过程,通过平台的实践,来加强学生对这一块知识内容的掌握程度,使其学习过程不再枯燥乏味毫无生趣。该系统提高了学员学习效率,解决了在学习过程中的一些困难。在此之前,由于操作系统内存管理这一模块知识十分抽象,教师通过传统的上课方式学生理解的并不是很深刻,本系统建立在信息技术基础上,构建了一个更为方便的系统。

 1.4.系统架构

1)本系统运用了最近几年比较新颖的asp.net mvc框架技术[7],整体架构由这个技术实现,数据库是由SqlServer数据库来操作进行的,具备了登录认证和权限管理的功能,利用asp.net mvc框架对学员和管理员进行权限管理,可以保证数据的安全性,前端使用jquery+html技术实现,前端界面框架使用adminlte,界面美观大方,使学生和老师有更好的体验。

2)本系统运用了B/S架构体系,这个框架是当前的主流框架,它使开发人员的开发更为方便,用户的体验也大大提升。

  2.相关技术介绍

1)JavaScript

JavaScript是一种具有函数优先的轻量级,解释型或即时编译型的编程语言[6]。它具有原型编程、多范式的一些特点,因此在一些非浏览器的环境中也可以见到它,大多数web开发人员都喜欢用JavaScript。

2)HTML

HTML是一种超文本标记语言[7],大多数的网站都用它来进行开发使用,它是在1990年问世,它的开发是由蒂姆和丹尼尔共同创立,一般可以称的上是HTML文档的几乎都是用HTML编写的超文本文档。用它的人将他的意愿写成一个HTML文件,然后用特定的浏览器进行解析,就是呈现在大众面前的网页了。如今,HTML的使用已经非常流行,并且深受大众喜爱,大多数的网页都有html的一席之地。

3)SQL Server

SQL Server于1988年问世,它是由微软、赛贝斯与安信达三家企业合作研发的一个关系数据库管理系统,它的首个版本为OS/2版本[8]。自从Windows NT问世之后,Microsoft和Sybase自此一别两宽,之后微软专心研究SQL Server的Windows NT版本,它在Windows NT系统上面移植了SQL Server。赛贝斯则在UNIX操作系统上装载了SQL Server,并且把注意力放到了UNIX操作系统的上应用。

4)Asp.net MVC

MVC利用了人们在生活中解决复杂问题的一种思维方式而构建的一种关注点分离模式,它将一个人机交互用户的作用功能分为Model层、View层、Controller层三个部分[9],它们各司其职:

Model层:它对应了事物的实体,当实体与实体产生了联系,就会产生相应的业务,当Controller处理了一些业务时,它会发生改变,然后呈现到View层。

View层:它是对可视化界面的呈现,同时捕获用户之间的交互操作[10]。

Controller层:控制层用于控制逻辑,其最主要的功能就是控制后端和前端之间的交互。事实上,在大多数情况下,前端和后端之间的交互是通过交换JSON数据来实现的。两者的交互核心仍在浏览器中进行。前端向你出请求,后端返回数据以响应请求。然后,前端根据后端的响应做出相应的响应。这是前端和后端之间最基本的交互。你不需要考虑这个过程有多神奇,主要原因是知识系统是相互关联的,如果一个环节不牢固,整个过程将难以继续。

5)AdminLTE

AdminLTE是一个基于bootstrap和jquery的开源模板主题工具。它提供一些响应性和可重用的组件,并且包含许多模板页[11]。同时能够适应多种屏幕分辨率,而且可以兼容PC以及移动终端。通过使用AdminLTE框架,我们可以非常迅速地创建一个美观的响应性网站。如果你是一个前端架构师,那么使用好AdminLTE框架将会使你的工作事半功倍。它在网页的体系结构和设计中可以起到非常重要的作用,换句话来说,只要你用好AdminLTE框架,你做的网页不仅可以美观漂亮,而且会省去一大部分工作量。

6)B/S模式

B/S(浏览器/Server)的架构是指浏览器与服务端的架构[12]。随着计算机技术的不断发展,计算机的架构也越来越完善,当前主流框架B/S架构的灵感产生于C/S。在此架构下,浏览器完成了工作接口,从而极大地减少了客户机负载,减少了系统的维修和更新费用,减少了总的费用(TCO)。就现有技术而言,利用局域网建设B/S架构的网际网路,利用因特网/内联网方式进行资料库的使用,相对容易掌握,成本相对低廉。该系统一次就位,可使用户通过多种途径存取和运行公共数据库;该系统的特点是能够在任何时间、任何地点进行商业活动。该模型服务扩充简便,添加一个页面就可以添加到服务器的能力。在系统的维护上,只要修改页面,就可以让所有的使用者进行实时的更新,具有很好的互补性。该服务为异种机、异种网、异种应用服务等提供了一个开放的、开放的服务平台[13]。而C/S模式开发是具备针对性的,对手机客户端有一定的规定,因而缺乏通用性,移植性,业务流程变动不灵便,在维护保养、系统更新层面都会有非常大的不便并且兼容模式较弱,针对不一样的开发环境,相互之间难以兼容,具备很大的局限性,对于应用来说,新技术并不利于应用。此外,它的开发成本较高,必须具备一定专业水平的专业技术人员才可以进行。

 2.1.系统开发平台及运行环境

  2.1.1.系统开发平台

1)Visual Studio 2019

Microsoft Visual Studio 2019是微软在2018年6月6号推出的最新的一款VS编程开发软件[14],这款软件备受编程人员的广泛追捧,它拥有强大的源代码编辑器功能,以及庞大的扩展插件库,可以帮助运行以及编辑C/C++,PHP等各种编程语言。

它可以应用VSTS加速从思路到推送的全过程,它利用CI/CD应用性能卓越以电闪的速率测试代码并将其部署到项目中。依据必须逐渐解决中小型每日任务和竖向拓展。它还具备大家所钟爱的Git所具备的所有作用,并具备完全免费的专用型储存库、获取要求和代码审查。与朋友进行协作,使你的代码健壮靠谱,并与CI/CD集成化,将代码迅速用以部署。编号一次就可以在机构中共享软件包。应用VSTS代管专用型Nuget、npm和Maven包,以获得更靠谱、可放缩的内部结构版本。提早测试并提升测试頻率,信心十足地公布。应用VSTS设定测试方案并追踪和汇报手动式测试、运作全自动运行的测试模块,并运作根据云的负荷测试[11]。

 2.1.2.运行环境

1)硬件环境

内存管理实验平台服务器端硬件环境。

表2.1硬件环境表

c3653e7e38b4de33070ad0730166919a

2)软件环境

内存管理实验平台系统服务器端软件环境。

表2.2软件环境表

2720bac7de4b967aa15886b68a3237d7

 3.系统需求分析

  3.1.功能需求分析

内存管理系统是根据学生学习操作系统内存管理的情况按照线上虚拟化的需求开发的,它的目标非常明确,就是通过建立一个高效的内存管理平台,提高学生学习兴趣,学生在计算机上面进行操作,可以更好的了解内存在计算机上面是如何进行分配管理的。

其中在总体需求上分为两大模块,用户需求和管理员需求,对于用户功能主要分为用户的登录和对密码的修改、用户操作固定分区、动态分区、基本分页、请求分页等功能;对于管理员功能则主要提现在管理员对于用户的操作以及查看用户操作日志,并且具有与用户相同的算法实验功能。

对于用户和管理员的需求分析,用以功能例图来体现具体功能,本系统用例模型分为两种,分别是学生和管理员。

3.1.1.学生用户

学生是通过管理员添加的用户,登陆需要输入的用户名以及密码,在登陆成功之后才可以使用相应的功能。登陆成功之后可以进行固定分区、动态分区、基本分页、请求分页等功能。学生主要的功能如图3.1所示。

图3.1学生功能结构图

b4d2d3d9bc1f0393e7ed191c42a0851b  3.1.2.系统管理员

系统管理员通过管理员账号登陆到管理员页面,主要实现对学生的增删改功能,分配学生班级,查看学生操作日志,也可以使用学生可以使用的实验操作功能。管理员的具体功能如图3.2所示。

图3.2管理员功能结构图

bcba780b459c9667d86773a2ccab6eb1  3.2.非功能需求分析

1)权限控制

由于本系统存在权限级别不同的用户,根据不同的用户,需要设置相应的权限,学生登陆本系统只具备算法实验操作功能,管理员登陆系统不仅具备算法实验功能,还具备查看用户操作算法实验日志和对用户信息操作功能。

2)系统的安全性

内存管理实验平台系统记录了一些重要的信息,包括学生信息,信息具备很高的机密性和经济价值,因而,此系统软件应当有一定的安全性规定[15],保证关键数据信息并不易窃取和损毁。

 3.2.1.控制必录入项

本系统对于提交的表单进行了处理,确保信息录入完整,防止信息出现遗漏错误的现象,造成一些麻烦。

 3.2.2.性能需求

1)客户端响应的时间不超过3秒钟。

2)本系统为多用户操作系统,对于多个用户操作本系统,保证性能不受影响。

3.3.可行性分析

可行性研究是在现有特定情况下,对网站进行可行性的研究,从经济可行性、技术可行性和操作可行性三个角度进行研究。

 3.3.1.经济可行性

随着计算机技术和互联网技术的不断发展,人们可以利用互联网进行各种形式的信息沟通。利用网上的在线教学和研究是一种潮流。很多的教育工作者和各行各业的人士都非常关注和期望这种软件的发展。所以,存储试验平台的应用前景十分光明。采用内存管理实验平台,能极大地提高传统的教学方法,让单调的课堂教学更加生动、有趣,在此基础上可以大大节省人力、物力和资金。因此,利用内存管理实验平台进行学习,具有明显的经济效益和社会效益。

 3.3.2.技术可行性

本系统基于asp.net mvc+jquery+html+Sql Server,并且采用B/S模式,由于adminlte、asp.net mvc功能强大,灵活易于维护,目前在国内外已被广泛使用,所以技术上是可行的。

在硬件上,随着技术的快速发展,设备的升级和存储能力也在不断提高。它具有较高的可靠性和较低廉的性能,它的硬件平台能够充分地适应这种需求。

 3.3.3.操作可行性

本系统是基于B/S架构所构建的,在此基础上,使用者无需经过专门的研究,即可完成该系统的试验。至于管理员,因为有了相应的管理手册,就算是不精通的人,也能轻松地使用后台的管理。

4.系统总体设计

  4.1.系统总体架构

本系统是以ASP.net mvc架构为基础,以MVC为标准模型,将整个系统分为三个层次:视图、控制器、模型三个层次。其中,数据库用sqlserver,数据库的增删改查使用Entity Framework,前端的实现使用jquery+html,前端界面框架使用adminlte。系统总体结构图如图4.1所示。

图4.1系统架构运行图

ccebf74207ebb008a11284e77b7122d3  4.2.系统功能模块设计

从本质上讲,内存管理平台系统具有相对较强的综合性和比较高的复杂性。构建一个完善的内存管理平台系统,涉及以下内容,包括:首页界面、处理程序、SQL Server后台数据库等,并且可以在网站页面中显示以下内容,例如固定分区、动态分区、基本分页、请求分页等操作页面。

因此,内存管理系统需要具有学生用户前台功能和管理员后台功能,其中,前台功能实现了以下功能,算法实验操作、修改密码、用户登录等功能,结构图如图4.2所示。

图4.2用户前台功能模块结构图

5a6cba70879ca572ec20f45ebd4d2c9f  管理员后台功能实现以下功能:修改密码、日志查看、学生管理、算法实验操作、修改密码、用户登录等,结构图如图4.3所示。

图4.3管理员后台功能模块结构图

cd2aaae8d8018aeb30436bd84edcb933  4.3.数据库设计

数据库的设计关联到全部软件系统的运行效率。数据库的设计在系统中作用非常高,它可以提高系统软件的运行效率,减少数据统计回应周期时间,提升站点的总流量。有效的数据库设计可以简单化其适用的网页页面周边的编码,便于完成,提高数据储存效率,保证数据的一致性和一致性[16]。内存管理平台系统采用SQL server2012作为后台数据库开发工具。

4.3.1.数据库概念设计

概念模型是一种独立于特定DBMS的信息世界的建模方法。简而言之,就是将真实世界的客体抽象成某种特定的信息化架构,而非由特定电脑系统或特定DBMS所决定,只由概念层的模式转化成电脑上某个DBMS所支持的数据模式[17]。在实践中,概念模式是从真实世界到机械信息世界的过渡阶段。

1)实体(entity)

实体是客观的并且能够彼此区分开来的东西,比如说学生,课程,供应商,部门,图书,读者都是一个实体。

2)联系(relationship)

在真实的社会里,物质与物质的内在关系是相互关联的,这种关系体现于物质与物质的内在关系。在一个单位中,一般是指一个物理性质的联系。这两种不同的实体的联系可以分成三种:1-1;一对多连接(1:n);多对多个联结(m:n).。

 4.3.2.E-R图模型设计

内存管理平台系统实体关系图如图4.4所示:

图4.4内存管理平台系统实体关系图

96ab57cb06d0e4bb2ec6fb3caf71c586  4.3.3.数据库逻辑设计

数据库逻辑是把在数据库设计中所建立的基础E-R图表转化为与DBMS产品相一致的数据模型的逻辑架构[18]。包括数据项、记录与记录之间的关系、安全性和一致性限制等。

数据库中包括:

表4.5用户表(Students)

a247a58024fc76bbdbccb9c90c695f9b

其中,id字段主要用于对用户的增删改查,StudentType字段主要用于在用户登录时的判断,如果是管理员用户则进入到管理员页面,如果是用户则进入到用户页面。

表4.6用户日志表(logsr)

e61f764f5ed427932c8853f005944661

5.系统详细设计与实现

本章节介绍了内存管理平台系统的实现,包括用户模块和管理员模块的实现过程。

 5.1.内存管理平台系统前台

  5.1.1.注册登录

用户根据管理员添加的用户进行登录,初始密码为000000,登录后请自行更改密码。输入的账号密码获取对象,如果获取的对象为空,则提示用户或账号密码错误,如果不是则获取对象的名称以及类型,如果是管理员类型则进入管理员界面,如果是普通用户类型,则进入用户界面。用户如果为学生,则进入学生操作页面,学生操作页面只有算法实验操作。其中用户登录功能流程图如5.1所示,登录功能图如图5.2所示。

图5.1登录流程图

2ce1eb3aed1b1699e077b0d87483cbbf  图5.2用户登录

cd837144615f696c99d84b1bec7fb38d  5.1.2.固定分区

固定分区算法:为进到主存的客户作业区划一个持续储存地区,并将作业加载到持续储存地区。假如将好几个作业加载到主存中,他们可以与此同时实行。应用尺寸一致的固定不动分区有两个困难,程序流程很有可能太大,没法放到一个分区中,并且运行内存使用率极低。因为加载的数据信息块低于分区尺寸,因而分区内部结构存有消耗,变成“内部结构残片”。针对不一样尺寸的分区对策,有效的方法是将每一个过程分派到可以容下它的最少分区中。用户输入进程名称和进程大小,点击新增进程,生成一个进程,将进程移入右方内存块中,根据首地址进行判断,如果它的地址不是每行内存块的首地址,则返回分配失败,并记录到管理员日志中,表单判断进程大小是否大于100,判断进程名称以及进程大小是否为空,进程大小超过100或者为空以及不是纯数字,都会出现small标签警告,将进程移入内存块中,根据大小从移入的地址遍历表格块改变它们的颜色,提示操作成功,点击释放内存则将颜色去除,去除进程表格。其中流程图如图5.3所示,功能图如图5.4所示。

图5.3固定分区流程图

232edaf335662f650282dcd054b6d31f  图5.4固定分区算法功能

6f915a9ddfcb3cabb99509b20dc50855  5.1.3.动态分区

动态分区用户输入进程名称和进程大小,点击新增进程,生成一个进程,将进程移入右方内存块中,通过ajax请求controller生成一个list,判断是否满足算法,如果不满足算法,则返回分配失败,并记录到管理员日志中,前端表单判断进程大小是否大于100,判断进程名称以及进程大小是否为空,进程大小超过100或者为空以及不是纯数字,都会出现small标签警告,将进程移入内存块中,根据大小从移入的地址遍历表格块改变它们的颜色,提示操作成功,点击释放内存则将颜色去除,去除进程表格。其中流程图如图5.5所示。

图5.5动态分区流程图

49c54f7f8dd8f6be80074af627e9da0d  动态分区(首次适应算法):每次从低地址查找,找到第一个能满足分区的大小分配。在该算法下判断用户指定的输入进程大小,在controller生成一个list判断用户移动的是否为第一个满足分区大小分配的地址,如果是则返回分配成功,不是则返回分配失败。

其中功能图如图5.6所示。

71cb0939ac57b2a7c68984d781f345ba  图5.6动态分区算法(首次适应算法)

动态分区(最佳自适应优化算法):根据任务需要,指派最少的自由区。所有的自由分区都必须按照其能力由小至大依次构成一个自由的区域。在该算法下判断用户指定的输入进程大小,在controller生成一个list判断用户移动的进程块是否为该区域中的最小内存块的首地址,如果是则返回分配成功并且记录到日志中,否则返回分配失败。其中功能图如图5.7所示。

5a6ca079a0e568a290854a0fc8997412  图5.7动态分区算法(最佳适应算法)

动态分区(最坏适应算法):该方法需要将每个闲置分区按照其容量大小依次构成一个自由分区,然后将作业放入最大的闲置分区。在该算法下判断用户指定的输入进程大小,在controller生成一个list判断用户移动的进程块是否为该区域中的最大内存块的首地址,如果是则返回分配成功并且记录到日志中,否则返回分配失败。其中功能图如图5.8所示。

118e63290ac3150406e8ee9d26f625a6  图5.8动态分区算法(最坏适应算法)

动态分区(循环优先适应算法):当给一个程序指定分配内存空间时,不会每次在第一个空闲的区域中找,而要从前一个查到的空闲区域中开始寻找下一个可以达到这个需求的自由区域。将一个与该要求相同的存储空间指定给该任务。在该算法下判断用户指定的输入进程大小,在controller生成一个list判断用户移动的进程块是否为该区域中上次操作的地址,如果是则判断是否满足循环优先适应算法,如果是则返回分配成功并且记录到日志中,否则返回分配失败。其中功能图如图5.9所示。

217e8caa067f94151d7445d1a7d9e154  图5.9动态分区算法(循环首次适应算法)

5.1.4.基本分页

基本分页:没有页面交换的能力,也没有适用于完成虚拟存储器的能力,规定每个工作都在运行内存中被加载。在该算法下判断用户指定的输入作业名称和作业大小,判断作业大小,根据每页内存为10向上取整,对其进行遍历,将遍历后的作业移入内存块中,不存在页面置换功能,所以不能够覆盖。其中流程图如图5.10所示,功能图如图5.11所示。

图5.10基本分页流程图

b57235e567608674f868d0011d664586  图5.11基本分页算法

47967bfa3402e89baef59bd3fc3660dd  5.1.5.请求分页

请求分页(FIFO):先进先出调度算法。

在该算法下用户进行随机生成指令,生成作业块表格,将生成的作业表格放入页表中,改变其样式,并且通过格式化当前时间填入表格,判断是否有空闲,如果没有则根据时间来判断是否为最先进进入页表的作业,如果是则分配成功,如果不是则分配失败。其中请求分页流程图如图5.12所示,请求分页(FIFO)功能图如图5.13所示。

图5.12请求分页功能流程图

99c9a758840137b2bffac3aeabb977ca  图5.13请求分页算法(FIFO)

7f15ba5363a136f3586cedb9b07aae6d  请求分页(LRU):最近最久未使用调度算法。用户进行随机生成指令,生成作业块表格,将生成的作业表格放入页表中,随机生成最近使用时间,并且改变其样式,判断是否有空闲,如果没有则根据时间来判断是否为最近最久没有使用页,如果是则分配成功,如果不是则分配失败。其中,LRU算法功能图如图5.14所示:

图5.14最近最久未使用调度算法(LRU)

aa15c94eaceea0a01284d4f47cae75b3  5.1.6修改密码

修改密码需要输入旧密码,密码不一致或者为空则出现small红色提示,验证两次输入的新密码是否一致,不一致则无法提交表单并且出现small红色提示。以上条件都满足则使用ajax技术post请求方法提交到controller层,根据id查找对象,将返回的新密码值赋值给当前对象的密码,保存到数据库中,返回结果集,根据结果集提示操作成功或者失败。其中修改密码流程图如图5.15所示,修改密码功能图如图5.16所示。

图5.15修改密码功能流程图

f8ba17e5336dc13d5c1c848fe1f51f43  图5.16修改密码功能

d016475ac6270cf6a85ebfa241f58860  5.2.内存管理平台系统后台

  5.2.1.管理员登录

管理员登录时根据输入的账号密码获取对象,如果获取的对象为空,则提示用户或账号密码错误,如果不是则获取对象的名称以及类型,如果是管理员类型则进入管理员界面,如果是普通用户类型,则进入用户界面。其中功能图如图5.17所示。

图5.17管理员登录

8b51e5c2dcb7030d9d02eed3e84977ea  5.2.2.管理员管理学生功能

前端通过URL获取JSON学生对象,遍历学生列表,判断学生类型如果是0则是学生类型,否则为管理员类型,点击新增学生按钮和操作里面的修改删除按钮,弹出对应的操作框,提交对应的表单到对应操作的controller,处理结果,储存到数据库,返回结果集,根据结果集提示操作是否成功。其中流程图如图5.18所示,功能图如图5.19所示。

图5.18管理学生功能流程图

99821a5b2d381c2c02a50dc4655abe51  图5.19管理员管理学生

dfdb7658ccbace15369cc0f9d5d94c5a  5.2.3.管理员查看日志

后端查询日志表list返回JSON对象,前端通过请求后台的URL返回结果集,将结果集进行遍历,处理字段,显示到日志表中。其中流程图如图5.20所示,功能图如5.21所示。

图5.20查看日志功能流程图

d03b42f8369abf296ce46ad3e459955e  图5.21管理员查看用户操作日志

6c3626dc43e2127d4f0c101f1cadcf19  6.系统测试

  6.1.测试的目的与目标

在对内存管理平台系统进行了初步实现之后,首先进行了系统的调试,发现了存在的bug并进行了验证[19]。

 6.2.测试方法

单元试验,亦被称作是程序设计中最小的单位—程序模块,用以检验确认工作是否正确。其目标是找出各个模组中的潜在bug。单位试验要求从程式的内在架构中来进行测试。多个模块能够同时进行单独的单元试验。

集成测试(装配测试,联合测试)一般都是建立在单位测试基础上的[20]。

工程验收测试:经过对该体系的有效性和软件配置的审核,逐步进行了系统的工程验收试验。验收试验是面向使用者的检验[22]。同时,还应该包括软体开发和质量保障(质量保障)的职员。用户参与了试验案例的设计,使用实际的生产数据进行试验。在整个测试期间,除了将软件的基本功能和性能都纳入考虑之外,还应确定软件的可扩展性、兼容模式、可扩展性和不正确恢复功能。

本文所介绍的内存管理平台系统的软件开发分为学生的前台操作开发和管理员对用户操作的后台开发两部分。而且两部分应该可以在项目运行时作为完整且单独的程序存在,互相独立,在系统中,两部分是以数据库作为联系纽带,通过管理员对用户的增删改来实现用户是否有权限对一些内容进行操作。因此,该阶段的测试方法主要以白盒测试为主要测试方法。

单元测试完成后,进行系统集成测试[21]。虽然学生使用的操作模块和管理员管理模块在形式上是相互独立的,但它们在逻辑上是相互依存、密切相关的。因此,集成测试可以更好地反映系统的实际运行情况。由于系统功能复杂,集成测试主要是黑盒测试。

 6.3.测试用例

本文所介绍的是内存管理实验平台的测试用例。

系统用户修改密码测试如图6.1所示,从测试的结果来看,它和预期的结果是一样的。

表6.1用户修改密码测试

90dfb5205b346a0191066fce2eeb1893

表6.2是本系统管理员新增学生的测试表,从测试的结果来看,它和预期的结果是一样的。

表6.2取消预约课程测试用例

eb5088a649c017d6982da801391956d3

表6.3是本系统固定分区的测试表,从测试的结果来看,它和预期的结果是一样的(其他分区测试与此测试大同小异)。

表6.3固定分区功能测试用例

bfd6b6f6af129d47391bf64a56d63d7f

 6.4.测试结论

本次测试使我明白了测试对于程序的重要性,当你认为程序可以运行时,你要试图将程序击溃,从而找到问题的所在。我在第一次测试中输入错误的旧密码,用户无法提交表单,在第二次测试中输入新密码和第二次输入密码不一致,用户无法提交表单,在第三次测试中按照要求修改密码,提交表单成功,并且重新登录后,新密码可用。艾兹格·W·迪科斯彻是计算机的先驱之一,他有一个十分出名的看法:测试可以表明程序中有错误,但却无法表明在其中沒有错误。他的希望是,程序可以根据某类结构全过程恰当地做出去,那样就不会再会出现错误了,因而测试也就多余了。这的确是个幸福生活的总体目标,可是,对接下来的具体程序来讲,这依然还仅仅是一个理想化。因此应当集中注意力探讨怎样测试,如何才能迅速地发觉程序错误,怎样才可以促使工作中更行之有效、高效率更高。

7.结论

1)项目设计成效

内存实验管理平台,本软件后台使用asp.net mvc来编写,数据库用SQL Server,数据库的增删改查使用Entity Framework前端使用jquery+html,前端界面框架使用adminlte,界面美观程序为了方便理解,在分区实验中,设定为内存为100个单位,学生创建的进程不可超过100个单位,在请求分页中,学生可随机产生作业,产生缺页中断,然后根据规则来淘汰页。

程序包含三个模块:

用户管理:可添加,编辑,删除学生,学生有两种类型,普通学生和管理员,管理员进入,可操作学生管理和查看日志,普通学生进入,只能进行实验。

日志查看:可查看学生进行实验的情况,包括是分配内存是否正确等信息。

学生实验:(1)固定分区,动态分区,包含(FF,BF,WF,NF)

学生可输入进程的名称和进程大小,点击新增进程,信息会填充到进程信息表格中,然后使用鼠标拖动分配按钮,到右方的内存信息中,进程的ID也会标识在里面,方便区别。如果鼠标放下时的首地址正确,则能自动放下,同时区块会变绿,否则就会提示失败,并记录到后台。用户也可随时回收进程.进程回收后,相应的内存块会变绿,用户可继续增加进程,进行内存分配工作。

(2)分页算法(基本分页,请求分页FIFO LRU)

学生可随机生成作业指令,作业信息里会列出页编号,学生拖动装入,将页装入页表,页表信息会自动更新,同时作业信息中的块编号也会更新。根据响应的算法,会自动生成随机的数据,如最后请求时间和装入时间,学生可根据这些信息,在产生缺页中断的时候,继续拖动装入按钮到页表,程序会自动根据规则判断地址是否正确,并给出提示,记录到后台。

2)存在的问题及建议

回顾此次开发过程,该系统仍然存在着不足之处,主要有以下几个方面:

(1)本系统在界面操作上存在不足,易操作性和美观性有较大的提升空间。

(2)本系统只实现了内存管理平台中用户操作实验功能,而没有涉及到用户具体的操作体验。

所以,在此基础上,我们将逐步推进内存管理实验平台其他功能和管理信息的开放,并将其逐一推向网络管理,使用户操作更为简单化。相信在一次次的升级完善过程中该系统将成为一个更高效、更便捷的内存管理实验平台系统。

 参考文献

[1]李娜,李征,王鹏,刘杰.“以学生为中心”的操作系统课程在线教学策略[J].电脑知识与技术,2022,18(03):146-147.DOI:10.14004/j.cnki.ckt.2022.0160.

[2]陈玉玲,徐涛.计算机存储技术研究现状及未来发展[J].计算机产品与流通,2020(05):13.

[3]Krishnaveni Bukkapatnam,Bukkapatnam Krishnaveni,Prashant,Rekha Ch Kranthi,Kumaraswamy Eelandula,Vatti Rambabu.Smart Memory Management(SaMM)For Embedded Systems without MMU[J].IOP Conference Series:Materials Science and Engineering,2020,981(3).

[4]Ghasemi,Alemeh,Ruaro,Marcelo,Cataldo,Rodrigo,Diguet,Jean Philippe,Martin,Kevin J.M..The Impact of Cache and Dynamic Memory Management in Static Dataflow Applications[J].Journal of Signal Processing Systems,2022(prepublish).

[5]ATI Technologies ULC;Patent Issued for Memory Management In Graphics And Compute Application Programming Interfaces(USPTO 10,733,696)[J].Computers Networks&Communications,2020.

[6]Samsung Electronics Co.Ltd.;Patent Issued for Method And System For Providing Stack Memory Management In Real-Time Operating Systems(USPTO 10,248,456)[J].Computer Weekly News,2019.

[7]王润中.操作系统与Oracle内存管理比较[J].现代计算机,2021(19):152-154+169.

[8]梁月月.CBase数据库内存管理技术研究与实现[D].西安电子科技大学,2021.DOI:10.27389/d.cnki.gxadu.2021.000560.

[9]马玮良,彭轩,熊倩,石宣化,金海.深度学习中的内存管理问题研究综述[J].大数据,2020,6(04):56-68.

[10]吴超,王成群,朱升宏,徐伟强,贾宇波.工业物联网中的缓冲内存管理设计与实现[J].物联网学报,2019,3(01):60-64.

李峰,陈维,李坤明,童超.AndlinkOS操作系统内存管理算法设计[J].电子技术与软件工程,2021(09):180-181.

致谢:本文是我在老师的悉心指导下完成的,从论文的选题、课题的研究到论文的撰写上老师给了我莫大的帮助。当我遇到问题时,老师会认真仔细地给我解释说明;当我碰到困难时,她会帮助我一起解决。在此向老师表示深深的敬意和衷心的感谢。

内存管理实验平台的设计与实现

内存管理实验平台的设计与实现

价格 ¥9.90 发布时间 2024年3月26日
已付费?登录刷新
下载提示:

1、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“文章版权申述”(推荐),也可以打举报电话:18735597641(电话支持时间:9:00-18:30)。

2、网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。

3、本站所有内容均由合作方或网友投稿,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务。

原创文章,作者:1158,如若转载,请注明出处:https://www.447766.cn/chachong/205714.html,

Like (0)
1158的头像1158编辑
Previous 2024年3月26日
Next 2024年3月26日

相关推荐

My title page contents