操作系统中线程的基本概念

在操作系统中,进程是可以独立运行的基本单位。随着操作系统理论和技术的发展,到了80年代中期,人们又提出了比进程更小的、能够独立运行的基本单位—线程线程可以提高系统内程序并发执行的级别,可以进一步提高系统效率。由于线程的这些优点,近几年来线程的概念获得了广泛的应用。人们不仅在新推出的操作系统中引入了线程概念,而且在数据库管理系统和其他一些应用软件中,也通过引入线程来改善系统的性能。

本节简要地叙述线程的基本概念,并且对进程和线程进行比较,从而为读者今后更深入地理解、掌握和运用线程,打下一个初步的基础。

一、线程的基本概念

如果说在操作系统中引入进程的目的是为了使多个程序并发执行,以改善资源利用率及提高系统效率,那么,在操作系统中再引入线程,则是为了减少程序并发执行时所付出的时间和空间开销,使操作系统具有更好的并发性

进程具有两个基本属性,即进程是一个可拥有资源的独立单位;进程同时又是一个可以独立调度和分派的基本单位。正是由于进程具有这两个基本属性,才使之成为一个能独立运行的基本单位,从而也构成了进程并发执行的基础。

然而为使程序能并发执行,系统还必须进行以下的一系列操作。

1)创建进程。系统在创建一个进程时,必须为其分配其所需的所有资源(除处理器外),包括内存空间、I/O设备以及建立相应的数据结构PCB。

2)撤销进程。系统在撤销进程时必须先对这些资源进行回收操作,然后再撤销PCB。

3)进程切换。在对进程进行切换时,由于要保留当前进程的处理器环境和设置新选中进程的处理器环境,为此需花费不少处理器时间

总而言之,由于进程是一个资源拥有者,因而在进程的创建、撤销和切换中,系统必须为之付出较大的时空开销。也正因为如此,在系统中所设置的进程数目不宜过多,进程切换的频率也不宜过高,但这也就限制了并发程度的进一步提高。

如何能使多个程序更好地并发执行,同时又尽量减少系统的开销,已成为近年来设计操作系统时所追求的重要目标。于是,有不少操作系统的开发者想到,可否将进程的上述两个属性分开,由操作系统分开进行处理。即如果作为调度和分派的基本单位,则不同时作为独立分配资源的单位,以使之轻装运行;而对拥有资源的基本单位,又不频繁地对之进行切换。正是在这种思想的指导下,产生了线程的概念。

1.什么是线程

在引入线程的操作系统中,线程是进程中的一个实体,是处理器调度和分派的基本单位。线程自己基本上不拥有系统资源,只拥有少量在运行中必不可少的资源(如程序计数器、一组寄存器和栈等),但它可与同属一个进程的其他线程共享进程所拥有的全部资源。

一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行由于线程之间的相互制约,致使线程在运行中也呈现出间断性。相应地,线程也同样有就绪、等待和运行三种基本状态。有的系统中线程还有终止状态等

2.线程的属性

线程有如下的一些属性。

1)每个线程有一个唯一的标识符和一张线程描述表,线程描述表记录了线程执行的寄存器以及栈等现场状态。

2)不同的线程可以执行相同的程序,即同一个服务程序被不同用户调用时操作系统为它们创建不同的线程。

3)同一个进程中的各个线程共享该进程的内存地址空间

4)线程是处理器的独立调度单位,多个线程是可以并发执行的。在单处理器的计算机系统中,各线程可交替地占用处理器;在多处理器的计算机系统中,各线程可同时占用不同的处理器;若各个处理器同时为一个进程内的各线程服务,则可缩短进程的处理时间。

5)一个线程在被创建后便开始了它的生命周期,直至终止;线程在生命周期内会经历等待状态、就绪态和运行态等各种状态变化。

3.引入线程的好处

1)创建一个新线程花费时间少(结束亦如此)。创建线程不需另行分配资源,因而创建线程的速度比创建进程的速度快,且系统的开销也少。

2)线程之间的切换花费时间少

3)由于同一个进程内的线程共享内存和文件,所以线程之间相互通信无须调用内核,故不需要额外的通信机制,使通信更简便,信息传送速度也快

4)线程能独立执行,能充分利用和发挥处理器与外部设备并行工作能力

发布了0 篇原创文章 · 获赞 0 · 访问量 1018
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览