Está en la página 1de 16

UT5.

ELEMENTOS Y ESTRUCTURA DE UN
SISTEMA OPERATIVO. PROCESOS

RA1. Reconoce las características de los sistemas de archivo, describiendo sus tipos y aplicaciones.
CCEE.
c) Se han identificado los procesos y sus estados.
Contenidos:
• Funciones del sistema operativo. Recursos.
• Procesos del sistema operativo. Estados de los procesos.
• Planificación de procesos.
• Comunicación entre procesos.
• Utilización del sistema operativo: modo orden, modo gráfico.
• Sistemas operativos actuales..
Contenido
1. INTRODUCCIÓN ......................................................................................................................................................... 3
2. TIPOS DE SISTEMAS OPERATIVOS ............................................................................................................................. 4
3. FUNCIONES SISTEMA OPERATIVO. RECURSOS ......................................................................................................... 6
4. ESTRUCTURA DE UN SISTEMA OPERATIVO............................................................................................................... 7
4.1. Sistemas operativos con estructura monolítica................................................................................................ 7
4.2. Sistemas operativos con estructura de micronúcleo........................................................................................ 8
4.3. Sistemas operativos con estructura de núcleo híbrido .................................................................................... 8
1. INTRODUCCIÓN

Un sistema operativo tiene las siguiente características:

• Es un conjunto de programas, servicios y funciones que gestionan y coordinan el funcionamiento del hardware
y del software.
• Simplifica al usuario el uso del ordenador.
• El sistema operativo es un conjunto de programas que se inician al arrancar el ordenador

Un sistema operativo se encargará de aspectos como:

Las principales funciones son:

• Gestionar eficientemente los recursos hardware y software del sistema informático.


• Desvincular al usuario de las particularidades del hardware de su equipo proporcionándole una interfaz
adecuada con la que trabajar.
• Controlar y administrar la ejecución de programas.
• Controlar y administrar el sistema de archivos.
• Detectar e intentar solucionar los errores que se puedan producir.

El usuario se comunica con el ordenador a través de las interfaces de usuario. Existen distintos tipos de interfaces,
entre las que cabe diferenciar entre interfaces graficas y en modo texto.

Ejercicio 1
1. Busca en Internet cual fue la primera interfaz gráfica en Windows:
a. ¿De que sistema operativo dicen que fue una copia?
b. ¿Qué sistemas operativos sucedieron al primer S.O de Windows?
2. Busca en Internet distribuciones de Linux y comenta cuales son las más usadas o conocidas
Terminal (CLI) Interfaz Gráfica (GUI)

Es superior porque funciona con el teclado, Es inferior. No acostumbra a ofrecer


no hay distracciones en su uso, permite automatización de tareas, se usa el ratón, muchas
Productividad
automatización de tareas, permite ejecutar interfaces no son limpias, es más lento ejecutar
tareas de forma más rápida, etc. tareas, etc.

Es claramente menor. Menor consumo de Es claramente superior. Mayor consumo de


Consumo de
memoria, de CPU y requiere de menos memoria, de CPU y requiere más espacio de
recursos
espacio de almacenaje. almacenaje.

Velocidad de Al consumir menos recursos las tareas se Al consumir más recursos las tareas se ejecutarán
ejecución ejecutarán de forma más rápida. de forma más lenta.

Facilidad de Su uso es más complicado. Requiere de una Su uso es más simple e intuitivo. La curva de
uso curva de aprendizaje elevada. aprendizaje es menor.

Mas info

2. TIPOS DE SISTEMAS OPERATIVOS


Si nos fijamos en la capacidad que puede tener el sistema operativo para realizar varias tareas al mismo tiempo, los
dividiremos en:

• Monotarea: Pertenecerán a esta categoría los sistemas operativos que pueden realizar solo una tarea cada
vez. De este modo, para ejecutar un segundo proceso, deberemos esperar a que complete su ejecución el
primero. Un ejemplo clásico de este tipo de sistemas era MS-DOS.

