Está en la página 1de 15

Universidad De Oriente

Núcleo Anaco – Anzoátegui


Escuela de Ingeniería y Ciencias Aplicadas
Departamento de Ingeniería de sistemas

Estructura de los Sistemas


Operativos

Profesora: Alumno:
Carmen Salas José Andrés Martínez Paliche
CI: 28.065.821
INTRODUCCION:
Este trabajo tiene la finalidad de ser una herramienta de orientación, mediante el cual se
pueda tener una idea básica de a que se está refiriendo cuando hablamos sobre sistemas
operativos, estructuras, procesos y más elementos relacionados a este ámbito.

Habiendo expresado eso; En 1950, señalan los expertos que los programas se colocaban
físicamente dentro de los componentes del equipo para que comenzara a funcionar, “Monitor
Residente” Así fue que se le bautizó a este primer sistema operativo, bastante primitivo
(comparado con los actuales), había nacido el primer sistema operativo de toda la historia.
Este mismo funcionaba con tarjetas perforadas, el equipo que lo usó fue el IBM 704.

Ya en la siguiente década esto cambiaría a raíz de los circuitos integrados.

Pero, ¿Que Son los Sistemas Operativos?


¿Qué es un sistema operativo?:
Una enorme cantidad de personas día a día usan dispositivos inteligentes, los cuales están
siendo administrados por sistemas operativos, tomando en cuenta esto es lógico pensar que
estas mismas personas es bastante probable que sean prácticamente expertas en el tema de
sistemas operativos, software, o al menos programación. Pues la respuesta es que no, la
mayoría de estas personas no saben realmente que funciones cumple el sistema operativo en
sus dispositivos.

Un Sistema operativo es el centro lógico de cada dispositivo, en el caso de una PC (Windows,


Linux, Unix) en caso de los smartphones (iOS, Android), sin este complejo software todos los
demás programas no tienen la capacidad para funcionar.

Un sistema operativo es uno o varios programas (a los cuales nos podemos referir como
componentes) que tienen la capacidad de administrar los componentes físicos del dispositivo,
haciendo posible el control y sincronización de estos mismos.

¿Cuál es la estructura de los Sistemas Operativos?:


Esta pregunta la podríamos deconstruir en varias definiciones como, por ejemplo:

 Para empezar ¿Que es una estructura?:


Podríamos definir una estructura como una configuración de varios elementos, que juntos
conforman un todo o una entidad, una estructura está conformada por componentes de los
cuales cada uno tiene una función y además de ello una forma, estas propiedades son las que
complementan un todo.

A pesar de que la palabra “Estructura” nos hace pensar en puentes, rascacielos o también
estaciones espaciales (en el caso de las personas más creativas), realmente es un término
abstracto, el cual está pensado en la aplicación de cualquier ámbito en el cual tener una
organización es fundamental para un excelente funcionamiento de todo.

Entendiendo esto podemos percatarnos de lo importante que es la organización para una


estructura, entonces… ¿Cómo esta conformada la estructura de los sistemas operativos?

Estructura de los Sistemas Operativos:


Componentes de un sistema operativo:
 Subsistema de Entrada/Salida
 Administración De Procesos
 Administración De Memoria
 Administración De Almacenamiento secundario
 Subsistema de Archivos
 Sistema de Protección

Estos son los componentes que terminan conformando la estructura un sistema operativo, si
nos vamos a las definiciones de cada uno de estos componentes, tenemos que:

Subsistema de Entrada/Salida.
El sistema tiene el deber de ocultar características de cada dispositivo y además ofrecer
servicios en todos.

 Montaje y desmontaje de dispositivos.


 Deberá contener una interfaz entre el cliente y el sistema operativo para los device
drivers
 Diversas Técnicas de cache, buffering y spooling
 Además de ello device drivers específicos

Este Subsistema es uno de los encargados de manejar o controlar la interacción y


sincronización con los dispositivos como periféricos, teclados, mouse, entre otros.

Administración De Procesos:
Cuando nos referimos a un proceso, Al menos en el ámbito informático, nos referimos a un
programa en memoria, CPU, Acceso A Dispositivo, diversos recursos más.

