¿Cómo funcionan los sistemas operativos?

¿Cómo funcionan los sistemas operativos?

Cuando enciendes tu computadora , es bueno pensar que tienes el control. Está el fiel ratón de la computadora , que puedes mover a cualquier lugar de la pantalla, invocando tu biblioteca de música o navegador de Internet al mínimo capricho.

Aunque es fácil sentirse como un director frente a su computadora de escritorio o portátil , hay muchas cosas sucediendo dentro, y el verdadero hombre detrás de la cortina que maneja las tareas necesarias es el sistema operativo.sistemas-operativos

La mayoría de las PC de escritorio o portátiles vienen precargadas con Microsoft Windows. Las computadoras Macintosh vienen precargadas con Mac OS X. Muchos servidores corporativos usan los sistemas operativos Linux o UNIX.

El sistema operativo (SO) es lo primero que se carga en la computadora: sin el sistema operativo, una computadora no sirve para nada.

Más recientemente, los sistemas operativos también han comenzado a aparecer en computadoras más pequeñas.

Si le gusta jugar con dispositivos electrónicos, probablemente esté satisfecho de que ahora se pueden encontrar sistemas operativos en muchos de los dispositivos que usamos todos los días, desde teléfonos celulares hasta puntos de acceso inalámbricos.

Las computadoras utilizadas en estos pequeños dispositivos se han vuelto tan poderosas que ahora pueden ejecutar un sistema operativo y aplicaciones.

La computadora en un teléfono celular moderno típico es ahora más poderosa que una computadora de escritorio de hace 20 años, por lo que esta progresión tiene sentido y es un desarrollo natural.

El propósito de un sistema operativo es organizar y controlar el hardware y el software para que el dispositivo en el que vive se comporte de manera flexible pero predecible.

En este artículo, le diremos lo que debe hacer una pieza de software para llamarse un sistema operativo, le mostraremos cómo funciona el sistema operativo en su computadora de escritorio y le daremos algunos ejemplos de cómo tomar el control de los otros sistemas operativos que se encuentran alrededor.

¿Qué es un sistema operativo?

No todas las computadoras tienen sistemas operativos. La computadora que controla el horno de microondas en su cocina, por ejemplo, no necesita un sistema operativo.

Tiene un conjunto de tareas para realizar, una entrada muy sencilla que se puede esperar (un teclado numérico y unos pocos botones preestablecidos) y un hardware simple que nunca cambia al control.

Para una computadora como esta, un sistema operativo sería un equipaje innecesario, aumentando significativamente los costos de desarrollo y fabricación y agregando complejidad donde no se requiera. En su lugar, la computadora en un horno de microondas simplemente ejecuta un solo programa fijo todo el tiempo.

Para otros dispositivos, un sistema operativo crea la capacidad de:

  1. Servir a una variedad de propósitos
  2. Interactuar con usuarios de formas más complicadas.
  3. Mantenerse al día con las necesidades que cambian con el tiempo
  4. Todas las computadoras de escritorio tienen sistemas operativos.

Los más comunes son la familia de sistemas operativos Windows desarrollados por Microsoft , los sistemas operativos Macintosh desarrollados por Apple y la familia de sistemas operativos UNIX (desarrollados por toda una historia de individuos, corporaciones y colaboradores).

Hay cientos de otros sistemas operativos disponibles para aplicaciones especiales, incluidas las especializaciones para mainframes, robótica, fabricación, sistemas de control en tiempo real, etc.

En cualquier dispositivo que tenga un sistema operativo, generalmente hay una forma de hacer cambios en la forma en que funciona el dispositivo.

Esto está lejos de ser un feliz accidente; Una de las razones por las que los sistemas operativos están hechos de código portátil en lugar de circuitos físicos permanentes es para poder cambiarlos o modificarlos sin tener que desechar todo el dispositivo.

