1. Máquina extendida:
El sistema operativo extiende las capacidades del hardware subyacente, lo que hace que sea más fácil y más eficiente para que los usuarios y aplicaciones interactúen. Hace esto de varias maneras:
* abstracción: El sistema operativo oculta las complejidades del hardware del usuario y las aplicaciones. En lugar de tratar las instrucciones de bajo nivel para la gestión de la memoria, el acceso al disco o la comunicación de red, los programas interactúan con el sistema operativo a través de API de alto nivel (interfaces de programación de aplicaciones). Esto simplifica el desarrollo y hace que el sistema sea más fácil de usar. Por ejemplo, un programador no necesita preocuparse por qué sector de disco específico para escribir; Simplemente usan una función del sistema de archivos.
* Virtualización: El sistema operativo crea recursos virtuales que no corresponden directamente a los componentes de hardware físico. Esto es crucial para la asignación multitarea y eficiente de recursos. Por ejemplo, la memoria virtual permite que los programas usen más memoria de la disponible físicamente cambiando partes del programa entre RAM y el disco duro. Virtual Machines (VMS) proporcionan entornos aislados, ejecutando múltiples sistemas operativos en una sola máquina.
* Funcionalidad mejorada: El sistema operativo proporciona servicios que el hardware en sí no ofrece, como un sistema de archivos, conectividad de red y una interfaz gráfica de usuario (GUI). Estos servicios se construyen en la parte superior del hardware, ampliando su funcionalidad más allá de sus capacidades básicas.
2. Gerente de recursos:
El sistema operativo administra los recursos de hardware y software de la computadora de manera eficiente y de manera justa, asegurando que todos los programas y usuarios en ejecución tengan acceso a lo que necesitan. Esto incluye:
* Gestión de memoria: Asignar y desear la memoria a diferentes procesos, prevenir conflictos y garantizar el uso eficiente de la RAM disponible.
* Gestión del procesador (programación): Determinar qué procesos obtienen tiempo de CPU y por cuánto tiempo, garantizar la capacidad de respuesta y la asignación justa de la potencia de procesamiento. Los diferentes algoritmos de programación se optimizan para diferentes objetivos (por ejemplo, minimizando el tiempo de respuesta, maximizando el rendimiento).
* gestión de I/o: Administración de operaciones de entrada y salida, como entrada de teclado, clics del mouse, acceso a disco y comunicación de red. Esto implica amortiguar datos, hacer colas y coordinar el uso de periféricos.
* Gestión del sistema de archivos: Organizar y administrar archivos y directorios en dispositivos de almacenamiento. Esto incluye la administración de permisos de acceso a archivos, proporcionar métodos para crear, eliminar y modificar archivos, y garantizar la integridad de los datos.
* Gestión de seguridad: Controlar el acceso a los recursos, prevenir el acceso y el uso no autorizados, y proteger el sistema del malware.
En resumen, el sistema operativo actúa como una máquina extendida al abstraer las complejidades de hardware, agregar funcionalidad y crear recursos virtuales. Simultáneamente, funciona como un administrador de recursos, asignando y controlando eficientemente el acceso a esos recursos (tanto físicos como virtuales), asegurando una operación de sistema justa y eficiente. Estos dos roles están entrelazados; Las características de la máquina extendida se basan en las capacidades de gestión de recursos, y las funciones de gestión de recursos se hacen más eficientes y robustas a través de la abstracción proporcionada por el aspecto de la máquina extendida.