




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于RISC-V代理内核的操作系统课程实验与课程设计第四章.实验2:内存管理目录实验2的基础知识Sv39虚地址管理方案回顾物理内存布局与规划PKE操作系统和应用进程的逻辑地址空间结构与页表操作相关的重要函数实验内容lab2_1虚实地址转换lab2_2简单内存分配和回收lab2_3缺页异常实验2的基础知识Sv39虚地址管理方案回顾Sv39中逻辑地址的结构Sv39中PDE/PTE格式Sv39虚地址管理方案回顾Sv39中虚拟地址到物理地址的转换过程Sv39虚地址管理方案回顾satp寄存器格式satp寄存器中MODE域的取值和含义取值虚存方案0Bare8Sv399Sv48物理内存布局与规划对于我们用spike的模拟RISC-V机器而言,2GB的物理内存并不是从0地址开始编址,而是从0x80000000开始编址的。PKE操作系统的逻辑地址空间结构在开启了Sv39虚拟内存管理方案后,所有的逻辑地址到物理地址的翻译都必须通过页表和MMU硬件进行。PKE操作系统内核的逻辑地址空间和它到物理地址空间的映射图PKE应用进程的逻辑地址空间结构lab2_1的应用app_helloworld_no_lds进程在装入后,其逻辑地址空间有4个区间建立了和物理地址空间的映射。用户进程的逻辑地址空间到物理地址空间的映射图与页表操作相关的重要函数1、将逻辑地址映射到物理地址intmap_pages(pagetable_tpage_dir,uint64va,uint64size,uint64pa,intperm);2、查找逻辑地址所在的页表项pte_t*page_walk(pagetable_tpage_dir,uint64va,intalloc);3、查找逻辑地址所在虚拟页面地址对应的物理页面地址uint64lookup_pa(pagetable_tpagetable,uint64va);目录实验2的基础知识Sv39虚地址管理方案回顾物理内存布局与规划PKE操作系统和应用进程的逻辑地址空间结构与页表操作相关的重要函数实验内容lab2_1虚实地址转换lab2_2简单内存分配和回收lab2_3缺页异常lab2_1虚实地址转换给定应用预期输出lab2_1虚实地址转换实验内容:开启Sv39页式地址管理,将应用(app_helloworld_no_lds.c,链接时未指定逻辑地址)投入正常运行。实现user_va_to_pa()函数,完成给定逻辑地址到物理地址的转换,最终使得helloworld程序获得正确输出。lab2_2简单内存分配和回收给定应用预期输出lab2_2简单内存分配和回收实验内容:这里,新定义了两个用户态函数naive_malloc()和naive_free(),它们最终会转换成系统调用,完成内存的分配和回收操作。需要完成naive_free对应的功能,获得预期的输出。lab2_3缺页异常给定应用预期输出lab2_3缺页异常实验内容:应用程序执行时,由于采用递归函数求等差数列的和,递归层数过多,使得用户态栈溢出。本实验中,我们处理的是缺页异常。首先,判断我们处理的确实是缺页异常;判断发生缺页的是不是用户栈空间,如果是则分配一个物理页空间,最后将该空间通过vm_map“粘”到用户栈上以扩充用户栈空间。lab2_challenge1复杂缺页异常给定应用预期输出lab2_challenge1复杂缺页异常实验内容:程序思路基本同lab2_3一致,对给定n计算0到n的和,但要求将每一步递归的结果保存在数组ans中。创建数组时,我们使用了当前的malloc函数申请了一个页面(4KB)的大小,对应可以存储的个数上限为1024。首先由于n足够大,所以在函数递归执行时会触发用户栈的缺页,你需要对其进行正确处理,确保程序正确运行;其次,1025在最后一次计算时会访问数组越界地址,由于该处虚拟地址尚未有对应的物理地址映射,因此属于非法地址的访问,这是不被允许的,对于这种缺页异常,应该提示用户并退出程序执行。lab2_challenge2堆空间管理给定应用预期输出lab2_challenge2堆空间管理实验内容:以上程序先利用better_malloc分别申请100和50个字节的一个物理页的内存,然后使用better_free释放掉100个字节,向50个字节中复制一串字符串,进行输出。原本的pke中malloc的实现是非常简化的(一次直接分配一个页面),你的挑战任务是修改内核(包括machine文件夹下)的代码,使得应用程序的malloc能够在一个物理页中分配,并对各申请块进行合理的管理。通过应用程序和对应的预期结果可以看出:两次申请的空间在同一页面,并且释放第一块时,不会释放整个页面,所以需要你设计合适的数据结构对各块进行管理,使得better_malloc申请的空间更加“紧凑”。lab2_challenge3多核内存管理给定应用预期输出……lab2_challenge3多核内存管理实验内容:
在本次实验中,给定两个程序,每个程序会通过lab2_2实现的naive_malloc申请一些内存页,在内存页开始处写入一个int并打印内存页的虚拟地址。最后每个进程会打印自己写入内存页的数,并通过naive_f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甘肃高考英语试题单选题100道及答案
- 《期权与期货市场》课件
- 《中国美术史上》课件
- 4企业构建竟争情报系统(Betty Chu)
- 《担当胜利》课件
- 诉源治理发言材料
- 《项目投资管理实务》课件
- 《运动神经元病》课件
- 教导处范文教师粉笔字基本功训练方案
- (三模)合肥市2025届高三年级5月教学质量检测政治试卷(含答案解析)
- 人教版高中英语选择性必修二单词表
- GB/T 24091-2024适应气候变化脆弱性、影响和风险评估指南
- 中国肿瘤相关贫血诊治专家共识2023版解读课件
- 湖北武汉市2025届高三第一次调研测试数学试卷含解析
- 科研项目保密协议承诺书
- 军工项目招投标操作手册
- 2024年江苏泰州市第四人民医院招考聘用高层次人才11人管理单位遴选500模拟题附带答案详解
- 零售业数据安全防护
- 舌尖上的潮州菜(劳动教育)学习通超星期末考试答案章节答案2024年
- 2024年福建省高中学业水平考试数学试卷真题(含答案详解)
- 新能源汽车维护与故障诊断课件 项目一 安全防护知识与应用
评论
0/150
提交评论