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

Sistemas operativos y sus tipos


Enviado por   •  13 de Noviembre de 2023  •  Ensayos  •  871 Palabras (4 Páginas)  •  52 Visitas

Página 1 de 4

 Universidad de Guadalajara

Centro Universitario de Ciencias Exactas e Ingenierías

[pic 1]

SEMINARIO DE SOLUCIÓN DE PROBLEMAS DE USO, ADAPTACIÓN Y EXPLOTACIÓN DE SISTEMAS OPERATIVOS

Mtra. Martha del Carmen Gutierrez Salmeron

2023B | D04

Reporte 2: Procesamiento por Lotes y Multiprogramación

Emanuel Escareño Covarrubias - INNI | 216238171

Índice

Introducción        2

Contenido        3

Evidencia y Resultados        4

Conclusión        8

Referencias        8


Introducción

En el uso de sistemas operativos, el procesamiento por lotes ha sido muy fundamental para la ejecución eficiente de tareas/procesos. Un simulador de procesamiento por lotes es una forma muy valiosa de que pueda comprender y analizar cómo se gestionan y ejecutan diversas tareas. Lo cual nos lleva a también a simular un comportamiento muy común como lo es la interrupción y el error en el procesamiento del proceso. En este reporte, explorare en detalle la experiencia de desarrollar un simulador de procesamiento por lotes utilizando el lenguaje de programación Python.

El procesamiento por lotes implica agrupar una serie de tareas o trabajos relacionados en una "carga de trabajo" o "lote/batch", y luego ejecutarlos secuencialmente. Esta técnica ha sido ampliamente utilizada en sistemas operativos para optimizar el uso de recursos y maximizar la eficiencia. Al simular esta manera de procesar las tareas en Python, podemos obtener una comprensión más profunda de cómo se gestionan los trabajos, se asignan los recursos y se coordinan las operaciones en un entorno de procesamiento por lotes.

Objetivo

Simular el proceso de interrupción y error en el procesamiento de tareas.


Contenido

Para crear el simulador opte por usar Python y implemente la biblioteca tkinter para crear una interfaz gráfica simple. A continuación, describiré el diseño de código que decidí implementar para resolver esta práctica y sus nuevas funcionalidades respecto al programa 1.

Nueva funcionalidad: Interrupción y Error

En la función processing(process) se estará esperando a la bandera (i_button) que indique que se interrumpa el proceso y lo mande a la cola del lote y la otra bandera (e_button) para que nos indique que el proceso actual se tiene que marcar como error y se pasa a los procesos ya terminados.

Además, se añadieron un dato mas de tiempo restante, ya que los procesos interrumpidos se quedan con el tiempo que les faltaba, este dato se obtiene restando cada segundo de ejecución al TME (tiempo máximo estimado).

Inicialización de Variables Globales:

  • global_batches: Una lista que almacena los lotes de procesos generados.
  • pending_batches: Un contador que rastrea la cantidad de lotes pendientes.
  • clock: Un reloj global que simula el tiempo de ejecución.
  • pending_processes: Una lista de procesos pendientes por ejecutar.
  • finished_processes: Una lista de procesos que han terminado su ejecución.

Funciones de Interfaz Gráfica:

  • Se utilizan varios widgets de tkinter para crear la interfaz gráfica, incluyendo etiquetas, campos de entrada, botones y áreas de texto.
  • Los componentes de la interfaz están organizados en una cuadrícula “grids”, con etiquetas que describen las secciones ("EN ESPERA", "EJECUCIÓN", "TERMINADOS") y áreas de texto para mostrar información.

Funciones Principales:

  • validate_input(P): Valida la entrada del usuario para el número de procesos a generar.
  • clean_program(): Restablece todas las variables globales a sus valores iniciales.
  • generate_processes(): Genera procesos aleatorios y los guarda en un archivo llamado "Lote.txt".
  • load_processes(): Carga la información de los procesos desde el archivo "Lote.txt" en la lista global_batches.
  • process_processes(): Procesa los lotes de procesos, moviendo los procesos pendientes a ejecución y actualizando la interfaz gráfica.
  • processing(process): Simula la ejecución de un proceso, actualizando el reloj global y la interfaz gráfica.

Interacción con la Interfaz:

  • Las funciones se llaman cuando los botones son presionados en la interfaz gráfica. Por ejemplo, el botón "GENERAR" llama a generate_processes().
  • Las áreas de texto se actualizan con la información relevante en varios puntos del programa, como durante la ejecución de procesos y después de completar lotes.

Guardado de Resultados:

La función get_results() guarda los resultados de los procesos terminados en un archivo llamado "Resultados.txt".

Bucle de Interfaz Gráfica:

La ejecución principal se lleva a cabo en el bucle root.mainloop(), que mantiene la interfaz gráfica en funcionamiento y permite la interacción del usuario.

...

Descargar como (para miembros actualizados)  txt (6.3 Kb)   pdf (314.8 Kb)   docx (588.9 Kb)  
Leer 3 páginas más »
Disponible sólo en Clubensayos.com