mit 6.s081 lab4 Traps

2024-03-11 06:32
文章标签 mit s081 traps lab4

本文主要是介绍mit 6.s081 lab4 Traps,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

chapter 4

trap的类型

  • syscall
  • exception(除0,访问非法内存)
  • interrupt(读/写磁盘操作结束)

trap流程
1.控制权转换给kernel
2.kernel保存寄存器以及状态,以便代码的执行的恢复
3.kernel执行对应的trap处理代码(syscall实现或者设备驱动)
4.kernel恢复之前保存的寄存器和状态,从trap返回执行之前的代码

RISC-V trap相关寄存器

  • stvec 记录trap handler的地址
  • sepc 用于保存pc,当使用sret指令后将sepc拷贝到pc
  • scause 记录trap的yuanyin
  • sscratch 方便trap handler启动时记录某些值
  • sstatus sstatus中的SIE位控制设备interrupt是否被启用,如果SIE未被启动设备中断会延迟到SIE位被设置。SPP位记录trap时是user mode还是supervisor mode,以及控制sret时返回到哪种模式

trap时RISC-V硬件执行的动作:
1.如果是设备interrupt并且SIE位被清0,不进行以下操作
2.通过对SIE清零关闭中断
3.拷贝pc到sepc
4.保存现在的模式(user或者supervisor)到sstatus的SPP位
5.根据trap的原因设置scause
6.设置为supervisor mode
7.拷贝stvec到pc
8.执行pc中的指向的指令

系统调用过程:
在这里插入图片描述

  • gdb tips
tui enable #打开多窗口
layout asm #打开汇编窗口
layout reg #打开寄存器窗口
layout src #打开源码窗口
b file:func #对某个文件的某个函数设置断点
print/x $ra #打印寄存器ra
RISC-V assembly
  • Which registers contain arguments to functions? For example, which register holds 13 in main’s call to printf?
ai寄存器负责记录函数的传入参数,a2寄存器保存13
  • Where is the call to function f in the assemb

这篇关于mit 6.s081 lab4 Traps的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/796945

相关文章

代码开源许可证傻傻分不清 Apache MIT GPL的区别

https://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html

MIT 6.5940 EfficientML.ai Fall 2023: Lab 1 Pruning

EfficientML.ai Lec 3 - Pruning and Sparsity (Part I) MIT 6.5940, Fall 2023, Zoom 本文是EfficientML.ai Fall 2023课程作业1练习答案,在本次练习里将会对经典的分类神经网络进行剪枝处理,减少模型大小和延迟。The goals of this assignment are as fo

MIT的10门免费线上课,YYDS!

大家好,我是小书童! 今天给大家推荐10门 MIT 线上课程,无需付费,千万不要错过,抓紧学习起来。 1、计算机科学和Python编程简介 通过这个课程,将会学习到 计算的概念Python编程语言一些简单的算法测试和调试算法复杂性的非正式介绍数据结构 课程链接: https://www.edx.org/learn/computer-science/massachusetts-institut

【MIT-BEVFusion代码解读】第四篇:融合特征fuser和解码特征decoder

文章目录 1. fuser模块2. decoder模块2.1 backbone模块2.2 neck模块 BEVFusion相关的其他文章链接: 【论文阅读】ICRA 2023|BEVFusion:Multi-Task Multi-Sensor Fusion with Unified Bird‘s-Eye View RepresentationMIT-BEVFusion训练

在 Mac 上安装 MIT Scheme 解释器的命令行方法

在 Mac 上安装 MIT Scheme 解释器的命令行方法 步骤如下: 第 1 步,安装 brew 。确保计算机已经连上了网络,然后打开 Mac 上的终端,输入如下的命令:   ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"       第 2 步,

如何在 MIT Scheme 中运行 Scheme 语言程序

如何在 MIT Scheme 中运行 Scheme 语言程序? 步骤如下: 1、打开一个文本编辑器(如 Vim, Notepad++ 等),创建一个空白文件,保存为  test.scm ,记住文件后缀名要是 .scm 格式。 2、在终端里进入到  test.scm  所在的目录,然后键入 mit-scheme 命令,启动 mit-scheme 解释器。 3、在 mit-scheme 解释器

MIT6.S081最详解析与归纳——lab10:mmap

Lab10主题:mmap (一)前置知识:mmap(1)VMA(2)mmap (二)Lab:mmap(1)前置工作(2)实现sys_mmap()(3)实现pagefault(4)实现sys_munmap(5)脏页位设置(六)其它函数的小修改 (三)感言 (一)前置知识:mmap (1)VMA VMA(Virtual Memory Area) 代表虚拟内存区域,它描述了一个进程

Phpstorm Invalid MIT-MAGIC-COOKIE-1 key

problem: Invalid MIT-MAGIC-COOKIE-1 key resolved: cd /rootln -s /home/username/.Xauthority

6.S081的Lab学习——Lab8: locks

文章目录 前言一、Memory allocator(moderate)提示:解析 二、Buffer cache(hard)解析: 三、Barrier (moderate)解析: 总结 前言 一个本硕双非的小菜鸡,备战24年秋招。打算尝试6.S081,将它的Lab逐一实现,并记录期间心酸历程。 代码下载 官方网站:6.S081官方网站 安装方式: 通过 APT 安装 (De

单图创造虚拟世界只需10秒!斯坦福MIT联合发布WonderWorld:高质量交互生成

文章链接:https://arxiv.org/pdf/2406.09394 项目地址: https://WonderWorld-2024.github.io/ 本文介绍了一种新颖的框架—— WonderWorld,它可以进行交互式三维场景外推,使用户能够基于单张输入图像和用户指定的文本探索和塑造虚拟环境。尽管现有方法在场景生成的视觉质量上有了显著改进,但这些方法通常是离线运行的,生成一个