Olá, tenho que desenvolver um programa em C para implementação de bits de referência, possuo o código inicial, porém não sei como continuar, se alguém puder dar uma ajuda agradeço
Segue código inicial
#include <stdio.h>
#include <stdlib.h>
#define MAX_P 32 /* Número máximo de páginas */ #define MAX_Q 16 /* Núḿero máximo de quadros */ #define MAX_T 16 /* Valor máximo do tamanho do histórico em bits */ #define MAX_I 200 /* Valor máximo do intervalo de atualização do histórico */ #define MAX_N 100 /* Número máximo de acessos a páginas */
typedef struct {
int valido;
int quadro;
int t_carga;
int bit_ref;
int hist[MAX_T];
int val_br_hist;
} PAGINA;
int main()
{
int p, q, t, i, n, a[MAX_N];
PAGINA tab_pagina[MAX_P];
int quadros[MAX_Q]; /* Controla quadros livres */
int j,k,l,pagina,atualizacao,q_livre,menor,falhas;
while (1) {
/* LEITURA */
scanf("%d%d%d%d%d",&p,&q,&t,&i,&n);
if (p==0 || q==0 || t==0 || i==0 || n==0)
break;
if (p<0 || p>MAX_P || q<0 || q>MAX_P || t<0 || t>MAX_T || i<0 || i>MAX_I
|| n<0 || n>MAX_N)
exit(5);
for (j=0;j<n;++j) {
scanf("%d",&(a[j]));
if (a[j]<0 || a[j]>=p)
exit(5);
}
/* IMPLEMENTAÇÃO */
/* Inicialização da Tabela de Páginas */
for (j=0;j<p;++j) {
tab_pagina[j].valido = 0;
tab_pagina[j].bit_ref = 0;
for (k=0;k<t;++k)
tab_pagina[j].hist[k]=0;
}
/* ... */
/* SAÍDA */
printf("%d\n",falhas);
for (j=0;j<p;++j) {
if (tab_pagina[j].valido)
printf("%d",tab_pagina[j].quadro);
else
printf("-");
printf(" %d ",tab_pagina[j].bit_ref);
for (k=t-1;k>=0;--k)
printf("%d",tab_pagina[j].hist[k]);
printf("\n");
}
printf("\n");
}
return 0;
}
Pergunta
Eduardo Paz
Olá, tenho que desenvolver um programa em C para implementação de bits de referência, possuo o código inicial, porém não sei como continuar, se alguém puder dar uma ajuda agradeço
Segue código inicial
Obrigado pela ajuda!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.