6.S081
文章平均质量分 91
aurorahhmllm
这个作者很懒,什么都没留下…
展开
-
6.s081 lab4小结
在上面,调用定时函数 handler 实际上是通过修改 trapframe->epc 进而在返回到用户空间时调用定时函数. 但这也同时产生了一个问题, 即原本的 epc已被覆盖, 无法回到中断前的用户代码执行的位置, 同时在执行 handler() 函数后, 相关的寄存器的值也会受到影响。因为在函数执行过程中,寄存器的值可能会被修改,所以在函数开始执行前,需要保存这些寄存器的原始值,以便在函数返回后能够恢复。s0 ,也就是fp, 是帧指针:用于保存上一个函数(也就是调用当前函数的函数)的堆栈帧的位置。原创 2024-04-30 11:39:41 · 618 阅读 · 1 评论 -
6.s081 lab3小结(页表相关)
其中:在多级页表系统中(以三级页表为例),有效的页表项(即PTE_V位被设置的页表项 pte & PTE_V)可以出现在任何级别的页表中。:这些页表项存在于第一级和第二级页表中,它们的作用是指向下一级的页表。这些页表项通常不包含访问权限位(),因为它们不直接映射到物理内存页,而是指向另一个页表。:这些页表项通常存在于最后一级的页表中,它们直接指向物理内存的页。这些页表项包含访问权限位(),这些权限位指定了对应的物理页可以被如何访问(读、写、执行等)。因此,当检查一个页表项是否包含访问权限位(即。原创 2024-04-23 11:44:49 · 1595 阅读 · 0 评论 -
6.s081 lab2小结
本lab2 主要是为了熟悉操作系统的调用流程,整个两个实验做下来,大体对这个流程有了一知半解。通常通过库函数(常用的系统调用函数)或者直接使用软件中断指令(比如int syscall指令等),这会调用usys.c中相应的函数(封装了系统调用的细节,比如系统调用编号和必要)usys.c中的函数根据不同的操作系统和硬件平台,通过设置寄存器来传递系统调用编号和参数。这些函数还会执行一个特定的指令(比如syscall指令,在x86-64架构上)来触发操作系统的中断处理。原创 2024-04-18 10:14:58 · 1629 阅读 · 1 评论 -
6.s081 lab1小结
①这里注意两个函数:fstat 和 stat, 它们都是用来返回“相关文件状态信息”的,但是,fstat区别于另外其他系统调用的地方在于,fstat系统调用接受的是 一个“文件描述符”fd,而另外两个则直接接受“文件全路径”。① “|”为管道的意思,在命令行中使用管道时,实际上是在创建一个从前一个命令到下一个命令的数据流,也就是说,会首先执行管道前的命令,并。大体思路就是: 管道两端是父进程和子进程,创建读取即可,这里需要谨慎注意管道的读写端的关,每个进程都拥有对管道的读和写权力,注意关闭!原创 2024-04-15 16:56:51 · 1100 阅读 · 1 评论