simulador
Publicado por Omar Sanchez (1 intervención) el 30/11/2002 19:17:09
quisiera saber como podrfia hacer un programa en c++ que simule un proceso en la memoria
Valora esta pregunta


0
#include <iostream>
#include <vector>
#include <string>
class Proceso {
public:
int id;
int tamanio; // Tamaño del proceso en KB
bool enMemoria;
Proceso(int id, int tamanio) : id(id), tamanio(tamanio), enMemoria(false) {}
};
class Memoria {
private:
int tamanioTotal; // Tamaño total de la memoria en KB
int tamanioLibre; // Tamaño libre de la memoria en KB
std::vector<Proceso> procesos;
public:
Memoria(int tamanio) : tamanioTotal(tamanio), tamanioLibre(tamanio) {}
bool cargarProceso(Proceso& p) {
if (p.tamanio <= tamanioLibre) {
procesos.push_back(p);
p.enMemoria = true;
tamanioLibre -= p.tamanio;
std::cout << "Proceso " << p.id << " cargado en memoria." << std::endl;
return true;
} else {
std::cout << "No hay suficiente memoria para cargar el proceso " << p.id << "." << std::endl;
return false;
}
}
void mostrarEstadoMemoria() {
std::cout << "Estado de la memoria:" << std::endl;
std::cout << "Tamaño total: " << tamanioTotal << " KB" << std::endl;
std::cout << "Tamaño libre: " << tamanioLibre << " KB" << std::endl;
std::cout << "Procesos en memoria: ";
for (const auto& p : procesos) {
std::cout << "Proceso " << p.id << " (" << p.tamanio << " KB) ";
}
std::cout << std::endl;
}
};
int main() {
Memoria memoria(1024); // Crear memoria de 1024 KB
Proceso p1(1, 256); // Crear proceso 1 de 256 KB
Proceso p2(2, 512); // Crear proceso 2 de 512 KB
Proceso p3(3, 300); // Crear proceso 3 de 300 KB
memoria.cargarProceso(p1);
memoria.cargarProceso(p2);
memoria.cargarProceso(p3); // Este proceso no se podrá cargar
memoria.mostrarEstadoMemoria();
return 0;
}