进程的两个基本属性
1.拥有资源的独立单位
2.可独立调度和分派的基本单位

进程的数目不宜过多,进程切换频率不宜过高,限制了并发程度。
操作系统的设计目标是:提高并发度、减小系统开销。
引入线程的目的是简化线程间的通信,以小的开销来提高进程内的并发度。
只有进程时:进程是资源分配的单位和CPU调度的单位。
有线程时:线程作为CPU调度的单位,而进程只作为其他资源分配的单位。
线程只拥有必不可少的资源,如线程状态、程序计数器、寄存器上下文、栈。
同样具有就绪、阻塞、执行三种基本状态。
线程的优点:创建时间比进程短、终止时间比进程短、切换时间比进程短、共享进程内线程间的文件资源,可不通过系统内核。
多线程更适用于多处理及结构。
线程分为内核线程和用户级线程。
内核线程(Kernel-level thread):由内核支持,在内核空间执行线程创建、调度和管理,依赖于OS核心。
——内核维护进程和线程的上下文信息
——线程切换由内核完成
——一个线程发起系统调用而阻塞不会影响其他线程的运行。
——时间片分配给线程,所以多线程的进程获得更多的CPU时间。
用户线程(User Threads):由用户级线程库进行管理的线程,无需内核支持。 
缺点:
——如果内核是单线程的,那么一个用户发起系统调用而阻塞,则整个进程阻塞。
——时间片分配给进程,多线程则每个线程就慢。
轻权进程(LWP LightWeight Process):内核支持的用户线程,是内核数据结构,驻留在内核空间。一个进程可以有多个轻权进程,每个轻权进程由一个单独的内核线程来支持。
轻权进程允许一个进程中发出多个并发的系统调用。

多线程:
1.多对一:多个用户及线程映像进单个内核级线程,通常用于不支持内核线程的系统中。
缺点:任意时刻只能有一个县城可以访问内核(并发度低)。
一个用户线程发起系统调用而阻塞,则整个进程阻塞。
2.一对一:每个用户级线程映像进内核线程。
——提供良好的并发行,一个用户线程发起系统调用而阻塞时允许另一个线程运行。
——每创建一个用户线程需创建一个相应的内核线程,带来了额外开销,所以许多系统限制应用中线程的数目。
3.多对多:不限制应用的线程数、多个线程可以并发。

两种线程取消方式:
1.异步取消:一个线程理机中止目标线程
2.延迟取消:目标线程检查它是否应该终止。

线程池Thread Pool:
——目的:1.避免创建和撤销开销 2.限制线程的数量。

用户级线程在使用系统调用时,需要“捆绑”在一个LWP上。
——永久捆绑:一个LWP固定被一个用户级线程占用,该LWP移到LWP之外。
——临时捆绑:从LWP池中临时分配一个未被占用的LWP。
一个进程对应的LWP组成LWP池,线程库动态挑中池中LWP的数目,以保证应用最佳性能。