Un proceso pues necesita diversos recursos como (memoria, CPU, archivos, dispositivos de
E/S, etc.) para poder lograr realizar su tarea con éxito, a grandes rasgos podemos deducir que
un proceso es una unidad activa y un programa una unidad pasiva.

¿Entonces cual es la diferencia entre proceso y programa?


Un programa es un código guardado en tu disco duro, es una especie de fase previa al
proceso.

Y un proceso es un evento de ese programa que se está ejecutando.

Esto nos trata de decir que el programa y el proceso están profundamente relacionados, pero
no son lo mismo, ya que de un solo programa podríamos tener varios procesos provenientes
del mismo.

Un ejemplo bastante simple de esto:

Podemos ver como el programa Steam (Plataforma de Videojuegos) está iniciado y de este
programa en específico provienen diversos procesos.

(Para ver con el sistema operativo Windows los procesos que esta realizando tu computador
en vivo presiona [Ctrl] + [Shift] + [Esc] y te abrirá el administrador de tareas.).

Administración De Memoria:
La memoria es uno de los puntos más simples de explicar, en simples palabras la memoria es
un área de almacenamiento común, en estas áreas se almacenan datos, programas, etc.

Este componente del sistema será el encargado de administrar los lugares libres y los
ocupados, además de ello, algunas de sus responsabilidades también son:
 Mantener que partes de la memoria están siendo usadas, y por quien.
 Debe de poder decidir cuales son los procesos prioritarios que se deben cargar en
memoria en el momento en que exista el espacio disponible para ello.
 Asignar o remover espacios de la memoria según la necesidad.

Con estas características y estas responsabilidades, podemos deducir que nos estamos
refiriendo a la administración de uno de los componentes esenciales de toda computadora, La
memoria RAM.

La memoria RAM es en esencia una memoria temporal que no trabaja de igual manera que los
discos duros, un ejemplo interesante es comparar a la memoria RAM con nuestra memoria
humana de corto plazo, que nos permite guardar y gestionar datos y procesos en situaciones,
datos y procesos en los cuales mucha información se pierde y otra pasa a la memoria de largo
plazo, que en el caso de nuestra alegoría sería el disco duro.

El componente de administración de memoria tiene de que ser capaz de administrar la


cantidad de memoria de corto plazo dada a cada programa y a cada proceso de ese programa
respectivamente.

En la siguiente imagen podemos ver como el computador en el que actualmente estoy


escribiendo esto prioriza a los programas que estoy utilizando en este momento asignándoles
una cantidad especifica de memoria RAM.

En esta segunda imagen se puede apreciar como el administrador de memoria asigna a cada
proceso del programa (Navegador Microsoft Edge) una cantidad especifica de memoria.

Administración De Almacenamiento Secundario:


Ya hemos visto como trabaja la administración de memoria RAM, pero pronto nos topamos
con un problema, la memoria RAM es volátil para datos y programas, ya que en el momento
que el computador es apagado la información desaparece, la solución para esto es la
utilización de discos mecánicos o Unidades de estado sólido, estas herramientas nos ayudan a
guardar información que no será destruida una vez el computador se apague, en otras
palabras, este tipo de memoria no es volátil.

La memoria RAM pues, será utilizada sencillamente para que el procesador (Núcleo o cerebro
de nuestro pc) pueda tener los datos a disposición de forma inmediata, o en otras palabras…
en vivo. Esto no podría ser logrado con los discos duros y SSD ya que la forma en que estos dos
tipos de memoria trabajan es totalmente distinto, y tendríamos un sistema operativo
extremadamente lento.

En estos tipos de memoria no volátil el sistema operativo deberá:

 Administrar el espacio libre.


 Asignar la información a un lugar específico.
 Algoritmos de planificación de disco (estos algoritmos deciden quien utiliza un
determinado recurso del disco cuando hay competencia por él).

Si nos vamos a el administrador de tareas de nuestra PC podemos ver que:

Nuestro almacenamiento también cuenta con una velocidad de escritura y una de lectura,
siendo los discos de estado sólido (SOLID STATE DRIVE, SSD) los que tienen mejor
rendimiento en todo este ámbito y además de ello, los más caros.

Una comparación simple de ambos puede ser la siguiente:


SSD HDD
0.1 ms Tiempo de arranque 5.5 – 8.0 ms

