文章目录

  • 1 什么是线程
    • 1.1 为什么要引入线程:
    • 1.2 线程定义
    • 1.3 线程与进程的比较
    • 1.4 线程的属性
    • 1.5 线程实现方式
      • 1.5.1 用户级线程(ULT)
      • 1.5.2 内核级线程(KLT,又称“内核支持的线程”)
      • 1.5.2 用户级线程、内核级线程二者组合
    • 1.6 多线程模型
      • 1.6.1 多对一模型
      • 1.6.2 一对一模型
      • 1.6.3 多对多模型
    • 1.7 线程小结

1 什么是线程

1.1 为什么要引入线程:
  • 引入进程的目的:为了更好的使多道程序并发执行,提高系统资源利用率和系统吞吐量;
  • 引入线程的目的:为了减少程序在并发执行时所付出的时空开销,提高OS的并发性能。

1.2 线程定义

线程是“轻量级进程”,是一个基本的CPU执行单元,是程序执行的最小单元。线程是进程中的一个实体,是系统独立调度和分派的基本单位。

1.3 线程与进程的比较
1. 进程是资源分配单位,线程是CPU调度单位
2. 进程拥有一个完整的资源平台,而线程只独享必不可少的资源,如寄存器和栈
3. 线程同样具有就绪、阻塞和执行三种基本状态,同样具有状态之间的转换关系
4. 线程能减少并发执行的时间和空间开销(1)线程创建时间比进程短(2)线程终止时间比进程短(3)同一进程内线程切换时间比进程短(4)由于同一进程的各线程之间共享内存和文件资源,可直接进行不通过内核的通信

一张图说明引入线程,带来的变化:

1.4 线程的属性

1.5 线程实现方式
1.5.1 用户级线程(ULT)

1.5.2 内核级线程(KLT,又称“内核支持的线程”)

1.5.2 用户级线程、内核级线程二者组合

在同时支持用户级线程和内核级线程的系统中,可采用二者组合的方式:将n个用户级线程映射到m 个内核级线程上(n>=m)

  • 操作系统只“看得见”内核级线程,因此只有内核级线程才是处理机分配的单位。
  • 举个例子:在组合模型中,该进程由两个内核级线程,三个用户级线程,在用户看来,这个进程中 有三个线程。但即使该进程在一 个4核处理机的计算机上运行,也 最多只能被分配到两个核,最多只能有两个用户线程并行执行。
1.6 多线程模型
1.6.1 多对一模型

1.6.2 一对一模型

1.6.3 多对多模型

1.7 线程小结