Para un usuario de computadora de escritorio, esto significa que puede agregar una nueva actualización de seguridad, un parche del sistema, una nueva aplicación o incluso un sistema operativo completamente nuevo en lugar de desechar su computadora y comenzar de nuevo con una nueva cuando necesite hacer un cambio.

Mientras entienda cómo funciona un sistema operativo y cómo llegar a él, en muchos casos puede cambiar algunas de las formas en que se comporta. Lo mismo ocurre con su teléfono, también.

Independientemente del dispositivo que ejecute un sistema operativo, ¿qué puede hacer exactamente?

Funciones del sistema operativo

En el nivel más simple, un sistema operativo hace dos cosas:

Gestiona los recursos de hardware y software del sistema. En una computadora de escritorio , estos recursos incluyen elementos como el procesador , la memoria , el espacio en disco y más (en un teléfono celular , incluyen el teclado, la pantalla, la libreta de direcciones, el marcador del teléfono, la batería y la conexión de red).

Proporciona una forma estable y consistente para que las aplicaciones traten con el hardware sin tener que conocer todos los detalles del hardware.

La primera tarea, administrar los recursos de hardware y software, es muy importante, ya que varios programas y métodos de entrada compiten por la atención de la unidad central de procesamiento (CPU) y la memoria de demanda, el almacenamiento y el ancho de banda de entrada / salida (E / S) para su Propósitos propios.

En esta capacidad, el sistema operativo desempeña el papel de buen padre, asegurándose de que cada aplicación obtenga los recursos necesarios mientras juega bien con todas las demás aplicaciones, además de controlar la capacidad limitada del sistema para el mayor bien de todos. Usuarios y aplicaciones.

La segunda tarea, proporcionar una interfaz de aplicación consistente, es especialmente importante si va a haber más de uno de un tipo particular de computadora utilizando el sistema operativo, o si el hardware que conforma la computadora está siempre abierto al cambio.

Una interfaz de programa de aplicación (API) consistente permite que un desarrollador de software escriba una aplicación en una computadora y tenga un alto nivel de confianza de que se ejecutará en otra computadora del mismo tipo, incluso si la cantidad de memoria o la cantidad de almacenamiento es Diferentes en las dos máquinas.

Incluso si una computadora en particular es única, un sistema operativo puede garantizar que las aplicaciones continúen ejecutándose cuando se producen actualizaciones y actualizaciones de hardware.

Esto se debe a que el sistema operativo, no la aplicación, se encarga de administrar el hardware y la distribución de sus recursos.

Uno de los desafíos que enfrentan los desarrolladores es mantener sus sistemas operativos lo suficientemente flexibles como para ejecutar hardware de los miles de proveedores que fabrican equipos informáticos.

Los sistemas actuales pueden acomodar miles de impresoras diferentes, unidades de disco y periféricos especiales en cualquier combinación posible.

Tipos de sistemas operativos

Dentro de la amplia familia de sistemas operativos, generalmente hay cuatro tipos, categorizados según los tipos de computadoras que controlan y el tipo de aplicaciones que admiten. Las categorías son:

Sistema operativo en tiempo real (RTOS): los sistemas operativos en tiempo real se utilizan para controlar maquinaria, instrumentos científicos y sistemas industriales. Un RTOS generalmente tiene muy poca capacidad de interfaz de usuario y no tiene utilidades para el usuario final, ya que el sistema será una “caja sellada” cuando se entregue para su uso.

Una parte muy importante de un RTOS es administrar los recursos de la computadora para que una operación particular se ejecute exactamente en la misma cantidad de tiempo, cada vez que ocurre.

En una máquina compleja, mover una pieza más rápidamente solo porque los recursos del sistema están disponibles puede ser tan catastrófico como que no se mueva porque el sistema está ocupado.

Usuario único, tarea única : como su nombre lo indica, este sistema operativo está diseñado para administrar la computadora de modo que un usuario pueda hacer una cosa a la vez. Las computadoras de mano Palm OS for Palm son un buen ejemplo de un sistema operativo moderno de un solo usuario y una sola tarea.

