Está en la página 1de 6

SISTEMAS OPERATIVOS

Las computadoras están equipadas con una capa de software llamada sistema operativo. Proporciona a los
programas de usuario un modelo de computadora más simple. Por encima del hardware se encuentra el
software. La mayoría de las computadoras tienen dos modos de operación: modo kernel y modo usuario.

El sistema operativo se ejecuta en modo kernel. En este modo el sistema operativo tiene acceso a todo el
hardware y puede ejecutar cualquier instrucción que la máquina sea capaz de ejecutar. El resto del software se
ejecuta en modo usuario en el cual un subconjunto de las instrucciones de maquina está permitido.

El programa de interfaz de usuario, Shell, es el nivel más bajo del software en modo usuario y permite la
ejecución de otros programas, como un navegador Web, lector de correo electrónico o reproductor de música.
Al operar en modo kernel, la CPU puede ejecutar cualquier instrucción de su conjunto de instrucciones y utilizar
todas las características del hardware. El sistema operativo opera en modo kernel, lo cual le da acceso al
hardware completo.

En contraste, los programas de usuario operan en modo de usuario, el cual les permite ejecutar sólo un
subconjunto de las instrucciones y les da acceso sólo a un subconjunto de las características.

¿Qué es un Sistema Operativo?


Es un software que se ejecuta en modo kernel, pero esto no siempre es cierto, ya que cumple dos funciones
básicas: proporcionan un conjunto abstracto de recursos simples, (por ej. ya sea para programar), y administrar
los recursos de hardware.

El sistema operativo como una maquina extendida


El trabajo del sistema operativo es crear buenas abstracciones para luego implementar y administrar los objetos
creados. Una tarea principal del S.O. es ocultar el hardware y presentar a los programadores abstracciones
agradables y simples.

El sistema operativo como administrador de recursos


La administración de recursos incluye el multiplexado de recursos en dos formas distintas, en el espacio y en el
tiempo:

• En el tiempo los distintos programas o usuarios toman turnos para utilizar un recurso, uno de ellos
obtiene acceso al recurso, después otro y así sucesivamente. Por ejemplo, asigna la CPU a distintos
programas en distintos tiempos. Determinar quien sigue y durante cuánto tiempo es función del S.O.
• En el espacio es que en vez de que los clientes tomen turnos, cada uno obtiene una parte del recurso,
por ejemplo, la memoria principal se divide entre varios programas en ejecución para que cada uno
pueda estar residente al mismo tiempo. Esto genera problemas de equidad y protección que le
corresponde al S.O resolverlos.

Revisión del hardware de la computadora


Conceptualmente, una computadora personal simple se
puede abstraer mediante un modelo de la CPU, la memoria
y los dispositivos de E/S están conectados mediante un bus
del sistema y se comunican entre sí a través de este bus.

Procesadores
El procesador es el “cerebro” del ordenador (obtiene las instrucciones de la memoria y las ejecuta), y es
responsable de realizar operaciones aritméticas, lógicas y de control. El procesador interactúa con la memoria,
el almacenamiento y otros dispositivos de entrada/salida para realizar las operaciones necesarias para que el
sistema funcione correctamente.

Las computadoras tienen varios registros especiales que están visibles para el programador, estos son:

• Contador de Programa (program counter): Almacena la dirección de memoria de la próxima instrucción


que se debe ejecutar en el programa. Una vez que se obtiene esa instrucción, el contador de programa
se actualiza para apuntar a la siguiente.
• Puntero de pila (Stack Pointer): indica la posición actual de la pila en la memoria del sistema. Cuando
una función se llama, su dirección de retorno se guarda en la pila, junto con los valores de los registros
que se deben restaurar cuando la función regrese. El Stack Pointer se utiliza para realizar estas
operaciones de almacenamiento y recuperación de datos de la pila. El puntero de pila se incrementa
cada vez que se agrega un nuevo elemento a la pila y se decrementa cada vez que se retira un elemento
de la pila.
• Palabra de estado del programa PSW (Program Status Word): Almacena información sobre el estado
actual del procesador y del programa que se está ejecutando. Este registro contiene una variedad de
bits que se establecen o borran según el resultado de las operaciones que realiza el procesador, como
operaciones aritméticas, lógicas o de comparación, además la prioridad de la CPU, el modo (usuario o
kernel) y varios otros bits de control.

Memoria
El segundo componente importante en
cualquier computadora es la memoria.
Esta debe ser rápida y de gran tamaño.
El sistema de memoria está construido
como una jerarquía de capas.
Dispositivos E/S
Se conoce como dispositivos de entrada/salida a aquellos aparatos electrónicos que permiten tanto introducir
como extraer información de un sistema. Por ejemplo: un dispositivo de almacenamiento o una impresora
multifunción.

