学习笔记——OS线程

一、线程的引入

多处理机OS中

进程回顾

        1)进程是一个拥有资源的独立单位; 

        2)是一个可独立调度和分派的基本单位。

进程一系列操作

        1)创建进程:分配除CPU以外的全部资源(如内存、I/O设备等),建立PCB

        2)撤销进程:资源回收,撤销PCB

        3)进程切换:保留当前进程的CPU环境,设置新选中进程的CPU环境

进程是一个资源的拥有者,创建、撤销及切换,需要巨大的时空开销,从而限制了OS中的进程数目,进程切换也不能过于频繁。

引入线程目的:为了更好地提高程序的并行执行程度,减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。

                         不仅并发执行,而且减少时空开销。

                         将进程的两个作用分开,进程作为拥有资源的独立单位;线程作为独立调度和分配的基本单位,减少切换开销。

二、线程与进程的比较

1.调度的基本单位

      1)传统OS,进程同时作为拥有资源的独立单位和调度与分配的基本单位,每次调度,上下文切换,开销巨大;

      2)引入线程的OS,线程作为调度与分配的基本单位,线程切换,仅需保存和设置少量寄存器的内容,开销远小于进程开销;

          同一进程中的线程切换,不会引起进程切换;但不同进程中的线程切换,必然引起进程的切换。

2.并发性

      1)传统OS,进程之间并发;

      2)引入线程的OS,不仅进程之间能并发,不同进程的多个线程以及同一进程的多个线程都能并发。

3.拥有资源

      1)传统OS,进程作为拥有资源的独立单位;

      2)引入线程的OS,进程还是拥有资源的基本单位,线程仅有一点必不可少的、能保证独立运行的资源。如寄存器及堆栈;

         线程除了拥有自己的少量资源外,还允许多个线程共享该进程拥有的资源。如地址空间、文件、I/O设备等。

4.独立性

      同一进程的不同线程之间的独立性远小于不同进程之间的独立性。

5.系统开销

      1)创建和撤销进程时,为之分配和回收PCB、分配和回收资源;创建线程时,分配和回收寄存器和堆栈,开销小得多

      2)进程的切换,涉及进程上下文的切换;线程切换开销小得多

6.支持多处理机系统

       一个进程的多个不同线程可以分配到多个处理机上。

三、线程的状态和线程控制块

1.线程的三个状态

       线程之间也存在着共享资源和相互合作的制约关系,致使线程也有间断性。

       三种基本状态:执行状态、就绪状态及阻塞状态。状态之间切换同进程。

2.线程控制块(TCB)

       如PCB一样,将所有用于控制和管理线程的信息记录在TCB中。如线程标识符、寄存器、优先级及堆栈指针等。

3.多线程OS的进程属性

        1)进程是一个可拥有资源的基本单位;

        2)多个线程可并发执行;

        3)进程已不是可执行的实体。把线程作为独立运行与调度处的基本单位。

              所谓进程处于“执行”状态,实际上是指进程中的某线程正在执行;

              对进程所施加的与进程状态相关的操作也对其线程起作用。

四、线程的实现方式

1.用户级线程(User-Level Thread,ULT)

         有关线程管理的所有工作都由应用程序完成,内核意识不到线程的存在。应用程序可以通过线程库设计成多线程程序。

2.内核级线程(Kernel-Level Thread,KLT)

         线程管理的所有工作由内核完成,应用程序没有进行线程管理的代码,只有一个到内核级线程的编程接口。

3.组合方式

         线程创建完全在用户空间完成,线程的调度和同步也在应用程序中进行。

         一个应用程序中的多个用户级线程被映射到一些内核级线程(<=用户级线程数目)上。5

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章