📜  操作系统中的线程

📅  最后修改于: 2020-12-15 09:28:13             🧑  作者: Mango

操作系统中的线程

任何操作系统的进程中都有一种线程执行的方法。除此之外,一个进程中可以有多个线程。线程通常称为轻量级进程。

该过程可以分为多个线程。例如,在浏览器中,许多选项卡可以被视为线程。 MS Word使用许多线程-设置一个线程的文本格式,处理另一个线程的输入等。

螺纹类型

在操作系统中,有两种类型的线程。

  • 内核级线程。
  • 用户级线程。

用户级线程

Java线程,POSIX线程等。

用户级线程的优点

  • 用户线程比内核线程容易实现。
  • 用户级线程可以应用于不支持内核级线程的这类操作系统。
  • 它更快,更高效。
  • 上下文切换时间比内核级线程短。
  • 它不需要修改操作系统。
  • 用户级线程表示非常简单。寄存器,PC,堆栈和微型线程控制块存储在用户级进程的地址空间中。
  • 创建,切换和同步线程很容易,而无需进程干预。

用户级线程的缺点

  • 用户级线程在线程和内核之间缺乏协调。
  • 如果线程导致页面错误,则整个过程将被阻止。

内核级线程

内核线程可以识别操作系统。系统中,内核级线程中的每个线程和进程都有一个线程控制块和进程控制块。内核级线程由操作系统实现。内核知道所有线程并对其进行管理。内核级线程提供了一个系统调用,用于从用户空间创建和管理线程。内核线程的实现比用户线程困难。内核线程中的上下文切换时间更长。如果内核线程执行阻止操作,则Banky线程可以继续执行。示例:Windows Solaris。

内核级线程的优点

  • 内核级线程完全了解所有线程。
  • 调度程序可能会决定在线程数量较大的过程中花费更多的CPU时间。
  • 内核级线程非常适合那些阻塞频率的应用程序。

内核级线程的缺点

  • 内核线程管理和调度所有线程。
  • 内核线程的实现比用户线程困难。
  • 内核级线程比用户级线程慢。

线程的组成

任何线程都具有以下组件。

  • 程序计数器
  • 寄存器集
  • 堆叠空间

线程的好处

  • 增强的系统吞吐量:当将进程拆分为多个线程并将每个线程视为一个作业时,单位时间内完成的作业数量会增加。这就是为什么系统吞吐量也会增加的原因。
  • 多处理器系统的有效利用:当一个进程中有多个线程时,可以在一个以上的处理器中调度多个线程。
  • 上下文切换速度更快:线程之间的上下文切换时间小于进程上下文切换时间。进程上下文切换意味着CPU的更多开销。
  • 响应性:当进程被拆分为多个线程,并且当一个线程完成其执行时,可以尽快响应该进程。
  • 通讯:多线程通讯很简单,因为线程共享相同的地址空间,而在处理过程中,我们仅采用一些独占的通讯策略来进行两个进程之间的通讯。
  • 资源共享:可以在流程中的所有线程之间共享资源,例如代码,数据和文件。注意:堆栈和寄存器不能在线程之间共享。每个线程都有一个堆栈和寄存器。