随笔分类 - MIT6s081
摘要:虚拟内存 使用虚拟内存主要为了实现隔离 内存隔离,所有程序指令存放在一个物理内存上,如果一个指令的操作位刚好是另一个指令的地址,那么会造成指令的丢失 为了解决这个问题使用地址空间 地址空间 为每一个指令程序分配自己的地址空间,每个指令程序只能在自己的地址空间上操作。我们需要做的就是复用不同的地址空间
阅读全文
摘要:简述 操作系统支持多进程任务,并且每个进程之前还应当隔离,但又在必要的时候进行交互。 操作系统必须满足的三个要求:多路复用、隔离和交互 抽象系统资源实现隔离 禁止应用程序直接访问敏感的硬件资源,将这些资源抽象为服务,提供接口向应用程序服务。一般来说就是通过系统调用命令来实现的。 在Unix中交互一般
阅读全文
摘要:trace 该系统调用程序,可以跟踪其他的系统调用命令,该系统调用的形参为一个整数掩码。其具体实参为1 << sys_call所得到的整数值,sys_call是一个系统调用指令在内核中定义的系统调用编号。返回值包含进程id,系统调用sys_call的名称和返回值。并且trace指令可以跟踪当前进程和
阅读全文
摘要:Sleep功能 通过接受时间参数,调用system_call 指令 sleep实现该功能 #include "kernel/types.h" #include "kernel/stat.h" #include "user/user.h" int main(int argc,char* argv[])
阅读全文
摘要:操作系统接口 – 阅读 xv6-riscv-book Xv6的时钟周期:定时器芯片两次中断之间的时间 xv6作为一个简单的操作系统,利用一个“内核kernel”向其他运行中的程序提供服务的特殊程序,这个内核相当于连接了硬件和运行程序。 每一个正在运行的程序可以称为进程,都拥有子集的包含指令、数据、栈
阅读全文