进程和线程的区别

来源:互联网 发布:ug8.0数控编程教程 编辑:程序博客网 时间:2024/06/07 07:13
  1. 进程中可以包含多个线程,线程必须存在于某个进程中
  2. 进程是资源分配的基本单位,每个进程都有地址空间——内存的抽象,而线程则不具有,同一进程中的所有线程共享进程的地址空间
  3. 线程是CPU调度的最基本单位(以前无线程时,进程是最基本调度单位,但是线程比进程在调度单位上要更小)
  4. PCB中是一个进程的所有信息,TCB中是一个线程的所有信息,但是TCB中的信息要比PCB中要少得多,在上下文切换时,PCB/TCB中的信息要和寄存器中交换(向寄存器中复制或从寄存器中复制出来),由于PCB中的信息要多,进程的上下文切换代价要比线程高。创建和撤销,这与线程的实现方式有关,见线程,不赘述
  5. 大多数进程间通信(Interprocess communication)需要内核的介入,由于同一进程中的线程共享内存,线程间通信开销要小些,当然,进程间通信也可以采取共享内存的方式,那么此时开销就一样了

参考资料:

  1. 现代操作系统
  2. 北大陈向群——操作系统原理
  3. http://blog.csdn.net/ns_code/article/details/17279467
0 0
原创粉丝点击