江欣婷's Blog
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

CSAPP Chapater 3

Computer Systems: A Programmer’s Perspective Machine-Level Representation of Programs Program Encodings Instruction Set Architecture: ISA, defining the processor state, the format of the instructions,
2025-05-02
CSAPP
#6.S081

MIT 6.S081 lab4:traps | 陷入

lab4 - traps 前置准备 主要内容为探索陷阱处理机制。 根据课程官网的要求,需要阅读完教材的第四章$Page \space tables$。并且读懂下列源代码:kernel/memlayout.h, kernel/vm.c, kernel/kalloc.c, kernel/riscv.h, user/exec.c。 相关笔记参考: lecture 4 Notes 将pgtbl分支所有内容
2024-02-29
6.S081
#6.S081

MIT 6.S081 第四章笔记 | 陷入指令和中断

4.1 ISA & Assembly Language $ISA$: $Instruction \space Set$。 $workflow$: $C \rightarrow Assembly(.S/.asm) \rightarrow binary(object.o)$ 汇编语言没有明确的工作流,只是一行一行的执行指令。汇编语言是基于寄存器进行操作的,而不是内存。 $RISC-V \spa
2024-02-29
6.S081
#6.S081

MIT 6.S081 第五章笔记 | 页面故障

当视图访问 $PTE_V$ 为 $0$ 的页表, 或用户尝试访问 $PTE_U$ 为 $0$ / 内核尝试访问 $PTE_U 为 $1$ 的页表, 或者是其他违反了 $PTE_R$ 或 $PTE_W$ 等 $flag$ 的页表时就会出现 $Page Faults$。 一共有三种 $Page Faults$: $load \space page \space faults$: 当load指令无法解
2024-02-29
6.S081
#6.S081

MIT 6.S081 lab3:page tables | 页表

lab3 - page table 前置准备 主要内容为熟悉页表遍历以及地址转换。 根据课程官网的要求,需要阅读完教材的第三章$Page \space tables$。并且读懂下列源代码:kernel/memlayout.h, kernel/vm.c, kernel/kalloc.c, kernel/riscv.h, user/exec.c。 相关笔记参考: lecture 3 Notes 将sy
2024-02-28
6.S081
#6.S081

MIT 6.S081 第三章笔记 | 页表

页表让每个进程都拥有自己独立的虚拟内存,从而实现内存隔离。 3.1 Paging hardware 用户和内核都只能操作虚拟地址($virtual \space address$),但是实际物理内存使用物理地址($physical \space address$)来索引。页表提供了虚拟地址到逻辑地址的转换。 xv6只使用了64位地址空间中的低39位,其中高$27$位为页面号,低$12$位为页内偏移
2024-02-27
6.S081
#6.S081

MIT 6.S081 Lab2:System Calls | 系统调用

前置准备 主要内容为自己实现系统调用,或者优化已有的系统调用。 根据课程官网的要求,需要阅读完教材的第二章$Operating \space system \space organization$。并且读懂下列源代码:kernel/proc.h, kernel/defs.h, kernel/entry.S, kernel/main.c, user/initcode.S, user/init.c,
2024-02-25
6.S081
#6.S081

MIT 6.S081 第二章笔记 | 操作系统结构

操作系统应该实现三个功能:并发、隔离、交互。即能保证多个程序都能分到硬件资源;各个进程之间的内存、指令、数据相互隔离,一个进程崩溃不会影响到其他进程;进程之间能通过受控的接口来进行通信。 操作系统提供了高级别的抽象,来管理硬件资源。例如,用文件描述符来抽象磁盘、内存、管道等资源,用户程序能通过简单的read、write、close来访问所有存储资源,而不用关心是和磁盘、内存、管道、还是标准输入输出
2024-02-25
6.S081
#6.S081

MIT 6.S081 Lab1 util:Unix utilities | UNIX 实用程序

前置准备 主要内容为如何使用已有的系统调用编写用户程序, 例如ls、xargs、find等常用命令的实现。 根据课程官网的要求,需要看完Lecture 1,阅读完教材第一章$Operation \space System \space interfaces$。 此外,实验手册中的Hints很重要,大多数实验跟着提示一步一步实现都能完成。 Sleep (easy) Statement 为xv6实现
2024-02-25
6.S081
#6.S081

MIT 6.S081 lab0:配置xv6环境+vscode调试

前言 系统为Archlinux物理机,环境如下: 使用的xv6版本为2021版,运行环境为vscode + clangd + gbd。 安装依赖 参考:https://pdos.csail.mit.edu/6.828/2021/tools.html 首先安装转义riscv64的包: 1sudo pacman -S riscv64-linux-gnu-binutils riscv64-linux-
2024-02-08
6.S081
#6.S081
12

搜索

Hexo Fluid