操作系统复习笔记 05 Thread 线程相关推荐

  1. 【操作系统/OS笔记09】线程、线程的实现、上下文切换、进程控制

    本次笔记内容: 7.8 为什么使用线程 7.9 什么是线程 7.10 线程的实现 7.11 上下文切换 7.12 进程控制--创建进程 7.13 进程控制--加载和执行进程 7.14 进程控制--等待 ...

  2. 操作系统复习笔记 06 CPU Scheduling CPU调度

    CPU的三级调度: 1.高级调度(Long-term):作业调度,从外存进内存 2.低级调度(Short-term):进程调度,分配处理机 3.中级调度(Medium-term):对换 通过多道程序设 ...

  3. 单处理机系统的进程调度动态优先_操作系统复习笔记(王道)C2.1

    进程与线程 一.进程特征和概念 前提:允许多个程序并发执行. 1.概念 PCB(process control block)进程控制块,系统利用 PCB 来描述进程的基本情况和运行状 态,进而控制和管 ...

  4. 【操作系统/OS笔记05】非连续内存分配:分段、分页、页表

    本次笔记内容: 4.1 非连续内存分配:分段 4.2 非连续内存分配:分页 4.3 非连续内存分配:页表 文章目录 为什么需要非连续内存分配 非连续分配的优劣 分段(segment) 分段寻址方案 分 ...

  5. JAVA笔记 之 Thread线程

    线程是一个程序的多个执行路径,执行调度的单位,依托于进程存在. 线程不仅可以共享进程的内存,而且还拥有一个属于自己的内存空间,这段内存空间也叫做线程栈,是在建立线程时由系统分配的,主要用来保存线程内部 ...

  6. [个人笔记]操作系统复习笔记

    一 绪论 OS的作用 用户与硬件之间的接口 管理计算机资源 抽象计算机资源 OS的发展 单道批处理系统 用户程序交给监控程序,由监控程序控制作业一个接一个交给IO处理 CPU等待IO.内存浪费.资源浪 ...

  7. 操作系统系列笔记(四) - 进程,线程及CPU调度

    进程和线程 进程 进程是指一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程 进程包含了正在运行的一个程序的所有状态信息, 代码, 数据, 状态寄存器, 通用寄存器, 进程占用系统资源等 进 ...

  8. 操作系统复习笔记 07 Process Synchronization 进程同步

    背景: 1.对共享数据的并发访问可能导致数据的不一致性. 2.要保持数据的一致性,就需要一种保证并发进程正确执行顺序机制. 3.解决有界缓冲区问题的共享内存方法在count上存在竞争条件. 4.进程间 ...

  9. 操作系统复习笔记 04 Process 进程

    []进程的概念 1.进程是操作系统执行的各种程序. 2.现在的操作系统多为并发执行,具有许多新的特征.引入并发执行的目的是提高资源利用率. 3.OS的基本特征是[并发与共享]. 4.顺序环境计算机系统 ...

最新文章

  1. 特朗普推文的文本分析
  2. KMP算法的实现以及改进
  3. android如何设置默认关闭虚拟按钮,android – Chrome自定义标签更改默认关闭按钮不起作用...
  4. JS关于提交的RSA加密算法
  5. Streamy 使用RDBMS
  6. 18个项目必备的JavaScript代码片段——数组篇
  7. Python 中拼音库 PyPinyin 的用法,没错见名知意它就是用来翻译汉字的
  8. c语言双向链表的作用,C语言实现双向链表
  9. MVC(Model/View/Controller,模型/视图/控制)
  10. origin三维散点图_Origin 9按类别绘制散点图的方法
  11. linux将文件前面100行导出,linux中,使用cat、head、tail命令显示文件指定行
  12. java 集合封装树形结构
  13. Unity 使用 Behaviac (二)让unity的行为能执行behaviac搭建的树的逻辑
  14. 第二语言教学的5c标准是哪5c,【英语教学论文】5C标准对大学英语教育的启示探讨(共3451字)...
  15. 落实“两高”联合发布《关于办理商业贿赂刑事案件适用法律若干问题的意见》的措施
  16. 17. 【移动Web开发之flex布局】
  17. Camera和Image sensor技术基础笔记(5) -- HDR相关技术
  18. 脚步加载效果-CSS3
  19. (转载)微软数据挖掘算法:Microsoft Naive Bayes 算法(3)
  20. 人工智能研究综述与协同智能研究展望(简纲)

热门文章

  1. 模拟时钟中断的产生及设计一个对时钟中断事件进行处理的模拟程序_操作系统基础6-支持操作系统的最基本的硬件-中断...
  2. java 非法操作异常_java – 空结果集上的非法操作
  3. java并发之线程池
  4. 一份【软件工程】的学习指南已到达,请注意查收!!
  5. windows 禁用ipv6服务_在 Windows 7 中禁用IPv6协议/IPv6隧道
  6. [JavaWeb-MySQL]DML_操作表
  7. hdu 2069 Coin Change(改)-dp
  8. C++实现有向图最短路径-Dijkstra单源最短路径算法
  9. AcWing 1047. 糖果
  10. 给出TREE_INSERT过程的非递归版本(算法导论第三版12.3-1)