• Multitarea: En esta categoría se encuentran los sistemas operativos que tienen la capacidad de dividir el
tiempo de ejecución del procesador entre diferentes procesos. De esta forma, cuando el procesador es
suficientemente rápido, dará la sensación de que todos los procesos se ejecutan al mismo tiempo. Como
ejemplos, tenemos a la práctica totalidad de los sistemas operativos para ordenadores actuales: Windows,
macOS, GNU/Linux, …

Cuando tenemos en cuenta el número de usuarios que pueden usarlo simultáneamente, hablaremos de dos tipos:

• Monousuario: Este tipo de sistemas operativos solo permiten que un usuario tenga iniciada su sesión de
trabajo en cada momento. Esto significa que, para que un usuario pueda interactuar con el sistema, otro
usuario deberá dejar de hacerlo. Como ejemplos, podemos mencionar a MS-DOS y todas las versiones de
escritorio de Windows anteriores a XP. En realidad, las versiones más modernas de Windows para escritorio
también imponen esta limitación, pero por una cuestión de licencia.

• Multiusuario: Son sistemas operativos que pueden atender a varios usuarios trabajando en el sistema, a la
vez, de manera independiente. Normalmente, uno de ellos lo hace de forma local, en el propio ordenador, y
el resto usando software de escritorio remoto desde equipos menos potentes o terminales ligeros. Como
ejemplos podemos nombrar las versiones de servidor de Windows y GNU/Linux.
Atendiendo al número de procesadores que pueden administrar, también tenemos dos categorías:

• Monoprocesador: Se trata de sistemas operativos que solo son capaces de administrar los recursos de un
procesador (con un colo núcleo). En muchos casos, cuando funcionan en un ordenador con varios
procesadores, o un procesador con varios núcleos, se ejecutan sobre el primero y el resto son ignorados. Como
ejemplos, podemos mencionar a MS-DOS y todas las versiones de escritorio de Windows anteriores a XP.

• Multiprocesador: Son sistemas operativos capaces de administrar varios procesadores (o núcleos),


repartiendo su capacidad de proceso entre los diferentes procesos. Puede ocurrir que, a lo largo del tiempo,
un proceso vaya ejecutándose en diferentes procesadores, incluso durante la misma ejecución. Pueden
servirnos de ejemplo casi todos los sistemas operativos actuales: Windows, macOS, GNU/Linux, …

Podemos clasificar los sistemas operativos según su licencia. En este sentido, tenemos dos categorías:

• Licencia propietaria: Son sistemas operativos cuyo código fuente no es público y tienen limitados los derechos
de los usuarios (en cuando a copiarlos, modificarlos o distribuirlos). Son propiedad de una empresa. Los
ejemplos más conocidos son Windows y macOS.

• Licencia libre: Son sistemas operativos que publican su código fuente. Los usuarios pueden copiarlos,
modificarlos o distribuirlos, siempre que tengan en cuenta las limitaciones de su licencia. Por ejemplo, algunas
de ellas establecen que las posibles modificaciones también deben publicarse bajo la misma licencia. Los
ejemplos más conocidos de es tipo de sistemas son las distintas distribuciones de GNU/Linux.

Ejercicio 2
1. Crea una tabla donde aparezca, en cada fila, un sistema operativo de los mencionados en este apartado.
En las columnas aparecerán las diferentes categorías mencionadas:
a. Monotarea.
b. Multitarea.
c. Monousuario.
d. Multiusuario.
e. Monoprocesador.
f. Multiprocesador.
g. Licencia propietaria.
h. Licencia libre.
3. FUNCIONES SISTEMA OPERATIVO. RECURSOS
Podríamos definir el concepto de recurso como cualquiera de los elementos, software o hardware, de los que se sirve
el sistema informático para conseguir sus objetivos.

