ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

ADMINISTRACIÓN DE PROCESOS Y PLANIFICACIÓN DE PROCESOS

Gregory Ureta VargasDocumentos de Investigación15 de Julio de 2021

4.047 Palabras (17 Páginas)107 Visitas

Página 1 de 17

UNIVERSIDAD DE GUAYAQUIL[pic 1][pic 2]

FACULTAD:

INGENIERIA INDUSTRIAL

TEMA:

ADMINISTRACIÓN DE PROCESOS Y PLANIFICACIÓN DE PROCESOS

ESTUDIANTE:

URETA VARGAS GREGORY FREDDY

MATERIA:

SISTEMAS OPERATIVOS

DOCENTE:

ING. TRUJILLO COLOMA MARIA JOSÉ

AÑO LECTIVO:

CICLO 2021-2022

Contenido

Introducción        4

Objetivos        5

Objetivo general        5

Objetivo específico        5

Desarrollo        6

Administración de procesos        6

Concepto y estados de un proceso        6

Estados en proceso        6

Procesos e hilos        7

Los hilos y el sistema operativo        7

Patrones de trabajo con hilos        7

Concurrencia        8

Problemas        8

Problema conductor consumidor        8

Solución        10

Problema lectores / escritores        12

Solución        14

Bloques mutuos        15

Prevención de bloqueos        16

Evasión de bloqueos        17

Detección y recuperación de bloqueos        17

Algoritmo de avestruz        17

Justificando a los avestruces        17

Enfrentando los avestruces        17

Planificación de procesos        18

Tipos de procesos        18

Midiendo la respuesta        19

Algoritmos de planificación        19

Objetivos de planificación        20

El proceso más corto a continuación (SPN)        21

Ronda egoísta (SRR)        21

Retroalimentación multinivel        22

Lotería        22

Planificación de hilos        22

Planificación de multiprocesadores        23

Bibliografía        25

Conclusión        26

Introducción

A continuación, veremos dos capítulos resumidos en un solo documento, por un lado, presentaremos el primer tema a tratar que es sobre la administración de procesos y todos los conceptos que están relacionados con éste, como los procesos, hilos, concurrencia y sincronización, por otro lado veremos el segundo tema, que es sobre la planificación de procesos, aquí las técnicas y algoritmos que son empleados por el sistema operativo son los que determinan como y en que orden hacer los cambios de procesos, cediendo en uso del procesador a los procesos que lo necesiten.

Objetivos

Objetivo general

  • Comprender ampliamente los temas con el fin de aplicar lo aprendido en la universidad.

Objetivo específico

  • Investigar y estudiar los temas difíciles de comprender para un buen entendimiento.

Desarrollo

Administración de procesos

Concepto y estados de un proceso

Un proceso es la imagen en memoria de un programa, o una entidad activa, definiendo la actuación que tendrá el sistema. Hablamos de tareas en un sistema por lotes, que una tarea necesita menos estructura, solo basta con guardar la información que esta relacionada con la contabilidad de recursos empelados.

El sistema da la ilusión de que algunos procesos son ejecutados por igual, al mismo tiempo, en su mayoría solo esta esperando para continuar con su ejecución, en algún punto solo puede ejecutar sus instrucciones, los procesos que sean igual o menor al número de procesadores del sistema. (García, 2020)

Estados en proceso

Conlleva diferentes estados de ejecución a lo largo de su vida, los cuales son:

  • Nuevo: Da permiso al sistema operativo la creación de un proceso, y sus recursos más las estructuras van siendo creadas.
  • Listo: Inicia o continua la ejecución, pero el sistema no le asigna un procesador.
  • En ejecución: Mientras se esta ejecutando sus instrucciones son procesadas en algún procesador.
  • Bloqueado: A la espera de algún evento y continuar con la ejecución.
  • Zombie: El sistema operativo realizará algunas operaciones de limpieza para eliminarlo de la lista, aunque el sistema haya terminado su ejecución.
  • Terminado: Ha terminado, las estructuras están a la espera de que el sistema operativo las limpie.

Procesos e hilos

