¿Por qué los sistemas operativos como Windows y Linux no responden al cambiar a un disco?

Esto NO es exclusivo de Windows y Linux.

Ocurre cada vez que un SO basado en memoria virtual tiene recursos insuficientes para la carga presentada. Traducido libremente, eso significa que está intentando ejecutar demasiadas tareas que requieren demasiada “memoria”, en un entorno donde no tiene la memoria física adecuada.

En teoría, en la mayoría de los sistemas VM, el tamaño máximo del espacio de memoria virtual se limita solo a la cantidad de espacio en disco disponible para paginación e intercambio (nota: paginación significa intercambiar fotogramas de memoria en disco uno a la vez; intercambiar significa lanzar un disco completo proceso fuera de la memoria en el disco: se debe evitar si es posible porque es muy costoso intercambiar procesos completos y volver a colocarlos)

En la práctica, es una de las razones por las que el antiguo “intercambio debería ser la doble regla de RAM”. Si limita el espacio total de la máquina virtual para duplicar la RAM física, es probable que obtenga errores de “no se puede inicializar el proceso” en lugar de agitarse.

Tenga en cuenta que puede llegar al otro lado, con el sistema operativo intentando predecir y administrar el uso de sus recursos informáticos. El MVS del sistema operativo mainframe de IBM entraba con frecuencia en un estado en el que más del 85% del tiempo de la CPU se gastaba en el sistema operativo tratando de decidir qué hacer con el otro 15%.

Cuando comienza la paginación pesada, se llama paliza. El sistema pasa más tiempo arrastrando cosas hacia y desde el disco que computando y respondiendo a otros.

No hay RAM reservada para operaciones ‘críticas’. El sistema operativo no es omnisciente y no es obvio que sepa qué es crítico y qué no.

Sí, está bien, podría diseñar un sistema operativo que funcionara de esta manera, pero ni Windows ni Linux adoptaron ese enfoque.

Porque la velocidad del disco es 100-1000 veces más lenta que la RAM. Si la utilización de su memoria es tan crítica, el sistema operativo buscará intercambiar páginas de memoria en disco para liberar RAM para las operaciones necesarias. La sobrecarga de realizar esa E / S tiene prioridad sobre otras cosas como sus aplicaciones y actividad.

La solución simple es arrojar memoria al problema. Mis máquinas de última generación no tienen intercambio de discos. La memoria integrada es suficiente para mantener en ejecución todos mis procesos. Si es necesario, cree un disco ram para el intercambio.

Es posible hacer eso en Linux usando la herramienta ulimit, /etc/security/limits.conf y evitar otros tipos de
recurso starvartion un demonio como rcapd o cgroups
, pero incluso haciendo eso, el sistema también deja de responder cuando se intercambia porque el shell y el comando kill que desea cargar probablemente ya no estén en el caché, porque el sistema descarta el caché cuando el ram está lleno, y tarda un tiempo en cargarse luego de una palpitante HD
Para evitar estos problemas, siempre utilizo ulimits en mis procesos que pueden causar problemas, pero después de salir de Chrome se hizo mucho más fácil no usar toda mi memoria

Al intercambiar, parte del contenido de la memoria real se intercambia en el disco y parte del contenido nuevo se escribe (o se intercambia) en la memoria real.
Durante esta operación de intercambio, las referencias a la memoria intercambiada direccionada se vuelven inválidas. Del mismo modo, las referencias a las direcciones de memoria recién escritas (o intercambiadas) se determinan y fijan.
Por lo tanto, las referencias a las regiones de memoria intercambiadas no se estabilizan hasta que se completa el intercambio.
Como resultado, el sistema operativo no puede ejecutar ningún código que contenga referencias a las direcciones de memoria virtual involucradas en el intercambio.

En pocas palabras, ¡porque están demasiado ocupados intercambiando para responderte! ¡Las mejores opciones son aumentar la RAM, asignar más espacio para la partición de intercambio y bloquear su aplicación en la RAM (si es posible)! Cambiar de un HDD a un SSD también es una solución útil (pero costosa) ya que reduce el tiempo de E / S para la operación de intercambio …

También se me olvidó mencionar que hay algunos parámetros que se pueden configurar para priorizar las operaciones en cuanto a quién se intercambia cuándo y por cuánto tiempo. No los tengo fuera de mi cabeza, pero la idea principal es traer un gran programa de memoria y no cambiarlo de inmediato. …

La gente de Cray Research tenía una frase para el problema: “¡Estaban siendo CAMBIADOS A LA MUERTE!”

More Interesting

¿Cuáles son los atajos para usar una computadora?

¿Es generalmente bueno seguir poniendo una PC en modo de suspensión en lugar de apagarla después de terminar el trabajo?

El procesador de mi computadora es un Ryzen 5 1600x que no incluye un "enfriamiento". ¿Qué es este enfriamiento y necesito obtenerlo?

¿Cómo / cómo se vería / sería una computadora cuántica?

¿Qué tan buenas son las computadoras portátiles de la marca Sager / Clevo para el desarrollo de juegos y / o aplicaciones móviles?

¿Cuál es el sistema de archivos antes del advenimiento de una computadora?

¿Cuál es el mejor método o sitio web para vender una computadora portátil vieja en el Reino Unido?

¿Qué computadora portátil (juegos y navegación en su mayoría) debería comprar por alrededor de $ 700- $ 750 en los Estados Unidos?

¿Hay algún daño en hibernar una computadora portátil y nunca apagarla?

Cómo deshabilitar el teclado de mi computadora portátil

¿Qué computadora portátil es mejor para un estudiante de ingeniería mecánica para estudiar?

¿Puede un programa de computadora reemplazar el cerebro humano? ¿Se puede hacer que las computadoras piensen y sientan, en lugar de solo calcular?

¿Cómo me ayuda el curso de Reparación de Laptop?

¿Puedo decir que los registros de la CPU son los determinantes finales que deciden el espacio de memoria virtual que tiene un programa / proceso?

¿Cuál es la mejor computadora portátil delgada en la India alrededor de 50,000 INR?