Usuario único, multitarea : este es el tipo de sistema operativo que la mayoría de la gente usa en sus computadoras de escritorio y portátiles en la actualidad.

Windows de Microsoft y las plataformas MacOS de Apple son ejemplos de sistemas operativos que permitirán que un solo usuario tenga varios programas en funcionamiento al mismo tiempo.

Por ejemplo, es completamente posible que un usuario de Windows esté escribiendo una nota en un procesador de textos mientras descarga un archivo de Internet mientras imprime el texto de un mensaje de correo electrónico.

Multiusuario : un sistema operativo multiusuario permite que muchos usuarios diferentes aprovechen los recursos de la computadora simultáneamente.

El sistema operativo debe asegurarse de que los requisitos de los distintos usuarios estén equilibrados y de que cada uno de los programas que utilizan tenga recursos suficientes y separados para que un problema con un usuario no afecte a toda la comunidad de usuarios.

Los sistemas operativos Unix, VMS y mainframe, como MVS , son ejemplos de sistemas operativos multiusuario.

Es importante diferenciar entre los sistemas operativos multiusuario y los sistemas operativos de un solo usuario que admiten redes.

Windows 2000 y Novell Netware pueden admitir a cientos o miles de usuarios en red, pero los sistemas operativos en sí mismos no son verdaderos sistemas operativos multiusuario. El administrador del sistema es el único “usuario” para Windows 2000 o Netware.

El soporte de red y todos los inicios de sesión de usuarios remotos que la red habilita son, en el plan general del sistema operativo, un programa que está ejecutando el usuario administrativo.

Con los diferentes tipos de sistemas operativos en mente, es hora de ver las funciones básicas proporcionadas por un sistema operativo.

Sistemas Operativos de Computadoras

Cuando enciende la computadora, el primer programa que se ejecuta generalmente es un conjunto de instrucciones que se guardan en la memoria de solo lectura (ROM) de la computadora .

Este código examina el hardware del sistema para asegurarse de que todo funciona correctamente.

Esta autoprueba de encendido (POST) verifica la CPU, la memoria y los sistemas básicos de entrada y salida (BIOS) para detectar errores y almacena el resultado en una ubicación de memoria especial. Una vez que la POST se haya completado con éxito, el software cargado en la ROM (a veces llamado BIOS o firmware ) comenzará a activar las unidades de disco de la computadora.

En la mayoría de las computadoras modernas, cuando la computadora activa la unidad de disco duro, encuentra la primera parte del sistema operativo:cargador de arranque .

El cargador de arranque es un pequeño programa que tiene una sola función: carga el sistema operativo en la memoria y le permite comenzar a operar.

En la forma más básica, el cargador de arranque configura los pequeños programas de controladores que se interconectan y controlan los diversos subsistemas de hardware de la computadora.

Establece las divisiones de memoria que contienen el sistema operativo, la información del usuario y las aplicaciones.

Establece las estructuras de datos que contendrán las innumerables señales, indicadores y semáforos que se utilizan para comunicarse dentro y entre los subsistemas y aplicaciones de la computadora. Luego, convierte el control de la computadora en el sistema operativo.

Las tareas del sistema operativo, en el sentido más general, se dividen en seis categorías:

  1. Gestión del procesador
  2. La Gestión de la memoria
  3. Gestión de dispositivos
  4. Administración de almacenamiento
  5. Interfaz de aplicación
  6. Interfaz de usuario

Si bien hay algunos que argumentan que un sistema operativo debería hacer más que estas seis tareas, y algunos proveedores de sistemas operativos sí construyen muchos más programas de utilidad y funciones auxiliares en sus sistemas operativos, estas seis tareas definen el núcleo de casi todos los sistemas operativos.

A continuación, veamos las herramientas que utiliza el sistema operativo para realizar cada una de estas funciones.

Gestión del procesador

El corazón de la administración del procesador se reduce a dos problemas relacionados:

