操作系统(Operating System)知识点复习——第四章 线程

本文介绍了进程与线程的基本概念,区分了单线程和多线程,并详细探讨了User-LevelThreads和Kernel-LevelThreads的特性及其优缺点。重点讲述了线程管理和资源共享,以及混合方式的应用。
摘要由CSDN通过智能技术生成

目录

0.前言

1.进程与线程

1.1 单线程与多线程的定义

1.2 进程与线程之间的区别和联系

2.线程的类型

2.1 User-Level Threads(ULT,用户级线程)

2.2 Kernel-Level Threads(KLT,内核级线程)

2.3 ULT与KLT之间的对比

2.4 Combined Approaches(混合方式)


0.前言

本系列文章旨在记录操作系统的知识点,可用于期末复习,笔者理解尚浅,文中不正之处静待批正。加粗高亮部分为重点。

1.进程与线程

资源分配与保护的单位:进程Process

调度与执行的单位:线程Thread

1.1 单线程与多线程的定义

单线程:一个进程中只有一个线程在执行的传统方法

多线程:操作系统支持在一个进程中执行多个线程的能力

1.2 进程与线程之间的区别和联系

线程=进程-共享资源

①线程自身拥有哪些资源?

PC、stack、局部变量、执行状态和TCB(每个线程拥有自己的PC和stack)

②多线程共享哪些资源?

全局变量、静态变量、文件、堆等(代码段和数据段)

③线程有哪些优点?

创建快、结束快、切换快(不需要切换页表)、通信快(不经过内核通信)

④线程的状态

线程只考虑ready、running、blocked没有挂起态和终止态。因此挂起进程会挂起所有线程,终止进程会终止所有线程

2.线程的类型

2.1 User-Level Threads(ULT,用户级线程)

线程管理由应用程序负责;内核意识不到线程的存在;用户能看到;线程的切换在用户态下完成;按进程调度(一个线程阻塞,则其余线程均会阻塞)

2.2 Kernel-Level Threads(KLT,内核级线程)

线程管理由操作系统内核负责;用户看不到;线程的调度、切换由内核负责,在核心态下完成;按线程调度

2.3 ULT与KLT之间的对比

①ULT的优势

切换开销小;调度策略可根据应用而不同;无需底层内核修改

②ULT的劣势

ULT按进程调度;线程不能分配到多核

③KLT的优势

多CPU执行仅阻塞单个线程

④KLT的劣势

线程的切换需要内核的模式切换

2.4 Combined Approaches(混合方式)

线程的创建/调度/同步均在用户空间完成,而内核级线程才是处理机调度的单位

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五倍子的代码空间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值