操作系统--用户级线程

一.多进程是操作系统基本图像

操作系统--用户级线程

二.线程

2.1线程引入

可以切指令不切表,也就是资源不动,指令执行分开,更加轻量化,从而提高效率,保留并发优点,避免进程切换代价,也就引入了线程. 

操作系统--用户级线程

2.2多线程例子

 操作系统--用户级线程

同时触发以及用yield交替执行

 操作系统--用户级线程

104是B的函数返回地址,将104压栈,其他也是陆续压栈,用两个执行序列和一个栈,就会发现第一个线程,居然返回的函数地址是404,也就是线程在乱跑. 操作系统--用户级线程

 解决办法,一个序列一个栈,切回线程要将栈切回,用一个地方存放栈指针也就是TCB(thread control block),esp是cpu寄存器(理解为大脑),利用TCB和栈配合就解决了多线程执行问题.

操作系统--用户级线程

操作系统--用户级线程

操作系统--用户级线程

用户级线程缺点: 由于某个线程阻塞,导致进程阻塞,而内核并不知道,不会切换到下一个线程,会到另一个进程,这样浏览器例子就不会显示内容.

操作系统--用户级线程

 但是内核级线程就不会这样

操作系统--用户级线程

 

 

参考:

 

操作系统_哈尔滨工业大学_中国大学MOOC(慕课)

上一篇:[RISC-V]移植rtthread nano到risc-v芯片


下一篇:Data Structure