花费 50 ms
MIT6.S081/6.828 实验1:Lab Utilities

Mit6.828/6.S081 fall 2019的Lab1是Unix utilities,主要内容为利用xv6的系统调用实现sleep、pingpong、primes、find和xargs等工具。本文对各程序的实现思路及xv6的系统调用流程进行详细介绍。 前言 在实验之前,推荐阅读 ...

Sun Jun 07 22:00:00 CST 2020 0 2114
MIT6.S081/6.828准备:MacOS下搭建xv6和risc-v环境

本文介绍搭建Mit6.828/6.S081 fall2019实验环境的详细过程,包括riscv工具链、qemu和xv6,以MacOS下的实践为例,Linux系统同样可以参考。 介绍 只有了解底层原理才能写好上层应用,曾经几度想要系统地学习OS课程,尝试去看了《计算机操作系统 ...

Wed May 27 18:22:00 CST 2020 0 2093
xv6学习笔记(5) : 锁与管道与多cpu

xv6学习笔记(5) : 锁与管道与多cpu 1. xv6锁结构 1. xv6操作系统要求在内核临界区操作时中断必须关闭。 如果此时中断开启,那么可能会出现以下死锁情况: 进程A在内核态运行并拿下了p锁时,触发中断进入中断处理程序。 中断处理程序也在内核态中请求p锁,由于锁在 ...

Mon Aug 30 04:22:00 CST 2021 2 208
xv6学习笔记(3):中断处理和系统调用

xv6学习笔记(3):中断处理和系统调用 1. tvinit函数 这个函数位于main函数内 表明了就是设置idt表 1. SETGATE函数 这里的setgate是一个宏定义是用来设置idt表的 下面是函数参数的说明 Sel : 表示对于中断处理程序代码所在段的段选择 ...

Sun Aug 22 23:16:00 CST 2021 0 189
xv6学习笔记(4) : 进程调度

xv6学习笔记(4) : 进程 xv6所有程序都是单进程、单线程程序。要明白这个概念才好继续往下看 1. XV6中进程相关的数据结构 在XV6中,与进程有关的数据结构如下 与前述的两类信息的对应关系如下 操作系统管理进程有关的信息:内核栈kstack,进程的状态state,进程 ...

Tue Aug 24 06:36:00 CST 2021 1 187
xv6实验环境搭建

安装bochs 因为要运行的是xv6,所以不能直接使用 apt-get 直接获取软件。apt-get获取到的软件不支持SMP (Symmetric Multi-Processing)。因此,需要下载源码自己编译(源代码下载地址在下载页面的底部Download SVN Snapshot ...

Wed Jan 01 22:55:00 CST 2014 0 3082
xv6的系统调用

最近更新于2021/08/05. 我们以xv6的一个系统调用getpid()为例,观察xv6的系统调用大致过程。 系统调用的声明位于 user.h 中,xv6的用户程序若要使用系统调用需要包括这个头文件,其中getpid()声明如下: int getpid(void); 此函数定义 ...

Thu Aug 05 09:20:00 CST 2021 0 113

 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM