进程更大,线程更小操作系统(李治军) L10用户级线程
进程切换=指令切换+资源(内存)(映射表)切换【分治思想】
线程切换:避免了进程切换代价:不需要切换资源(映射表)
操作系统(李治军) L10用户级线程
这是多个线程
这是因为进程的地址是分离的,所以是线程
操作系统(李治军) L10用户级线程
buffer[1000]是缓冲区
Yield()函数实现交替执行
启动多个线程,同时出发,交替执行从而使CPU的利用率增加
操作系统(李治军) L10用户级线程
操作系统(李治军) L10用户级线程

操作系统(李治军) L10用户级线程
利用两个栈实现切换
调用B()的时候把104压入栈,在B()函数返回时出栈
在调用Yield()的时候204压入栈,在Yield()函数返回时出栈
操作系统(李治军) L10用户级线程

操作系统(李治军) L10用户级线程
操作系统(李治军) L10用户级线程
web等待网卡IO时会使用硬件,那么就会使用内核,
如果此时在内核中阻塞了以后就会导致CPU切换到另外一个进程,然后web用户级线程全部卡了,
操作系统(李治军) L10用户级线程
核心级线程并发性更好

相关文章: