# pagination **Repository Path**: JinghaoChen/pagination ## Basic Information - **Project Name**: pagination - **Description**: 基于MFC的模拟内存分页系统 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-10-25 - **Last Updated**: 2022-05-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 内存分页系统 ## 背景 这个项目是“数据库实践”课程的一个小课设,是为“操作系统”课程而设立的实验。 ## 使用技术 MFC、多线程 ## 简介 该项目要求使用LRU算法对一个大文件进行读取,模拟内存不够大时,想要处理大文件的情况,每次读取一个页面,并对该页面进行操作,当内存空间不足时,置换出最近最久未使用的页面。 在这个项目中,使用了一些比较讨巧的方式,没有真正对文件进行分块,采用一次读取所有内容到一个string中,采用多个指针来指定页面的开始。 **一些说明:** 1. 该项目可以读取并存储中文,但可能在页面的开始或结尾出现中文字符的截断,出现乱码。在中文之前插入一些字符,也可能使得本页的结束和下一页的开始出现乱码。 2. 每个页面默认大小为1KB,共6也,仅为演示时方便。PaginationDlg.h中的MAX_PAGE_NUMBER和MAX_PAGE_SIZE分别对应页面个数和页面大小,可以自行进行修改。 3. 在页面中进行修改首先将进入newContents的map中,每次读取将优先读取该map,用于模拟文件在内存中的情况,没有则会从string进行截取,点击save按钮时会将对应的数据替换进原string中,并写入文件。 4. 自认为注释比较详细,可以参考注释进行代码的理解与修改。 5. 项目有些粗糙,这个东西仅给了近一周的时间。