Buses
Un bus es un conjunto de líneas o cables que se utilizan para transmitir datos, señales y energía entre diferentes
componentes de un sistema informático, como por ejemplo el procesador, la memoria, los dispositivos de
entrada/salida, entre otros.

Existen varios tipos de buses en informática, algunos de los cuales incluyen:

1. Bus de sistema: es el bus principal que conecta los componentes principales de la placa base, como el
procesador, la memoria y los dispositivos de entrada/salida.

2. Bus de datos: se utiliza para transferir datos entre diferentes componentes del sistema, como la
memoria y el procesador.

3. Bus de direcciones: se utiliza para transmitir la información de dirección, es decir, la información que
indica la ubicación de los datos en la memoria o en los dispositivos de entrada/salida.

4. Bus de control: se utiliza para controlar las operaciones y transferencias de datos dentro del sistema
informático.

5. Bus de expansión: se utiliza para conectar componentes adicionales al sistema, como tarjetas de
expansión o dispositivos externos.

Los buses tienen una velocidad de transferencia de datos medida en MHz o GHz, y su velocidad puede afectar el
rendimiento global del sistema informático. Además, la capacidad y características de los buses pueden variar
dependiendo de la arquitectura del sistema y la tecnología utilizada.

LLAMADAS AL SISTEMA (System Calls)


Es una interfaz entre una aplicación de usuario y el kernel del sistema operativo. Cuando una aplicación de
usuario necesita acceder a un recurso o servicio que está bajo el control del kernel, como el acceso al disco, la
red o el control de dispositivos, la aplicación realiza una System Call para solicitar al kernel que realice la tarea
en su nombre.

PROCEDIMIENTO

Para hacer más entendible el mecanismo de llamadas


al sistema, vamos a dar un vistazo rápido a la llamada
al sistema read. Como dijimos antes, tiene tres
parámetros: el primero especifica el archivo, el
segundo apunta al búfer y el tercero proporciona el
número de bytes a leer.

read(fd, buffer, nbytes)


Lo primero que haces ponemos en la pila los tres argumentos que necesitamos (paso 1 a 3). Después hacemos la
llamada a la función read, y hacemos la llamada al procedimiento de biblioteca (paso 4). Una vez hecho esto
coloca el número de la llamada al sistema, como en un registro (paso 5). Después ejecuta una instrucción TRAP
para cambiar de modo usuario a modo kernel y empezar la ejecución en una dirección fija dentro del núcleo
(paso 6). Después pasa al manejador correspondiente de llamadas a sistema (paso 7). En ese momento se
ejecuta el manejador de llamadas a sistema (paso 8). Una vez que el manejador ha terminado su trabajo, el
control se puede regresar al procedimiento de biblioteca que está en espacio de usuario (paso 9). Luego este
procedimiento regresa al programa de usuario en la forma usual en que regresan las llamadas a procedimientos
(paso 10). Y por último el programa de usuario tiene que limpiar la pila, como lo hace después de cualquier
llamada a un procedimiento (paso 11).

OTRA EXPLICACION MAS GENERAL:

1. La aplicación de usuario realiza una llamada a la función de la biblioteca del sistema que representa a la
System Call que desea realizar.

2. La biblioteca del sistema prepara los argumentos de la llamada al sistema y empaqueta los datos en una
estructura específica del sistema operativo que se enviará al kernel.

3. La biblioteca del sistema realiza una interrupción del procesador para cambiar del modo de usuario al
modo kernel. Esto hace que el control del procesador se transfiera al kernel del sistema operativo.

4. El kernel del sistema operativo recibe la solicitud de la System Call y verifica los argumentos enviados
por la aplicación de usuario para asegurarse de que sean válidos y no contengan errores.

5. El kernel del sistema operativo realiza la tarea solicitada por la System Call, como acceder a un recurso
del sistema operativo, y luego prepara una respuesta para la aplicación de usuario.

6. El kernel del sistema operativo vuelve a cambiar al modo de usuario y devuelve el control del
procesador a la biblioteca del sistema.

7. La biblioteca del sistema recibe la respuesta del kernel y la devuelve a la aplicación de usuario, que
continúa su ejecución normalmente

ESTRUCTURA DE UN SISTEMA OPERATIVO


Hay seis estructuras que se han probado, estas son: sistemas monolíticos, sistemas de capas, microkernels,
sistemas cliente-servidor, máquinas virtuales y exokernels.

