SISTEMAS OPERATIVOS CON MINIX (1)

Sin su software, una computadora es básicamente un trozo de metal inútil. Con su software, un la computadora puede almacenar, procesar y recuperar información, reproducir música y videos, enviar correo electrónico, buscar en internet y participar en muchas otras actividades valiosas para ganarse la vida. El software se puede dividir en dos clases: programas del sistema, que gestionan el funcionamiento de la propia computadora y los programas de aplicación, que realizan el trabajo real que el usuario desea. El programa de sistema más fundamental es el sistema operativo, cuyo trabajo es controlar todos los recursos de la computadora y proporcionan una base sobre la cual se pueden escribir los programas de aplicación. Los sistemas operativos son el tema de estos post. En particular, un sistema operativo llamado MINIX 3 es utilizado como modelo, para ilustrar los principios de diseño y las realidades de la implementación de un diseño.
Un sistema informático moderno consta de uno o más procesadores, memoria principal, discos, impresoras, un teclado, una pantalla, interfaces de red y otros dispositivos de entrada / salida. Escribir programas que realicen un seguimiento de todos estos componentes y los utilicen correctamente, de manera óptima, es un trabajo extremadamente difícil. Si cada programador tuviera que estar preocupado por cómo funcionan las unidades de disco, y con todas las docenas de cosas que podrían salir mal cuando se lee un bloque de disco, es poco probable que se puedan escribir muchos programas. Hace muchos años quedó muy claro que tenía que encontrar alguna forma de proteger a los programadores de la complejidad del hardware. La forma en que ha evolucionado gradualmente es poner una capa de software sobre el hardware básico, para administrar todas las partes del sistema y presentar al usuario una interfaz o máquina virtual más fácil de entender y programar. Esta capa de software es el sistema operativo.

Sistema computador

La ubicación del sistema operativo se muestra en la figura de arriba. En la parte inferior está el hardware, que, en muchos casos, se compone a su vez de dos o más niveles (o capas). El nivel mas bajo contiene dispositivos físicos, que consisten en chips de circuitos integrados, cables, fuentes de alimentación, tubos de rayos catódicos y dispositivos físicos similares. Cómo se construyen y cómo funcionan es el trabajo del ingeniero eléctrico.

Luego viene el nivel de microarquitectura, en el que los dispositivos físicos se agrupan para forman unidades funcionales. Normalmente, este nivel contiene algunos registros internos de la CPU (Unidad Central de procesamiento) y una datapath que contiene una unidad lógica aritmética. En cada ciclo de reloj, uno o dos operandos se obtienen de los registros y se combinan en la unidad lógica aritmética (por ejemplo, por adición o boolean AND). El resultado se almacena en uno o más registros. En algunas máquinas, la operación del datapath está controlada por un software, llamado microprograma. En otras máquinas, está controlado directamente por circuitos de hardware. El propósito del datapath es ejecutar un conjunto de instrucciones. Algunos de estos se pueden consumir un ciclo del datapath, otros pueden requerir múltiples ciclos del datapath. Estas instrucciones pueden utilizar registros u otros módulos de hardware. Juntos, el hardware y las instrucciones visibles para un programador en lenguaje ensamblador es a menudo llamado lenguaje de máquina.
El lenguaje de máquina normalmente tiene entre 50 y 300 instrucciones, principalmente para mover datos dentro de la máquina, haciendo aritmética y comparando valores. En este nivel, los dispositivos de entrada/ salida se controlan cargando valores en registros de dispositivos especiales. Por ejemplo, un disco puede ser leido cargando los valores de la dirección del disco, la dirección de la memoria principal, el recuento de bytes, y dirección (leer o escribir) en sus registros. En la práctica, se necesitan muchos más parámetros, y el estado que devuelve el variador después de una operación puede ser complejo. Además, para muchos dispositivos de E / S (entrada / salida), la sincronización juega un papel importante en la programación.

Una función importante del sistema operativo es ocultar toda esta complejidad y darle al programador un conjunto de instrucciones más conveniente para trabajar. Por ejemplo, el bloque de lectura del archivo es conceptualmente mucho más simple que tener que preocuparse por los detalles de los cabezales de disco en movimiento, esperando para que se enfrien, etc. Además del sistema operativo está el resto del software del sistema. Aquí encontramos el intérprete de comandos (shell), sistema gráfico de ventanas , compiladores, editores y aplicaciones similares. Es importante darse cuenta de que estos programas definitivamente no son parte del funcionamiento
sistema, aunque normalmente se suministran preinstalados por el fabricante de la computadora, o en un paquete con el sistema operativo si se instala después de la compra. Este es un punto crucial, pero sutil. El sistema operativo es (normalmente) la parte del software que se ejecuta en modo kernel o modo supervisor. Está protegido contra la manipulación del usuario por parte del hardware (ignoramos en todo momento que algunos microprocesadores más antiguos o de gama baja no tienen protección de hardware en absoluto).
Los compiladores y editores se ejecutan en modo de usuario. Si a un usuario no le gusta un compilador en particular, es libre de escribir el suyo si así lo desea pero no es libre de escribir su propio controlador de interrupciones de reloj, que forma parte del sistema operativo y normalmente está protegido por hardware contra intentos de los usuarios para modificarlo. Sin embargo, esta distinción a veces se difumina en los sistemas integrados (que pueden no tener modo kernel) o en los sistemas interpretados (como los sistemas basados ​​en Java que utilizan interpretación, no hardware, para separar los componentes). Aún así, para las computadoras tradicionales, el sistema operativo es lo que se ejecuta en modo kernel. Dicho esto, en muchos sistemas hay programas que se ejecutan en modo de usuario pero que ayudan al sistema operativo a realizar funciones privilegiadas. Por ejemplo, a menudo hay un programa que permite a los usuarios cambiar sus contraseñas. Este programa no es parte del sistema operativo y no se ejecuta en modo kernel, pero claramente lleva a cabo una función sensible y debe protegerse de una manera especial.
En algunos sistemas, incluido MINIX 3, esta idea se lleva a una forma extrema, y ​​partes de lo que tradicionalmente se considera que es el sistema operativo (como el sistema de archivos) se ejecuta en el espacio del usuario. En tales sistemas, es difícil trazar un límite claro. Todo lo que se ejecuta en modo kernel es claramente parte del sistema operativo, pero algunos programas que se ejecutan fuera de él también son parte de él,
o al menos estrechamente asociado con él. Por ejemplo, en MINIX 3, el sistema de archivos es simplemente una gran programa en C que se ejecuta en modo de usuario. Finalmente, por encima de los programas del sistema vienen los programas de aplicación. Estos programas son comprados (o escritos por) los usuarios para resolver sus problemas particulares, como el procesamiento de textos, hojas de cálculo, cálculos de ingeniería o almacenamiento de información en una base de datos.

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s