Skip to content

Commit 74dffd6

Browse files
committed
E agora, José?
1 parent 09b9b7e commit 74dffd6

File tree

4 files changed

+16
-6
lines changed

4 files changed

+16
-6
lines changed

bin/simuSO/MMU.class

-34 Bytes
Binary file not shown.

bin/simuSO/So.class

0 Bytes
Binary file not shown.

src/simuSO/MMU.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public void escrever(int pIndiceVirtual, int idProcesso) {
3838

3939
Random r = new Random();
4040
Integer novoValor = r.nextInt(100);
41+
System.out.println("ESCREVENDO1 " + novoValor);
4142
this.memFisica.setValor(indiceLivreTemp, novoValor);
4243

4344
// Se tiver espaço na memória física
@@ -52,6 +53,7 @@ public void escrever(int pIndiceVirtual, int idProcesso) {
5253
this.memVirtual.getPagina(pIndiceVirtual).setTempoVirtualAtual(tempoAtual);
5354
Random r = new Random();
5455
Integer valor = r.nextInt(100); // Pega um valor qualquer, ja que não é relevante no nosso caso
56+
System.out.println("ESCREVENDO2 " + valor);
5557
this.memFisica.setValor(indiceLivreTemp, valor);
5658
}
5759

@@ -118,38 +120,43 @@ public Integer ler(int pIndiceVirtual, int IDProcesso) {
118120
}
119121

120122
private void WS() {
121-
int t = 2000;
123+
int t = 3000;
122124
boolean marcada = false; // marca pagina candidata a ser retirada da memFisica
123125
int idadePaginaAtual = 0;
124126
// Variaveis temporarias para comparação de pagina mais antiga escolhida a sair
125127
int idadePaginaTemp = 0;
126128
int iTemp = 0;
127129

128130
for(int countPaginas = 0; countPaginas < this.memVirtual.getTamanho(); countPaginas++) {
129-
System.out.println("TEMPO DA PAGINA ATUAL " + this.memVirtual.getPagina(countPaginas).getTempoVirtualAtual());
131+
132+
// Se a página tiver o bit Presente em 0, passa pra próxima
130133
if(this.memVirtual.getPagina(countPaginas).presente() == false){
131134
continue;
132135
}
133136

137+
// Se a pagia foi referenciada durante o ultimo tick de clock, ela não é candidata à sair do WS
134138
if(this.memVirtual.getPagina(countPaginas).referenciada() == true){
135-
System.out.println("BB");
139+
136140
this.memVirtual.getPagina(countPaginas).setTempoVirtualAtual(this.tempoAtual);
137141
idadePaginaAtual = (this.tempoAtual - this.memVirtual.getPagina(countPaginas).getTempoVirtualAtual());
138142
idadePaginaTemp = (this.tempoAtual - this.memVirtual.getPagina(iTemp).getTempoVirtualAtual());
139143

144+
// Guardar o indice da pagina mais antiga até então
140145
if(idadePaginaAtual >= idadePaginaTemp){
141-
iTemp = countPaginas;
146+
iTemp = countPaginas;
142147
marcada = true;
143148
}
144149
continue;
145150
}
146151

147152
if(this.memVirtual.getPagina(countPaginas).referenciada() == false && (this.tempoAtual - this.memVirtual.getPagina(countPaginas).getTempoVirtualAtual()) > t){
148153
Integer moldura = this.memVirtual.getPagina(countPaginas).getMolduraPagina();
154+
155+
// Verifica se a página foi modificada
149156
if(this.memVirtual.getPagina(countPaginas).modificada() == true){
150157
this.memoriaHD.swap(this.memFisica.getValor(moldura), countPaginas);
151158
}
152-
// Resetar página para tirar a referencia dela para a memoria fisica
159+
// Reseta a página para tirar a referencia dela para a memoria fisica
153160
this.memFisica.setValor(this.memVirtual.getPagina(countPaginas).getMolduraPagina(), null);
154161
this.memVirtual.getPagina(countPaginas).descartarPagina();
155162
marcada = false;
@@ -167,6 +174,8 @@ private void WS() {
167174
continue;
168175
}
169176

177+
178+
// Verifica se a página foi marcada
170179
if(marcada == true){
171180
System.out.println("UKULELE");
172181
if(this.memVirtual.getPagina(iTemp).modificada() == true){

src/simuSO/SO.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
public class SO extends JFrame {
1717

1818
private JPanel contentPane;
19-
public static final Clock CLOCK = new Clock(1000);
19+
public static final Clock CLOCK = new Clock(4000);
2020
public static final int TAMANHO_MEMORIA_FISICA = 4;
2121
public static final int TAMANHO_MEMORIA_VIRTUAL = 8;
2222
public static final String LOCAL_HD = "MEMORIA_HD.txt";
@@ -54,6 +54,7 @@ public static void main(String[] args) {
5454
//log.start();
5555
p2.start();
5656

57+
5758
// Evento que vai gerar o formulário
5859
EventQueue.invokeLater(new Runnable() {
5960
public void run() {

0 commit comments

Comments
 (0)