操作系统(十一)线程的概念和特点

2.1.5 线程的概念和特点

  前面我们介绍了进程,并说到进程是程序的一次执行,是调度的基本单位。那么大家来想一下这么一个场景,我打开了QQ.exe,QQ进程便会运行,在这次运行里我想跟同学视频聊天、共享文件、文字聊天,那么这三个功能对应的程序便会运行即QQ进程下会多出三个子进程,那么这个三个子进程都会被分配一定的资源,如果其中两个进程所需要的资源是重复的,一个进程要访问另一进程的资源就需要进程切换,这个时候就要进行一系列的操作,十分耗费时间以及资源,该如何解决这个问题呢?我们引入了线程的概念。

目录

2.1.5 线程的概念和特点

2.1.5.1 线程的概念

2.1.5.2 线程的特点

2.1.5.3 引入线程后所带来的变化


2.1.5.1 线程的概念

  线程(threads)是一个比进程更小的单位,他的引入是为了减少程序在并发执行时所付出的时空开销,使 OS 具有更好的并发性。在引入线程这个概念后,资源分配仍是以进程为单位的而进程调度则是以线程为基本单位的。  

           操作系统(十一)线程的概念和特点_第1张图片

2.1.5.2 线程的特点

(1)引入线程后,进程是资源分配的基本单位,线程是调度的基本单位,线程几乎不拥有资源,只拥有极少量的资源。线程也有运行态、就绪态、阻塞态.

  (2)   同一进程下的各个线程间共享内存地址空间,可以直接通过读/写内存空间.

2.1.5.3 引入线程后所带来的变化

(1) 调度:在传统的操作系统中,作为拥有资源的基本单位和独立调度、分派的基本单位都是进程。而在引入线程的操作系统中,则把线程作为调度和分派的基本单位,从而可显著地提高系统的并发程度。在同一进程中,线程的切换不会引起进程的切换,但从一个进程中的线程切换到另一个进程中的线程时,将会引起进程的切换。

(2) 并发性:在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行.

(3) 拥有资源: 不论是传统的操作系统,还是引入了线程的操作系统,进程都可以拥有资源,是系统中拥有资源的一个基本单位。一般而言,线程自己不拥有系统资源(也有一点必不可少的资源),但它可以访问其隶属进程的资源,即一个进程的代码段、数据段及所拥有的系统资源,如已打开的文件、I/O 设备等,可以供该进程中的所有线程所共享。
 
(4) 系统开销: 在进程切换时,涉及到当前进程 CPU 环境的保存及新被调度运行进程的 CPU 环境的设置,而线程的切换则仅需保存和设置少量寄存器内容,不涉及存储器管理方面的操作,所以就切换代价而言,进程也是远高于线程的。此外,由于一个进程中的多个线程具有相同的地址空间,在同步和通信的实现方面线程也比进程容易。
 

你可能感兴趣的:(操作系统)