OS学习记录:线程

Posted wenzhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OS学习记录:线程相关的知识,希望对你有一定的参考价值。

线程:

  线程的实质是把进程的任务划分成更小、不能再分、具有独立功能的单位,以线程的形式来并发执行,以提高程序并发执行的程度。

  线程是进程中的一个实体,是被系统独立调度和分派的基本单位。线程只拥有在运行必需的资源,包括程序计数器,一组寄存器和栈,但它可与同属一个进程的其他线程共享线程所拥有的全部资源。一个线程可以创建和撤销另一个线程。同一个进程的多个线程可以并发执行。线程在运行中呈现间断性,也有就绪、阻塞和运行三种基本状态。

  线程的分类:

    (1)内核级线程

      内核级线程依赖于内核。用户进程和系统进程中的线程的创建、撤销和切换都由内核实现,在内核中保留每个线程的控制块,内核根据该控制块感知线程的存在并对线程进行控制。

    (2)用户级进程

      用户级进程不依赖于内核,与内核无关,线程的创建、撤销、切换都不需要利用系统调用实现。

  线程的区别:

    (1)线程的调度与切换速度

        内核级线程的调度由内核的线程调度程序完成,用户级线程则由用户线程包中的一个过程来完成。内核级线程的调度程序在核心态下运行。用户级线程的调度程序在用户态下运行。

        内核级线程的调度规则与进程调度相似,用户级线程的调度规则相对简单;内核级线程切换慢,用户级线程切换块。

    (2)系统调用

        内核级线程进行系统调用只阻塞该线程,而用户级线程进行系统调用要阻塞线程所属的进程。

    (3)线程执行的时间的分配

        内核级线程的CPU时间以线程为单位进行分配,每一个线程都可以独享一个CPU时间片;用户级线程的CPU时间以进程为单位进行分配,同一进程的多个线程共享一个CPU时间片。

  线程控制块TCB

    (1)每一个线程都由一个数据结构表示,包括它的基本状态、标识以及记账信息。这个数据结构就是线程控制块TCB。TCB记录了操作系统用于描述线程情况及控制线程运行所需的全部信息。

    (2)线程控制块的信息

        线程标识符信息  处理机状态信息  线程调度信息  线程控制信息 

 

以上是关于OS学习记录:线程的主要内容,如果未能解决你的问题,请参考以下文章

uCOS-III 学习记录——任务的创建切换和OS的启动

OS学习记录

Python学习记录-2016-11-28

python多线程学习记录

Python学习记录-多进程和多线程

python核心编程学习记录之多线程编程