Asegurar que cada proceso y aplicación reciba suficiente tiempo del procesador para funcionar correctamente

Utilizando tantos ciclos de procesador como sea posible para un trabajo real
La unidad básica de software con la que se ocupa el sistema operativo para programar el trabajo realizado por el procesador es un proceso o un subproceso , según el sistema operativo.

Es tentador pensar en un proceso como una aplicación, pero eso da una imagen incompleta de cómo se relacionan los procesos con el sistema operativo y el hardware.

La aplicación que ve (procesador de textos, hoja de cálculo o juego) es, de hecho, un proceso, pero esa aplicación puede hacer que comiencen otros procesos, para tareas como la comunicación con otros dispositivos u otras computadoras.

También hay numerosos procesos que se ejecutan sin darle evidencia directa de que existan.

Por ejemplo, Windows XP y UNIX pueden tener docenas de procesos en segundo plano en ejecución para manejar la red, la administración de la memoria, la administración de discos, las revisiones de virus , etc.

Un proceso, entonces, es un software que realiza alguna acción y puede ser controlado por un usuario, por otras aplicaciones o por el sistema operativo.

Son los procesos, en lugar de las aplicaciones, los que el sistema operativo controla y programa para la ejecución por parte de la CPU. En un sistema de una sola tarea, el horario es sencillo.

El sistema operativo permite que la aplicación comience a ejecutarse, suspendiendo la ejecución solo el tiempo suficiente para tratar las interrupciones y la entrada del usuario.

Las interrupciones son señales especiales enviadas por hardware o software a la CPU. Es como si alguna parte de la computadora de repente levantara la mano para pedir la atención de la CPU en una reunión animada.

A veces, el sistema operativo programará la prioridad de los procesos para que las interrupciones se oculten, es decir, el sistema operativo ignorará las interrupciones de algunas fuentes para que un trabajo en particular se pueda terminar lo más rápido posible.

Hay algunas interrupciones (como las debidas a condiciones de error o problemas con la memoria ) que son tan importantes que no se pueden ignorar. Estas interrupciones no enmascarables (NMI) deben tratarse de inmediato, independientemente de las otras tareas a la mano.

Mientras que las interrupciones agregan alguna complicación a la ejecución de procesos en un sistema de tarea única, el trabajo del sistema operativo se vuelve mucho más complicado en un sistema multitarea.

Ahora, el sistema operativo debe organizar la ejecución de las aplicaciones para que usted crea que suceden varias cosas a la vez. Esto es complicado porque la CPU solo puede hacer una cosa a la vez.

Los procesadores de múltiples núcleos y las máquinas con múltiples procesadores de hoy en día pueden manejar más trabajo, pero cada núcleo de procesador aún es capaz de administrar una tarea a la vez.

Para dar la apariencia de que suceden muchas cosas al mismo tiempo, el sistema operativo tiene que cambiar entre diferentes procesos miles de veces por segundo. Así es como sucede:

Un proceso ocupa una cierta cantidad de RAM. También hace uso de registros, pilas y colas dentro de la CPU y el espacio de memoria del sistema operativo.

Cuando dos procesos son multitarea, el sistema operativo asigna un cierto número de ciclos de ejecución de la CPU a un programa.

Después de ese número de ciclos, el sistema operativo hace copias de todos los registros, pilas y colas utilizados por los procesos, y señala el punto en el que el proceso se detuvo en su ejecución.

Luego carga todos los registros, pilas y colas utilizados por el segundo proceso y le permite un cierto número de ciclos de CPU.

Cuando están completos, hace copias de todos los registros, pilas y colas utilizadas por el segundo programa, y ​​carga el primer programa. Este contenido no es compatible en este dispositivo.

Bloque de control de proceso