Rendimiento io/s
aleatorio.
6000 io/s Esto se refiere al número de 400 io/S
operaciones internas que es
capaz de realizar el disco

Confiabilidad
0.5% Los discos SSD tienen 10 2 - 5%
veces menos fallos

2 – 3 watts Ahorro de energía 6 – 7 watts

Solicitud De
20ms 400 – 500 ms
Entrada Y Salida

Se puede apreciar como los SSD terminan siendo una total diferencia frente a los HDD.

Subsistema De Archivos:
Este componente proporciona visual de cada una de las formas de almacenamiento,
implementando el concepto de archivo como una colección de bytes.

Las funciones del sistema operativo son:

 Abrir, cerrar y crear archivos


 Leer y escribir archivos
Sistema de protección:
En el momento que se menciona sistemas de protección, nos referimos especialmente a
mecanismos por los cuales se controla el acceso a procesos y recursos, en los sistemas
multiusuarios es necesario tomar medidas que puedan garantizar la ausencia de
interferencias, esto debe incorporar la posibilidad de definir reglas de acceso.

Servicios de un sistema operativo:


Los servicios de un sistema operativo también entran dentro del la familia de
componentes que consiguen crear el sistema operativo en si mismo, algunos de los
servicios son:

 Ejecución de programas: Los sistemas operativos tienen la capacidad de


ejecutar programas cargarlos en memoria y que estos puedan finalizar de manera
normal o anormal.

 Operaciones de Entrada y Salida: Los SO pueden proveer un mecanismo de


acceso de entradas y salida, por eficiencia y además seguridad.
 Manipulación del Sistema de Archivos: Los sistemas operativos abren, borran
y crean archivos.
 Comunicación entre procesos: Los procesos en un sistema operativo deben de
poder comunicarse estando en el mismo pc o no.
 Manipulación de errores: El sistema operativo debe de contar con protocolos
ante eventuales errores.

Estructura del Sistema:


Cada una de las personas en el mundo tenemos metas diferentes, podemos deducir que
también habrá diversas formas de diseño de sistemas operativos, cada uno con una meta
diferente y orientado a tener la mejor configuración además de la más óptima.

Tomemos en cuenta que la meta de un usuario para con un sistema operativo es que este
sea (rápido, seguro, confiable, fácil uso).

Mientras que para el sistema las metas son (fácil de diseñar, implementar y mantener,
eficiente, etc.)

Ya mencionado eso, podemos proceder a ver los posibles diseños de sistemas operativos.

Sistemas Monolíticos:
En los sistemas operativos monolíticos todos los componentes de los que ya hemos hablado
previamente están escritos en un solo código o espacio lógico. Tomando en cuenta esto,
podríamos decir que es el núcleo del sistema operativo.

Una de las divisiones más evidentes que puede hacerse es entre procesos de aplicación o
usuario y los procesos del sistema en sí.

Los sistemas operativos son los más comunes, esto es así ya que su implementación y diseño
son los menos complejos. Una de las desventajas de estos sistemas es que todo el sistema se
ejecuta en el mismo nivel de privilegio que el núcleo (El Sistema Operativo es el núcleo). Esto
causa que sea bastante probable que haya problemas tales como: (Apagado del sistema,
Bloqueo, cuelgue de procesos) si llegase a ocurrir algún fallo dentro del hardware o existe
algún error sin depurar dentro del código del sistema.

A pesar de ser monolítico, también es modular, esto significa básicamente que es posible
quitar o agregar componentes al núcleo incluso en pleno funcionamiento, Si lo reflexionamos,
esto lo hace tener una gran ventaja ya que si alguno de los módulos tiene problemas se puede
reemplazar, arreglar o directamente eliminar sin afectar el resto de las funcionalidades.

Otra de las ventajas de los sistemas monolíticos es su velocidad, como todos los componentes
del sistema comparten el mismo privilegio y direcciones y la separación funcional solo se hace
entre procesos del sistema y los de la aplicación, la demora con la que se ejecutará la llamada
del sistema es mínima.

Ejemplos de sistemas monolíticos:

 GNU/Linux
 Syllable
 Núcleos tipo DOS
 DR-DOS
 Familia Microsoft Windows 9x (95, 98, 98SE, Me)