Cuando hablamos de manera particular de los recursos hardware, el sistema operativo será el responsable de
asignarlos a cada proceso que se esté ejecutando, impidiendo que se solapen en su uso y resolviendo los posibles
conflictos.

Habitualmente, los sistemas operativos se estructuran en distintos módulos que se especializan en las
funciones concretas relacionadas con un tipo particular de recursos. En este sentido, las principales funciones que
lleva a cabo cualquier sistema operativo:

• Gestión de procesos: El sistema operativo se encargará de iniciar la ejecución de los programas (los
necesarios para el funcionamiento del propio sistema operativo y los solicitados por los usuarios). Además se
encargará de facilitarles los recursos que necesiten para garantizar su funcionamiento de forma adecuada.

• Gestión de memoria: Todos los programas, y sus datos, deben encontrarse en memoria principal para que
puedan utilizarse. Por lo tanto, la buena gestión de la memoria principal es vital para el rendimiento
adecuado del sistema.

• Gestión de archivos: Los programas y los datos que se encuentran el el ordenador, pero que no se están
usando en estos momentos, se encuentran almacenados en un medio de almacenamiento externo
(normalmente, un disco), en forma de archivos. De nuevo, será importante la organización de esos archivos y
el control sobre el uso que se haga de ellos.

• Gestión de Entrada/Salida (E/S): Se encargará de administrar el uso de los dispositivos conectados al


ordenador y su vinculación, si procede, a procesos concretos.
4. ESTRUCTURA DE UN SISTEMA OPERATIVO
Atendiendo a su estructura interna los sistemas operativos se pueden dividir en:

• Monolítico.
• Micronúcleo.
• Núcleo híbrido.

4.1. Sistemas operativos con estructura monolítica

Los sistemas operativos monolíticos no están estructurados, sino que están formados por un programa que consta de
un conjunto de funciones o procedimientos interrelacionados entre sí.

A medida que aumentan las funciones del sistema operativo y los recursos del sistema informático se hace necesaria
una organización o estructuración de los sistemas operativos.

Como ejemplos de sistemas con estructura monolítica podemos nombrar Solaris, FreeBSD, OSX (versiones anteriores
a la 9), GNU/Linux y las versiones de escritorio de Windows anteriores a XP.
4.2. Sistemas operativos con estructura de micronúcleo

En este tipo de sistemas, el núcleo sólo contiene la implementación de servicios básicos como el soporte de acceso a
memoria de bajo nivel, la administración de tareas y la comunicación entre procesos (también conocida como IPC, del
inglés, Inter-Process Communication).

Como ejemplos de sistemas con estructura de micronúcleo podemos nombrar AIX, AmigaOS, Minix, Symbian (aunque
en algunos textos aparece como monolítico con carga dinámica de módulos) y NeXTStep (aunque a veces lo
encontramos entre los sistemas con núcleo híbrido).

4.3. Sistemas operativos con estructura de núcleo híbrido

Este tipo de arquitectura consiste básicamente en un esquema de micronúcleo que incluye algo de código
complementario para hacerlo más rápido, aunque buena parte de las funciones del sistema operativo siguen
ejecutándose en modo usuario.

Se trata de una solución de compromiso que han adoptado muchos de los sistemas operativos modernos, como las
versiones de escritorio de Microsoft Windows, a partir de XP, y todas las versiones de Servidor. También se
encuentra en esta categoría macOS.
5. GESTIÓN DE PROCESOS

Un proceso es un programa en ejecución. El S.O. gestiona los recursos del sistema para la correcta ejecución de los
procesos. Los procesos pueden ser:

• Del Sistema : Son procesos que generalmente se ejecutan al iniciar el sistema y suelen estar en ejecución
para proporcionar servicios a los usuarios del sistema .
• Del usuario : Los manda el usuario al sistema. Por ejemplo la ejecución de un programa