Toda la información necesaria para realizar un seguimiento de un proceso cuando la conmutación se guarda en un paquete de datos denominado bloque de control de proceso. El bloque de control de proceso normalmente contiene:

  1. Un número de identificación que identifica el proceso.
  2. Indicadores a las ubicaciones en el programa y sus datos donde se procesó por última vez.
  3. Registrar contenidos.
  4. Estados de varias banderas e interruptores.
  5. Punteros a los límites superior e inferior de la memoria requerida para el proceso.
  6. Una lista de archivos abiertos por el proceso.
  7. La prioridad del proceso.
  8. El estado de todos los dispositivos de E / S que necesita el proceso.

Cada proceso tiene un estado asociado a él. Muchos procesos no consumen tiempo de CPU hasta que obtienen algún tipo de entrada.

Por ejemplo, un proceso puede estar esperando una pulsación del usuario. Mientras está esperando la pulsación de tecla, no usa tiempo de CPU.

Mientras espera, se ” suspende “. Cuando llega la pulsación de tecla, el sistema operativo cambia su estado.

Cuando el estado del proceso cambia, de pendiente a activo, por ejemplo, o de suspendido a en ejecución, la información en el bloque de control de proceso se debe utilizar como los datos en cualquier otro programa para dirigir la ejecución de la parte de cambio de tarea de la sistema operativo.

Este intercambio de procesos ocurre sin la interferencia directa del usuario, y cada proceso recibe suficientes ciclos de CPU para realizar su tarea en un tiempo razonable.

El problema puede comenzar si el usuario intenta tener demasiados procesos funcionando al mismo tiempo.

El propio sistema operativo requiere algunos ciclos de CPU para realizar el guardado y el intercambio de todos los registros, colas y pilas de los procesos de la aplicación.

Si se inician suficientes procesos, y si el sistema operativo no se ha diseñado cuidadosamente, el sistema puede comenzar a utilizar la gran mayoría de los ciclos de CPU disponibles para intercambiar procesos en lugar de ejecutar procesos.

Cuando esto sucede, se denomina golpeteo , y generalmente requiere algún tipo de intervención directa del usuario para detener los procesos y devolver el orden al sistema.

Una forma en que los diseñadores de sistemas operativos reducen la posibilidad de sufrir es reduciendo la necesidad de nuevos procesos para realizar diversas tareas.

Algunos sistemas operativos permiten un ” proceso liviano “, llamado subproceso , que puede tratar todo el trabajo intensivo de la CPU de un proceso normal, pero en general no se ocupa de los diversos tipos de E / S y no establece estructuras que requieran El bloque de control de proceso extenso de un proceso regular.

Un proceso puede iniciar muchos subprocesos u otros procesos, pero un subproceso no puede iniciar un proceso.

Hasta ahora, toda la programación que hemos discutido se ha referido a una sola CPU. En un sistema con dos o más CPU, el sistema operativo debe dividir la carga de trabajo entre las CPU, tratando de equilibrar las demandas de los procesos requeridos con los ciclos disponibles en las diferentes CPU.

Los sistemas operativos asimétricos usan una CPU para sus propias necesidades y dividen los procesos de aplicación entre las CPU restantes.

Los sistemas operativos simétricos se dividen entre las distintas CPU, equilibrando la demanda frente a la disponibilidad de la CPU incluso cuando el sistema operativo en sí es todo lo que se está ejecutando.

Si el sistema operativo es el único software con necesidades de ejecución, la CPU no es el único recurso que se debe programar. La administración de la memoria es el siguiente paso crucial para garantizar que todos los procesos se ejecuten sin problemas.

Almacenamiento y gestión de memoria

Cuando un sistema operativo administra la memoria de la computadora , hay dos tareas generales que deben realizarse:

Cada proceso debe tener suficiente memoria para ejecutarse, y no puede ejecutarse en el espacio de memoria de otro proceso ni puede ser ejecutado por otro proceso.

Los diferentes tipos de memoria en el sistema deben usarse correctamente para que cada proceso pueda ejecutarse de la manera más efectiva.