Sistemas por capas o niveles de privilegio:


El hardware se ha desarrollado buscando incorporar la protección de procesos, recursos,
memoria y entrada y salida, es de esperar que los sistemas operativos se adaptaran a este
diseño.

El objetivo de la arquitectura por capas o niveles de privilegio, es separar la acción del código
de los procesos del sistema, del núcleo y los procesos del usuario, típicamente y además lo
más ideal es separar en el nivel máximo de privilegios al código base del sistema, seguido en el
siguiente nivel de la gestión de procesos y gestión de memoria, en otro nivel a los procesos de
gestión de entrada y salida, en este nivel se está incluyendo a los drivers.

Y en el nivel de menos privilegio, se ejecutan el resto de los procesos de aplicación.

Lo más destacable de esta arquitectura es que se necesitan realizar restricciones en cuanto a


las llamadas al sistema que puedan ejecutar los procesos de determinados niveles.
Como un ejemplo, se debe de evitar que un proceso pueda afectar una llamada al sistema que
requiera la atención de un componente con menor privilegio o tal vez evitar que algunos de los
programas de la aplicación hagan llamadas directamente sobre el núcleo.

Ejemplo de sistemas operativos por capas:

 THE (Technische Hogeschool Eindhoven)


 Venus
 MULTICS (Multiplexed Information and Computing Service)

Sistemas de Micronúcleo:
Este tipo de diseño de sistema operativo tiene la idea principal de separar los programas del
sistema funcionalmente de los programas de la aplicación y de esta manera se asegura la
protección adicional con el hardware.

En este diseño se intenta combinar la sencillez y rendimiento de la arquitectura monolítica con


la protección y organización de la arquitectura por capas, podríamos verlo como un equilibrio
entre estos dos mundos.
Algunos ejemplos de sistemas operativos con esta arquitectura pueden ser:

 AIX
 BeOS
 Mach
 MorphOS
 QNX
 Minix
 Hurd
 L4
 RadiOS
 Symbian
 VSTa

Sistemas por módulos:


La mayoría de los sistemas operativos actualmente están implementando este enfoque, o
esta arquitectura en su diseño de sistema operativo. Esta arquitectura hace que el kernel
este compuesto por módulos y cada modulo está separado de forma independiente, de tal
manera que si en alguna situación especifica algo llegase a fallar, este fallo no afectará a
los demás y menos al núcleo del sistema en sí.

Si detallamos bien las características de este diseño, podemos percatarnos de lo similar


que es este al sistema de capas, pero la idea de este diseño en particular es la flexibilidad.

Ejemplos de algunos sistemas por módulos:

 Unix modernos
 Solaris
 Linux
 Mac OSX

Sistemas cliente-servidor:
El objetivo fundamental del núcleo es garantizar la comunicación entre procesos. Esta filosofía
propició la creación de sistemas operativos distribuidos.
Habiendo dejado claro de forma básica todo lo que es un sistema operativo, podemos hondar
en explicar a qué exactamente llamamos “Proceso”.

¿Qué es un proceso?
Igual que hicimos con la definición de estructura, podemos irnos a la definición fundamental
de lo que llamamos “Proceso”, esto con el objetivo de que nos ayude a entender aún más las
definiciones que vendrán próximamente.

Proceso:
Podríamos llamar Proceso a todo conjunto de fases sucesivas o serie de pasos organizados y
sistematizados cuyo fin es alcanzar un objetivo determinado. Proceso al igual que “estructura”
es un concepto abstracto que nos ayuda a darnos cuenta de que se trata de procesos
predeterminados que definen una forma de accionar para alcanzar el fin o resultado esperado.

Las actividades de un proceso son secuenciales, en la que cada fase es desarrollada por los
responsables de las diversas etapas, aportando valor agregado a la estructura orgánica.

Algunos de los sinónimos de proceso pueden ser: Procedimiento, evolución, desarrollo,


progreso.

Habiendo entendido esto, podemos pasar a explicar:

Administración de procesos de los Sistemas


Operativos:
Como ya antes hemos explicado en la estructura del sistema operativo, los procesos están
profundamente relacionados con los programas, pero no son lo mismo.

Los programas son una parte pasiva y los procesos una parte activa, esto hace que de un
programa puedan venir varios procesos.

