/my_thread

Primary LanguageCOtherNOASSERTION

my_thread

c语言模拟实现用户态线程介绍

项目实现内容:

为模拟线程的上下文切换,在线程结构体中定义了栈指针和栈,在switch.s模拟了线程的压栈、弹栈操作。

为实现线程的自动切换,添加了时间片轮转调度算法。

为增强代码可读性,对部分代码进行封装。

为实现线程间同步与互斥,在目录origin的基础上,在目录after里,实现了信号量,其中的原子操作来源于GCC的函数。

并在目录after/pc里用生产者-消费者例子检验用户态线程和信号量的。

debug_log下是一些分析用的反汇编代码的记录。

使用教程

linux环境(ubuntu16.04,32位) 机器为win10 + VMware。