Proceso de aprendizaje de Linux, hilos y programas

  
        

1: Diferencias entre programas y procesos

La aparición de procesos se realiza originalmente en UNIX, se utiliza para representar el entorno de sistema operativo multiusuario y multitarea, el concepto de la unidad de ejecución básica de la aplicación en el entorno de memoria . Un proceso es el concepto más básico de un entorno de sistema operativo UNIX y es la unidad más pequeña de asignación de recursos del sistema. ¡La administración de usuarios y la asignación de recursos bajo el sistema operativo UNIX son casi todas realizadas por el sistema operativo a través del control del proceso de aplicación!

Cuando el compilador correspondiente compila un programa fuente escrito en un lenguaje como c c ++ java en un archivo ejecutable, se envía al procesador del equipo para que se ejecute y el estado de ejecución se denomina proceso. El proceso aparece ante el usuario como el proceso de ejecución de la aplicación. Desde la perspectiva del sistema operativo, el proceso es la memoria asignada por el sistema operativo, la unidad básica de recursos, como los segmentos de tiempo de CPU, y el entorno de ejecución proporcionado para el programa en ejecución. La diferencia entre un proceso y una aplicación es que la aplicación se almacena como un archivo estático en un espacio de almacenamiento como el disco duro de una computadora, y el proceso es una entidad de administración de recursos del sistema que el sistema operativo mantiene en condiciones dinámicas.

La mayor diferencia entre el concepto de un proceso y el concepto de un programa es:

1: el proceso es dinámico y el programa es estático.

2: el proceso tiene una vida determinada Período, y el programa es una colección de instrucciones, que en sí misma no tiene el significado de "deportes". Los programas que no están integrados en el proceso no pueden ser reconocidos como un sistema operativo independiente.

3: Un proceso solo puede corresponder a un programa, pero un programa puede corresponder a múltiples procesos.

2: Procesos en el entorno de Linux

Las operaciones de proceso de Linux generan principalmente procesos, finalizan procesos, y hay interacciones de datos y control entre procesos, es decir, comunicación entre procesos y sincronización.

Proceso de generación de procesos:


Hay muchas maneras de generar un proceso, pero el proceso básico es el mismo.

(1) Primero copie la configuración del entorno de su proceso principal.

(2) Establezca una estructura de proceso en el kernel.

(3) Inserte la estructura en la lista de procesos para facilitar el mantenimiento.

(4) Asigne recursos a este proceso.

(5) Copie la información de mapeo de memoria del proceso principal.

(6) Administrar descriptores de archivos y puntos de enlace.

(7) Notificar al proceso padre.

Cómo termina el proceso:

Hay 5 formas de terminar el proceso:

1: Regreso desde la función principal.

2: Llama a la función de salida.

3: Llama a la función _exit.

4: abortar llamada.

5: Terminado por una señal.

Cuando el proceso termina, el sistema liberará todos los recursos del proceso, como la memoria, los caracteres de los archivos, la estructura del kernel, etc.

Nota: La diferencia entre exit y _exit es que la función exit comprueba la apertura del archivo antes de que el sistema llame a exit, y vuelve a escribir el contenido del búfer del archivo en el archivo.

Comunicación entre procesos:

Hay varios modos de comunicación entre procesos, siendo los métodos más comunes las tuberías, la memoria compartida y las colas de mensajes.

1: Pipeline es la forma más antigua de comunicación de procesos en la familia UNIX. Utiliza el núcleo para establecer un canal entre dos procesos. Es similar a la operación de un archivo, solo de lectura en el extremo de la tubería. El otro extremo solo escribe. Utilice leer y escribir para pasar datos entre procesos.

2: La memoria compartida es una parte de la memoria que se comparte entre varios procesos. Múltiples procesos utilizan la dirección de la memoria compartida obtenida para operar directamente en la memoria.

3: El mensaje es crear una lista enlazada en el kernel. El remitente envía los datos al kernel de acuerdo con un determinado identificador. Después de que el kernel los coloca en la escala, espera la solicitud del receptor. Una vez que el receptor envía la solicitud, el kernel elimina el mensaje del kernel y lo envía al receptor de acuerdo con el identificador del mensaje. Un mensaje es una operación asíncrona completa.

Sincronización entre procesos:

La necesidad de escribir tareas de finalización entre varios procesos es que a menudo existe una dependencia entre los servicios, lo que conduce a problemas de sincronización. El modo de sincronización de procesos en Linux incluye principalmente mensajes y semáforos.

Un semáforo es una representación compartida de un valor que se utiliza para la protección de operaciones entre múltiples procesos o recursos compartidos. Es el principal medio de sincronización de procesos.

3: Procesos y subprocesos

Los subprocesos y procesos son otro par de conceptos significativos, con las siguientes diferencias y conexiones:

1: ingresar al automóvil es el sistema operativo La unidad básica de asignación de recursos, el proceso tiene un espacio virtual completo. Cuando se realiza la asignación de recursos del sistema, además de los recursos de la CPU, los recursos independientes no se asignan a los subprocesos y los recursos requeridos por los subprocesos deben compartirse.

2: un subproceso es parte de un proceso. Si no hay asignación de subprocesos para la visualización, el proceso puede considerarse como un único subproceso, si se establece un subproceso en el proceso, el sistema puede considerarse multiproceso.

3: los subprocesos múltiples y los procesos múltiples son diferentes, aunque ambos son funciones de finalización paralelas, pero los recursos como la memoria y las variables entre varios subprocesos se pueden compartir de múltiples maneras de forma sencilla. El proceso múltiple es diferente, y el método de intercambio entre procesos es limitado.

4: El proceso tiene una tabla de control de proceso PCB (esto no es una placa de PCB), el sistema programa el proceso a través de la PCB, el hilo tiene una tabla de control de subprocesos TCB. Pero el estado representado por el TCB es mucho menor que el PCB.

En resumen, la relación anterior puede verse que el hilo es parte del proceso y el proceso es parte del programa.

He visto el proceso más sencillo. Comparación de subprocesos y programas, puede consultar este enlace para comprender mejor http://blog.jobbole.com/38696/#jtss-tsina

Copyright © Conocimiento de Windows All Rights Reserved