Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ÍNDICE
Concepto de Sistema Operativo
Categorías de Sistemas Operativos
Componentes y estructura de un Sistema Operativo
Características de un Sistema Operativo
Arranque del computador
Historia de los Sistemas Operativos
Evolución del Sistema Operativo
Estructura del Sistema Operativo
Tipos de Sistema Operativo
Estructura en la que trabajan Windows y Linux
2
Visión General de las funciones principales de los
sistemas operativos
11
12
Estructura de un sistema operativo
Analizando la historia de los Sistemas Operativos notamos que se puede
considerar que éstos surgen desde finales de los 50's con una arquitectura
bastante obsoleta comparada con la de la actualidad.
Para poder construir un Sistema Operativo se deben tener en cuenta dos tipos de
requisitos, los cuales son:
Requisitos de usuario: Un sistema fácil de usar y de aprender, seguro,
rápido y adecuado para el uso que se le necesita dar.
Requisitos del software: Considera el continuo mantenimiento, forma de
operación, restricciones de uso, eficiencia, tolerancia frente a los errores y
flexibilidad.
Definir una arquitectura para el Sistema Operativo; esta estará influida en alguna
medida por el hardware que manejará. Sin embargo, es posible identificar algunos
componentes comunes como el núcleo y las llamadas al sistema. El núcleo
contiene, básicamente, todo el código e información necesaria para la gestión de
procesos y memoria y en la mayoría de los sistemas operativos también se incluye
buena parte de la gestión de entrada/salida. Según la arquitectura que tengamos
así es como el usuario se comunica con el sistema operativo y el sistema
operativo o el núcleo con los componentes del hardware, por tanto, cada sistema
13 en dependencia de las necesidades de
operativo tiene una arquitectura específica
este.
Estas son algunas de las estructuras más comunes:
Sistemas monolíticos
En los sistemas monolíticos, todos los componentes de gestión y programas del
sistema están escritos en un solo código o espacio lógico. Pueden decirse que el
núcleo es el Sistema Operativo. La división más evidente que puede hacerse es
entre procesos de aplicación o usuario y procesos del sistema.
Los sistemas monolíticos son los más comunes puesto que su implementación y
diseño son los menos complejos. La desventaja es que como todo el sistema se
ejecuta en el mismo nivel de privilegio que el núcleo (el Sistema Operativo es el
núcleo) es muy probable que haya problemas, (el sistema se apague, se bloquee
o se cuelguen procesos) por ejemplo, si ocurre algún fallo del hardware o existe
algún error sin depurara en el código del sistema. GNU/Linux es monolítico,
aunque con éste se introdujo una variante interesante. A pesar de ser monolítico,
es modular, lo que significa que es posible quitar o añadir componentes al núcleo
incluso en caliente (o sea, en pleno funcionamiento). Así, si un módulo tiene
problemas se puede reemplazar, arreglar o eliminar sin afectar al resto de
funcionalidades. Otra ventaja interesante de los sistemas monolíticos es su
velocidad. Ya que todos los componentes del Sistema Operativo comparten los
privilegios y direcciones y la separación funcional solo se hace entre procesos del
sistema y los de aplicación, la demora para ejecutar las llamadas al sistema es
mínima.
15
Tipos de sistemas operativos
Por lotes o colas ("sistemas batch")
Un sistema por lotes realiza una secuenciación automática de trabajos. En él van
pasando a ejecución de uno en uno los programas en espera.
La planificación es muy simple. Los trabajos se procesan, en general, en el orden
de admisión (FIFO).
Un S.O. por lotes puede servir muy bien para programas que no requieran
interacción con el usuario y aquellos con tiempos de ejecución largos, como los
programas de nóminas, de análisis estadísticos.
Debido a los retardos en el tiempo total de ejecución, el procesamiento por lotes
no es muy conveniente para el desarrollo de programas.
Monoprogramación
Hasta que no finaliza la ejecución de un programa de usuario no empieza a
ejecutarse otro.
Consecuencias:
Tiempos muertos de CPU, periféricos, ...
Desaprovechamiento de la Memoria Central
(la no ocupada por el proceso).
Entre la finalización de un programa y el comienzo
del siguiente transcurre un tiempo en el que el
núcleo del sistema operativo tiene el control del
procesador (CPU).
Multiprogramación
Se cargan en memoria principal varios programas
que se van ejecutando concurrentemente con lo
cual, en un determinado tiempo se estarán
ejecutando varios programas.
Ventajas: Aprovechamiento de la memoria y mejora de los tiempos muertos del
procesador.
Un programa en ejecución se conoce como proceso. El programa es, por tanto, un
ente "pasivo" y el proceso un ente "activo".
Un S.O. multiproceso o multitarea soporta dos o más procesos activos
simultáneamente.
Un S.O. de multiprogramación soporta múltiples procesos concurrentes y,
16
además, permite que residan simultáneamente en la memoria principal las
instrucciones y datos procedentes de dos o más procesos disjuntos. La
multiprogramación implica multiproceso, pero el multiproceso no implica
multiprogramación.
Tipos de multiprogramación:
Clásica
Tratamiento paralelo
Tiempo compartido
Tratamiento paralelo
A cada uno de los programas en memoria se le asigna un intervalo de tiempo fijo o
periodo T llamado "cuantum" (décimas de segundo). Al finalizar el cuantum
asignado a un programa, el control de la CPU pasa al siguiente programa y así
sucesivamente.
La cuenta del tiempo se realiza mediante un circuito contador activado por el reloj
de la CPU (temporizador digital). Al transcurrir el periodo T se genera una
interrupción de la CPU.
Tiempo compartido
Se asigna el control de la CPU a un nuevo programa interrumpiendo al anterior
siempre que este último agote su tiempo o que entre en la ejecución de una
instrucción de E/S.
La CPU trabaja el 100% en determinados intervalos según el tipo de carga.
Bases de datos
Estos S.O. mantienen una gran cantidad de datos que pueden ser consultados en
busca de una determinada información que debe suministrarse en un periodo
razonable de tiempo.
La B.D. puede ser frecuentemente modificada
17 para mantener la información
actualizada y se evitan las operaciones simultáneas sobre los mismos datos.
Tiempo real
Un S.O. en tiempo real se caracteriza por el procesamiento de una actividad
interrumpida, en la mayoría de los casos, por sucesos externos aleatorios.
El procesamiento de un suceso particular viene acompañado por secuencias de
tareas que se deben de realizar dentro de rígidas restricciones de tiempo.
Un suceso puede ser:
La recepción de un dato (procedente, por ejemplo, de un sensor).
La demanda de servicio de un dispositivo en línea.
En Red
Cada uno de los hosts de la red utiliza su propio S.O. que no es de red. La red
está controlada por los programas de usuario ejecutados en los diferentes hosts.
Los usuarios conocen la existencia de múltiples computadoras y pueden
conectarse a máquinas remotas y copiar archivos de una máquina a otra.
Cada máquina tiene sus propios usuarios y ejecuta su S.O.
Distribuidos
Los S.O. individuales de los hosts quedan descartados y se implementa un único
sistema operativo para toda la red.
Aparece a los usuarios como un sistema uniprocesador aunque conste de muchos
procesadores. Los usuarios no saben dónde se ejecutan sus programas ni dónde
se localizan sus archivos. Por ello, la característica principal de un DOS es la
transparencia.
¿Con que estructura trabajan Windows y Linux?
El Kernel o Núcleo monolítico es un componente
fundamental de cualquier sistema operativo. Es el
encargado de que el software y el hardware de
cualquier ordenador puedan trabajar juntos en un
mismo sistema, para lo cual administra la memoria de
los programas y procesos ejecutados.
Windows ha utilizado Windows NT como nueva
versión de sistema desde Windows XP que tuvo gran
impacto en el mercado, la principal característica del
Windows NT es que es bastante modular, y está
basada en dos capas principales, la de usuario y la de
kernel. El sistema utiliza cada una para diferentes
tipos de programa. Así, las aplicaciones se ejecutan
en el modo usuario, y los componentes principales del
sistema operativo en el modo kernel. Es por eso que
se refieren a él como Kernel híbrido, pero sobre todo también porque permite tener
subsistemas en el espacio del usuario que19 se comunicaban con el kernel a través
de un mecanismo de IPC.
Aunque el sistema de Linux también es monolítico, su sistema es desarrollado por
el equipo de Linus Torvalds y es de código abierto, algo que le sirve para estar
presente en múltiples sistemas operativos GNU/Linux.
La principal diferencia entre ambos es la manera que se desarrolla cada uno.
Además, el Kernel de Linux es mucho más sencillo, lo cual es bueno para los
desarrolladores. Mientras, el de Windows intenta poner una capa de protección en
su modo usuario para que los usuarios con menos conocimientos tengan menos
posibilidades de dañar el sistema, y su estructura lo hace más estable frente, por
ejemplo a fallos del driver gráfico.
Bibliografía
https://www.genbeta.com/a-fondo/como-es-el-kernel-de-windows-y-cuales-son-
sus-diferencias-con-el-de-linux
20