En los sistemas operativos existe un tipo de proceso con características particulares a los que suele llamarse Servicios.
Este tipo de procesos suele ejecutarse en segundo plano, es decir, sin que el usuario tenga constancia directa de su
presencia y, normalmente, esperan un tipo de suceso para ofrecer una determinada prestación al usuario. Por
ejemplo, el servicio de impresión se encarga de administrar todas las solicitudes de los diferentes programas para usar
la impresora. Normalmente, no tendremos constancia de que se está ejecutando. Salvo que se produzca algún
incidente, lo único que comprobamos es que el trabajo de impresión se realiza correctamente, incluso cuando varios
programas traten de imprimir un documento al mismo tiempo.

Ejercicio 3
1. Investiga como ver los procesos en ejecución en tu máquina Linux y como podrías hacerlo en Windows.
2. Investiga como se llama el servicio de impresión de Windows y Linux.
3. Investiga como se puede obtener el ID de un proceso en Windows y Linux.

Todo proceso tiene asociado un espacio de direcciones en la memoria principal, donde se guardan las propias
instrucciones del proceso y los datos que maneja. Además, el sistema dispondrá de una Tabla de procesos donde
guarda la información relevante de cada proceso. Esta información puede variar según el sistema operativo del que
hablemos pero, en general, nos encontraremos estos datos:

• El identificador del proceso (PID, del inglés, Process IDentifier)


• El estado del proceso, es decir, si se está ejecutando, o no.
• Su prioridad con respecto al resto de los procesos del sistema.
• La posición de memoria donde se encuentra (también llamado espacio de direcciones).
6. PLANIFICACIÓN DE PROCESOS

La planificación de procesos consiste en ir asignando procesos al procesador (o procesadores / núcleos) a lo largo del
tiempo, de forma que se cumplan los objetivos en varios aspectos:

• Rendimiento: Trata de maximizar el número de acciones que se completan en un plazo de tiempo


determinado.
• Tiempo de respuesta: El sistema debe responder a las solicitudes de los usuarios en un tiempo adecuado.
• Tiempo de retorno: El sistema debe ofrecer resultados de los procesos por lotes en un tiempo adecuado.
• Equidad: Todos los procesos deben ser considerados según sus características.
• Eficiencia: Se debe aspirar a que el procesador esté activo constantemente.

Como cabe esperar, el módulo del sistema operativo que se encarga de esta tarea se denomina Planificador (en inglés,
Scheduler).

El procesador se distribuye entre todos los procesos que se estén ejecutando. El planificador decide qué proceso de
los que están preparados pasa a usar el procesador asignándole un ID, una prioridad, donde se encuentra en memoria
y un estado. Los estados en que se puede encontrar un proceso son:

• En ejecución: En este estado se encontrará el proceso que ocupa la atención del procesador en ese momento.
Si el ordenador dispone de varios procesadores, o varios núcleos, podrá existir un proceso en ejecución por
cada uno de los núcleos presentes.

• Preparado: En este estado se encuentran los procesos que no se están ejecutando, pero que podrían hacerlo
en cualquier momento y sólo esperan su oportunidad para hacerlo.

• Bloqueado: En este estado estarán los procesos que han solicitado algún servicio del sistema operativo y están
esperando una respuesta.
6.1. FIFO o FCFS (First Come First Served)

Se emplea en procesos por lotes (sin intervención del usuario) y es no apropiativo. Los procesos se van
poniendo en cola según llegan y se les asigna el estado Preparado. Cuando es asignado al procesador, no lo
abandona hasta que termina.

Una de sus ventajas principales consiste en que es un algoritmo muy sencillo de implementar y también es
fácilmente predecible.

Entre sus principales inconvenientes podemos mencionar que los procesos largos pueden hacer esperar
mucho a los procesos cortos y que el tiempo de servicio mínimo variará mucho según el número de procesos
ejecutados y la duración de los mismos.

Si analizamos de forma gráfica el comportamiento del sistema, observaremos que se comporta del siguiente
modo.

En consecuencia, podemos extraer las siguientes conclusiones:


Ejercicio 4
1. EJERCICIO FCFS

