Simulando algoritmos de programación del sistema operativo para procesos, por ejemplo, programación de prioridad, programación de niveles múltiples, ...


Este repositorio expuesto aquí es en realidad un proyecto universitario del operating system del curso
E implementado con el lenguaje Java .
La exhibición de la jerarquía de las clases se demuestra aquí:
---- cpuscheduler
----------- |
----------- SRC
------------------ |
------------------ Proceso // Datos de cada proceso, por ejemplo, hora de inicio, tiempo de explosión, ...
------------------ CPU // CPU para simular el horario
------------------ Programador // Clase abstracta para métodos y campos primitivos
------------------ SCH_FCFS // Primer programador de primer servicio.
------------------ SCH_SJF // El trabajo más corto de trabajo (puede ser preventivo)
-----------------
------------------ SCH_RR // REDOND ROBIN Scheduler
------------------ Sch_lottery // Scheduler de lotería
------------------ SCH_MULTILELVE // Scheduler de niveles múltiples (puede ser preventivo)
------------------ FXMLDOCUMECONTROLLER // Controlador para la GUI principal
------------------ SimulationController // Controlador para la GUI de simulación
----/
Proceso: O un proceso se ejecuta o espera que estos 2 estados se manejen en:
UPC:
Programador:
Notas
Tenga en cuenta que la unidad de tiempo de simulación es 0.1, por lo que el tiempo de estallido o el tiempo de retraso debe ser múltiple de 0.1
Tenga en cuenta que el orden de cada línea especifica el orden de llegada del proceso
Tenga en cuenta que el formato de entrada es así para cada línea (tiempo de ráfaga, tiempo de retraso, prioridad, nivel)
Tenga en cuenta que la duración mínima del interruptor de contexto en esta simulación es 0.4
Tenga en cuenta que la duración mínima de la cuántica para el programador de robbin redondo en esta simulación es 0.2 porque la unidad de tiempo es 0.1 y Quantum no puede ser menor que la unidad de tiempo
Entrada Tabel:
| Nombre de proceso | Tiempo de llegada | Tiempo de ejecución | Nivel |
|---|---|---|---|
| 1 | 0 | 5 | 1 |
| 2 | 1 | 8 | 2 |
| 3 | 3 | 7 | 2 |
| 4 | 4 | 3 | 1 |
| 5 | 5 | 3 | 1 |
| 6 | 8 | 11 | 2 |
| 7 | 15 | 3 | 1 |
| 8 | 25 | 4 | 1 |
Por ejemplo, estamos programando el proceso en múltiples niveles no preventivos (L1: FCFS, L2 FCFS) a continuación (archivo input.txt)

Primero ingresamos la información del proceso y elige el alghorithm de programación y luego presione el botón Ejecutar

Espere a que termine la simulación

Ahora puedes ver los resultados

Este proyecto tiene licencia bajo la licencia MIT; consulte el archivo de licencia para obtener más detalles.