操作系统④-②:为什么使用线程、什么是线程、线程的优缺点、进程与线程的比较、线程的上下文切换、线程的实现(用户线程,内核线程,轻量级进程)

1 为什么使用线程

早期的操作系统中都是以进程作为独⽴运⾏的基本单位,直到后⾯,计算机科学家们⼜提出了更⼩的能独⽴运⾏的基本单位,也就是线程。

线程(Thread)之间可以并发运⾏且共享相同的地址空间。

2 什么是线程

线程是进程当中的⼀条执⾏流程。
同⼀个进程内多个线程之间可以共享代码段、数据段、打开的⽂件等资源,但每个线程各⾃都有⼀套独⽴的寄存器和栈,这样可以确保线程的控制流是相对独⽴的。
register:n. 寄存器 v. 注册
在这里插入图片描述
3 线程的优缺点

在这里插入图片描述

4 进程和线程的比较

线程是调度的基本单位,而进程则是资源拥有的基本单位。

在这里插入图片描述
5 线程的上下文切换

所谓操作系统的任务调度,实际上的调度对象是线程,⽽进程只是给线程提供了虚拟内存、全局变量等资源。
当进程只有⼀个线程时,可以认为进程就等于线程。
在这里插入图片描述
6 线程的实现

在这里插入图片描述

用户线程和内核线程的对应关系
TCB(线程控制块,Thread Control Block)
操作系统看不到TCB,只能看到PCB(Process Control Block,进程控制块)。
⽤户线程的整个线程管理和调度,操作系统是不直接参与的,⽽是由⽤户级线程库函数来完成线程的管理,包括线程的创建、终⽌、同步和调度等。
在这里插入图片描述

用户线程的优缺点
在这里插入图片描述

内核线程
内核线程是由操作系统管理的,线程对应的 TCB ⾃然是放在操作系统⾥的,这样线程的创建、终⽌和管理都是由操作系统负责。
⼀个⽤户线程对应⼀个内核线程。
在这里插入图片描述
内核线程的优缺点
在这里插入图片描述

轻量级线程
轻量级进程(Light-weight process, LWP)是内核⽀持的⽤户线程,⼀个进程可有⼀个或多个 LWP,每个 LWP 是跟内核线程⼀对⼀映射的,也就是 LWP 都是由⼀个内核线程⽀持。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值