OS - 线程和进程的区别

来源:互联网 发布:同学聚会 不想去 知乎 编辑:程序博客网 时间:2024/06/03 16:37

进程是资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表、内存空间、磁盘空间、I/O设备等。然后,把该进程放入进程的就绪队列。进程调度程序选中它,为它分配CPU及其它有关资源,该进程才真正运行。所以,进程是系统中并发执行的单位。

在Mac、Windows NT等采用微内核结构的操作系统中,进程的功能发生了变化:它只是资源分配的单位,而不再是调度运行的单位。在微内核系统中,真正调度运行的单位是线程。因此,实现并发功能的单位是线程。


线程是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。如果把进程理解为在逻辑上操作系统所完成的任务,那么线程表示完成该任务的许多可能的子任务之一。


引入线程的好处

1、易于调度。

2、提高并发性。通过线程可方便有效地实现并发性。进程可创建多个线程来执行同一程序的不同部分。

3、开销少。创建线程比创建进程要快,所需开销很少。

4、利于充分发挥多处理器的功能。


进程和线程的关系

1、一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。

2、资源分配给进程,同一进程的所有线程共享该进程的所有资源。

3、处理机分配给线程,即真正在处理机上运行的是线程。

4、线程在执行过程中需要协作同步,不同进程的线程间需要利用消息通信的方法实现同步。

6 0