Algoritmia - Planificacion Garantizada

 
Vista:

Planificacion Garantizada

Publicado por jean paul (1 intervención) el 06/07/2004 05:38:35
Hola alguien me podria ayudar, tengo que presentar un algoritmo y el prog. en c++ o vc++ de lo que es planificacion garantizada y ya me canse de buscar en todo sitio pero sobre este en particular es muy poco lo que se puede encontrar ojala alguien me pueda ayudar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Planificación garantizada en C++/VC++

Publicado por Alejandro (307 intervenciones) el 01/03/2024 20:01:13
Jean, la planificación garantizada, también conocida como planificación determinista, se refiere a la asignación de recursos y ejecución de procesos en un sistema embebido de manera predecible y controlada. A continuación, te proporcionaré un ejemplo simple de un algoritmo de planificación garantizada junto con un programa en C++.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <vector>
 
using namespace std;
 
// Definición de una tarea
struct Tarea {
    int id;
    int tiempoEjecucion;
};
 
// Función de comparación para ordenar tareas por tiempo de ejecución ascendente
bool compararTareas(const Tarea &a, const Tarea &b) {
    return a.tiempoEjecucion < b.tiempoEjecucion;
}
 
// Algoritmo de planificación garantizada (EDF - Earliest Deadline First)
void planificacionGarantizada(vector<Tarea> &tareas) {
    // Ordenar las tareas por tiempo de ejecución ascendente
    sort(tareas.begin(), tareas.end(), compararTareas);
 
    // Tiempo total de ejecución
    int tiempoTotal = 0;
 
    // Procesar cada tarea en orden
    for (const Tarea &t : tareas) {
        cout << "Ejecutando tarea " << t.id << " por " << t.tiempoEjecucion << " unidades de tiempo." << endl;
        tiempoTotal += t.tiempoEjecucion;
    }
 
    // Imprimir el tiempo total de ejecución
    cout << "Tiempo total de ejecucion: " << tiempoTotal << " unidades de tiempo." << endl;
}
 
int main() {
    // Crear un conjunto de tareas de ejemplo
    vector<Tarea> tareas = {{1, 3}, {2, 2}, {3, 5}};
 
    // Aplicar el algoritmo de planificación garantizada
    planificacionGarantizada(tareas);
 
    return 0;
}

En este ejemplo, he implementado el algoritmo EDF (Earliest Deadline First), que ordena las tareas según sus tiempos de ejecución ascendentes y las ejecuta en ese orden. Este es un algoritmo de planificación determinista común en sistemas embebidos.

Por supuesto, este es un ejemplo simple y puede requerir ajustes según los requisitos específicos de tu tarea o contexto. Además, ten en cuenta que la planificación garantizada puede involucrar más aspectos, como el manejo de interrupciones, prioridades y plazos límite.

Espero que este código te sea útil como punto de partida.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar