操作系统-用户级线程

  • 本系列博客为观看哈工大李治军老师的操作系统视频而做的整理总结。
  • 本文为第四篇,主要是用户级线程,是用户程序,区别于内核级线程

关键词索引:
线程 , Yield() , TCB

一、为什么引入线程(Thread)

操作系统-用户级线程_第1张图片

指令切换: 线程 。 不切换映射表
映射表等资源切换,涉及到内存

二、线程的实用性

操作系统-用户级线程_第2张图片

操作系统-用户级线程_第3张图片
create 是制造出第一次切换时应该有的样子
核心是Yield, 用来完成切换

操作系统-用户级线程_第4张图片

操作系统-用户级线程_第5张图片

函数调用过程中, 要将下一条要执行的指令地址压入栈中以便返回时执行。

两个执行序列如果共用一个栈,当指令跳到204,执行到ret需要弹出栈地址时,弹出了404的地址。 这就错了。
所以栈也要分开。

操作系统-用户级线程_第6张图片
TCB thread control block

操作系统-用户级线程_第7张图片

操作系统-用户级线程_第8张图片
操作系统-用户级线程_第9张图片
操作系统-用户级线程_第10张图片
操作系统-用户级线程_第11张图片
schedule() -> 内核级线程

你可能感兴趣的:(#,操作系统)