Es bastante significativa la cantidad de información que el sistema maneja acerca de cada proceso. Cuando los procesos son basados en un modelo de hilos, se proyecta en sentido inverso que todo proceso es como un hilo de ejecución. Si un sistema operativo no aporta soporte expreso a los hilos, los proyectaría de la misma forma.

Los hilos y el sistema operativo

Los hilos llamados hilos de usuario o hilos verdes, son cuando pueden hacerse completamente y de manera transparente en espacio de usuario.

Los procesos implementados con hilos pueden ganar algo de rendimiento por no tener que reemplazar al PCB activo cuando la ejecución es intercalada de sus distintos hilos. Hay momentos en que los hilos de usuarios utilizan multitarea cooperativa para poder pasar el control dentro de un proceso.

La creación de hilos informando al sistema operativo o los conocidos como hilos de Kernel, son los que, a través de bibliotecas de sistemas, son implementados de forma estándar para los diversos sistemas operativos.

Patrones de trabajo con hilos

Son tres los patrones donde caen los modelos de hilos, podemos tener mas de de estos patrones en diferentes áreas de nuestra aplicación, estos son:

  • Jefe / trabajador: El jefe recopila tareas para realizarlas, separándolas y entregándolas a los hilos trabajadores, los hilos trabajadores realizar su operación, y notifican su trabajo al jefe, finalizando su ejecución.
  • Equipo de trabajo: El trabajo a realizar por estos hilos son planteados desde el principio, esto se conoce como el paso de división de trabajo, no un hilo más, sino que va preparando los datos para que sean lanzados en paralelo.
  • Línea de ensamblado: Este modelo ayuda a mantener rutinas simples de comprender, permitiendo al procesamiento de datos que continúe inclusive si parte del programa esté bloqueado. Pueden ejecutarse paralelamente sobre bloques consecutivos de información, eventos, etc.

Concurrencia

La concurrencia se refiere a dos o más eventos cuyo orden no es determinista, en otras palabras, son eventos en los que no se puede predecir el orden relativo en el que pasarán. Es encargada principalmente de los procesos cuya ejecución esté vinculada de alguna forma.

Los problemas y conceptos acerca de la concurrencia son presentados o utilizados con problemas clásicos, presentando casos muy simplificados, y pueden tener relación con diferentes cuestiones que un programador puede enfrentar en la vida real.

Para cada problema que se mostrará, tendrá una manera de resolverlos, aunque por lo general tenemos mas soluciones, se recomienda entender bien el ejemplo, el problema y la solución, para continuar con el siguiente ejemplo.

Problemas

Problema conductor consumidor

En un entorno multihilos es común que haya una división de tareas tipo línea de ensamblado, que se puede generalizar a que un grupo de hilos van produciendo ciertas estructuras, a ser consumidas por otro grupo.

Un programa orientado a eventos puede ser un ejemplo de este problema, cuando eventos de la misma naturaleza se producen, causando que se disparen los mecanismos que los puedan atender. Estos eventos pueden apilarse en un buffer, procesado por los hilos encargados acorde se vayan liberando.

Teniendo ciertos requisitos:

  • Retirar un elemento del buffer deberá ser hecho de forma atómica. Si hay mas de un proceso intentando hacerlo al mismo tiempo, hay riesgo de que se corrompan los datos.
  • Si un consumidor está listo y el buffer vacío, deberá bloquearse, hasta que un productor pueda generar un elemento.

El código será simple si no se tiene en cuenta la sincronización:

 import threading

buffer = [ ]

threading.Thread(target=productor,args=[]).start()   threading.Thread(target=consumidor,args=[]).start()

def productor():

while True:

event = genera_evento()

buffer.append(event)

 def consumidor():

while True:

event = buffer.pop()

procesa(event)

El acceso a buffer no tiene protección para garantizar la exclusión mutua, dando paso a que pueda quedar en un estado inconsistente si append() y pop() intentan manipular sus estructuras al mismo tiempo. También, podemos extender el programa para que haya varios hilos en distintos roles.

...

Descargar como (para miembros actualizados) txt (26 Kb) pdf (200 Kb) docx (41 Kb)
Leer 16 páginas más »
Disponible sólo en Clubensayos.com