SISTEMAS MONOLITICOS
Un sistema monolítico es un tipo de arquitectura de software en el que todas las funcionalidades del sistema se
encuentran integradas en un único programa o aplicación. En otras palabras, todas las funciones, características
y componentes de un sistema se encuentran interconectados y dependen de un solo proceso para ejecutarse.

En este tipo de arquitectura, el sistema se compone de un solo bloque de código fuente y su diseño es
jerárquico. Por lo general, un sistema monolítico se compone de tres capas: Procedimiento Principal,
Procedimiento de Servicios y Procedimiento utilitarios, y todas estas capas se encuentran integradas en una sola
aplicación.

Aunque los sistemas monolíticos son fáciles de construir y mantener, tienen algunas limitaciones. Por ejemplo,
si se necesita agregar nuevas funcionalidades al sistema, puede ser necesario reescribir gran parte del código.
Además, si un componente del sistema falla, puede afectar a toda la aplicación y hacer que este deje de
funcionar correctamente.
Estructura:

• Procedimiento principal -> invoca procedimientos de servicios


• Procedimiento de servicios -> invoca a llamas de sistemas
• Procedimiento utilitarios -> ayudan a los procedimientos de servicios

SISTEMAS DE CAPAS
Consiste en ordenar el sistema operativo en una jerarquía de capas, consta de 6 capas.

5 – El operador (Se localiza el proceso que opera)


4 – Programas de usuario (No importa la gestión del kernel)
3 – Administración de la entrada/salida (Guarda en buffer el flujo de información entre ellos)
2 – Comunicación operador-proceso (comunicación con el usuario)
1 – Administración de memoria (Administración de memoria para los procesos)
0 – Asignación del procesador y multiprogramación
Cada capa se comunica con la adyacente. Es más lento porque cada tarea tiene que usar un servicio de la capa
anterior hasta llegar a la capa de asignación de proceso y multiprogramación.

ESTRUCTURA DE MICROKERNEL
La estructura de microkernel es un tipo de arquitectura de software en la que el núcleo del sistema operativo
(kernel) se mantiene lo más pequeño y simple posible, delegando la mayoría de las funcionalidades a módulos
externos que se ejecutan en un espacio de usuario separado. El microkernel se encarga de las funcionalidades
más básicas, como la gestión de memoria, el manejo de interrupciones y la comunicación entre procesos. Los
servicios más complejos, como el sistema de archivos, la red o el control de dispositivos, se implementan en
módulos externos que se ejecutan en el espacio de usuario y se comunican con el microkernel a través de una
interfaz definida.

La estructura de microkernel tiene algunas ventajas sobre otras arquitecturas de sistemas operativos, como los
monolíticos. En primer lugar, al mantener el núcleo del sistema lo más pequeño y simple posible, se reduce la
cantidad de código que debe ser ejecutado en modo privilegiado, lo que mejora la seguridad y estabilidad del
sistema. En segundo lugar, al delegar las funcionalidades más complejas a módulos externos, se facilita la
extensibilidad y el mantenimiento del sistema. Finalmente, al separar los módulos de sistema del kernel, se
mejora la portabilidad del sistema a diferentes plataformas y arquitecturas.

ESTRUCTURA DE MAQUINAS VIRTUALES


La estructura de máquinas virtuales es un tipo de arquitectura de software en la que se simula un ambiente de
hardware completo dentro de un sistema operativo hospedante. La máquina virtual es un software que se
ejecuta en un sistema operativo y proporciona una plataforma virtualizada en la que se pueden ejecutar otros
sistemas operativos y aplicaciones.
En esta arquitectura, la máquina virtual se encarga de la gestión de los recursos físicos del sistema, como la
memoria, el procesador y los dispositivos de entrada y salida, y crea una capa de abstracción entre el software
que se ejecuta en la máquina virtual y el hardware físico del sistema. Cada sistema operativo y aplicación que se
ejecuta en la máquina virtual se ejecuta como si estuviera en una máquina física separada.

La estructura de máquinas virtuales tiene algunas ventajas sobre otras arquitecturas de software. En primer
lugar, permite la ejecución de múltiples sistemas operativos y aplicaciones en un mismo sistema físico, lo que
permite una mayor flexibilidad y eficiencia en la gestión de recursos. En segundo lugar, al proporcionar una capa
de abstracción entre el software y el hardware físico, se mejora la portabilidad y la compatibilidad entre
diferentes plataformas y arquitecturas. Finalmente, al aislar los sistemas operativos y aplicaciones en máquinas
virtuales separadas, se mejora la seguridad y la estabilidad del sistema, ya que los errores o fallos en una
máquina virtual no afectan a las demás.

También podría gustarte