MIT6.828_HW8_User-level threads

Homework: User-level threads

在此作业中,您将通过实现代码来执行线程之间的上下文切换,从而完成一个简单的用户级线程包。

Switching threads

下载utherad.cuthread_switch.S 到你的xv6目录,并在xv6Makefile中_forktest之后添加如下规则:

_uthread: uthread.o uthread_switch.o
$(LD) $(LDFLAGS) -N -e main -Ttext 0 -o _uthread uthread.o uthread_switch.o $(ULIB)
$(OBJDUMP) -S _uthread > uthread.asm

每行开头的空白字符应当是tab而非空格,在Makefile中UPROGS下定义一系列用户程序的下方添加_uthread,运行xv6,然后从xv6 Shell中运行utherad,xv6内核会打印一个线程发生页面错误的故障信息。
我们的工作是实现thread_switch.S,实现并编译运行后我们会看到类似下方的输出(确保是在CPUS=1的情况下运行):

~/classes/6828/xv6$ make CPUS=1 qemu-nox
dd if=/dev/zero of=xv6.img count=10000
10

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值