(5)操作系统--线程及其控制块

引入

进程之间切换开销大,笨重:
进程切换需要PCB+程序,地址空间,系统栈,页表,块表
相关进程之间耦合性差

同一个进程包含多个线程
多个线程除了栈,寄存器外共享数据代码堆
通信方便

概念

进程中一个独立的执行流

进程是资源分配单位
线程是执行单位

多线程优点
切换速度快(地址空间不变)
系统开销小
通信快

结构

在这里插入图片描述

控制块

TCB(Thread control block)

内容:
线程标识
线程状态(就绪等待)
调度参数(什么时候调用)
现场(PC,SP,通用寄存器,浮点寄存器)
链接指针(将线程连接)

存放位置
用户级:目态空间(运行级系统)
核心级:系统空间

实现

用户级别线程 use-level thread
在这里插入图片描述
在这里插入图片描述
理解:
用户级线程有库函数创建和调用
用户空间中有两个进程,第一个进程中有三个线程,三个TCB在运行时系统中,第二个进程中有两个线程,线程共用一个栈,进程表中记录着两个进程

核心级别线程 kernel-level thread
在这里插入图片描述
在这里插入图片描述
理解:
由于栈有多个,所以kenel-level thread 可以多个同时执行

混合线程 hybrid approach
User level
由lib支持
系统看不到

Lighted weighted process(LWP) 轻进程
每个进程至少一个LWP
LWP对操作系统和用户可见
只有与LWP相联系的用户线程可以向前推进

kernel level thread
由kernel支持
用户不可见

在这里插入图片描述
LWP将用户级和核心级联系在一起
在这里插入图片描述
理解:
每个进程至少一个LWP,LWP可以与用户级线程多对多,与核心级线程一对一,用户级线程只有与LWP相联系的进程才能运行,核心级线程与CPU之间多对多一对一

发布了89 篇原创文章 · 获赞 0 · 访问量 1614

猜你喜欢

转载自blog.csdn.net/qq_43410618/article/details/104543551