- 博客园支持Markdown评论了!主题已经抢先修复样式
- 主题已经升级至V2.0.9,点击查看
- 武汉加油 🇨🇳 中国加油!
- 全国疫情趋势AI预测
- 武汉光谷周边小区疫情地图
随笔分类 - mit6.s081
摘要:页表是硬件提供进程间隔离的方法之一,并通过它来实现虚拟地址和物理地址之间的转换,通过页表可以决定进程能够访问物理内存的哪些部分,xv6提供了一些小技巧,比如在不同的地址空间中可以映射相同的trampoline page,trampoline是用来辅助用户模式进入内核模式的,所以它可被共用。 1 分页
阅读全文
摘要:一个操作系统至少应该满足三个需求:多路复用、隔离、交互。本章主要介绍如何组织操作系统来实现以上的三个需求,本文关注的是一种围绕单核进行设计的方法,这种设计是被许多uinx操作系统所使用的。Xv6运行在多核RISC-V微处理器上时,它的许多低级功能(例如,它的进程实现)是特定于RISC-V的,RISC
阅读全文
摘要:xv6book主要研究了xv6如何实现它的类Unix接口,但是其思想和概念不仅仅适用于Unix。任何操作系统都必须将进程多路复用到底层硬件上,相互隔离进程,并提供受控制的进程间通信机制。 1 了解xv6 xv6是一个模仿unix内部设计的操作系统,其提供了unix中对应的部分系统调用。理解xv6对于
阅读全文
摘要:1.Speed up system calls (easy) 要求:有些操作系统(例如 Linux)通过在用户空间和内核之间的只读区域共享数据来加速某些系统调用。这样可以消除在执行这些系统调用时进行内核交叉的需要(以优化用户模式到内核模式的陷阱机制,对于某些系统调用不再需要切换模式)。第一个任务是为
阅读全文
摘要:1.system call tracing(moderate) 要求:创建一个系统调用来实现跟踪特性,它采用一个参数来指定跟踪哪一个系统调用,例如:跟踪fork系统调用,程序调用trace(1<<SYS_fork),其中SYS_fork是kernel/syscall.h中的系统调用号。如果在掩码中设
阅读全文
摘要:1 sleep(easy) 要求:为 xv6实现 UNIX 程序睡眠; 睡眠需要暂停一段用户指定的时间。刻度是由 xv6内核定义的时间概念,即定时器芯片两次中断之间的时间。解决的程序应该在 user/sleep. c 文件中。 一些小提示: 查看user/中的其它程序,如echo.c,grep.c或
阅读全文