Para esta ocasión se será bastante breve para no caer en redundancias ya que este punto ya
ha sido explicado previamente, La gestión de procesos en un sistema operativo puede ser
comparada con los trabajos dentro de una oficina, en esta se pueden tener una lista de tareas
a realizar, como toda lista de tareas cada una de las tareas debería de tener una prioridad ya
sea alta, baja, media.

Evidentemente deberíamos comenzar haciendo las tareas de alta prioridad primero, cuando
estas se terminen seguimos con las de media prioridad y así sucesivamente. Este ejemplo a
pesar de lo simple que es explica bastante bien básicamente como un sistema operativo
gestiona procesos, a esto podríamos sumarle tareas en segundo plano

¿Pero por qué todos los procesos no pueden tener una prioridad alta?
Hay que tener en cuenta que todo proceso en un computador está tomando recursos de la PC
ya sea (memoria RAM o CPU), recursos que volverán a estar libres una vez termine el proceso,
esto hace que el sistema operativo juegue un papel fundamental, ya que este se encargará de
ver cuales tareas son primordiales y cuales pueden esperar. Esto tiene el objetivo de evitar el
congelamiento del sistema por falta de memoria o capacidad de procesamiento.
Si lo vemos es similar a nuestra lista de tareas en la oficina, no podemos encargarnos de todo a
la vez, pero si podemos gestionar nuestra atención y memoria en cada una de las tareas.

Coordinación de Procesos:
Los sistemas operativos cuentan con mecanismos que permiten a los procesos coordinar su
ejecución para conseguir el objetivo sin que sucedan situaciones no deseadas, ejemplo, que
varios procesos coincidan simultáneamente en el acceso a un cierto tipo de recurso que no se
pueda compartir.

Los mecanismos de sincronización los podemos catalogar en dos categorías:

Optimistas: Este mecanismo considera que la frecuencia de acceso a un cierto recurso


compartido es baja. Este tipo tiene más consumo de memoria, ya que tiene que copiar el
recurso compartido y, en caso de interferencia en el hilo, tiene que volver a ejecutarlo y
consume más recursos.

Pesimistas: Este mecanismo permite coordinar la ejecución de dos o más procesos que
acceden al recurso compartido con una frecuencia alta.

Bloqueos mutuos:
Dentro de los sistemas operativos, denominamos “bloqueo mutuo” o (interbloqueo,
deadBlock, traba Mortal, abrazo mortal) es el bloqueo permanente de un conjunto de
procesos o hilos de ejecución, en un sistema concurrente que compiten por recursos del
sistema o bien se comunican entre ellos.

Todos los bloqueos mutuos, inician mediante una necesidad que no pueden satisfacer, por
parte de varios procesos.

Si nos vamos a un ejemplo de la vida real:

Dos niños quieren jugar al arco y a la flecha, un niño toma el arco y otra toma la flecha.

En esta situación podemos notar como ninguno de los niños podrá jugar hasta que alguno
libere lo que ha tomado.

En la siguiente figura podemos ver dos procesos diferentes (A, B), cada uno con uno de los
recursos diferentes asignados (R1, R2), en este ejemplo podemos ver como cada uno de los
procesos necesita o solicita un recurso que está asignado a otro proceso.
CONCLUSION:
Con estos breves conceptos podemos ya percatarnos de cómo funciona básicamente un
sistema operativo y como su estructura y organización es fundamental en él. Actualmente los
sistemas operativos están cambiando a pasos agigantados, en todos los dispositivos
inteligentes, además de ello podemos esperar dentro de pronto la integración de inteligencias
artificiales en los componentes de los sistemas operativos.

Si buscamos y nos adentramos en el mundo de los sistemas operativos podemos darnos


cuenta que muchas veces Windows (Sistema operativo dominante actualmente) no es nuestra
mejor opción, por ejemplo, las distribuciones de sistemas operativos basadas en Linux son
muy útiles para el objetivo de rescatar viejas computadoras o laptops, aunque este tipo de
sistemas operativos Linux son famosos sobre todo en el ámbito de servidores.

Otro ejemplo puede ser Chrome OS, un sistema operativo ultra liviano y relativamente nuevo.

También podría gustarte