2.试从调度性、并发性、拥有资源、及系统开销方面对进程和线程进行比较。

(1)调度性:

    ​    ​在传统的OS中,进程是作为独立调度和分派的基本单位,因而进程是能独立运行的基本单位。在每次被调度时,都需要进行上下文的切换,开销较大。

    ​    ​而在引入线程的OS'中,把线程作为调度和分派的基本单位,因而线程是能够独立运行的基本单位,当线程切换时,仅需要保存和设置少量的寄存器内容,切换代价远远小于进程。在同一进程中,线程的切换不会引起进程的切换,但从一个进程的线程切换到另一个进程的线程时,必然会引起进程的切换。

(2)并发性:

        在传统的OS中,只能够多个进程实体同存于内存中,实现进程之间的并发执行。

    ​    ​在引入线程的OS中,不仅进程之间能够并发执行,在一个进程中的多个线程之间也可以并发执行。这使得OS具有更好的·并发性,从而提高系统资源的利用率和系统的吞吐率。

(3)拥有资源:

    ​    ​进程可以拥有资源,并作为系统中拥有资源的一个基本单位。然而线程本身并不具有系统资源,而是仅有一点必不可少的、能保证独立运行的资源。线程还允许多个线程共享该进程所拥有的资源,这首先表现在属于同一个进程的线程都拥有相同的地址空间,这意味着,线程可以访问该地址空间中每一个虚地址;此外还可以访问进程所拥有的资源。

(4)系统开销:

    ​    ​系统开销 由于创建进程或撤销进程时,系统都要为之分配或回收资源,操作系统所付出的开销远大于创建或撤销线程时的开销。在进行进程切换时,涉及整个当前进程CPU环境的保存以及新调度到进程的CPU环境的设置; 而线程切换时,只需要保存和设置少量寄存器内容。因此开销很少。另外,由于同一进程内的多个线程共享进程的地址空间,因此,多线程之间的同步与通信非常容易实现,甚至无需操作系统干预。

 

posted @ 2022-04-24 16:45  YUYUUUU  阅读(1146)  评论(0编辑  收藏  举报