Con todos los aumentos en la velocidad y la memoria, ¿no debería realizarse una tarea rutinaria del sistema operativo en una computadora de manera casi instantánea?

Consideremos la tarea rutinaria del sistema operativo de obtener el listado del directorio, en la PC.

Al principio, teníamos un disquete. El directorio estaba en un sector. Pero era un disquete. Eso fue lento.

Luego tuvimos un disco duro. Y el directorio ahora era un clúster. Pero fue más rápido. Luego comenzamos a almacenar en caché y se hizo aún más rápido.

Luego teníamos una interfaz gráfica de usuario y los archivos ahora mostraban iconos gráficos.

Los discos se hicieron más grandes, por lo que pusimos muchas más cosas en ellos y el directorio se convirtió en varios grupos. Los íconos comenzaron a no ser estándar. Los monitores dieron más resolución, por lo que los íconos obtuvieron más resolución. Todas estas entidades debían estar unidas para poder mostrarlas juntas.

Luego los iconos se convirtieron en miniaturas.

Entonces las miniaturas se convirtieron en algo real, pero más pequeño. Los íconos se activaron y en realidad le mostraron la imagen real del documento, la hoja de cálculo, la imagen, …

Ahora ya ni siquiera puede caber en su disco duro y tiene que buscarlo en la máquina de otra persona (la nube) para mostrárselo en su máquina. Oh, esa imagen de 2K ahora es un archivo TIFF de 32Gig.

Todo esto se llama progreso.

El ser humano en todo esto no puede decir mucha diferencia entre si está tomando .1 seg. o .5 seg. Eso es mejor de lo que fueron 5-10 segundos cuando comenzamos. Pero en esta etapa, es esencialmente instantánea.

Como tantas personas han comentado antes, es una cuestión de dónde provienen los datos.

La unidad central de procesamiento (CPU) en su computadora es asombrosamente rápida, especialmente si está ejecutando una PC moderna (tenga en cuenta que las Mac también son PC). El cuello de botella actual en las computadoras modernas es la latencia de recuperación de datos. Explicaré esto de la manera más simple posible.

Los datos se almacenan en 3 ubicaciones diferentes. Caché, RAM y disco duro.

Imagine que su CPU es el contador más eficiente del mundo, que puede procesar millones de formularios a la velocidad del rayo. Cuando se le pide que mire un determinado formulario, primero verificará si está en su escritorio. Esa es la memoria caché.

Si los datos no están en su escritorio, debe ir al archivador, que se almacenó por error al lado de la calle. Esa es tu RAM.

Ahora, si los datos no están allí, debe ir a buscar el archivo a la compañía que está revisando, que se encuentra en Pekín. Ese es tu disco duro. Además de eso, si está utilizando un disco duro, entonces el contador tiene que esperar largas tonterías burocráticas antes de obtener los datos. Si está utilizando un disco SSD, al menos no tendrá que esperar para obtener los datos. Sin embargo, todavía tiene que ir a Pekín.

Ahora, por qué es esto y por qué no lo hemos solucionado, puede preguntar. La respuesta es física simple. La latencia es el tiempo que tardan las señales eléctricas en viajar desde los dispositivos de almacenamiento a la CPU. Incluso nosotros, los hombres poderosos, estamos sujetos a latencia, ya que las señales nerviosas tardan en viajar al cerebro y regresar.

Hemos estado ocupados buscando formas de mejorar esto, aumentando el espacio disponible en caché y RAM y desarrollando un disco SSD comercial. Si estaba prestando atención al último technobable, es posible que haya escuchado al respecto, cuando las computadoras se movían de procesadores de 32 bits a 64 bits. Para explicar eso, tienes que imaginar tu RAM como si fuera una biblioteca.

La CPU necesita datos de la RAM, pero antes de ir al estante para buscar el libro que necesita, primero debe preguntar dónde está ubicado el libro. Una biblioteca de 32 bits tenía un sistema de archivo que podía almacenar aproximadamente 4 GB de datos. Claro que podría poner 8 GB de memoria en su computadora, pero si estaba ejecutando un procesador de 32 bits, solo podría usar la mitad. El sistema de archivo era demasiado pequeño para dar cuenta de más libros. Una computadora de 64 bits no duplicó el espacio disponible. No lo triplicó. Lo multiplicó por 2, 32 veces. Una computadora de 64 bits puede representar una memoria RAM de más de 18.000.000.000 GB. Ahora, esa es una gran biblioteca.

