博客
分类
标签
归档
友链
关于
Dark Mode
博客
分类
标签
归档
友链
关于
Dark Mode
Mens et Manus
首页
帮助
示例
社区
档归
源码
MIT6.S081 thread lab
Multithreading熟悉多线程,实现用户空间线程间切换,使用多线程编程,实现barrier。 Uthread: switching between threads实现一种用户空间的上下文切换机制。 修改user/uthread.c和user/unthread_switch.S和在makefile中添加uthread程序。uthread.c中包含了测试和框架,还需要实现线程创建和线程切...
2022-01-01
Read More
MIT6.S081 utils lab
lab1sleep编写一个sleep用户程序,可以参考grep(grep.c)。 目标: 熟悉lab架构:如何向xv6中插入自己编写的程序 熟悉一个用户程序的编写流程 熟悉编译系统之UPROGS 熟悉xv6提供的库函数ulib.c solution: user/sleep.c pingpong编写一个pingpong用户程序:创建一对父子进程, 一个进程使用一读一写两个管道传递数据。...
2022-01-01
Read More
IO多路复用select、poll、epoll介绍
IO多路复用在高并发环境(如网络服务器)中同时处理多个请求的能力就显得尤为重要。很多人可能第一印象就会想到多线程,但是多线程需要进行很多的上下文切换,连接很多时上下文切换的代价就很高。因此采用单线程,但是单线程如何处理并发请求呢? 得益于DMA,多数据到来时直接内存访问,不会丢失数据,因此可以有后序内容 以写一个网络服务器为例。每个网络连接在都是以文件描述符(以下简称fd)的形式存在 sel...
2020-12-05
Read More
还没想好TODO
奇技淫巧有趣的书: Hacker’s Delight gcc -E仅预编译,再脚本处理以下,格式化一些就能得到宏展开的代码 gdb -> r -> SIGSEGV bitsetbitsize统计1的bit数。先看长度2bits的情况。 12345678910B1: a bB2: c dB1处理: B1 & 1 0 b + (B1 >> ...
2000-01-01
Read More
Previous
2 / 2