进程和线程的主要区别
这应该是每个学操作系统的人必须掌握的知识点了吧。也是在每个面试操作系统相关内容必不可少的一点。在这里详细总结了进程和线程的特点以及区别。
1,进程
1, 进程是由 程序段,数据,PCB(进程控制块)组成。进程的存在是为了更好的描述和控制程序的并发执行,因为程序的执行本身静态的,我们无法了解程序的执行情况。所以为了使参与并发执行的程序能独立地运行,必须为之配置一个专门的数据结构,称为PCB(进程控制块)。系统利用PCB来描述进程的基本情况和运行状况。 2,进程的五种态: 运行态 就绪态 阻塞态 创建态 结束态
2,线程
基本概念:对于线程,最直接的理解就是“轻量级进程”。线程是处理器调度和分派的单位,线程本身不具有资源,它可以共享所属进程的全部资源
3,进程和线程的区别
1,调度。在传统的操作系统中,拥有资源和独立调度的基本单位都是进程。在引入线程后的操作系统后,**线程是独立调度的基本单位,进程是拥有资源的基本单位。**在同一进程中,线程的切换不会引起进程的切换。但在不同的进程中进行线程切换,会引起进程切换。 2,拥有资源。不论是传统的操作系统还是设有线程的操作系统,进程都是拥有资源的基本单位。而线程拥有极少极少的系统的资源,但是线程可以访问其隶属进程的系统资源。在这里我们也可以看出来,要是线程也是拥有资源的单位,则若干个线程的切换就需要较大的时空开销,那么,线程的提出就无意义。 3,系统开销(切换时)。在进行进程切换时,涉及到当前执行进程CPU环境的保存及新调度到进程CPU环境的设置,因此操作系统需要较大的开销。而线程的切换只需要保存和设置少量寄存器内容,开销很小。 4,地址空间和其他资源(如打开的文件)。进程的地址空间是相互独立的,同一进程的各线程间共享进程的资源。 5,通信方面。进程间通信需要进程同步和互斥手段的辅助。而线程间可以直接读/写进程数据段来进行通信。
|