Ir para conteúdo
Fórum Script Brasil

rafaelarbl

Membros
  • Total de itens

    5
  • Registro em

  • Última visita

Tudo que rafaelarbl postou

  1. Oi gente. Estou fazendo um simulador de página virtual, trabalho final de sistemas operacionais. Estou no começo... Por enquanto está assim: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <time.h> void processar() { sleep(rand()%10); } void main() { /* os números simulam os tamanhos, em kbytes. */ int memoriaprincipal = 64; int memoriavirtual = 1024; int paginas = 8; int frames = 8; int tamanhodeumprocessohipotetico = 512; while(true) { processar(); } } Em algum lugar dentro de "processar" eu preciso "gerar uma instrução de acesso a um bit do arquivo de forma aleatória através de um registro do tipo: MOV REG, 32780." Só que eu não sei como fazer isso, se alguém puder me ajudar eu estou procurando por toda a internet e não acho...
  2. Só que não é. Estou fazendo uns testes olha, nem isso funciona: #include <stdio.h> #include <stdlib.h> #include <time.h> main() { int a = 0; srand (time(NULL)); while(1) { while (a<20) { a = rand() % 100; } printf("%d\n",a); } } Não sei nem mais por que nem como funcionou antes... P.S. ( se colocar o srand (time(NULL)) dentro do while(1) não funciona igual... Ok entendi. A declaração da variável precisa estar dentro do while (1) era só isso. agora está tudo funcionando. (sei lá porque a declaração tem que estar dentro mas enfim) É verdade entendi. É que se eu não zerar ela entre uma execução e a outra então ela já vai estar "boa": não vai nem precisar entrar no "while (temp< 30)" (por exemplo). E daí ela nunca vai variar mesmo. Entendi tudo. Obrigada.
  3. Hmm... Não sei se vai ajudar mas olha. /*public class appLocadora { public static void main(String[] args) { switch(entrada){ case 1: só para ti entender onde eu coloquei a parte seguinte: */ /* dei um source > generate toString na classe Cliente */ String ok = cli.toString(); System.out.println(ok); String res = Clientes.toString(); System.out.println(res); /* antes de fazer o método tostring na classe cliente o sysout retornava (no console da IDE): package.Cliente@32a1bec0 [package.Cliente@32a1bec0] depois de fazer o método tostring na classe cliente o sysout retorna (no console da IDE): Cliente [nome=entrada, endereco=entrada2, idade=120] [Cliente [nome=entrada, endereco=entrada2, idade=120]] sei que não era isso o que tu estava perguntando mas acho que deve ajudar né... sei lá...*/
  4. incluí a biblioteca time e coloquei o srand (time(NULL)) no início da função main. Não arrumou os aleatórios. Troquei o srand (time(NULL)) de lugar, e coloquei dentro das threads, dentro do while(1), antes da seção crítica. Não arrumou, também. Por último: tentei colocar o srand (time(NULL)) dentro da seção crítica. Também não arrumou. Em qualquer alteração que eu fizesse era como se eu não fizesse alteração nenhuma... É como se a função não interferisse com o aleatório. Noooooossa.... Eu sou uma anta! Hahahaha ^^' Ok, arrumei, ficou certinho. Não deu mais o segundo problema. Obrigada, tu é um gênio ! Agora só falta arrumar o primeiro problema, vou dar uma pesquisada nas funções que tu citou para ver se eu encontro alguma coisa. Se puder ajudar: ele só começou a dar esse problema dos números randômicos quando eu usei mutex para proteger a seção crítica. A partir daí ele não varia mais os randômicos. Antes variava normalmente.
  5. Nada. /* gcc nome.c -o nome -lpthread */ main(){ pthread_t t1, t2, t3, t4; //cria as threads (void) pthread_create(&t1, NULL, sensor1, NULL); //chama as threads (void) pthread_join(t1,NULL); }
×
×
  • Criar Novo...