Enviado em 27/06/2016 - 22:52h
Oi gente#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <pthread.h>
#include <time.h>
void movreg() {
printf("MOV REG, 32780\n"); // instrução de acesso
sleep(rand()%10); //tempo de geração do registro de acesso fictício
printf("Page is unmapped – page fault!\n"); // resposta fictícia
}
void mmu(){
int[] tabeladepaginas;
int[] mapeamentoentrepaginaseframes;
boolean gerouinstrucao;
String res;
int resultado;
if (gerouinstrucao = true) {
// MAPEAR ENDEREÇO VIRTUAL (EM MEMORIA VIRTUAL) NO ENDEREÇO REAL (EM MEMÓRIA PRINCIPAL).
resultado = memoriavirtual/memoriaprincipal;
res = ("Resultado do mapeamento de endereço virtual em memória virtual no endereço real em memória principal = %d", resultado);
return res;
}
// Mantém o mapeamento entre páginas e frames.
// Quando processador gera uma instrução:
// MMU mapeia o endereço virtual (em memória virtual) no endereço real (em memória principal).
// Uma nova instrução é gerada e deverá ser mostrada na saída padrão.
// A MMU pode realizar duas tarefas que, ao final, resultam na apresentação do conteúdo do processo (arquivo) contido no endereço gerado:
// 1 - Se o novo endereço (real) gerado pela MMU estiver em memória principal, é mostrado o conteúdo do processo (arquivo) contido neste endereço;
// 2 - Se o novo endereço (real) gerado pela MMU não estiver em memória principal, a MMU emite (na saída padrão) uma falta de página.
// Em caso de falta de página o processo de carregamento da página pode ocorrer de duas formas:
// Se existem frames disponíveis : o bloco de dados do arquivo correspondente ao frame é copiado para a memória principal no primeiro frame disponível e a tabela de páginas é atualizada
// Se não existem frames disponíveis, deve ser escolhido uma página a ser substituída. Este processo de escolha de qual página deve ser substituída deve-se dar através do algoritmo aging.
}
void main() {
int memoriaprincipal = 64;
int memoriavirtual = 1024;
int paginas = 8;
int frames = 8;
int processorepresentadoporumarquivodedados = 512;
sleep(rand()%10);
movreg();
mmu();
}
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado