Bienvenido, me llamo Miguel y aquí les traigo otro artículo.
Índice
Introducción de procesos e hilos
En primer lugar, debemos tener una buena comprensión del proceso y los hilos.
Un proceso es un programa activo, es decir, un programa que está en ejecución. Es más que el código del programa, ya que incluye el contador del programa, la pila de procesos, los registros, el código del programa, etc.
Un hilo es un proceso ligero que un planificador puede gestionar de forma independiente. Mejora el rendimiento de la aplicación mediante el paralelismo. Comparte información como segmento de datos, segmento de código, archivos, etc. con sus hilos del mismo nivel, mientras que contiene sus propios registros, pila, contador, etc.
Multihilo se refiere a la capacidad de un sistema operativo para admitir múltiples rutas de ejecución simultáneas dentro de un solo proceso.
Multiprocesamiento es la capacidad del sistema operativo para admitir que varios programas se ejecuten al mismo tiempo.
Entonces, ¿Cómo se construye un navegador web utilizando procesos y cables? Sí, puede ser un proceso con muchos subprocesos diferentes o muchos procesos diferentes con algunos subprocesos de comunicación IPC.
Lo importante a tener en cuenta aquí es que estas propiedades únicas son detalles de uso. No existe una especificación estándar sobre cómo una persona puede construir un navegador web. Un modo de navegador puede ser completamente diferente a otro.
En la parte superior hay un proceso de navegador que se vincula a otros procesos que se encargan de diferentes partes de la aplicación. Con el proceso de renderizado, se crean y asignan múltiples procesos a cada pestaña.
Chrome le daba a cada pestaña un proceso donde podía; ahora intenta proporcionar a cada sitio su propio proceso, incluidos los marcos.
Diagrama de la arquitectura multiproceso de Chrome. Se muestran varias capas en Proceso de renderizado para representar a Chrome ejecutando varios Procesos de renderizado para cada pestaña.
Arquitectura de multiprocesador de Chrome
- Un proceso de navegador – Este proceso se crea cuando iniciamos el navegador.
- Un proceso de GPU.
- Un proceso por servicio.
- Utilidad de servicio de red – responsable de los dispositivos de transmisión de detección de Chrome.
- Utilidad de servicio de audio – ayuda a reproducir audio en el navegador. para más información.
- Utilidades de Windows – este proceso se creará cuando el usuario abra el archivo.
- Un proceso por pestaña – Cada sitio que visita crea un nuevo proceso. (más de 20 pestañas conducen a un comportamiento diferente).
- Un proceso por subtrama – subframe es un marco o elemento iframe dentro de una página web.
- Un proceso por extensión – Que instalaste en Chrome.
En el caso más simple, pensaría que cada pestaña tiene su propio proceso de entrega. Suponga que tiene más de una pestaña abierta y cada pestaña se ejecuta a través de un proceso de representación independiente.
Si una pestaña no responde, puede cerrar la pestaña que no responde y continuar mientras mantiene activas las otras pestañas. Cuando todas las pestañas se ejecutan en el mismo proceso, cuando una pestaña no responde, todas las pestañas no responden.
Otra ventaja de separar la función del navegador en muchos procesos es la seguridad y la arena de retención. Dado que los sistemas operativos proporcionan una forma de limitar los derechos de los procesos, el navegador puede configurar ciertos procesos a partir de funciones específicas.
Por ejemplo, el navegador Chrome limita el acceso a archivos a procesos aleatorios que manejan la instalación ilegal como un proceso de renderizado.
Dado que los procesos tienen su propia memoria caché, a menudo contienen copias de la infraestructura estándar. Esto significa más uso de memoria, ya que no se puede compartir como lo hubiera sido si fuera un hilo dentro del mismo proceso.
Para ahorrar memoria, Chrome limita la cantidad de procesos que puede medir. El límite varía según la memoria de su dispositivo y la capacidad de la CPU.
Arquitectura multiprocesador de Firefox
Firefox era un navegador de proceso único al principio. Mozilla introdujo la arquitectura multiproceso en el navegador web Firefox en 2016. Firefox usaría múltiples procesos para dividir los sitios cargados entre ellos y usaría diferentes procesos para la propia funcionalidad del navegador.
Pero no es lo mismo que el cromo. Firefox crea naves nocturnas con fisión que permite el aislamiento del sitio. En Chrome, cada pestaña que abres tiene su propio proceso de contenido. Diez pestañas, 10 procesos. cincuenta pestañas, 50 procesos.
Este método aumenta la eficiencia pero paga un alto precio por el uso de la memoria (cuando corresponda) la duración de la batería. Creo que este concepto se puede entender fácilmente a continuación.
Mozilla afirma que Firefox también usa mucho menos memoria que otros navegadores de la competencia. Según el equipo, Firefox lidera en todas las categorías.
El uso de RAM no es un problema de duración de la batería: la memoria consume aproximadamente la misma cantidad de energía, ya sea que esté almacenando datos en ella o no, siempre que no esté ejecutando algún tipo de referencia de martilleo de páginas.
Pero tener más RAM disponible significa una experiencia mejor y más fluida al hacer malabarismos con muchas pestañas abiertas mientras se ejecutan otros programas.
En el futuro, Mozilla lanzará una nueva iniciativa, denominada Proyecto Quantum, para centrarse en optimizar el motor del navegador que se ejecuta dentro de un proceso de contenido.
Pollack señala que el nuevo proyecto utilizará Rust, un lenguaje de programación del sistema patrocinado por Mozilla.
Como parte del proyecto, los ingenieros de Mozilla están usando Rust para codificar algoritmos paralelos superrápidos que serían increíblemente difíciles de codificar de forma segura con C ++.
Con estos algoritmos, las principales piezas del motor de Firefox se ejecutarán en paralelo en varios núcleos de CPU , en lugar de secuencialmente en un núcleo.
También como parte de Quantum, Firefox utilizará subprocesos para enfocar la potencia informática y su conexión de red en las pestañas que está utilizando activamente. Firefox se volverá mucho más rápido, sin dejar de respetar su memoria y sus necesidades.
Espero que te haya sido de utilidad. Gracias por leer.
Añadir comentario