Programar em C/Algoritmo de alocação: diferenças entre revisões

Origem: Wikilivros, livros abertos por um mundo aberto.
[revisão pendente][revisão pendente]
Conteúdo apagado Conteúdo adicionado
Linha 2: Linha 2:


==best fit==
==best fit==
Varre toda a memória e escolhe a página mais ajustada ao tamanho do processo.


<syntaxhighlight lang="c">
<syntaxhighlight lang="c">

Revisão das 11h36min de 17 de abril de 2014

first fist

best fit

Varre toda a memória e escolhe a página mais ajustada ao tamanho do processo.

#include <stdio.h>
#include <windows.h> 

int main(){  
   int p,m;  
   printf("Enter number of processes:");
   scanf("%d",&p);
   printf("Enter number of Memory blocks:");
   scanf("%d",&m); 
  
   int parr[p];
   struct mem{
          int id;
          int size;
   }marr[m];

   int i;

   for(i=0;i<p;i++)
   {
     printf("Enter size of process %d:",i+1);
     scanf("%d",&parr[i]);      
   }
   for(i=0;i<m;i++)
   {
     printf("Enter size of memory %d:",i+1);
     scanf("%d",&marr[i].size);   
     marr[i].id=i+1;   
   }
   int j; 
   int size = 0;
   
   for(i; size <= marr[i].size;  i++ )
           size = marr[i].size;
   int old_size = size ;
    int im ;
    int ref = 0;
    
     for(i=0;i<p;i++){                  
       for(j=0;j<m;j++){
         if(marr[j].size>=parr[i]){
         
         if(marr[j].size < size){
         im = j;
         size = marr[j].size;
         ref = 1 ;
         }                            
    }  
                
     }  
     
     if(ref){
          ref = 0;
          marr[im].size-=parr[i];
           size = old_size ;
              printf("Allocating process %d to memory %d\n Size remaining in it after allocation %d\n\n",i+1,marr[im].id,marr[im].size); 
          
              }else {printf("Not enough memory for process %d",i);break;} 
       
                 
   }
  system ("pause");
  
          return 0;
}

worst fit

O algoritmo worst fit aloca o bloco de memória na região que tem o maior espaço livre.

Está técnica por procurar ocupar primeiro as partições maiores termina por deixar espaços livres que poderiam ser utilizados para que outros blocos de outros programas as utilizassem, diminuindo e/ou retardando a fragmentação.

Next Fit

Buddy System

Esta página é um esboço de informática. Ampliando-a você ajudará a melhorar o Wikilivros.