"La comprensión en profundidad de los sistemas informáticos," leer las notas - la diferencia entre el proceso y el hilo?

Hilos y procesos Resumen:


1. Los procesos y subprocesos

1.1 Información general:

El proceso es un programa con un ciertas funciones individuales en un conjunto de datos sobre las primeras actividades de ejecución , el proceso es una asignación de recursos unidad de sistema separado y la programación.

Un hilo es un proceso físico , es la unidad básica de planificación de la CPU y despacho, que es más pequeño que el proceso de la unidad básica puede funcionar de forma independiente. Básicamente hilo no es dueño de sus propios recursos del sistema, tiene sólo un poco en el funcionamiento de los recursos esenciales (como un contador de programa, un conjunto de registros y pila), pero puede ser compartida con otros subprocesos pertenecen a un proceso que es propiedad de todos los recursos.

Un subproceso puede ser creado y destruido otro hilo ; puede ejecutar simultáneamente a través de múltiples hilos en el mismo proceso.

Para relativamente procesos, hilos están más cerca del concepto de un cuerpo para realizar, puede compartir datos con otros hilos en el mismo proceso, pero tiene su propio espacio de pila, una secuencia de ejecución independiente.

La introducción de los hilos y los procesos del programa de serie en la base del programa es mejorar la concurrencia, mejorando así la eficiencia del proceso y tiempo de respuesta.

1.2 diferencia:

La principal diferencia entre los procesos y subprocesos es que son diferentes de gestión de recursos del sistema operativo. Los procesos tienen espacio de direcciones separadas, después de un accidente de proceso, no tendrá un impacto en otros procesos en modo protegido, y el hilo es sólo un proceso de diferentes rutas de ejecución. Hilo tiene su propia pila y variables locales, pero no hay espacios de direcciones separadas entre los hilos, un hilo de matriz es equivalente a la totalidad de las matrices de proceso, por lo que el programa de los programas de multi-hilo multi-proceso robusto, pero en el proceso de conmutación, consumiendo una mayor eficiencia de los recursos a ser peor. Sin embargo, para algunos de los requisitos al mismo tiempo y tienen que compartir el funcionamiento en paralelo de ciertas variables, sólo con rosca, el proceso no se puede utilizar.

1) En resumen, hay al menos un programa de un proceso, un proceso tiene al menos un hilo.

división Escala 2) de rosca es menor que el proceso, por lo que los programas de multiproceso de concurrencia alta.

3) Además, el proceso tiene una unidad de memoria separada en el proceso de aplicación, y múltiples hilos de la memoria compartida, mejorando así en gran medida la eficiencia del programa.

4)  los hilos en el proceso de aplicación y el proceso es diferente. Cada entrada tiene un hilo separado funcionamiento, secuencias y procedimientos realizados en la salida de orden. Pero el hilo no es capaz de ejecutar de forma independiente, debe existir según la aplicación, proporcionando múltiples hilos de ejecución controlados por la aplicación.

5)  De un punto de vista lógico, lo que significa que una sección de ejecución de programa de aplicación multi-roscado puede realizar una pluralidad de manera simultánea. Sin embargo, el sistema operativo no será visto como varios subprocesos múltiples aplicaciones independientes para lograr procesos de planificación y de gestión y asignación de recursos. Esta es una diferencia importante entre los procesos y los hilos.

1.3 Ventajas y desventajas:

Hilos y procesos tienen ventajas y desventajas en el uso: pequeña sobrecarga ejecución del hilo, pero no es propicio para la gestión y protección de los recursos, y el proceso contrario. Al mismo tiempo, el hilo adecuado para que se ejecutan en máquinas SMP y el proceso pueden migrar a través de máquinas.

2. El multi-proceso, multi-roscado

2.1 Información general:

Cuando se ejecuta un proceso que se acaba el resumen de la CPU, abstracta después de un programa es un proceso, pero el hilo es dividida desde el interior a cabo un proceso, porque el proceso de tiempo de procesamiento de la CPU es el uso de round-robin, por lo poner un gran proceso se divide en una pluralidad de roscas, por ejemplo: FlashGet porción de archivos 100 en las roscas 10 de archivos se divide en 10 partes al mismo tiempo para descargar un hilo ocupe 1-10 11-20 ocupan un hilo, y así sucesivamente, los más hilos, el archivo se divide más, pero, por supuesto, la descarga más rápida