6.2. SJF (Short Job First o Primero el trabajo más corto)


Se emplea en procesos por lotes (sin intervención del usuario) y es no apropiativo. Los procesos se van
poniendo en cola según llegan y se les asigna el estado Preparado, pero el Planificador elige el que tiene un menor
tiempo previsto de ejecución.

Y analizando los resultados, obtendríamos la siguiente tabla:

Ejercicio 5
1. EJERCICIO SJF

Ejercicio 6
1. Supón que tenemos tres usuarios y que cada uno necesita ejecutar un proceso por lotes distinto:
• El primero necesitará 18 minutos para ejecutarse, y es el único que está listo al principio.
• El segundo necesitará 10 minutos y está disponible a partir del minuto 7.
• El tercero necesitará 6 minutos y está disponible a partir del minuto 21.

A partir de estos datos, crea una gráfica donde se aprecie el orden de ejecución de los procesos suponiendo que
usamos el algoritmo SRTN si el Planificador toma el control del sistema una vez por minuto (y desestimamos el
tiempo que se está ejecutando).
A continuación, crea una tabla donde expreses el tiempo de respuesta y el tiempo de espera en función de los
datos de entrada.
6.3. SRTF (Short Remaining Time First o Primero el tiempo restante más corto)
En este caso, si un proceso bloqueado pasa al estado Preparado, el distribuidor comprueba si su tiempo
restante es inferior que el del proceso que se encuentra en ejecución. En caso afirmativo, éste toma el control del
procesador y el proceso que está ejecutándose pasa al estado Preparado.

Aunque es un algoritmo muy eficaz para los procesos cortos, resulta difícil predecir los intervalos de asignación
del procesador e, incluso, puede haber procesos largos que sufran de inanición, es decir, que no lleguen a ejecutarse
mientras existan procesos cortos esperando turno.

Y el gráfico resultante quedará como sigue:

De nuevo, aquí tienes los datos arrojados, representados en forma de tabla:


6.4. RR (Round Robin u Operación por turnos)
Se emplea en procesos interactivos (en los que interviene el usuario) y es apropiativo. Los procesos se van poniendo
en cola según llegan y se les asigna el estado Preparado. El procesador se irá asignando a cada proceso, por orden,
durante una fracción de tiempo llamada Quantum, que es igual para todos. Si el proceso se acaba, se bloquea, o si se
agota su tiempo, el procesador es liberado para el siguiente proceso de la lista.

Por lo tanto, la cola de procesos actúa como una estructura circular con organización FIFO.

Para ilustrarlo, comenzaremos por los mismos datos de entrada del ejemplo anterior, suponiendo un Quantum
equivalente a tres unidades de tiempo. El resultado sería como el que muestra la siguiente imagen:

Para facilitar la comprensión, hemos incluido también una representación gráfica de los procesos que se encuentran
en cola para ser ejecutados y del proceso que se encuentra en ejecución en cada unidad de tiempo.

Finalmente, la siguiente tabla muestra los datos que ofrece:


6.5. Planificación por prioridad
Se emplea en procesos interactivos (en los que interviene el usuario) y es apropiativo. A cada proceso se le
asigna un número entero que representa su prioridad, de modo que, cuanto menor es el número, mayor es la
prioridad.

Si se considera un algoritmo no apropiativo, funcionaría como el algoritmo Primero el más corto (SJF), pero
considerando la prioridad en lugar de la duración.

Aun así, veamos un ejemplo, suponiendo que todos los procesos están disponibles desde el primer momento.
Estos serían nuestros datos de partida

Siguiendo la asignación del procesador según el orden de prioridad (el más bajo primero), obtendríamos el siguiente
gráfico:

Finalmente, en la siguiente tabla recogemos los datos numéricos obtenidos:


7. PROCESOS Y SERVICIOS (SOMEBOOKS)

8. CMD/POWERSHELL/TERMINAL

También podría gustarte