Simulação de Alocação de Memória
Por: corw • 22/8/2015 • Trabalho acadêmico • 2.384 Palavras (10 Páginas) • 268 Visualizações
/*
- Simulação de Alocação de Memória -
Curso: Engenharia de Computação.
Matéria: Algoritmo e Programação.
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void cabecalho(){
printf("==================================================\n");
system("echo - Simulação de Alocação de Memória -");
printf(" Trabalho para 02.05.2011\n");
system("echo Acadêmico: Neoli Gonçalves da Silva.");
printf(" RA: 11120626.\n");
system("echo Curso: Engenharia de Computação.");
system("echo Matéria: Algoritmo e Programação.");
printf(" Professor: Dr. Alceu de Souza Britto Jr..\n");
system("echo Universidade Estadual de Ponta Grossa - Paraná.");
system("echo 1)- Mostra a primeira posição na memória para a locar o valor informado.");
system("echo 2)- Mostra uma das melhores posições na memória para a locar o valor informado.");
system("echo 3)- Mostra a pior posição na memória para a locar o valor informado.");
printf("=================================================\n\n");
}
/*---FirstFit()--------------------------------------------------------------------------------*/
int FirstFit(char Vet[], int N, int T){
int indice=0, zeros=0, acindice=0;
while(Vet[indice]<=N-1 && zeros<T){
if(Vet[indice] == 0){
zeros=zeros+1;
acindice=indice-T;
}
else{
zeros=0;
acindice=0;
}
indice++;
}
/*------Retorno*------*/
if(zeros>=T) return acindice+2;
else return -1;
/*------Retorno*------*/
}
/*---/FirstFit()--------------------------------------------------------------------------------*/
int BestFit(char Vet[], int N, int T){
int bindice=0, bzeros=0, bacindice=0, bmaior=0;
for(bindice=0; bindice<N; bindice++){
if(Vet[bindice] == 0){
bzeros=bzeros+1;
}
else{
bzeros=0;
}
if(bmaior<bzeros){
bmaior=bmaior+1;
bacindice=bindice+2;
}
else{
bmaior=bmaior;
}
}
if(bmaior>=T) return bacindice-bmaior;
else return -1;
}
/*---WorstFit()--------------------------------------------------------------------------------*/
int WorstFit(char Vet[], int N, int T){
int windice=0, wzeros=0, wacindice=0, rec=N, index, bestfit;
while(Vet[windice]<=N-1){
if(Vet[windice]==0){
wzeros=wzeros+1;
index=windice+1;
}
else{//if Vet[windice]==1
if(wzeros>0){
if(wzeros<rec){
rec=wzeros;
wacindice=index;
}
else{
rec=rec;
}
}
else{
rec=rec; // atrapalhando
}
...