La mayoría de las tareas del sistema operativo se ejecutan instantáneamente. Los dos factores limitantes principales de las operaciones rutinarias del sistema operativo, como el arranque, son la espera de E / S y la complejidad de corte de las operaciones.

Si verifica el uso de su CPU durante el arranque, verá que la mayor parte del tiempo de la CPU es solo esperar IO. Es decir, esperar a que su disco duro gire y lea los datos solicitados. El uso de un SSD o SSHD hará que los tiempos de arranque y otras tareas estándar del sistema sean notablemente más rápidos, pero tienden a ser mucho más caros que un HDD, por lo que las personas generalmente se quedan con los HDD tradicionales.

El otro punto es la complejidad de algunas de las cosas que hace una computadora. Si tomamos un caso abstracto o buscamos en una lista una entrada duplicada, para un humano, no es difícil porque podemos procesar grandes cantidades de datos a la vez. Para una computadora, solo puede comparar dos elementos a la vez. Por lo tanto, debe revisar toda la lista para verificar cada elemento … Pero también debe verificar cada elemento con todos los demás elementos para ver si hay una coincidencia, por lo que en la notación O, está ejecutando un O (n!) operación. Para una pequeña lista de 5 elementos, eso es 4 * 3 * 2 * 1 = 24 bucles. Si aumentamos el tamaño de la lista solo a 10, eso es 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 3628800 bucles. ¡Una gran cantidad de bucles, de solo 10 elementos! Para una persona es fácil. Encuentra el duplicado:
1 8 3 5 5. y luego 2 5 9 1 8 6 5 3 7 4.

Creo que manifestaciones como esta dicen mucho. Esto también sería cierto entre una PC moderna y una PC con DOS o Windows 3. No es que esto sea una cosa de Mac vs. PC. Incluso las Mac más nuevas tenderán a arrancar más lentamente que las Mac más antiguas. Sólo mira.

Solía ​​haber un mejor video que mostraba un poco más de detalles sobre cómo la computadora más antigua era más rápida. Vi uno en el que el tipo arrancó una PC con Vista y una Mac SE con un HD SCSI al mismo tiempo, y luego pasó por el proceso con ambos, arrancando un procesador de texto, y luego cerrándolo, y luego apagándolo. Ambas computadoras. Comenzó y cerró las cosas en cuanto surgió la oportunidad (no esperó a que la PC terminara de arrancar, por ejemplo, antes de iniciar el procesador de textos en la Mac, etc.). La vieja Mac todavía venció a la PC más nueva por un margen notable en términos de velocidad.

La gente señaló que la PC más nueva podría hacer cosas como navegar por la web y reproducir audio y video en línea mejor que la vieja Mac. También podía reproducir películas desde DVD, lo que la vieja Mac no podía. No contestaré nada de eso, pero eso es en gran medida una función del hardware. El software era lo que ralentizaba la PC.

Depende de lo que estés midiendo. ¿Estás midiendo el tiempo para ejecutar las instrucciones específicas que realizan una tarea? Si es así, para muchas tareas, la respuesta es sí, es increíblemente rápido, especialmente en comparación con los (¿buenos?) Viejos días de memoria central y relojes de procesador de un solo dígito (o sub) MHz.

¿Está midiendo la cantidad de tiempo entre el inicio de la llamada desde el espacio del usuario hasta la reanudación de la ejecución en el espacio del usuario? Entonces la respuesta es que depende. Si la llamada tiene el potencial de bloquear la espera de E / S o la contención de recursos, me temo que su velocidad debido a un procesador más rápido puede no parecer tan impresionante. Por ejemplo, los discos son lentos; la latencia rotacional y el tiempo de movimiento de la cabeza no cambian porque tiene memoria rápida o un procesador rápido. Si hay varias solicitudes en la cola del disco, mucho más tiempo antes de que vuelva su llamada. Y, por supuesto, es posible que tenga un retraso adicional en función de la política de programación existente. Si esto es lo que mide, puede pensar que el procesador y la memoria más rápidos no lo beneficiaron en absoluto.

La estructura del sistema operativo y el tipo de operación que está solicitando también pueden afectar el tiempo total de respuesta. Si está ejecutando en un sistema basado en micro-kernel y solicita un servicio implementado en una tarea separada de espacio de usuario, entonces debe incluir el tiempo para cambiar las tareas al servidor y viceversa. Eso puede ser rápido si la solicitud no se bloquea y el sistema operativo implementa algo como continuaciones; pero aún requiere tiempo de cambio de contexto de subproceso / tarea. Por supuesto, si la solicitud va a un recurso contendido, entonces tiene la posibilidad de bloquear y estar sujeto a los caprichos de la carga del sistema y las políticas del planificador.

