Escuché que existe un sistema operativo especialmente diseñado para juegos. ¿Cómo se llama?
¡Los sistemas operativos de XBOX y XBOX360 están especialmente diseñados para sus juegos!
Consulta aquí para más detalles
: ¿Por qué las videoconsolas son más eficientes que las PC con la misma configuración?
No sé si te habrás dado cuenta de que bajo el mismo nivel de hardware, la eficiencia de ejecución de las videoconsolas no es ni un poquito superior a la de los PC.
Este problema me ha estado molestando desde que me acostumbré a jugar juegos con gráficos inferiores en la PC 80486 y de repente vi los magníficos gráficos 3D en la Playstation 1. Esto no sólo es válido para la serie PS, sino también para otras consolas.
No fue hasta que leí un artículo en hi-pda escrito por un héroe de UGlee que de repente entendí que el artículo del héroe originalmente trataba sobre POC
entre ket pc y palm os. pda Debido a la diferencia en la eficiencia de ejecución entre los dos, descubrí que se puede aplicar entre PC y consolas de juegos con ligeras modificaciones. El documento es el siguiente:
*************************************** *** *************************
La PC es un sistema multitarea en el sentido convencional en términos de memoria uso Tiene administración de memoria La unidad está basada en hardware (en la CPU), por lo que cada programa de usuario tiene su propio espacio de memoria de programa independiente, espacio de memoria de datos estáticos y espacio de pila. El uso de memoria dinámica significa que cuando crea un nuevo objeto en lenguaje C o memoria Malloc, utiliza el espacio de memoria dinámica compartido por todos los programas del sistema.
Debido al uso de la unidad de administración de memoria, tiene buenas características de protección de procesos. Es imposible que un programa cambie fácilmente los datos de la memoria de otros programas. Esto también es una garantía de seguridad y estabilidad del sistema. -- Sin embargo, la estabilidad depende más teóricamente del sistema operativo y la premisa es que hay disponible una memoria física infinita. . La teoría de los sistemas operativos que no son en tiempo real no involucra el tiempo de respuesta del programa, ni considera el deterioro del rendimiento del sistema cuando la memoria física es escasa y la respuesta cuando el programa no puede solicitar memoria; esto es exactamente lo real. Entorno mundial de muchos sistemas integrados. Por lo tanto, en aplicaciones prácticas, si el método de diseño de continuar el sistema de escritorio o incluso el servidor satisface las necesidades de los usuarios es un gran signo de interrogación.
En cuanto al sistema Win32, dado que se extiende desde el escritorio, se presta más atención a la compatibilidad futura de los programas o al desarrollo de programas, y existen otras debilidades en la gestión de la memoria. Los problemas típicos son los agujeros de memoria y las pérdidas de memoria. En la arquitectura Win32, el sistema no puede desfragmentar fragmentos de memoria. Incluso si todavía hay mucha memoria disponible, si no hay espacio continuo, todavía no puede solicitar suficiente memoria y la memoria aplicada desde la memoria dinámica del sistema; el programa se olvida. Regresar o el programa se finaliza inesperadamente provocará pérdidas de memoria. Esta es también la razón principal por la que el sistema en el escritorio se vuelve cada vez más lento a medida que lo usamos y la memoria se usa cada vez menos.
Otro problema es que el sistema Win32, como todos los demás sistemas operativos de escritorio, está diseñado para almacenamiento serial no volátil (el predecesor de Win, el sistema operativo DOS-Disk, aunque el disco es un dispositivo físico que se delimitado entre almacenamiento en serie y almacenamiento aleatorio, pero en el concepto de estructura de datos sigue siendo un dispositivo de almacenamiento en serie). Luego, el programa debe cargarse desde el disco antes de la ejecución. Aparece un nuevo proceso en la lista de procesos del sistema operativo, se asigna espacio de pila y espacio de memoria estática y luego el programa se ejecuta. Al abrir un archivo, en la mayoría de los casos es necesario leer primero el archivo o al menos parte del archivo en la memoria, convertirlo a la estructura de datos requerida por el programa y luego volver a serializar los datos y escribirlos en el archivo. después de su uso.
Dado que ejecutar el programa de esta manera es ineficiente, ¿por qué no almacenar el objeto de datos directamente y usarlo en su lugar?
Así se diseñan los sistemas operativos de consola.
Es imposible encontrar un monstruo como el sistema operativo de la consola de juegos en los libros de texto sobre sistemas operativos. Tiene un kernel multitarea, pero solo puede ejecutar un programa de usuario. Tiene controles de gráficos a nivel de sistema. La capa inferior admite la aceleración de gráficos y solo tiene unas pocas docenas de K de espacio en la pila del sistema, y el espacio de memoria dinámica es. incluso menos (la ps2 más potente tiene 32 M y la PS tiene solo 2 M). Cuando el sistema tiene menos de 64 k de memoria que se pueden usar para ejecutar programas en lugar de almacenar texturas y datos del juego, aún puede ejecutar todos los juegos sin problemas.
El sistema operativo de la consola de juegos no tiene soporte multiproceso/multiproceso a nivel de programa de usuario; esta es una deficiencia que lo hará sentir inadecuado al utilizar la transmisión de datos: se manifiesta en algunas aplicaciones multimedia y aplicaciones de red. Pero cuando nos centramos en el proceso de ejecución de un programa, encontraremos el lado excelente del diseño del sistema operativo de la consola de juegos.
Un programa necesita estas memorias cuando se ejecuta en un sistema operativo (PC) multitarea:
1. Un elemento en la lista de procesos del sistema operativo, que registra todos los estados de registro y punteros de memoria de El proceso, de hecho, es la escena de la CPU, que se utiliza para guardar y restaurar la escena al cambiar de programa. Esta parte de la memoria se puede ignorar.
2. El espacio del código de ejecución del programa.
3. El espacio de datos estáticos del programa puede ser grande o pequeño, pero al menos se deben inicializar la interfaz y las variables globales.
4. Espacio de pila, los parámetros se pasan cuando se llaman funciones de usuario. Puede ser grande o pequeño, pero cuando se trata de programación orientada a objetos, es difícil controlar la cantidad de llamadas a funciones anidadas. Incluso algunos programadores con malos estilos de programación a menudo lo usan para transferir objetos de datos grandes, por lo que el espacio de la pila puede ser mayor. ser muy grande.
5. El espacio de almacenamiento dinámico, también conocido como memoria dinámica, almacena objetos temporales desde la perspectiva del programa, pero este espacio temporal suele ser terrible, como cuando se procesan imágenes.
En el sistema operativo de la consola de juegos, se crea un concepto único de almacenamiento dinámico. Normalmente nos referimos a él como el sistema de archivos de la consola de juegos, pero desde la perspectiva del programa más que desde la perspectiva del usuario, es muy diferente de los archivos. Storage Heap se almacena como una base de datos. Tiene comprobaciones de lectura y escritura seguras para garantizar que la seguridad y la integridad de los datos no se destruyan. Puede realizar operaciones de puntero directo y tiene la misma eficiencia que el acceso a la memoria. Entonces, el archivo (este es el nombre desde la perspectiva del usuario) y el objeto de datos (este es el nombre desde la perspectiva del programa) están perfectamente unificados. Y cuando ya no necesitamos convertir archivos en objetos de datos, ¿por qué seguimos necesitando un espacio de almacenamiento dinámico tan grande? (Excepto para aplicaciones de transmisión)
El programa en sí también se coloca en el montón de almacenamiento. Al ejecutarlo, solo necesita apuntar el puntero del segmento de código de la CPU directamente a la entrada del código del programa, e incluso al. El código del programa es No se requiere ningún proceso de carga.
El soporte de control de gráficos del sistema operativo de la consola de juegos en la parte inferior del sistema reduce en gran medida el espacio de memoria requerido para que el programa dibuje la interfaz, por lo que la mayoría de los programas solo necesitan controlar unas pocas variables globales. Unos pocos K de espacio suelen ser muy lujosos.
Dado que el sistema operativo de la consola de juegos solo tiene un programa de usuario que puede ejecutarse y el espacio de pila del sistema es de solo unas pocas docenas de K, los programadores tienen que usar punteros para pasar grandes objetos de datos, lo que no solo reduce los requisitos de memoria. , pero también mejora la eficiencia.
El sistema operativo de consola de juegos también tiene diseños excelentes cuando se trata de pérdidas de memoria y problemas de fragmentación de la memoria. El programa de administración de memoria en segundo plano desfragmentará la memoria cuando esté inactiva o cuando la memoria continua sea insuficiente (los desarrolladores de programas deben usar API específicas para asignar memoria dinámica, pero los desarrolladores de programas Palm harán esto) y también puede reciclar la memoria dinámica que el programa ha olvidado. reciclar.
A través de estos métodos, el sistema operativo de la consola de juegos reduce el uso de la memoria del sistema a un nivel lamentable y, al mismo tiempo, lleva la eficiencia de ejecución del programa al extremo.
******************************************* ***********************
Lo anterior significa que una razón importante por la que las consolas de juegos son más eficientes que las PC es que utilizan alta -eficiencia Con más uso de memoria, puedes crear juegos con gráficos más magníficos usando menos memoria y menos recursos de CPU. En cuanto a la serie Wintel, jaja, en lo que respecta a juegos, no he visto nada mejor que el sistema operativo de la consola de juegos, excepto FPE cuando se realizan múltiples tareas. La ejecución ineficiente de código determina el desperdicio de recursos de hardware.
Desafortunadamente, actualmente no existe ningún sistema operativo en el mercado que pueda evitar la ejecución ineficiente de programas mencionada anteriormente. Todos los programas aún deben cargarse en la memoria antes de poder ejecutarse. Después de todo, el sistema operativo de una PC está diseñado para funcionar, no para jugar. A menos que algún día salga un sistema operativo diseñado específicamente para jugar en PC, me temo que tendremos que afrontar el hecho de que las consolas de juegos son mucho mejores que las PC con el mismo nivel de hardware. Hablando de eso, si alguien descifra el sistema operativo de Xbox para poder instalarlo en una PC, entonces una PC que use una tarjeta gráfica pIII633 GeForce 3 y una unidad de DVD de 64 m de memoria podrá reproducir todos los juegos de Xbox. ver~~~
Fuente: TGFC
Autor: dreamz
Trackback: /TrackBack.aspx?PostId=201166