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 extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
É normal não gostar de KDE? (6)
Impressora epson l6270 não funciona em Linux mint (0)
esqueci a senha do boot do notebook dell vostro 3300 (3)