La primera tarea requiere que el sistema operativo configure los límites de la memoria para los tipos de software y para las aplicaciones individuales.

Como ejemplo, veamos un sistema pequeño imaginario con 1 megabyte (1,000 kilobytes) de RAM . Durante el proceso de arranque, el sistema operativo de nuestra computadora imaginaria está diseñado para ir a la parte superior de la memoria disponible y luego “hacer una copia de seguridad” lo suficiente para satisfacer las necesidades del propio sistema operativo.

Digamos que el sistema operativo necesita 300 kilobytes para funcionar. Ahora, el sistema operativo va a la parte inferior del grupo de RAM y comienza a acumularse con el software de controlador necesario para controlar los subsistemas de hardware de la computadora.

En nuestra computadora imaginaria , los controladores ocupan 200 kilobytes. Entonces, una vez que el sistema operativo está completamente cargado, quedan 500 kilobytes para los procesos de la aplicación.

Cuando las aplicaciones comienzan a cargarse en la memoria, se cargan en tamaños de bloque determinados por el sistema operativo. Si el tamaño del bloque es de 2 kilobytes, entonces a cada proceso que se cargue se le asignará una porción de memoria que es un múltiplo de 2 kilobytes de tamaño.

Las aplicaciones se cargarán en estos tamaños de bloque fijo, con los bloques comenzando y terminando en los límites establecidos por palabras de 4 u 8 bytes.

Estos bloques y límites ayudan a garantizar que las aplicaciones no se carguen en la parte superior del espacio del otro por uno o dos bits mal calculados. Con esto asegurado, la pregunta más grande es qué hacer cuando se llena el espacio de aplicación de 500 kilobytes.

En la mayoría de las computadoras, es posible agregar memoria más allá de la capacidad original. Por ejemplo, puede expandir la memoria RAM de 1 a 2 gigabytes. Esto funciona bien, pero puede ser relativamente caro.

También ignora un hecho fundamental de la computación: la mayor parte de la información que una aplicación almacena en la memoria no se usa en un momento dado.

Un procesador solo puede acceder a la memoria de una ubicación a la vez, por lo que la gran mayoría de la RAM no se utiliza en ningún momento.

Dado que el espacio en el disco es barato en comparación con la RAM, entonces mover la información de la RAM al disco duro puede expandir el espacio de la RAM sin ningún costo. Esta técnica se llama gestión de memoria virtual .

Interfaz de usuario

Al igual que la API proporciona una forma consistente para que las aplicaciones usen los recursos del sistema informático , una interfaz de usuario (UI) aporta una estructura a la interacción entre un usuario y la computadora.

En la última década, casi todo el desarrollo de las interfaces de usuario se ha realizado en el área de la interfaz gráfica de usuario (GUI), con dos modelos, el Macintosh de Apple y el Windows de Microsoft, que reciben la mayor parte de la atención y ganan la mayor parte de la cuota de mercado. El popular sistema operativo Linux de código abierto también es compatible con una interfaz gráfica de usuario.

Existen otras interfaces de usuario, algunas gráficas y otras no, para otros sistemas operativos.

Desarrollo del sistema operativo

Para los sistemas de escritorio, el acceso a una LAN o a Internet se ha convertido en una característica tan esperada que, en muchos aspectos, es difícil hablar de un sistema operativo sin hacer referencia a sus conexiones a otras computadoras y servidores.

Los desarrolladores de sistemas operativos han hecho de Internet el método estándar para entregar actualizaciones cruciales de sistemas operativos y correcciones de errores.

Aunque es posible recibir estas actualizaciones a través de un CD o DVD , cada vez es menos común. De hecho, algunos sistemas operativos completos solo están disponibles a través de la distribución a través de Internet.

Te Puede Interesar:

Cómo funcionan los firewalls ?

Sistema Respiratorio: Las Partes, funciones y enfermedades

Comentarios
¿Te ha sido de utilidad el artículo?
[Votos: 4 Promedio: 5]