Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SISTEMAS OPERATIVOS
TERCER SEMESTRE
ELABORADO POR:
PABLO FUENTES ZEPEDA
BRAULIO HERNANDEZ DORANTES
DANIEL HERNANDEZ LLANOS
ENRIQUE ALEJANDRO LÓPEZ CIMÉ
ROGELIO MANRIQUEZ MALAGON
ENRIQUE ALEJANDRO MANZANILLA PACHECO
En el mapa anterior podemos observar de manera clara los diferentes estados de los procesos,
se muestran como los procesos listos o bloqueados pueden suspenderse. El objetivo de la
suspensión estriba en dejar suficiente memoria a los procesos no suspendidos para que su
conjunto residente tenga un tamaño adecuado que evite la hiperpaginación.
PLANIFICACIÓN
El objetivo de la planificación de procesos y procesos ligeros es el reparto del tiempo de
procesador entre los procesos que pueden ejecutar. El planificador es el módulo del sistema
operativo que realiza la función de seleccionar el proceso en estado de listo que pasa a estado
de ejecución, mientras que el activador es el módulo que pone en ejecución el proceso
planificado.
Los sistemas pueden incluir varios niveles de planificación de procesos. La planificación a
largo plazo tiene por objetivo añadir nuevos procesos al sistema, tomándolos de la lista de
espera. Estos procesos son procesos de tipo batch, en los que no importa el instante preciso
en el que se ejecuten (siempre que se cumplan ciertos límites de espera). La planificación a
medio plazo trata la suspensión de procesos. Es la que decide qué procesos pasan a
suspendido y cuáles dejan de estar suspendidos. Añade o elimina procesos de memoria
principal modificando, por tanto, el grado de multiprogramación. La planificación a corto
plazo se encarga de seleccionar el proceso en estado de listo que pasa a estado de ejecución.
Es, por tanto, la que asigna el procesador. También es importante la planificación de
entrada/salida. Esta planificación decide el orden en que se ejecutan las operaciones de
entrada/salida que están encoladas para cada periférico.
SEÑALES Y EXCEPCIONES
Cuando un sistema operativo desea notificar a un proceso la ocurrencia de un determinado
evento, o error, recurre a dos tipos de mecanismos: señales y excepciones. Las primeras se
utilizan en POS IX y las segundas en Windows NT. En las siguientes secciones se tratan
estos dos mecanismos.
Señales
Las señales tienen frente al proceso el mismo comportamiento que las interrupciones tienen
frente al procesador, por lo que se puede decir que una señal es una interrupción al proceso.
El proceso detiene su ejecución en la instrucción de máquina que está ejecutando, bifurca a
ejecutar una rutina de tratamiento de la señal, cuyo código ha de formar parte del propio
proceso. Una vez ejecutada la rutina de tratamiento, sigue la ejecución del proceso en la
instrucción en el que fue interrumpido, el origen de una señal puede ser un proceso o el
sistema operativo.
Tipos de señales
Dado que las señales se utilizan para indicarle al proceso muchas cosas diferentes, existen
una gran variedad de ellas. A título de ejemplo, se incluyen aquí tres categorías de señales:
Excepciones hardware.
Comunicación.
FIS asíncronas.
Efecto de la señal y armado de la misma
Como se ha indicado anteriormente, el efecto de la señal es ejecutar una rutina de tratamiento.
Para que esto sea así, el proceso debe tener armada ese tipo de señal, es decir, ha de estar
preparado para recibir dicho tipo de señal. Armar una señal significa indicar al sistema
operativo el nombre de la rutina del proceso que ha de tratar ese tipo de señal, lo que, como
veremos, se consigue en POSIX con el servicio sigaction. Algunas señales admiten que se
las ignore, lo cual ha de ser indicado por el proceso al sistema operativo. En este caso, el
sistema operativo simplemente desecha las señales ignoradas por ese proceso. Un proceso
también puede enmascarar diversos tipos de señales. El efecto es que las señales
enmascaradas quedan bloqueadas (no se desechan), a la espera de que el proceso las
desenmascare. Cuando un proceso recibe una señal sin haberla armado o enmascarado
previamente, se ejecuta la acción por defecto, que en la mayoría de los casos consiste en
matar al proceso.
Principios de concurrencia
En el pasado, los lenguajes de programación concurrentes y las API para sistemas operativos
proporcionaban muchos elementos básicos que facilitaban la interacción entre procesos de
una manera simple y eficiente.
Estas primitivas deberían permitirle:
Sincronización: Los procesos pueden acceder al estado del flujo de control donde se
encuentran otros procesos en ese momento.
Exclusión mutua: impide que otros procesos accedan al mismo recurso o variable
compartida cuando un proceso accede a un recurso o actualiza una variable
compartida.
Sincronización condicional: Asegúrese de que los recursos solo sean accesibles si
están en un estado interno específico.
Semáforos
Un semáforo es una variable especial que constituye el método clásico para restringir o
permitir el acceso a recursos compartidos (por ejemplo, un recurso de almacenamiento del
sistema) Los semáforos son una herramienta de sincronización que ofrece una solución al
problema de la sección crítica, provee una simple pero útil abstracción para controlar el
acceso de múltiples procesos a un recurso común en programación paralela, o entornos
multiusuarios. El concepto de semáforo fue inventando por el holandés Esdger W. Dijkstra.
Problema Lectores/Escritores
Es hora de diseñar un mecanismo de sincronización y simultaneidad, puede vincular el
problema en cuestión a un problema conocido y hacer lo siguiente: Compruebe la
funcionalidad de la solución para resolver estos problemas conocidos. Y la literatura plantea
la importancia del problema y ocurre con frecuencia, porque tienen valor educativo y son
ejemplos de problemas de diseño comunes.
En el diagrama anterior podemos observar la función del Mutex y de las variables
incondicionales, así mismo como las operaciones atómicas básicas sobre un mutex, como es
el caso de “Lock” y el “Unlock”
Con esto entendemos que un proceso consiste en ejecutar un programa con una función más
precisa, como una unidad de procesamiento gestionada por el sistema operativo. El sistema
operativo mantiene una tabla de procesos con un bloque de control de procesos BCP, que
está construido estáticamente para una mayor eficiencia, tiene un número específico de BCP
y todos son del mismo tamaño. Un proceso consta de segmentos de memoria que contienen
código y datos de proceso, y esta información se denomina imagen de memoria o imagen
central. El entorno es un conjunto de variables que se pasan al proceso en el momento de la
creación.
Un sistema de subproceso único o de subproceso único no puede ejecutar otro proceso
mientras otro se está ejecutando, solo esperará a que se complete el proceso actual antes de
poder ejecutarse. Un proceso puede ocurrir en varias situaciones llamadas estados. Durante
la duración del proceso, el estado cambia a medida que evolucionan sus necesidades. La
imagen de memoria del proceso consta de áreas de memoria que está autorizado a utilizar.
Un proceso solo puede tener información en su espacio de memoria, no fuera de ella.
BIBLIOGRAFIA
García Carballeira, F., Pérez Costoya, F., & Carretero Pérez, J. (2021). Sistemas Operativos:
Una Visión Aplicada. 3 Ed.: Volumen II. Independently Published.
Stallings, W. (2014). Operating systems: Internals and design principles, global edition.
Pearson Education.