Proceso es actividades de ejecución de programas en el equipo. Cuando se ejecuta un programa, se inicia un proceso. Obviamente, el programa es sólo un conjunto ordenado de las instrucciones, lo que significa que no tiene ninguna marcha, sólo una entidad estática. El proceso es diferente, se ejecuta en un conjunto de datos, es una entidad dinámica. Que se debe a la creación y producción, debido a la programación y la ejecución, en espera de recursos o eventos se encuentran en un estado de espera, porque la tarea es revocada, que reflejan el proceso dinámico de un programa que se ejecuta en un conjunto de datos dado. Proceso es la unidad de sistema operativo para asignar recursos. En Windows, el proceso ha sido refinado como un hilo, es decir, hay un número de unidades más pequeñas puede operar independientemente de la siguiente proceso. Rosca (rosca) es un proceso físico, es la unidad básica de planificación de la CPU y de despacho. Tema no puede ser ejecutado de forma independiente, estar presentes dependiendo de la aplicación, una pluralidad de hilos de ejecución controlados por la aplicación.

La relación entre los hilos y los procesos son: el hilo es parte del proceso, los funcionamientos de hilo en el espacio de proceso, los hilos de un mismo proceso generado comparten el mismo espacio de memoria, cuando el proceso sale del proceso generado por el hilo se verán obligados a dejar de fumar y claro. Todos los hilos comparten los recursos de proceso con otros hilos que pertenece al mismo proceso de tener, pero básicamente no tienen sus propios recursos del sistema, hay poca información es esencial en la operación (como un contador de programa, un conjunto de registros y la pila).

在同一个时间里,同一个计算机系统中如果允许两个或两个以上的进程处于运行状态,这便是多任务。现代的操作系统几乎都是多任务操作系统,能够同时管理多个进程的运行。 多任务带来的好处是明显的,比如你可以边听mp3边上网,与此同时甚至可以将下载的文档打印出来,而这些任务之间丝毫不会相互干扰。那么这里就涉及到并行的问题,俗话说,一心不能二用,这对计算机也一样,原则上一个CPU只能分配给一个进程,以便运行这个进程。我们通常使用的计算机中只有一个CPU,也就是说只有一颗心,要让它一心多用,同时运行多个进程,就必须使用并发技术。实现并发技术相当复杂,最容易理解的是“时间片轮转进程调度算法”,它的思想简单介绍如下:在操作系统的管理下,所有正在运行的进程轮流使用CPU,每个进程允许占用CPU的时间非常短(比如10毫秒),这样用户根本感觉不出来CPU是在轮流为多个进程服务,就好象所有的进程都在不间断地运行一样。但实际上在任何一个时间内有且仅有一个进程占有CPU。

如果一台计算机有多个CPU,情况就不同了,如果进程数小于CPU数,则不同的进程可以分配给不同的CPU来运行,这样,多个进程就是真正同时运行的,这便是并行。但如果进程数大于CPU数,则仍然需要使用并发技术。

Windows中,进行CPU分配是以线程为单位的,一个进程可能由多个线程组成,这时情况更加复杂,但简单地说,有如下关系:

总线程数<= CPU数量:并行运行

总线程数> CPU数量:并发运行

并行运行的效率显然高于并发运行,所以在多CPU的计算机中,多任务的效率比较高。但是,如果在多CPU计算机中只运行一个进程(线程),就不能发挥多CPU的优势。

 多任务操作系统(如Windows)的基本原理是:操作系统将CPU的时间片分配给多个线程,每个线程在操作系统指定的时间片内完成(注意,这里的多个线程是分属于不同进程的).操作系统不断的从一个线程的执行切换到另一个线程的执行,如此往复,宏观上看来,就好像是多个线程在一起执行.由于这多个线程分属于不同的进程,因此在我们看来,就好像是多个进程在同时执行,这样就实现了多任务.

 2.2 分类

根据进程与线程的设置,操作系统大致分为如下类型:

(1) 单进程、单线程,MS-DOS大致是这种操作系统;

(2) 多进程、单线程,多数UNIX(及类UNIX的Linux)是这种操作系统;

(3) 多进程、多线程,Win32(Windows NT/2000/XP等)、Solaris 2.x和OS/2都是这种操作系统;

(4) 单进程、多线程,VxWorks是这种操作系统。

2.3 引入线程带来的主要好处:

(1) 在进程内创建、终止线程比创建、终止进程要快;

(2) 同一进程内的线程间切换比进程间的切换要快,尤其是用户级线程间的切换。


详情又可见:http://www.cnblogs.com/lmule/archive/2010/08/18/1802774.html

发布了18 篇原创文章 · 获赞 86 · 访问量 16万+

Supongo que te gusta

Origin blog.csdn.net/u013178472/article/details/64440404
Recomendado
Clasificación