5 操作系统第二章 进程管理 线程介绍相关推荐

  1. 笔记篇:操作系统第二章 进程管理

    笔记篇:操作系统第二章 进程管理 目录 笔记篇:操作系统第二章 进程管理 2.1 进程的基本概念 2.1.1 程序的顺序执行及其特征 2.1.2 前驱图 2.1.3 程序的并发执行及其特征 2.1.4 ...

  2. (王道408考研操作系统)第二章进程管理-第三节10:经典同步问题之哲学家进餐问题

    本文接: (王道408考研操作系统)第二章进程管理-第三节6:经典同步问题之生产者与消费者问题 ((王道408考研操作系统)第二章进程管理-第三节7:经典同步问题之多生产者与多消费者问题 (王道408 ...

  3. (王道408考研操作系统)第二章进程管理-第三节8:经典同步问题之吸烟者问题

    本文接: (王道408考研操作系统)第二章进程管理-第三节6:经典同步问题之生产者与消费者问题 ((王道408考研操作系统)第二章进程管理-第三节7:经典同步问题之多生产者与多消费者问题 文章目录 一 ...

  4. (王道408考研操作系统)第二章进程管理-第三节7:经典同步问题之多生产者与多消费者问题

    注意:生产者与消费者问题Linux系统编程专栏有案例讲解 Linux系统编程39:多线程之基于阻塞队列生产者与消费者模型 Linux系统编程40:多线程之基于环形队列的生产者与消费者模型 本文接:(王 ...

  5. 操作系统第二章 进程管理

    写在前面:本文参考王道论坛的 操作系统考研复习指导单科书 文章目录 第二章 进程管理 进程同步 读者写者问题 哲学家就餐问题 练习题 哲学家就餐:加碗(2019真题) 既是生产者又是消费者 和尚取水( ...

  6. 现代操作系统 第二章 进程与线程 习题

    第2章 进程与线程 习题 1. 图2-2中给出了三个进程状态,在理论上,三个状态可以有六种转换,每个状态两个.但是,图中只给出了四种转换.有没有可能发生其他两种转换中的一个或两个? A:从阻塞到运行的 ...

  7. (王道408考研操作系统)第二章进程管理-第一节5:线程概念和多线程模型

    文章目录 一:引导 二:区别"进程"."线程"和"轻量级进程" (1)进程和线程的关系 (2)Linux中没有真正意义上的线程 (3)轻量级 ...

  8. 操作系统 第二章 进程管理

    2.1 进程与线程 第一节零碎知识比较多,关键在于进程状态的切换.进程线程的关系. 第一章中提到过的多道程序环境,由于程序的特点,不能让程序并发,所以引入了进程的概念,让进程来并发,从而实现了多道程序 ...

  9. 操作系统 第二章进程管理(自我总结式)

    一.程序的顺序执行及其特征 1.程序的顺序执行 在未配置OS的系统中,程序是顺序执行的 通常把应用程序分成若干个程序段,在各程序段之间,按照某种先后顺序执行 2.特征: 程序执行的顺序性 程序环境的封 ...

最新文章

  1. Grinder搭建小记与Nduja(这次不待续了)
  2. educoder答案python玩转列表_2020大学mooc用Python玩转数据章节测验答案
  3. 牛客 - Firework(多源起点的最短路)
  4. C语言中#define中的一些特殊用法
  5. Selenium中WebDriver的close()和quit()
  6. c++ 文件读写(转)
  7. FL Studio 20.8中文进阶高级完整版 安装下载教程
  8. C++中使用初始化列表比在构造函数中对成员变量赋值更高效
  9. 史上最强三千六百道脑筋急转弯(6)
  10. 关于PLC的“源型”和“漏型”
  11. Iphone 5s/iPad Air/iPad Mini 2 降级10.3.3
  12. linux下载工具,2019年最受欢迎的5款Linux下载管理器
  13. python计算定积分_python 求定积分和不定积分示例
  14. 我想吃掉你的胰脏--影片--观后感
  15. 配置 nginx server 出现nginx: [emerg] root directive is duplicate in /etc/nginx/server/blogs.conf:107...
  16. a 标签发送put请求_HTTP PUT请求该如何传输请求参数呢?
  17. java下载文件到服务器_java代码实现上传文件到文档服务器、下载文档服务器文件...
  18. “超限”之下,OLED迎来最好的反击
  19. contract forward_future contract 和 forward contract是什么意思?
  20. 自定义new Date()格式显示,适用JavaScript / Nodejs / Vue / React / UniApp / 其他基于js工程的项目

热门文章

  1. 为什么读书了,还不如那些初中毕业的同学
  2. ubuntu下面的git服务器搭建
  3. Linux多线程——使用互斥量同步线程
  4. mysql自动备份发邮箱,定时任务自动备份数据库并邮件发送
  5. python日志模块备份_Python Logging模块 输出日志颜色、过期清理和日志滚动备份
  6. python做硬件自动化测试-用python做自动化测试--Python实现远程性能监控
  7. fastapi quickstart学习
  8. LeetCode MySQL 180. 连续出现的数字(cast)
  9. LintCode 1689. k求和III(递归)
  10. android model 设计,Android model层设计