Está en la página 1de 4

CODIFICACION ASIGNACIÓN DE MEMORIA

CONTIGUA
SISTEMAS OPERATIVOS 2020

Andrés Felipe Murillo Moreno

Jonatan Pino Rivera

Prof. Álvaro Montoya

Taller número IV Sistema Operativos

Tec. Profesional en Programación

2020
#include<bits/stdc++.h>
using namespace std;

void MemoriaContigua(int TamBloque[], int m, int TamProceso[], int n)


{

int Asignacion[n];

memset(Asignacion, -1, sizeof(Asignacion));

for (int i=0; i<n; i++)


{

int MejorBloque = -1;


for (int j=0; j<m; j++)
{
if (TamBloque[j] >= TamProceso[i])
{
if (MejorBloque == -1)
MejorBloque = j;
else if (TamBloque[MejorBloque] > TamBloque[j])
MejorBloque = j;
}
}

if (MejorBloque != -1)
{

Asignacion[i] = MejorBloque;

TamBloque[MejorBloque] -= TamProceso[i];
}
}

cout << "\nProceso Numero.\tTamano Proceso\tBloque Asignado.\n";


for (int i = 0; i < n; i++)
{
cout << " " << i+1 << "\t\t" << TamProceso[i] << "\t\t";
if (Asignacion[i] != -1)
cout << Asignacion[i] + 1;
else
cout << "No Asignado";
cout << endl;
}
}

int main()
{
int TamBloque[] = {100, 500, 200, 300, 600};
int TamProceso[] = {212, 417, 112, 426};
int m = sizeof(TamBloque)/sizeof(TamBloque[0]);
int n = sizeof(TamProceso)/sizeof(TamProceso[0]);

MemoriaContigua(TamBloque, m, TamProceso, n);


return 0 ;
}

Lenguaje C++

También podría gustarte