OS学习记录:线程
Posted wenzhao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OS学习记录:线程相关的知识,希望对你有一定的参考价值。
线程:
线程的实质是把进程的任务划分成更小、不能再分、具有独立功能的单位,以线程的形式来并发执行,以提高程序并发执行的程度。
线程是进程中的一个实体,是被系统独立调度和分派的基本单位。线程只拥有在运行必需的资源,包括程序计数器,一组寄存器和栈,但它可与同属一个进程的其他线程共享线程所拥有的全部资源。一个线程可以创建和撤销另一个线程。同一个进程的多个线程可以并发执行。线程在运行中呈现间断性,也有就绪、阻塞和运行三种基本状态。
线程的分类:
(1)内核级线程
内核级线程依赖于内核。用户进程和系统进程中的线程的创建、撤销和切换都由内核实现,在内核中保留每个线程的控制块,内核根据该控制块感知线程的存在并对线程进行控制。
(2)用户级进程
用户级进程不依赖于内核,与内核无关,线程的创建、撤销、切换都不需要利用系统调用实现。
线程的区别:
(1)线程的调度与切换速度
内核级线程的调度由内核的线程调度程序完成,用户级线程则由用户线程包中的一个过程来完成。内核级线程的调度程序在核心态下运行。用户级线程的调度程序在用户态下运行。
内核级线程的调度规则与进程调度相似,用户级线程的调度规则相对简单;内核级线程切换慢,用户级线程切换块。
(2)系统调用
内核级线程进行系统调用只阻塞该线程,而用户级线程进行系统调用要阻塞线程所属的进程。
(3)线程执行的时间的分配
内核级线程的CPU时间以线程为单位进行分配,每一个线程都可以独享一个CPU时间片;用户级线程的CPU时间以进程为单位进行分配,同一进程的多个线程共享一个CPU时间片。
线程控制块TCB
(1)每一个线程都由一个数据结构表示,包括它的基本状态、标识以及记账信息。这个数据结构就是线程控制块TCB。TCB记录了操作系统用于描述线程情况及控制线程运行所需的全部信息。
(2)线程控制块的信息
线程标识符信息 处理机状态信息 线程调度信息 线程控制信息
以上是关于OS学习记录:线程的主要内容,如果未能解决你的问题,请参考以下文章