2. Proceso
Un proceso es un concepto manejado por el sistema
operativo que consiste en el conjunto formado por:
Las instrucciones de un programa destinadas a ser
ejecutadas por el microprocesador.
Su estado de ejecución en un momento dado, esto
es, los valores de los registros de la CPU para dicho
programa.
Su memoria de trabajo, es decir, la memoria que ha
reservado y sus contenidos.
Otra información que permite al sistema operativo su
planificación.
3. Procesos Paralelos
Es un proceso empleado para acelerar el tiempo de ejecución de un
programa dividiéndolo en múltiples trozos que se ejecutarán al
mismo tiempo, cada uno en su propios procesadores.
CARACTERÍSTICAS
Posee dos o más procesadores de uso general similares y de
capacidades comparables.
Todos los procesadores comparten el acceso a una memoria
global.
También pueden utilizarse algunas memorias locales
(privadas como la cache).
Todos los procesadores comparten el acceso a los dispositivos
de E/S, bien a través de los mismos canales bien a través de
canales distintos que proporcionan caminos de acceso a los
mismos dispositivos.
El sistema está controlado por un sistema operativo
integrado que permite la interacción entre los procesadores y
sus programas en los niveles de trabajo, tarea, fichero, y datos
elementales.
4. VENTAJAS Y DESVENTAJAS
Existen algunos factores que trabajan en contra de la eficiencia del
paralelismo y pueden atenuar tanto la ganancia de velocidad como
la ampliabilidad.
Costes de inicio: en una operación paralela compuesta por miles de
proceso, el tiempo de inicio puede llegar ser mucho mayor que le
tiempo real de procesamiento, lo que influye negativamente en la
ganancia de velocidad.
Interferencia: como lo procesos que se ejecutan en un proceso
paralelo acceden con frecuencia a recursos compartidos, pueden sufrir
un cierto retardo como consecuencia de la interferencia de cada nuevo
proceso en la competencia, este fenómeno afecta tanto la ganancia de
velocidad como la ampliabilidad.
Sesgo: normalmente es difícil dividir una tarea en partes
exactamente iguales, entonces se dice que la forma de distribución de
los tamaños es sesgada.
El procesamiento paralelo implica una serie de dificultades a nivel
programación de software, es difícil lograr una optimización en el
aprovechamiento de los recursos de todas las CPU con el que se esté
trabajando sin que se formen cuello de botella. En muchas de las ocasiones
no es posible el trabajar con equipos multiprocesadores dado el elevado
costo que este representa, así que solo se dedica a ciertas áreas de
investigación especializada o proyectos gubernamentales o empresariales.
5. Interbloqueos
En un entorno de multiprogramación varios procesos
pueden competir por un número finito de recursos. Un
procesos solicita recursos y, si los recursos no están
disponibles en ese momento, el proceso pasa al estado
de espera. Es posible que algunas veces, un proceso en
espera no pueda nunca cambiar de estado, porque los
recursos que ha solicitado estén ocupados por otro
proceso que a su vez esté esperando de otros recursos.
Cuando se produce una situación como esta se dice que
ha ocurrido un interbloqueo.
6. Caracterización de los interbloqueos
En un interbloqueo, los procesos nunca terminan de
ejecutarse y los recursos.
Métodos para tratar los inter bloqueos
Podemos abordar el problema de los inter bloqueos de las
siguientes tres formas.
• Podemos emplear un protocolo para impedir o evitar los
interbloqueos, asegurando que el sistema nunca entre en
estado de interbloqueo.
• Podemos permitir que el sistema entre en estado
interbloqueo, detectarlo y realizar una recuperación.
• Podemos ignorar el problema y actuar como si nunca se
produjeran interbloqueos en el sistema.
La tercera solución es la que utilizan la mayoría de los
sistemas operativos.
7. Evasión de interbloqueos
Los algoritmos de prevención de interbloqueos impiden los
interbloqueos restringiendo el modo en que pueden hacerse las
solicitudes, estas restricciones aseguran que al menos una de las
condiciones necesarias para que haya interbloqueo no se produzca
y, por tanto no pueda aparecer interbloqueos.
Sin embargo, esta técnica de prevención de interbloqueos tiene
algún posible efecto colateral, como son una baja tasa de
utilización de los dispositivos y un menor rendimiento del sistema.
Un posible método para evitar los interbloqueos consiste en
requerir información adicional sobre cómo van a hacer solicitados
los recursos.
Detección de interbloqueos.
Si un sistema no emplea ni algoritmos de prevención ni de evasión
de interbloqueos, entonces puede producirse una situación de
interbloqueo en el sistema. En este caso el sistema debe
proporcionar:
• Un algoritmo que Examine el estado del sistema para determinar
si se ha producido un interbloqueo.
• Un algoritmo para recuperarse del interbloqueo.
8. Modelos de Procesos
El sistema operativo para permitir la
multiprogramación y la concurrencia requiere de un
modelo de procesos que ofrezca el soporte necesario
para proveerla.
Multiprogramación:
La cpu alterna de programa en programa, en un
esquema de seudoparalelismo (Paralelismo virtual), es
decir que la cpu ejecuta en cierto instante un solo
programa, intercambiando muy rápidamente entre uno
y otro.
9. Paralelismo real de hardware:
Cuando se ejecutan las instrucciones de un programa con
más de un procesador. El modelo de procesos sirve para
aumentar el paralelismo en la ejecución. Está compuesto
básicamente por PCB (Process Control Block), Tabla de
Procesos, Estados y transiciones de los procesos.
El paralelismo real de hardware se da en las siguientes
situaciones:
En ejecución de instrucciones de programa con más de un
procesador de instrucciones en uso simultáneamente.
Con la superposición de ejecución de instrucciones de
programa con la ejecución de una o más operaciones de
entrada / salida.
El objetivo es aumentar el paralelismo en la ejecución.
10. Jerarquía entre procesos
de una forma de
Los Sistemas Operativos deben disponer
crear y destruir procesos cuando se requiera durante la
operación, teniendo además presente que los procesos
pueden generar procesos hijos mediante llamadas al Sistema
Operativo, pudiendo darse ejecución en paralelo. Respecto
de los estados del proceso deben efectuarse las siguientes
consideraciones:
Cada proceso es una entidad independiente pero
frecuentemente debe interactuar con otros procesos
Los procesos pueden bloquearse en su ejecución porque:
_Desde el punto de vista lógico no puede continuar porque
espera datos que aún no están disponibles.
_El Sistema Operativo asignó la cpu a otro proceso.
11. La secuencia de creación de procesos genera un árbol
de procesos. Para referirse a las relaciones entre los
procesos de la jerarquía se emplean los términos de
padre, hermano o abuelo. Cuando el proceso A solicita
al sistema operativo que cree el proceso B, se dice que A
es padre de B y que B es hijo de A. Bajo esta óptica, la
jerarquía de procesos puede considerarse como un
árbol genealógico. Algunos sistemas operativos, como
Unix, mantienen de forma explícita esta estructura
jerárquica de procesos – un proceso sabe quién es su
padre -, mientras que otros sistemas operativos como el
Windows NT no la mantienen.
12. Los estados que puede tener un proceso son:
En ejecución: utiliza la cpu en el instante dado.
Listo: ejecutable, se detiene en forma temporal para que
se ejecute otro proceso.
Bloqueado: no se puede ejecutar debido a la ocurrencia
de algún evento externo.
Son posibles cuatro transiciones entre estos estados.
13. Estados del SO
Modelos de dos estados:
El modelo de estados más simple es el de dos estados.
En este modelo, un proceso puede estar ejecutándose o
no. Cuando se crea un nuevo proceso, se pone en
estado de No ejecución. En algún momento el proceso
que se está ejecutando pasará al estado No ejecución y
otro proceso se elegirá de la lista de procesos listos para
ejecutar para ponerlo en estado Ejecución.
14. Modelo de tres estados:
Para poder manejar convenientemente una administración de
procesador es necesario contar con un cierto juego de datos. Ese juego
de datos será una tabla (BCP o en inglés PCB) en la cual se reflejará en
qué estado se encuentra el proceso, por ejemplo, si está ejecutando o
no. Los procesos, básicamente, se van a encontrar en este caso, en tres
estados:
- Ejecutando.
- Listos para la ejecución.
- Bloqueados por alguna razón.
Sobre la base de estos estados se construye lo que se denomina
Diagrama de Transición de Estado (DTE). Estar en la cola de Listos
significa que el único recurso que a ese proceso le está haciendo falta
es el recurso procesador. O sea, una vez seleccionado de esta cola pasa
al estado de Ejecución. Se tiene una transición al estado de Bloqueados
cada vez que el proceso pida algún recurso. Una vez que ese
requerimiento ha sido satisfecho, el proceso pasará al estado de Listo
porque ya no necesita otra cosa más que el recurso procesador.
15. Modelo de cinco estados:
El modelo anterior de dos estados funcionaría
bien con una cola FIFO y planificación por
turno rotatorio para los procesos que no están
en ejecución, si los procesos estuvieran siempre
listos para ejecutar. En la realidad, los procesos
utilizan datos para operar con ellos, y puede
suceder que no se encuentren listos, o que se
deba esperar algún suceso antes de continuar,
como una operación de Entrada/Salida. Es por
esto que se necesita un estado donde los
procesos permanezcan bloqueados esperando
hasta que puedan proseguir. Se divide entonces
al estado No ejecución en dos estados: Listo y
Bloqueado. Se agregan además un estado
Nuevo y otro Terminado.
16.
Los cinco estados de este diagrama son los siguientes:
Ejecución: el proceso está actualmente en ejecución.
Listo: el proceso está listo para ser ejecutado, sólo está esperando
que el planificador así lo disponga.
Bloqueado: el proceso no puede ejecutar hasta que no se
produzca cierto suceso, como una operación de Entrada/Salida.
Nuevo: El proceso recién fue creado y todavía no fue admitido
por el sistema operativo. En general los procesos que se encuentran
en este estado todavía no fueron cargados en la memoria principal.
Terminado: El proceso fue expulsado del grupo de procesos
ejecutables, ya sea porque terminó o por algún fallo, como un error
de protección, aritmético, etc.
17. Modelos de siete estados:
Procesos suspendidos Una de las razones para implementar
el estado Bloqueado era poder hacer que los procesos se
puedan mantener esperando algún suceso, por ejemplo una
Entrada/Salida. Sin embargo, al ser mucho más lentas estas
operaciones, puede suceder en nuestro modelo de cinco
estados que todos los procesos en memoria estén esperando
en el estado Bloqueado y que no haya más memoria
disponible para nuevos procesos. Podría conseguirse más
memoria, aunque es probable que esto sólo permita procesos
más grandes y no necesariamente nuevos procesos. Además
hay un costo asociado a la memoria y de cualquier forma es
probable que se llegaría al mismo estado con el tiempo. Otra
solución es el intercambio. El intercambio se lleva a cabo
moviendo una parte de un proceso o un proceso completo
desde la memoria principal al disco, quedando en el estado
Suspendido. Después del intercambio, se puede aceptar un
nuevo proceso o traer a memoria un proceso suspendido
anteriormente.
18. El problema que se presenta ahora es que puede ser que si se
decide traer a memoria un proceso que está en el estado
Suspendido, el mismo todavía se encuentre bloqueado. Sólo
convendría traerlo cuando ya está listo para ejecutar, esto implica
que ya aconteció el suceso que estaba esperando cuando se
bloqueó. Para tener esta diferenciación entre procesos
suspendidos, ya sean listos como bloqueados, se utilizan cuatro
estados: Listo, Bloqueado, Bloqueado y suspendido y Listo y
suspendido.
19. Planificación del Proceso
Objetivos de la Planificación de procesos
La Planificación de procesos tiene como principales objetivos la
equidad, la eficacia, el tiempo de respuesta, el tiempo de regreso y el
rendimiento.
Equidad: Todos los procesos deben ser atendidos.
Eficacia: El procesador debe estar ocupado el 100% del tiempo.
Tiempo de respuesta: El tiempo empleado en dar respuesta a las
solicitudes del usuario debe ser el menor posible.
Tiempo de regreso: Reducir al mínimo el tiempo de espera de los
resultados esperados por los usuarios por lotes.
Rendimiento: Maximizar el número de tareas que se procesan por
cada hora.
20. La Planificación hace referencia a un conjunto políticas
y mecanismos incorporados al sistema operativo que
gobiernan el orden en que deben ser ejecutados los
trabajos que deben cumplimentarse por el sistema
operativo. El Objetivo de la planificación es optimizar el
rendimiento del sistema. Nombraremos tres grandes
grupos relacionado con la filosofía del sistema:
Planificación en sistemas con un Procesador ,
Multiprocesador y Tiempo real; identificando en cada
caso sus componentes, sus finalidades y funciones.
La planificación del procesador se clasifica según la
escala relativa de tiempo en que es realizada .
Se define como el tiempo que transcurre desde el
momento en que un Programa es remitido hasta que es
totalmente completado por el mismo. T R = T S + T E .
21. Criterios útiles para planificar
procesos
Tiempo ocioso o en espera
Previsibilidad, plazos o tiempos de respuesta requerido
Equidad, prioridades y privilegios
Trabajo pendiente o tareas por realizar
Exigencias de E/S
Productividad, utilización y carga del CPU y E/S
22. Tipos de Planificadores
PLANIFICADOR A CORTO PLAZO
Este planificador decide que procesos toman el control
de la CPU. El PCP asigna el procesador entre el
conjunto de procesos preparados residentes en
memoria. Su principal objetivo es maximizar el
rendimiento del sistema de acuerdo a con el conjunto
de criterios elegidos. Al estar a cargo de la transición de
estado preparado a ejecución, el PCP deberá ser
invocado cuando se realice una operación de
conmutación de procesos para seleccionar
23. PLANIFICADOR A MEDIO PLAZO El PMP
Tiene por misión traer procesos suspendidos a la memoria
principal. Este planificador controla la transición de procesos
en situación de suspendidos a situación de preparados. El
PMP permanecerla inactivo mientras se mantenga la
condición que dio lugar a la suspensión del proceso, sin
embargo, una vez desaparecida dicha condición el PMP
intenta asignar al proceso la cantidad de memoria principal
que requiera y volver a dejarlo en situación de preparado.
Para funcionar adecuadamente, el PMP debe disponer de
información respecto a las necesidades de memoria de los
procesos suspendidos, lo cual no es complicado de llevar a la
practica ya que el tamaño real del proceso puede ser
calculado en el momento de suspenderlo almacenándose en
el BCP. Este planificador será invocado cuando quede
espacio libre en memoria por la terminación de un proceso o
cuando el suministro de procesos preparados quede por
debajo de un limite especificado.
24. Algoritmos de Planificación
FCFS, FIFO: Por orden de arribo (first-come, first-served)
SPN, SRT: Primero el trabajo más corto o con menor tiempo
restante (shortest process next, shortest remaining time)
RR: Por turno rotatorio usando quantums, i.e. interrupciones
periódicas de reloj (Round-robin scheduling)
FB: Realimentación Multinivel, maneja prioridades dinámicas
con múltiples colas penalizando a los procesos más viejos
(Feedback)