La causa principal del retraso en un sistema operativo es la unidad de disco duro. Es por eso que las computadoras se benefician tanto de tener un SSD.

Esto se debe a que el HDD tiene que girar para encontrar el archivo que necesita y el giro lleva tiempo. A veces, el HDD se detiene por completo para ahorrar energía y tiene que comenzar a girar nuevamente.

Además, por qué Windows es la mayoría de las veces más lento que otros sistemas operativos es porque utiliza el sistema de archivos NTFS que se fragmenta después de un tiempo y esto reduce el rendimiento.
Lea más sobre esto aquí: La verdad sobre la desfragmentación

Por otro lado, cuando tiene una cantidad limitada de RAM, puede producirse una paginación que coloca los datos que deberían estar en la RAM en el HDD. Esta es una operación muy lenta.

Ya hay muchas buenas respuestas aquí, pero agregaré esto (de la manera más comprensible que puedo esperar que obtengas): nuestra computadora está creada no solo para realizar tareas más rápido, sino para hacer más de ellas en muy poco tiempo. El último requisito ha planteado muchos problemas y uno de ellos se llama punto muerto . Piensa en dos hombres que intentan cruzar al otro en un puente muy estrecho y entenderás qué es un punto muerto. El problema del punto muerto es que, en la mayoría de los casos, el esfuerzo para desenredarlo se vuelve aún más grande que el problema en sí (en el caso de “2 hombres en el puente” arriba mencionados, es que un hombre debe retroceder a su punto de inicio, ¿y si ¿los dos se niegan a hacerlo? ¿Qué hará usted, el árbitro,?

Se han pensado buenos algoritmos de gestión, pero parece que la ley mencionada todavía tiene su lugar. Y el último (pero no menos importante) método que usan nuestras computadoras (no estoy seguro acerca de las máquinas que no son para uso personal) es ignorarlo . Deje que las tareas se ejecuten hasta el final o intente reclamar recursos ellos mismos. Deje que los dos hombres de arriba decidan a quién retroceder. Déjelo como está (el sistema puede fallar, el usuario puede reiniciarlo con algunas quejas, …).

¿Y, qué piensas? Parece extraño, ¿verdad? Pero a veces es mejor que horas de congelación, tratando de desenredar algunas rutinas casi “irrefutables”, sin mencionar que el entorno digital cambia constantemente y, desde afuera, las nuevas declaraciones de los usuarios llegan como lluvia debido a su impaciencia en tal situación.

Solo para saber una de las millones de cosas que mantienen la velocidad de nuestra computadora …

El sistema tiene que leer desde el disco duro con lento. Si bien el SSD aceleró las operaciones, todavía no es tan rápido como el ram, aunque es mucho más costoso que un disco duro tradicional.

La computadora es tan rápida como el componente más lento. Si bien los SSD son excelentes en velocidad, todavía tienen aspectos negativos como ciclos limitados de lectura / escritura que pueden hacer que tengan una vida mucho más corta que un HDD.

Una matriz NAS que administro tiene un SSD de 250 gb para el almacenamiento en caché y necesitaba ser reemplazado después de 1,5 años en servicio. Donde como el HDD puede durar 5-7 años. Dentro de los próximos 10 años deberíamos ver SSD que puede mantenerse a la par con el HDD tradicional.

Suceden casi instantáneamente.

Intenta revisar directorios grandes en un Pentium 2 :).

La computadora es la cosa más compleja que los humanos han hecho. Es sutil y delicada. Por ejemplo, si su computadora está bien, excepto que el disco duro no funciona correctamente y demorará 0.01 segundos para transmitir los datos. Qué sucederá? Imagine un Ferrari utiliza rueda de madera。

En los primeros días, cuando no había computadora o Mac, no había una frase como “Tengo un error en mi computadora”. Con el advenimiento de nuevas cosas y tecnologías, también vienen con ellos nuevos problemas.

Me gustaría responder la pregunta, sin embargo, no tengo argumentos concluyentes para hacer ahora. Estoy trabajando principalmente en computadoras teóricas lejos de los sistemas. Avíseme si tiene alguna pregunta al respecto.

(En broma, pero cierto): ¡Lo que el hardware da, el software quita!