Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
• 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.
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:
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.
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.
PROCEDIMIENTO
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
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:
SISTEMAS DE CAPAS
Consiste en ordenar el sistema operativo en una jerarquía de capas, consta de 6 capas.
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.
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.