Ir para conteúdo
Fórum Script Brasil

rafaelarbl

Membros
  • Total de itens

    5
  • Registro em

  • Última visita

Posts postados por rafaelarbl

  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. 2 horas atrás, Aristóteles disse:

    Para isso, inclua a biblioteca time.h, e coloque srand (time(NULL)), de preferência logo no inicio da função main.

    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.

    2 horas atrás, Aristóteles disse:

    Você está usando a sua matriz como se fosse de 0 a 100 linhas e não 0 a 99, pois <<a>> é incrementado de 0 até 100 e está usando 0 a 2 colunas.

    Para resolver isso é simples. Se você quiser uma matriz que vai de 0 a 100 linhas, e 0 a 2 colunas:

    int matriz [100][3].

    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.

×
×
  • Criar Novo...