操作系统之线程

来源:互联网 发布:网络金融平台监管部门 编辑:程序博客网 时间:2024/05/18 13:24

一. 首先我们来看一下线程是什么鬼:
上一章我们学的进程,其实线程说白就是一个轻进程,线程是可以拥有极小的资源,它属于进程,并和多个线程共享该进程的资源,是OS 资源分派和调度的基本单位,线程可以独立运行,也具有并发性。线程的创建速度比进程快,线程间的切换,资源的开销比进程要少很多。
线程具有6大特性,1.独立性,2.支持多处理机,3拥有资源,4并发性,5。是调度的基本单位,6.系统开销少。
线程具有TCB(线程控制块)
TCB 组成结构 1.线程的唯一标识符,2,拥有一组寄存器(PC,状态寄存器,通用寄存器)3.线程的状态标志,4独立的存储空间,用于保存线程切换的所需要保存的线程回复信息,5线程优先级,6堆栈指针,用于处理因过程调用所在造成的多层嵌套。7.信号屏蔽。
二 线程的三个基本状态
就绪,阻塞,执行
三 线程的实现方方式
3.1 基于系统内核的KST
优点:
1.在多处理机的系统中,内核可以同时调用一个进程内的多个线程并发执行。
2.当进程内一个线程阻塞时,其他的线程不会阻塞,仍可运行
3.基于内核实现的线程,其具有很小的数据结构,系统切换的开销小
4.因为内核也是采用多线程设计的,所以可以提升系统的数度和执行效率
缺点:
1.无法自定义调度算法
2.线程要依赖于内核
3.移植性较差
3.2 基于用户的自己实现的用户级ULT
优点:
1.可自定义调度算法
2.线程切换不需要转换到内核空间
3.用户级的系统的实现与OS平台无关 ,具有良好的移植性。
缺点:
1.但进程内的线程因系统的某些调用而使该线程阻塞,其进程内的所有线程都将阻塞
2.用户级的系统,不能利用系统的多处理器机的优点。
3.3组合方式实现
多对一模型,即用户空间的每一个用户线程映射到内核空间的同一个内核线程。
这里写图片描述
优点:系统开销少,效率高。
缺点:多个线程不能同时的在多处理机上运行,会造成阻塞问题。
一对一模型,即用户空间的每一个用户线程在内空间内都有一个内核线程与之对应
这里写图片描述
优点:能并发的执行多个线程,不会造成阻塞,问题,能充分的利用好多处理机。
错误:因为每创建一个用户线程都必须创建一个内核线程,所有,系统开销大。
多对多模型:
这里写图片描述
优点:具有一对一和多对一的优点,并克服了以上两个模型的缺点。