Simulación de asignación de recursos y detección de interbloqueos
Enviado por Marcela Guadalupe Bazurto Menendez • 17 de Agosto de 2023 • Documentos de Investigación • 857 Palabras (4 Páginas) • 104 Visitas
[pic 1][pic 2]
[pic 3][pic 4][pic 5]
Autónoma # 3 Simulación de asignación de recursos y detección de interbloqueos
1. Introducción[a]
2. Resumen teórico[b]
3. Desarrollo
Para el desarrollo de este apartado se considerará lo siguiente:
|
Parte I. Planteamiento propuesto
En esta actividad se necesita desarrollar en C++ un programa o simulación de asignación de recursos como la memoria, la CPU o los dispositivos de entrada/salida en un sistema operativo.
Solución Básica de asignación de recursos
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 44 45 46 47 48 49 50 | #include <iostream> #include <vector> #include <string> using namespace std; // Estructura para representar un proceso struct Proceso { string nombre; int memoria; int velocidadCPU; int solicitudMemoria; int solicitudCPU; }; int main() { // Definir el número de procesos en la simulación int numProcesos = 3; // Crear un vector para almacenar los procesos vector<Proceso> procesos(numProcesos); // Inicializar los procesos con valores de ejemplo procesos[0] = {"Proceso A", 100, 2, 50, 1}; procesos[1] = {"Proceso B", 150, 3, 80, 2}; procesos[2] = {"Proceso C", 200, 1, 100, 3}; // Definir la cantidad de memoria disponible y la velocidad de la CPU int memoriaDisponible = 500; int velocidadCPU = 4; // Ejecutar la simulación for (int i = 0; i < numProcesos; i++) { // Verificar si el proceso puede obtener los recursos solicitados if (procesos[i].solicitudMemoria <= memoriaDisponible && procesos[i].solicitudCPU <= velocidadCPU) { // Asignar los recursos al proceso memoriaDisponible -= procesos[i].solicitudMemoria; velocidadCPU -= procesos[i].solicitudCPU; // Mostrar mensaje de asignación de recursos cout << "Proceso " << procesos[i].nombre << " obtiene " << procesos[i].solicitudMemoria << "MB de memoria y " << procesos[i].solicitudCPU << "GHz de CPU." << endl; } else { // Mostrar mensaje de rechazo de asignación de recursos cout << "Proceso " << procesos[i].nombre << " no puede obtener los recursos solicitados." << endl; } } return 0; } |
...