抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

MIT6.S081 thread lab

Multithreading熟悉多线程,实现用户空间线程间切换,使用多线程编程,实现barrier。 Uthread: switching between threads实现一种用户空间的上下文切换机制。 修改user/uthread.c和user/unthread_switch.S和在makefile中添加uthread程序。uthread.c中包含了测试和框架,还需要实现线程创建和线程切...

MIT6.S081 utils lab

lab1sleep编写一个sleep用户程序,可以参考grep(grep.c)。 目标: 熟悉lab架构:如何向xv6中插入自己编写的程序 熟悉一个用户程序的编写流程 熟悉编译系统之UPROGS 熟悉xv6提供的库函数ulib.c solution: user/sleep.c pingpong编写一个pingpong用户程序:创建一对父子进程, 一个进程使用一读一写两个管道传递数据。...

IO多路复用select、poll、epoll介绍

IO多路复用在高并发环境(如网络服务器)中同时处理多个请求的能力就显得尤为重要。很多人可能第一印象就会想到多线程,但是多线程需要进行很多的上下文切换,连接很多时上下文切换的代价就很高。因此采用单线程,但是单线程如何处理并发请求呢? 得益于DMA,多数据到来时直接内存访问,不会丢失数据,因此可以有后序内容 以写一个网络服务器为例。每个网络连接在都是以文件描述符(以下简称fd)的形式存在 sel...

还没想好TODO

奇技淫巧有趣的书: Hacker’s Delight gcc -E仅预编译,再脚本处理以下,格式化一些就能得到宏展开的代码 gdb -> r -> SIGSEGV bitsetbitsize统计1的bit数。先看长度2bits的情况。 12345678910B1: a bB2: c dB1处理: B1 & 1 0 b + (B1 >> ...