Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
• 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
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)
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
• 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.
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.
• Monolítico.
• Micronúcleo.
• Núcleo híbrido.
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).
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:
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:
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.
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.
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.
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:
8. CMD/POWERSHELL/TERMINAL